rev 10006 - in kde-extras: . kpogre kpogre/branches kpogre/branches/upstream kpogre/branches/upstream/current kpogre/branches/upstream/current/admin kpogre/branches/upstream/current/admin/CVS kpogre/branches/upstream/current/doc kpogre/branches/upstream/current/doc/en kpogre/branches/upstream/current/kpogre kpogre/branches/upstream/current/kpogre/DataTable kpogre/branches/upstream/current/kpogre/DbObjects kpogre/branches/upstream/current/kpogre/Debugger kpogre/branches/upstream/current/kpogre/Executor kpogre/branches/upstream/current/kpogre/PropertyPages kpogre/branches/upstream/current/kpogre/QueryResult kpogre/branches/upstream/current/kpogre/Wizards kpogre/branches/upstream/current/kpogre/XmlSupport kpogre/branches/upstream/current/kpogre/icons kpogre/branches/upstream/current/kpogre/pics kpogre/branches/upstream/current/po

ZhengPeng Hou zhengpeng-guest at alioth.debian.org
Sun Apr 6 10:25:44 UTC 2008


Author: zhengpeng-guest
Date: 2008-04-06 10:25:41 +0000 (Sun, 06 Apr 2008)
New Revision: 10006

Added:
   kde-extras/kpogre/
   kde-extras/kpogre/branches/
   kde-extras/kpogre/branches/upstream/
   kde-extras/kpogre/branches/upstream/current/
   kde-extras/kpogre/branches/upstream/current/AUTHORS
   kde-extras/kpogre/branches/upstream/current/COPYING
   kde-extras/kpogre/branches/upstream/current/ChangeLog
   kde-extras/kpogre/branches/upstream/current/Doxyfile
   kde-extras/kpogre/branches/upstream/current/INSTALL
   kde-extras/kpogre/branches/upstream/current/Makefile.am
   kde-extras/kpogre/branches/upstream/current/Makefile.dist
   kde-extras/kpogre/branches/upstream/current/Makefile.in
   kde-extras/kpogre/branches/upstream/current/README
   kde-extras/kpogre/branches/upstream/current/TODO
   kde-extras/kpogre/branches/upstream/current/acinclude.m4
   kde-extras/kpogre/branches/upstream/current/aclocal.m4
   kde-extras/kpogre/branches/upstream/current/admin/
   kde-extras/kpogre/branches/upstream/current/admin/CVS/
   kde-extras/kpogre/branches/upstream/current/admin/CVS/Entries
   kde-extras/kpogre/branches/upstream/current/admin/CVS/Repository
   kde-extras/kpogre/branches/upstream/current/admin/CVS/Root
   kde-extras/kpogre/branches/upstream/current/admin/ChangeLog
   kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.am
   kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.global
   kde-extras/kpogre/branches/upstream/current/admin/Makefile
   kde-extras/kpogre/branches/upstream/current/admin/Makefile.am
   kde-extras/kpogre/branches/upstream/current/admin/Makefile.common
   kde-extras/kpogre/branches/upstream/current/admin/Makefile.in
   kde-extras/kpogre/branches/upstream/current/admin/acinclude.m4.in
   kde-extras/kpogre/branches/upstream/current/admin/am_edit
   kde-extras/kpogre/branches/upstream/current/admin/bcheck.pl
   kde-extras/kpogre/branches/upstream/current/admin/compile
   kde-extras/kpogre/branches/upstream/current/admin/conf.change.pl
   kde-extras/kpogre/branches/upstream/current/admin/config.guess
   kde-extras/kpogre/branches/upstream/current/admin/config.pl
   kde-extras/kpogre/branches/upstream/current/admin/config.sub
   kde-extras/kpogre/branches/upstream/current/admin/configure.in.bot.end
   kde-extras/kpogre/branches/upstream/current/admin/configure.in.min
   kde-extras/kpogre/branches/upstream/current/admin/cvs-clean.pl
   kde-extras/kpogre/branches/upstream/current/admin/cvs.sh
   kde-extras/kpogre/branches/upstream/current/admin/debianrules
   kde-extras/kpogre/branches/upstream/current/admin/depcomp
   kde-extras/kpogre/branches/upstream/current/admin/deps.am
   kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.pl
   kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.sh
   kde-extras/kpogre/branches/upstream/current/admin/install-sh
   kde-extras/kpogre/branches/upstream/current/admin/libtool.m4.in
   kde-extras/kpogre/branches/upstream/current/admin/ltmain.sh
   kde-extras/kpogre/branches/upstream/current/admin/missing
   kde-extras/kpogre/branches/upstream/current/admin/mkinstalldirs
   kde-extras/kpogre/branches/upstream/current/admin/nmcheck
   kde-extras/kpogre/branches/upstream/current/admin/oldinclude.m4.in
   kde-extras/kpogre/branches/upstream/current/admin/pkg.m4.in
   kde-extras/kpogre/branches/upstream/current/admin/ylwrap
   kde-extras/kpogre/branches/upstream/current/config.h.in
   kde-extras/kpogre/branches/upstream/current/configure
   kde-extras/kpogre/branches/upstream/current/configure.files
   kde-extras/kpogre/branches/upstream/current/configure.in
   kde-extras/kpogre/branches/upstream/current/configure.in.in
   kde-extras/kpogre/branches/upstream/current/doc/
   kde-extras/kpogre/branches/upstream/current/doc/Makefile.am
   kde-extras/kpogre/branches/upstream/current/doc/Makefile.in
   kde-extras/kpogre/branches/upstream/current/doc/en/
   kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.am
   kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.in
   kde-extras/kpogre/branches/upstream/current/doc/en/aggregate.png
   kde-extras/kpogre/branches/upstream/current/doc/en/argument.png
   kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/cast.png
   kde-extras/kpogre/branches/upstream/current/doc/en/check.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_bin.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_bit.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_bool.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_char.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_cid.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_date.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_geo.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_net.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_num.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_oid.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_tid.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_time.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_uuid.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_xid.png
   kde-extras/kpogre/branches/upstream/current/doc/en/column_xml.png
   kde-extras/kpogre/branches/upstream/current/doc/en/conversion.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/data_table7.png
   kde-extras/kpogre/branches/upstream/current/doc/en/database.png
   kde-extras/kpogre/branches/upstream/current/doc/en/database_sys.png
   kde-extras/kpogre/branches/upstream/current/doc/en/database_usr.png
   kde-extras/kpogre/branches/upstream/current/doc/en/domain.png
   kde-extras/kpogre/branches/upstream/current/doc/en/edit.png
   kde-extras/kpogre/branches/upstream/current/doc/en/editdelete.png
   kde-extras/kpogre/branches/upstream/current/doc/en/edittool.png
   kde-extras/kpogre/branches/upstream/current/doc/en/executor1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/executor2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/executor3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/foreign_key.png
   kde-extras/kpogre/branches/upstream/current/doc/en/function.png
   kde-extras/kpogre/branches/upstream/current/doc/en/function_c.png
   kde-extras/kpogre/branches/upstream/current/doc/en/function_pl.png
   kde-extras/kpogre/branches/upstream/current/doc/en/function_sql.png
   kde-extras/kpogre/branches/upstream/current/doc/en/group.png
   kde-extras/kpogre/branches/upstream/current/doc/en/index.docbook
   kde-extras/kpogre/branches/upstream/current/doc/en/index.png
   kde-extras/kpogre/branches/upstream/current/doc/en/key.png
   kde-extras/kpogre/branches/upstream/current/doc/en/language.png
   kde-extras/kpogre/branches/upstream/current/doc/en/oid_links1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/oid_links2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/oid_links3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/operator.png
   kde-extras/kpogre/branches/upstream/current/doc/en/operator_class.png
   kde-extras/kpogre/branches/upstream/current/doc/en/primary_key.png
   kde-extras/kpogre/branches/upstream/current/doc/en/privileges1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/privileges2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/privileges3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/privileges4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/query_result1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/query_result2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/query_result3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/rule.png
   kde-extras/kpogre/branches/upstream/current/doc/en/schema.png
   kde-extras/kpogre/branches/upstream/current/doc/en/schema_sys.png
   kde-extras/kpogre/branches/upstream/current/doc/en/schema_usr.png
   kde-extras/kpogre/branches/upstream/current/doc/en/screenshot.png
   kde-extras/kpogre/branches/upstream/current/doc/en/sequence.png
   kde-extras/kpogre/branches/upstream/current/doc/en/server.png
   kde-extras/kpogre/branches/upstream/current/doc/en/setupsqlteditor.png
   kde-extras/kpogre/branches/upstream/current/doc/en/statistics1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/statistics2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/table.png
   kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_sys.png
   kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_usr.png
   kde-extras/kpogre/branches/upstream/current/doc/en/toast_table.png
   kde-extras/kpogre/branches/upstream/current/doc/en/trigger.png
   kde-extras/kpogre/branches/upstream/current/doc/en/type.png
   kde-extras/kpogre/branches/upstream/current/doc/en/type_base.png
   kde-extras/kpogre/branches/upstream/current/doc/en/type_composite.png
   kde-extras/kpogre/branches/upstream/current/doc/en/type_standalone.png
   kde-extras/kpogre/branches/upstream/current/doc/en/user.png
   kde-extras/kpogre/branches/upstream/current/doc/en/user_crt_db.png
   kde-extras/kpogre/branches/upstream/current/doc/en/user_super.png
   kde-extras/kpogre/branches/upstream/current/doc/en/view.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wizard.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst7.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst8.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst9.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl10.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl11.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl12.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl13.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl14.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl15.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl16.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl17.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl18.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl19.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl7.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl8.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl9.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw7.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop0.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify0.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col0.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col10.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col5.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col6.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col7.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col8.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col9.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom4.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_db.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_srv.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_tbl.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename0.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db3.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_owner1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_tablespace1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl1.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl2.png
   kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl3.png
   kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop
   kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop.pcs
   kde-extras/kpogre/branches/upstream/current/kpogre.lsm
   kde-extras/kpogre/branches/upstream/current/kpogre.spec
   kde-extras/kpogre/branches/upstream/current/kpogre/
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.h
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.h
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.h
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.h
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.h
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.h
   kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgnext.png
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrestart.png
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrun.png
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstep.png
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstepout.png
   kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-kpg_debugger.png
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgdatatable.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgdebugger.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgexecutor.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgkateui.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgproppage.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgqueryreslt.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.ui
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogre.desktop
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.h
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogreui.rc
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.h
   kde-extras/kpogre/branches/upstream/current/kpogre/main.cpp
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.am
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.in
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/aggregate.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/argument.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_checked.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_clear.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_disabled.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_enabled.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/cast.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/check.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bin.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bit.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bool.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_char.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_cid.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_date.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_geo.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_net.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_num.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_oid.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_tid.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_time.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_uuid.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xid.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xml.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/conversion.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/database.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_sys.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_usr.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/disk_usage.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/domain.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/false.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/foreign_key.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/function.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_c.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_pl.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_sql.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/group.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/index.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/key.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/language.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo16-app-kpogre.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo32-app-kpogre.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/lock.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermblue.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermred.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator_class.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/primary_key.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/rule.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_sys.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_unl.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_usr.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/sequence.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/server.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/table.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_sys.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_usr.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/toast_table.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/trigger.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/true.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/type.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_base.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_composite.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_standalone.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/user.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_crt_db.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_super.png
   kde-extras/kpogre/branches/upstream/current/kpogre/pics/view.png
   kde-extras/kpogre/branches/upstream/current/kpogre64_rpm
   kde-extras/kpogre/branches/upstream/current/kpogre_rpm
   kde-extras/kpogre/branches/upstream/current/po/
   kde-extras/kpogre/branches/upstream/current/po/Makefile.am
   kde-extras/kpogre/branches/upstream/current/po/Makefile.in
   kde-extras/kpogre/branches/upstream/current/subdirs
Log:
[svn-inject] Installing original source of kpogre

Added: kde-extras/kpogre/branches/upstream/current/AUTHORS
===================================================================
--- kde-extras/kpogre/branches/upstream/current/AUTHORS	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/AUTHORS	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+Project started and leaved unfinished (V 0.9.5) by:
+Dominik Sacher <dsacher at users.sourceforge.net>, <Sacher at dvoid.org>
+
+==========================================================
+
+Current developer:
+Lumir Vanek <lvanek at users.sourceforge.net> http://www.eanet.cz/~lvanek
+
+	- porting to KDE 3
+	- porting to libpqxx
+	- many GUI improvements: KMDI IDEAl mode, code completition, ...
+	- big rework, added objects and property pages for all PostgreSQL database objects
+	- implemented Wizards for most of administration tasks
+	- implemented Datatable for editing database table content

Added: kde-extras/kpogre/branches/upstream/current/COPYING
===================================================================
--- kde-extras/kpogre/branches/upstream/current/COPYING	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/COPYING	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,280 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS

Added: kde-extras/kpogre/branches/upstream/current/ChangeLog
===================================================================
--- kde-extras/kpogre/branches/upstream/current/ChangeLog	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/ChangeLog	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,931 @@
+
+01.04.2008, Lumir Vanek
+======================
+1) Implemented create/modify user with encrypted password
+
+28.03.2008, Lumir Vanek
+======================
+1) Added "Query table" and "Query view" to context menus, it launch
+   query/result window with table/view name inserted in SELECT statement
+2) When query/result window is opened for different schema than public,
+   SQL editor contains "SET search_path TO schema" as first statement
+
+26.03.2008, Lumir Vanek
+======================
+1) Login dialog shows again, when login failed
+2) Fixed sorting in function arguments list 
+
+06.01.2008, Lumir Vanek
+======================
+1) Incorporated KatePart into KPGQueryResultWindow and KPGDebugger
+2) Big rework related to incorporating KatePart:
+
+- All MDI child windows (KPGQueryResultWindow, KPGDataTable, KPGExecutor, KPGDebugger) are now inherited also from KXMLGUIClient
+- All those MDI windows have own .rc file with merged menu and toolbar
+- Moved actions and slots from KPoGreController to MDI child windows and removed signalling for enable/disable actions.
+
+
+23.11.2007, Lumir Vanek
+======================
+1) Incorporated Kate part for editing Text and XML's columns in DataTable
+2) Prepared GUI infrastructure for PL pg/SQL debugger (/Debugger)
+
+*********************************************************************
+*                                                                   *
+*                      1.6.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+13.11.2007, Lumir Vanek
+======================
+1) Replaced all assert's to Q_ASSERT
+2) Updated system catalog SQL queries, to be compatible with PosgtreSQL 8.3-b2
+3) Removed deprecated pqxx-config, use pkg-config instead (configure.in.in)
+4) Updated /admin directory to compile with KDE 3.5.7
+
+*********************************************************************
+*                                                                   *
+*                      1.5.8 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+19.10.2007, Lumir Vanek
+======================
+1) Big refactoring in DbObjects and PropertyPages to respect MVC design pattern. Now, DbObjects (the model) is decoupled from PropertyPages (the view).
+
+16.10.2007, Lumir Vanek
+======================
+1) Updated system catalog SQL queries, to be compatible with PosgtreSQL 8.3-b1
+2) Added xml and uuid datatypes to wizards column lists
+3) Improved DataTable to edit XML datatype columns like text LOB
+4) Make XML syntax higlighter in editor configurable
+
+
+*********************************************************************
+*                                                                   *
+*                      1.5.6 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+08.10.2007, Lumir Vanek
+======================
+1) Replaced boolean values in tables from texts 't'/'f' to descriptive bitmaps 
+
+08.10.2007, Lumir Vanek
+======================
+1) Lazy load database cast tab in properties window to speed up
+
+30.5.2007, Lumir Vanek
+======================
+1) Implemented 'Locks' tab in Database property window. Contain list of locks in
+database.
+
+12.04.2007, Lumir Vanek
+=======================
+1) Changed KPGDatabase, KPGTablespace, KPGIndex, KPGPrimaryKey long m_lSize to long long, supported in libpqxx 2.6.9. This resolves problem when read info from large databases or
+tablespaces. Tested on 30 GB DB.
+
+05.03.2007, Lumir Vanek
+=======================
+1) Fixed multiline comments in syntax highlighter  
+
+04.03.2007, Lumir Vanek
+=======================
+1) Improved code completion. When . (period) is pressed after table or function (returning set) name, or it's alias, list of available columns is displayied. This feature require
+some testing before daily using. 
+
+23.02.2007, Lumir Vanek
+=======================
+1) Implemented option for choosing XAct type for system catalog queries
+2) Introduced option for lazy loading tables childs, for speed up. Note, that using it may affect functionality of code completion and OID links - items that are not loaded
+yet cannot be found when use OID link or code completion.
+
+29.01.2007, Lumir Vanek
+=======================
+1) Make necessary changes to compile with libpqxx 2.6.9
+
+30.12.2006, Lumir Vanek
+=======================
+1) Added FILLFACTOR option to 'Create table' wizard. 
+
+*********************************************************************
+*                                                                   *
+*                      1.5.4 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+28.12.2006, Lumir Vanek
+=======================
+1) Tables folder contain also TOAST tables. Ordinary tables has OID link to their TOAST table in properties. 
+
+26.12.2006, Lumir Vanek
+=======================
+1) Implemented 'Disk usage' tab in Database property window. Contain list of tables, toast tables and indexes
+   in DB, sorted by disk space used.
+
+21.12.2006, Lumir Vanek
+=======================
+1) Implemented actions for Server menu: Reload configuration, Rotate log file
+2) Added button to Server 'Activity' tab: 'Cancel query'
+3) Added info about used disk space into property pages for: Tablespace, Database, Table, Index and it's folders 
+Note: All it above works with PostgreSQL 8.1 or newer
+
+15.12.2006, Lumir Vanek
+=======================
+1) Object names containing upper-case letter are now quoted.
+2) When user click on Datatable header, column info is displayed 
+
+*********************************************************************
+*                                                                   *
+*                      1.5.2 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+14.12.2006, Lumir Vanek
+=======================
+1) Code completion in SQL editor (Ctrl+Space) now contain main user DB objects (tables, views, functions) for current database.
+
+13.12.2006, Lumir Vanek
+=======================
+1) Implemented standard Find action for Datatable
+2) Implemented Find actions for result tables in Query/Result and Executor
+
+12.12.2006, Lumir Vanek
+=======================
+1) Implemented standard Find action for SQL editor. Note: Finding in tree view is now available only when 'Properties' tab is selected.
+2) Implemented standard Replace action for SQL Query editor.
+
+09.12.2006, Lumir Vanek
+=======================
+1) Made KPGSearchDialog look uniform with KDE KFindDialog
+
+08.12.2006, Lumir Vanek
+=======================
+1) Updated list of SQL keywords for syntax highlighter and code completion, according to PostgreSQL 8.2
+2) Improved SQL query/result: when "syntax error on character N" occured, cursor and selection is placed to position N.
+
+22.09.2006, Lumir Vanek
+=======================
+1) Fixed compilation problems in 1.5.0
+
+*********************************************************************
+*                                                                   *
+*                      1.5.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+20.09.2006, Lumir Vanek
+=======================
+1) Reworked object quotation, quote objects only if contain space in name. 
+
+19.09.2006, Lumir Vanek
+=======================
+1) Enhanced 'Create table Wizard' - allow user to chose if default value is quoted, Added
+button for simply setting 'Now' default value for dates. This same for 'Create domain Wizard' 
+2) Added polymorphic "anyelement" and "anyarray" types to 'Create function Wizard'
+
+15.09.2006, Lumir Vanek
+=======================
+1) Most of 'Property page' tables supports clipboard actions in object menu (invoked by mouse right-click).
+
+13.09.2006, Lumir Vanek
+=======================
+1) Menu item 'File -> Export result' now works for all MDI child views: Properties, Query/result, Datatable and Executor
+
+12.09.2006, Lumir Vanek
+=======================
+1) Submenus for MDI child views are dynamically plugged under 'Database' menu in main menubar.
+2) Toolbars for MDI child views are automatically switched
+3) Implemented the 'Executor' for executing functions
+
+01.09.2006, Lumir Vanek
+=======================
+1) Initial version of code completiton (Ctrl+Space) in Query/result input-area, by that time only for SQL keywords.
+
+30.08.2006, Lumir Vanek
+=======================
+1) Moved Query/result actions to separate toolbar
+2) Implemented the 'Datatable' for editing tables content 
+
+22.08.2006, Lumir Vanek
+=======================
+1) Adressed some encoding issues
+2) 'Server property page' shows info about conection client encoding
+
+21.08.2006, Lumir Vanek
+=======================
+1) 'Modify function wizard' uses arguments info, available since PostgreSQL 8.1 
+
+18.08.2006, Lumir Vanek
+=======================
+1) 'Modify function wizard' remember, if function returns SET
+2) Function property page shows arguments info, available since PostgreSQL 8.1 
+3) Fixed race condition in KPGConnectionInThread, that caused display empty resultset for fast queries
+
+08.08.2006, Lumir Vanek
+=======================
+1) Added button "Copy query" to Server Activity page. 
+2) Implemented menu for SQL result table (try mouse right click over it) with some 
+   clibpoard copy actions - copy cell, row, table to CVS, table to XML
+
+*********************************************************************
+*                                                                   *
+*                      1.4.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+04.08.2006, Lumir Vanek
+=======================
+1) Fixed bug: Load info about table fail, if have more than 1 milion rows.
+
+*********************************************************************
+*                                                                   *
+*                      1.3.9 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+20.07.2006, Lumir Vanek
+=======================
+1) Implemented wizard for setting database object description
+2) Implemented refreshItem() for all table childs objects, for smarter refresh
+
+18.07.2006, Lumir Vanek
+=======================
+1) Reworked main GUI to KMDI IDEAl mode
+
+17.07.2006, Lumir Vanek
+=======================
+1) Implemented wizard: Enable/disable triggers 
+
+14.07.2006, Lumir Vanek
+=======================
+1) Added "ORDER BY relname" to KPGTablesFolder::refresh to sort tables by name
+2) Modified ALTER TABLE DROP column/constraint - allow choose RESTRICT | CASCADE
+
+*********************************************************************
+*                                                                   *
+*                      1.3.8 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+29.05.2006, Lumir Vanek
+=======================
+1) Updated /admin directory to compile with KDE 3.5.2
+2) Removed libpqxx-2.5.5/gcc4 workaround, not needed for 2.6.6
+
+*********************************************************************
+*                                                                   *
+*                      1.3.7 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+11.03.2006, Lumir Vanek
+=======================
+1) Finished implementing argument name and mode in create function wizard
+2) Implemented Execution time info in SQL query/result windows.
+
+11.03.2006,, Lumir Vanek
+=======================
+1) Implemented font configuration to SQL editor settings.
+2) Implemented config. option: "Use $$ for functions body definition"
+3) Started implementing argument name and mode in create function wizard
+
+11.12.2005, Lumir Vanek
+=======================
+1) Workaroud for compatibility issue libpqxx-2.5.5/gcc4 - [libpqxx-general] undefined reference to pqxx::connection::do_startconnect()' with libpqxx-2.5.5
+
+07.04.2005, Lumir Vanek
+=======================
+1) Created new subfolder/target DataTable, for DataTableDialog
+
+*********************************************************************
+*                                                                   *
+*                      1.3.5 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+13.02.2005, Lumir Vanek
+=======================
+1) Removed tablespace info from schema, because it was removed from system catalog between PostgreSQL 8-b4 and final
+2) Implemented loading schemas on demand, see at new page in configuration dialog
+3) Used quoted names in SQL, to solve problem with objects that contains dash in name
+
+*********************************************************************
+*                                                                   *
+*                      1.3.2 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+30.01.2005, Lumir Vanek
+=======================
+1) Finished implementing privileges tab's & wizards
+2) Updated documentation
+3) Applyied patch from  Gustavo Pichorim Boiko/Conectiva Labs - to detect where libpqxx was installed and use the 
+correct CFLAGS and LIBS from it.
+
+*********************************************************************
+*                                                                   *
+*                      1.3.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+23.12.2004, Lumir Vanek
+=======================
+1) Improved query/result windows - large results fetched by smaller rows anmount. See "Querying database" chapter in manual.
+2) Updated documentation
+
+19.12.2004, Lumir Vanek
+=======================
+1) Introduced statistics informations to server, database, table, index and sequence property pages.
+2) Improved query/result windows - now SQL queries runs inside own thread and don't block rest of application
+
+09.12.2004, Lumir Vanek
+=======================
+1) Updated /admin with latest kde-common/admin contents
+
+
+*********************************************************************
+*                                                                   *
+*                      1.2.8 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+05.12.2004, Lumir Vanek
+=======================
+1) Implemented dump database wizard
+2) Implemented restore database wizard
+3) Updated documentation
+
+*********************************************************************
+*                                                                   *
+*                      1.2.7 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+30.11.2004, Lumir Vanek
+=======================
+1) Implemented create composite type wizard
+2) Updated documentation
+
+26.11.2004, Lumir Vanek
+=======================
+1) Implemented create base type wizard
+
+*********************************************************************
+*                                                                   *
+*                      1.2.6 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+21.11.2004, Lumir Vanek
+=======================
+1) Updated documentation
+2) Syntax highlighter speed-up (but still not satisfied)
+3) Replaced deprecated QList with QPtrList
+
+20.11.2004, Lumir Vanek
+=======================
+1) Implemented KPGCreateDomainConstraintWizard
+2) Finished all about domains
+
+17.11.2004, Lumir Vanek
+=======================
+1) Implemented KPGCreateDomainWizard
+
+15.11.2004, Lumir Vanek
+=======================
+1) Implemented KPGPropertyPage - common property page suitable for all folder objects
+2) KPGDomainConstraintsFolder - Tree item that hold domains constraints
+3) Removed all KPGxxxFolrerPropertyPage and use KPGPropertyPage instead of it
+4) Smarter use #include libpgxx to speed-up compile time
+5) Added KPGDomainConstrPropPage
+
+*********************************************************************
+*                                                                   *
+*                      1.2.5 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+13.11.2004, Lumir Vanek
+=======================
+1) New database wizard - set owner
+2) Added index definition to its property page
+3  Updated list of SQL keywords in syntax highlighter
+4) Updated documentation
+
+12.11.2004, Lumir Vanek
+=======================
+1) New schema wizard - set owner
+
+11.11.2004, Lumir Vanek
+=======================
+1) Implemented all table Wizards (Analyse, Vacuum, Reindex, Copy from/to ...)
+2) New index wizards - set owner, set tablespace
+
+*********************************************************************
+*                                                                   *
+*                      1.2.4 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+23.10.2004, Lumir Vanek
+=======================
+1) Implemented modify sequence wizard
+2) Updated documentation
+
+21.10.2004, Lumir Vanek
+=======================
+1) Implemented create trigger wizard
+
+20.10.2004, Lumir Vanek
+=======================
+1) Implemented create rule wizard
+
+
+*********************************************************************
+*                                                                   *
+*                      1.2.3 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+17.10.2004, Lumir Vanek
+=======================
+1) Implemented modify column wizards
+2) Updated documentation
+
+16.10.2004, Lumir Vanek
+=======================
+1) Implemented create column(s) wizard 
+
+*********************************************************************
+*                                                                   *
+*                      1.2.2 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+15.10.2004, Lumir Vanek
+=======================
+1) Updated documentation
+
+07.10.2004, Lumir Vanek
+=======================
+1) Finished create constraint wizard
+2) Finished create index wizard
+
+04.10.2004, Lumir Vanek
+=======================
+1) Finished tablespaces support
+
+02.10.2004, Lumir Vanek
+=======================
+1) Implemented tablespaces wizard 
+
+29.09.2004, Lumir Vanek
+=======================
+1) Support for SQL's that return notify messages, instead of results
+2) Removed attisset from query on pg_attribute - it's deprecated on PostgreSQL 8
+
+28.09.2004, Lumir Vanek
+=======================
+1) KPGServer::refreshDatabaseList - compatibility workaround for PostgreSQL 8.0.0beta2
+2) KPGSequencesFolder::refresh - compatibility workaround for PostgreSQL 7.3.x or older
+
+*********************************************************************
+*                                                                   *
+*                      1.2.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+26.09.2004, Lumir Vanek
+=======================
+1) Added user rights page to create database and schema wizard 
+2) Increased version to 1.2.0
+3) Updated documentation
+
+22.09.2004, Lumir Vanek
+=======================
+1) Implemented create function wizard 
+2) Implemented create sequence wizard 
+
+19.09.2004, Lumir Vanek
+=======================
+1) Implemented create language wizard
+
+*********************************************************************
+*                                                                   *
+*                      1.1.0 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+12.09.2004, Lumir Vanek
+=======================
+1) Updated documentation 
+
+02.09.2004, Lumir Vanek
+=======================
+1) Implemented create/modify schema wizard
+2) Implemented rename wizard
+3) Increased version to 1.1.0
+
+31.08.2004, Lumir Vanek
+=======================
+1) Implemented create/modify group wizard
+
+25.08.2004, Lumir Vanek
+=======================
+1) Implemented create/modify user wizard
+
+22-08.2004, Lumir Vanek
+=======================
+1) Implemented create/modify view wizard
+
+*********************************************************************
+*                                                                   *
+*                      0.9.9 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+07.08.2004, Lumir Vanek
+=======================
+1) Updated documentation
+
+08.06. - 20-07.2004, Lumir Vanek
+=================================
+1) Implementing create table wizard
+
+08.06.2004, Lumir Vanek
+=======================
+1) Added "Wizards" subdirectory and target
+
+07.06.2004, Lumir Vanek
+=======================
+1) Fixed most of warnings
+
+01.06.2004, Lumir Vanek
+=======================
+1) Removed const from QString KPGTreeItem::path()
+
+*********************************************************************
+*                                                                   *
+*                      0.9.8 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+22-29.05.2004, Lumir Vanek
+=======================
+1) Written documentation 
+
+*********************************************************************
+*                                                                   *
+*                      0.9.7 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+15.05.2004, Lumir Vanek
+=======================
+1) Handled encoding conversions between libpqxx to_cstr and Qt QString. Introduced KPGDatabase::encoderName();
+2) Fixed: crash when disconnect server
+
+09.05.2004, Lumir Vanek
+=======================
+1) Edit actions, enabling/disabling
+
+07.05.2004, Lumir Vanek
+=======================
+1) Finished correcting items sort order in tree view
+
+06.05.2004, Lumir Vanek
+=======================
+1) Started correcting items sort order in tree view
+
+27.04.2004, Lumir Vanek
+=======================
+1) Improved syntax highlighter
+
+20.04.2004, Lumir Vanek
+=======================
+1) Finished implementing path bar
+
+11.04.2004, Lumir Vanek
+=======================
+1) Finished implementing OID links 
+2) Started implementing path bar
+
+24.03.2004, Lumir Vanek
+=======================
+1) Started implementing OID links 
+
+24.03.2004, Lumir Vanek
+=======================
+1) Implemented Search functionality
+
+*********************************************************************
+*                                                                   *
+*                      0.9.6 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+
+17.03.2004, Lumir Vanek
+=======================
+1) SQL query/result window rework 
+
+16.03.2004, Lumir Vanek
+=======================
+1) Improved syntax highlighter 
+2) Minor changes according to libpqxx 2.2.1
+
+14.03.2004, Lumir Vanek
+=======================
+1) GUI improvements 
+2) Cleanup code
+
+13.03.2004, Lumir Vanek
+=======================
+1) Implemented data types 
+2) Implemented languages
+3) Implemented casts
+4) Implemented conversions
+5) Implemented folowing classes: 
+
+- KPGOperatorClass
+- KPGOperatorClassesFolder
+
+- KPGOperatorClassPropPage
+- KPGOperatorClassesFolderPropPage
+
+6) Implemented operator classes
+
+
+10.03.2004, Lumir Vanek
+=======================
+1) Starded implementing data types 
+
+09.03.2004, Lumir Vanek
+=======================
+1) Implemented domains 
+
+08.03.2004, Lumir Vanek
+=======================
+1) Started implementing following classes:
+
+ - KPGDomain, KPGType, KPGLanguage, KPGConversion, KPGCast
+ - KPGDomainsFolder, KPGTypesFolder, KPGLanguagesFolder, KPGConversionsFolder, KPGCastsFolder 
+
+ - KPGDomainPropPage, KPGTypePropPage, KPGLanguagePropPage, KPGConversionPropPage, KPGCastPropPage
+ - KPGDomainsFolderPropPage, KPGTypesFolderPropPage, KPGLanguagesFolderPropPage, KPGConversionsFolderPropPage, KPGCastsFolderPropPage
+
+07.03.2004, Lumir Vanek
+=======================
+1) Icons for type, language, domain, schema and cast
+
+06.03.2004, Lumir Vanek
+=======================
+1) Finished aggregates
+2) Implemented KPGSchema, KPGSchemaPropPage
+
+04.03.2004, Lumir Vanek
+=======================
+1) Implemented folowing classes: 
+
+- KPGAggregate
+- KPGAggregatesFolder
+
+- KPGAggregatePropPage
+- KPGAggregatesFolderPropPage
+
+03.02.2004, Lumir Vanek
+=======================
+1) Painted icons for various columns types
+
+29.2.2004, Lumir Vanek
+======================
+1) Started impementing popup menus
+2) Implemented refresh for items 
+
+26.2.2004, Lumir Vanek
+======================
+1) Implemented folowing classes: 
+
+- KPGOperator
+- KPGUser
+- KPGGroup
+- KPGOperatorsFolder
+- KPGUserFolder
+- KPGGroupsFolder
+
+- KPGOperatorPropPage
+- KPGUserPropPage
+- KPGGroupPropPage
+- KPGOperatorsFolderPropPage
+- KPGUsersFolderPropPage
+- KPGGroupsFolderPropPage
+
+22.2.2004, Lumir Vanek
+======================
+1) Implemented KPGView, KPGViewsFolder, KPGSequence, KPGSequencesFolder
+
+21.2.2004, Lumir Vanek
+======================
+1) Finished rules and triggers
+2) Started implementing functions. Added classes KPGFunction, KPGFunctionPropPage
+
+19.2.2004, Lumir Vanek
+======================
+1) Implemented folowing classes: 
+
+- KPGRule
+- KPGTrigger
+- KPGRulesFolder
+- KPGTriggersFolder
+
+2) Implemented folowing property pages:
+
+- KPGRulePropPage
+- KPGTriggerPropPage
+- KPGRulesFolderPropPage
+- KPGTriggersFolderPropPage
+
+14.2.2004, Lumir Vanek
+======================
+1) Implemented folowing classes:
+
+- KPGTableConstraintsFolder
+- KPGTableIndexesFolder
+
+- KPGPrimaryKeyConstr
+- KPGForeignKeyConstr
+- KPGUniqueConstr
+- KPGCheckConstr
+
+- KPGPrimaryKey
+- KPGIndex
+
+2) Implemented folowing property pages:
+
+- KPGTableConstraintsFolderPropPage
+- KPGTableIndexesFolderPropPage
+
+- KPGPrimaryKeyConstrPropPage
+- KPGForeignKeyConstrPropPage
+- KPGUniqueConstrPropPage
+- KPGCheckConstrPropPage
+
+- KPGPrimaryKeyPropPage
+- KPGIndexPropPage
+
+3) Finished table constraints and indexes properties
+
+7.2.2004, Lumir Vanek
+======================
+1) Implemented KPGTableColumnsFolder, KPGTableColumn and its property pages
+
+1.2.2004, Lumir Vanek
+======================
+1) Continued implementing KPGDatabase properties
+2) Added property pages for folders
+
+31.1.2004, Lumir Vanek
+======================
+1) Finished implementing bookmarks
+2) Implemented KPGServerPropPage
+
+30.1.2004, Lumir Vanek
+======================
+1) Continued implementing bookmarks
+
+26.1.2004, Lumir Vanek
+======================
+1) Project converted to KDevelop3
+
+25.1.2004, Lumir Vanek
+======================
+1) Implemented KPGServerRegisterInfo
+2) Implemented KPGBookmarkHandler, KPGBookmarksButton
+
+20.01.2004, Lumir Vanek
+=======================
+1) Some fixes to compile in KDE 3.2 RC1
+
+19.01.2004, Lumir Vanek
+=======================
+1) Continued implementing KPGSyntaxHighlighter
+2) Moved DB objects to own subdirectory
+
+18.01.2004, Lumir Vanek
+=======================
+1) Started implementing KPGSyntaxHighlighter
+2) Implemented configuration framework
+
+xx.01.2004, Lumir Vanek
+=======================
+1) Switched to libpqxx library
+2) Reworked GUI
+
+*********************************************************************
+*                                                                   *
+*  Started implementing major changes after long time of inactivity *
+*                                                                   *
+*********************************************************************
+
+
+Dec 2, 2002, Lumir Vanek
+========================
+1) Fixed g++ 3.2 compile problem, removed the default arguments from pgdealer.cpp,
+  PGDealer::PGDealer
+2) moved apps icons to /pics directory to solve RPM creation problem
+3) testing on SuSE 8.1
+
+  
+Oct 10th, 2002, Lumir Vanek
+===========================
+1) updated /admin subdirectory with new contents, generated by KDevelop 2.1
+
+*********************************************************************
+*                                                                   *
+*                      0.9.5 Beta released                          *
+*                                                                   *
+*********************************************************************
+
+August 16, 2002, Dominik Sacher
+===============================
+- wrote new README
+- added lvanek to AUTHORS
+- testing on redhat7.3
+- official upload & release of version 0.95
+
+
+June 8th, 2002, Lumir Vanek
+===========================
+- painted icons for database and table
+- removed Times font from tree and output grids
+- implemented Saving SQL document
+
+
+June 7th, 2002, Lumir Vanek
+===========================
+- imported project to CVS on SourceForge
+- changed menu and toolbars from manual creation to XML GUI approach
+- removed old toolbar icons, use standart KDE icons on toolbar
+- painted application icons
+- .SPEC file for RPM creation
+
+
+June 6th, 2002, Lumir Vanek : Version 0.95
+===========================
+ported to KDE 3 - updated /admin subdirectory and add some #include statements
+
+
+September 16th, 2001, Dominik Sacher : Version 0.94
+====================================
+February 12th, 2002:
+- added some lines in ReadMe.1st
+- cleaned up the configure-prozess
+
+
+November 7th, 2001, Dominik Sacher:
+===================================
+- changed internal storage of queryresults from QStringList*[1000] to QList<QStringList>* ,
+   seems far more intelligent but seems to cost performance :-(
+
+
+October 31th, 2001, Dominik Sacher: Version 0.93
+===================================
+- minor bugfixes, 1st release on sourceforge
+
+
+October 22th, 2001, Dominik Sacher:
+===================
+- created a new menustructure
+- asking user for fileseparator when exporting a query-result
+
+
+October 18th, 2001, Dominik Sacher:
+===================================
+- added possibility to export query-results into a file
+
+
+September 16th, 2001, Dominik Sacher: Version 0.92
+====================================
+- added a sql-query-history tab
+- if no entries in the connectdialog are made, kPoGre assumes 
+  default-values to connect with/to and shows them as tooltips
+  (localhost, 5432, template1, postgres, <nopassword> )
+- added several commands to the toolbar
+
+
+September 11th, 2001, Dominik Sacher: Version 0.91
+====================================
+- major bugfixes in dialog-handling
+- added 10 outputtabs for the queryresults
+
+
+before September 11th, Dominik Sacher:
+=====================================
+-bugs, features, ...

Added: kde-extras/kpogre/branches/upstream/current/Doxyfile
===================================================================
--- kde-extras/kpogre/branches/upstream/current/Doxyfile	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/Doxyfile	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,283 @@
+# Doxyfile 1.5.1-KDevelop
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = kpogre
+PROJECT_NUMBER         = 1.6.2
+OUTPUT_DIRECTORY       = 
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = YES
+STRIP_FROM_PATH        = /home/lvanek/
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = NO
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = /home/lvanek/Projects/Own/kpogre
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.d \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.idl \
+                         *.odl \
+                         *.cs \
+                         *.php \
+                         *.php3 \
+                         *.inc \
+                         *.m \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.C \
+                         *.CC \
+                         *.C++ \
+                         *.II \
+                         *.I++ \
+                         *.H \
+                         *.HH \
+                         *.H++ \
+                         *.CS \
+                         *.PHP \
+                         *.PHP3 \
+                         *.M \
+                         *.MM \
+                         *.PY \
+                         *.C \
+                         *.H \
+                         *.tlh \
+                         *.diff \
+                         *.patch \
+                         *.moc \
+                         *.xpm \
+                         *.dox
+RECURSIVE              = yes
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = NO
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = NO
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = YES
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = yes
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = kpogre.tag
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+CALLER_GRAPH           = NO
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 1000
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO

Added: kde-extras/kpogre/branches/upstream/current/INSTALL
===================================================================
--- kde-extras/kpogre/branches/upstream/current/INSTALL	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/INSTALL	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,167 @@
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, a file
+`config.cache' that saves the results of its tests to speed up
+reconfiguring, and a file `config.log' containing compiler output
+(useful mainly for debugging `configure').
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If at some point `config.cache'
+contains results you don't want to keep, you may remove or edit it.
+
+   The file `configure.in' is used to create `configure' by a program
+called `autoconf'.  You only need `configure.in' if you want to change
+it or regenerate `configure' using a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes a while.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Type `make install' to install the programs and any data files and
+     documentation.
+
+  4. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  You can give `configure'
+initial values for variables by setting them in the environment.  Using
+a Bourne-compatible shell, you can do that on the command line like
+this:
+     CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
+
+Or on systems that have the `env' program, you can do it like this:
+     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not supports the `VPATH'
+variable, you have to compile the package for one architecture at a time
+in the source code directory.  After you have installed the package for
+one architecture, use `make distclean' before reconfiguring for another
+architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' can not figure out
+automatically, but needs to determine by the type of host the package
+will run on.  Usually `configure' can figure that out, but if it prints
+a message saying it can not guess the host type, give it the
+`--host=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name with three fields:
+     CPU-COMPANY-SYSTEM
+
+See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the host type.
+
+   If you are building compiler tools for cross-compiling, you can also
+use the `--target=TYPE' option to select the type of system they will
+produce code for and the `--build=TYPE' option to select the type of
+system on which you are compiling the package.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Operation Controls
+==================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--cache-file=FILE'
+     Use and save the results of the tests in FILE instead of
+     `./config.cache'.  Set FILE to `/dev/null' to disable caching, for
+     debugging `configure'.
+
+`--help'
+     Print a summary of the options to `configure', and exit.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`--version'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`configure' also accepts some other, not widely useful, options.
+

Added: kde-extras/kpogre/branches/upstream/current/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,31 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+SUBDIRS = kpogre po doc admin 
+
+EXTRA_DIST = admin AUTHORS COPYING ChangeLog INSTALL README TODO kpogre.lsm 
+
+####### kdevelop will overwrite this part!!! (end)############
+# not a GNU package. You can remove this line, if 
+# have all needed files, that a GNU package needs
+AUTOMAKE_OPTIONS = foreign 
+
+$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
+
+$(top_srcdir)/subdirs:
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
+
+$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
+	@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
+
+MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files 
+
+package-messages:
+	$(MAKE) -f admin/Makefile.common package-messages
+	$(MAKE) -C po merge
+
+dist-hook:
+	cd $(top_distdir) && perl admin/am_edit -padmin
+	cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
+
+	
\ No newline at end of file

Added: kde-extras/kpogre/branches/upstream/current/Makefile.dist
===================================================================
--- kde-extras/kpogre/branches/upstream/current/Makefile.dist	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/Makefile.dist	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+all: 
+	@echo "This Makefile is only for the CVS repository"
+	@echo "This will be deleted before making the distribution"
+	@echo ""
+	@if test ! -d admin; then \
+	   echo "Please recheckout this module!" ;\
+	   echo "for cvs: use checkout once and after that update again" ;\
+	   echo "for cvsup: checkout kde-common from cvsup and" ;\
+	   echo "   link kde-common/admin to ./admin" ;\
+	   exit 1 ;\
+	fi
+	$(MAKE) -f admin/Makefile.common cvs
+
+.SILENT:

Added: kde-extras/kpogre/branches/upstream/current/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,899 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = .
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL TODO
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno configure.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- 	html-recursive info-recursive install-data-recursive \
+#>- 	install-exec-recursive install-info-recursive \
+#>- 	install-recursive installcheck-recursive installdirs-recursive \
+#>- 	pdf-recursive ps-recursive uninstall-info-recursive \
+#>- 	uninstall-recursive
+#>+ 6
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive nmcheck-recursive bcheck-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  { test ! -d $(distdir) \
+    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+SUBDIRS = kpogre po doc admin 
+EXTRA_DIST = admin AUTHORS COPYING ChangeLog INSTALL README TODO kpogre.lsm 
+
+####### kdevelop will overwrite this part!!! (end)############
+# not a GNU package. You can remove this line, if 
+# have all needed files, that a GNU package needs
+AUTOMAKE_OPTIONS = foreign 
+MAINTAINERCLEANFILES = subdirs configure.in acinclude.m4 configure.files 
+#>- all: config.h
+#>+ 1
+all: docs-am  config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+am--refresh:
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
+#>- 	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --foreign  Makefile
+#>+ 14
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
+ (  \
+	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
+	 ) || exit 1; echo ' cd $(top_srcdir) && perl admin/am_edit -padmin '; cd $(top_srcdir) && perl admin/am_edit -padmin && exit 0;  \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+#>- 	cd $(srcdir) && $(AUTOCONF)
+#>+ 2
+	cd $(srcdir) && rm -f configure
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+
+config.h: stamp-h1
+	@if test ! -f $@; then \
+	  rm -f stamp-h1; \
+	  $(MAKE) stamp-h1; \
+	else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) 
+	cd $(top_srcdir) && $(AUTOHEADER)
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	mkdir $(distdir)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+	$(MAKE) $(AM_MAKEFLAGS) \
+	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
+	  dist-hook
+	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r $(distdir)
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+	$(am__remove_distdir)
+
+dist-tarZ: distdir
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__remove_distdir)
+
+dist-shar: distdir
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__remove_distdir)
+
+dist dist-all: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir); chmod a+w $(distdir)
+	mkdir $(distdir)/_build
+	mkdir $(distdir)/_inst
+	chmod a-w $(distdir)
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && cd $(distdir)/_build \
+	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	$(am__remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+distuninstallcheck:
+	@cd $(distuninstallcheck_dir) \
+	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean  clean-recursive
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+	check-am clean clean-generic clean-libtool clean-recursive \
+	ctags ctags-recursive dist dist-all dist-bzip2 dist-gzip \
+	dist-hook dist-shar dist-tarZ dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-recursive distclean-tags distcleancheck distdir \
+	distuninstallcheck dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	maintainer-clean-recursive mostlyclean mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am uninstall-info-am
+
+
+$(top_srcdir)/configure.in: configure.in.in $(top_srcdir)/subdirs
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common configure.in ;
+
+$(top_srcdir)/subdirs:
+	cd $(top_srcdir) && $(MAKE) -f admin/Makefile.common subdirs
+
+$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in
+	@cd $(top_srcdir) && cat admin/acinclude.m4.in admin/libtool.m4.in > acinclude.m4
+
+package-messages:
+	$(MAKE) -f admin/Makefile.common package-messages
+	$(MAKE) -C po merge
+
+dist-hook:
+	cd $(top_distdir) && perl admin/am_edit -padmin
+	cd $(top_distdir) && $(MAKE) -f admin/Makefile.common subdirs
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+
+#>+ 2
+KDE_DIST=kpogre.spec subdirs Makefile.in configure.files kpogre_rpm config.h.in kpogre64_rpm kpogre.kdevelop.pcs kpogre.kdevelop configure.in aclocal.m4 Doxyfile Makefile.dist configure.in.in configure Makefile.am acinclude.m4 
+
+#>+ 2
+docs-am:
+
+#>+ 7
+force-reedit:
+	 \
+	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
+	
+	cd $(top_srcdir) && perl admin/am_edit -padmin Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/README
===================================================================
--- kde-extras/kpogre/branches/upstream/current/README	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/README	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+Thank you for downloading KPoGre !
+
+KPoGre comes with abolutely no warranty and is still in BETA-stadium.
+KPoGre is Open Source Software and developed under the GPL (see COPYING for details).
+
+====================================================================
+
+I have following lines in my .profile for SuSE 9.x/10.x:
+export KDEDIR=/opt/kde3
+export KDEDIRS=/opt/kde3
+export QTDIR=/usr/lib/qt3
+
+=====================================================================
+
+KPoGre depends on libpqxx-2.6.8 (or newer) library. Obtain it from:
+http://thaiopensource.org/development/libpqxx
+
+=====================================================================
+
+BUILD FROM tar.gz
+=================
+  
+./configure --with-extra-includes="/usr/include/pqxx -I /usr/include/pgsql" --with-extra-lib=/usr/lib 
+make
+make install
+
+* specify paths for libpqxx library and your Postgres-headers
+=======================================================================
+
+BUILD FROM CVS
+==============
+
+gmake -f Makefile.dist
+./configure  --with-extra-includes="/usr/include/pqxx -I /usr/include/pgsql" --with-extra-lib=/usr/lib
+make dist
+make
+make install
+
+* specify paths for libpqxx library and your Postgres-headers
+
+=======================================================================
+
+BUILD ON 64 BIT PLATFORM
+========================
+Add ./configure option: --enable-libsuffix=64
+Use --with-extra-lib=/usr/lib64
+
+Lumir Vanek
+lvanek at users.sourceforge.net
+http://www.valachnet.cz/lvanek

Added: kde-extras/kpogre/branches/upstream/current/TODO
===================================================================
--- kde-extras/kpogre/branches/upstream/current/TODO	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/TODO	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+Near future:
+============
+- Support schemas in code completion
+
+Long future:
+============
+pl/pgSQL debugger
+
+Refactoring:
+============
+- Move more work to KPoGreController from KPoGreView
+
+Known bugs/problems waited to fix:
+----------------------------------

Added: kde-extras/kpogre/branches/upstream/current/acinclude.m4
===================================================================
--- kde-extras/kpogre/branches/upstream/current/acinclude.m4	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/acinclude.m4	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,11865 @@
+##   -*- autoconf -*-
+
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 1997 Janos Farkas (chexum at shadow.banki.hu)
+dnl              (C) 1997,98,99 Stephan Kulow (coolo at kde.org)
+
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl    Boston, MA 02110-1301, USA.
+
+dnl IMPORTANT NOTE:
+dnl Please do not modify this file unless you expect your modifications to be
+dnl carried into every other module in the repository. 
+dnl
+dnl Single-module modifications are best placed in configure.in for kdelibs
+dnl and kdebase or configure.in.in if present.
+
+# KDE_PATH_X_DIRECT
+dnl Internal subroutine of AC_PATH_X.
+dnl Set ac_x_includes and/or ac_x_libraries.
+AC_DEFUN([KDE_PATH_X_DIRECT],
+[
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+if test "$ac_x_includes" = NO; then
+  # Guess where to find include files, by looking for this one X11 .h file.
+  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+  # First, try using that file with no special directory specified.
+AC_TRY_CPP([#include <$x_direct_test_include>],
+[# We can compile using X headers with no special include directory.
+ac_x_includes=],
+[# Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+  for ac_dir in               \
+    /usr/X11/include          \
+    /usr/X11R6/include        \
+    /usr/X11R5/include        \
+    /usr/X11R4/include        \
+                              \
+    /usr/include/X11          \
+    /usr/include/X11R6        \
+    /usr/include/X11R5        \
+    /usr/include/X11R4        \
+                              \
+    /usr/local/X11/include    \
+    /usr/local/X11R6/include  \
+    /usr/local/X11R5/include  \
+    /usr/local/X11R4/include  \
+                              \
+    /usr/local/include/X11    \
+    /usr/local/include/X11R6  \
+    /usr/local/include/X11R5  \
+    /usr/local/include/X11R4  \
+                              \
+    /usr/X386/include         \
+    /usr/x386/include         \
+    /usr/XFree86/include/X11  \
+                              \
+    /usr/include              \
+    /usr/local/include        \
+    /usr/unsupported/include  \
+    /usr/athena/include       \
+    /usr/local/x11r5/include  \
+    /usr/lpp/Xamples/include  \
+                              \
+    /usr/openwin/include      \
+    /usr/openwin/share/include \
+    ; \
+  do
+    if test -r "$ac_dir/$x_direct_test_include"; then
+      ac_x_includes=$ac_dir
+      break
+    fi
+  done])
+fi # $ac_x_includes = NO
+
+if test "$ac_x_libraries" = NO; then
+  # Check for the libraries.
+
+  test -z "$x_direct_test_library" && x_direct_test_library=Xt
+  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
+
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS="$LIBS"
+  LIBS="-l$x_direct_test_library $LIBS"
+AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)],
+[LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=],
+[LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
+    /usr/X11/lib${kdelibsuff}           \
+    /usr/X11R6/lib${kdelibsuff}         \
+    /usr/X11R5/lib${kdelibsuff}         \
+    /usr/X11R4/lib${kdelibsuff}         \
+                                        \
+    /usr/lib${kdelibsuff}/X11           \
+    /usr/lib${kdelibsuff}/X11R6         \
+    /usr/lib${kdelibsuff}/X11R5         \
+    /usr/lib${kdelibsuff}/X11R4         \
+                                        \
+    /usr/local/X11/lib${kdelibsuff}     \
+    /usr/local/X11R6/lib${kdelibsuff}   \
+    /usr/local/X11R5/lib${kdelibsuff}   \
+    /usr/local/X11R4/lib${kdelibsuff}   \
+                                        \
+    /usr/local/lib${kdelibsuff}/X11     \
+    /usr/local/lib${kdelibsuff}/X11R6   \
+    /usr/local/lib${kdelibsuff}/X11R5   \
+    /usr/local/lib${kdelibsuff}/X11R4   \
+                                        \
+    /usr/X386/lib${kdelibsuff}          \
+    /usr/x386/lib${kdelibsuff}          \
+    /usr/XFree86/lib${kdelibsuff}/X11   \
+                                        \
+    /usr/lib${kdelibsuff}               \
+    /usr/local/lib${kdelibsuff}         \
+    /usr/unsupported/lib${kdelibsuff}   \
+    /usr/athena/lib${kdelibsuff}        \
+    /usr/local/x11r5/lib${kdelibsuff}   \
+    /usr/lpp/Xamples/lib${kdelibsuff}   \
+    /lib/usr/lib${kdelibsuff}/X11       \
+                                        \
+    /usr/openwin/lib${kdelibsuff}       \
+    /usr/openwin/share/lib${kdelibsuff} \
+    ; \
+do
+dnl Don't even attempt the hair of trying to link an X program!
+  for ac_extension in a so sl; do
+    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done])
+fi # $ac_x_libraries = NO
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find a file (or one of more files in a list of dirs)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_FIND_FILE],
+[
+$3=NO
+for i in $2;
+do
+  for j in $1;
+  do
+    echo "configure: __oline__: $i/$j" >&AC_FD_CC
+    if test -r "$i/$j"; then
+      echo "taking that" >&AC_FD_CC
+      $3=$i
+      break 2
+    fi
+  done
+done
+])
+
+dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs,
+dnl	if-not-found, test-parameter, prepend-path)
+dnl
+dnl Look for program-name in list-of-dirs+$PATH.
+dnl If prepend-path is set, look in $PATH+list-of-dirs instead.
+dnl If found, $variable-name is set. If not, if-not-found is evaluated.
+dnl test-parameter: if set, the program is executed with this arg,
+dnl                 and only a successful exit code is required.
+AC_DEFUN([KDE_FIND_PATH],
+[
+   AC_MSG_CHECKING([for $1])
+   if test -n "$$2"; then
+        kde_cv_path="$$2";
+   else
+        kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
+
+        AC_CACHE_VAL(kde_cv_path_$kde_cache,
+        [
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z "$6"; then  dnl Append dirs in PATH (default)
+	  dirs="$3 $dirs"
+        else  dnl Prepend dirs in PATH (if 6th arg is set)
+	  dirs="$dirs $3"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/$1"; then
+	    if test -n "$5"
+	    then
+              evalstr="$dir/$1 $5 2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/$1"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/$1"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+        ])
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      AC_MSG_RESULT(not found)
+      $4
+   else
+      AC_MSG_RESULT($kde_cv_path)
+      $2=$kde_cv_path
+
+   fi
+])
+
+AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
+[
+    AC_MSG_ERROR([No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+])
+])
+
+AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
+[
+    AC_MSG_WARN([No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+])
+])
+
+
+AC_DEFUN([KDE_CHECK_UIC_FLAG],
+[
+    AC_MSG_CHECKING([whether uic supports -$1 ])
+    kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
+    AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
+    [
+        cat >conftest.ui <<EOT
+        <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+        ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
+        if AC_TRY_EVAL(ac_uic_testrun); then
+            eval "kde_cv_prog_uic_$kde_cache=yes"
+        else
+            eval "kde_cv_prog_uic_$kde_cache=no"
+        fi
+        rm -f conftest*
+    ])
+
+    if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+        AC_MSG_RESULT([yes])
+        :
+        $3
+    else
+        AC_MSG_RESULT([no])
+        :
+        $4
+    fi
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find the meta object compiler and the ui compiler in the PATH,
+dnl in $QTDIR/bin, and some more usual places
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_MOC_UIC],
+[
+   AC_REQUIRE([KDE_CHECK_PERL])
+   qt_bindirs=""
+   for dir in $kde_qt_dirs; do
+      qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
+   done
+   qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
+   if test ! "$ac_qt_bindir" = "NO"; then
+      qt_bindirs="$ac_qt_bindir $qt_bindirs"
+   fi
+
+   KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
+   if test -z "$UIC_NOT_NEEDED"; then
+     KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
+     if test -z "$UIC_PATH" ; then
+       KDE_UIC_ERROR_MESSAGE
+       exit 1
+     else
+       UIC=$UIC_PATH
+
+       if test $kde_qtver = 3; then
+         KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
+         KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
+
+         if test x$ac_uic_supports_libpath = xyes; then
+             UIC="$UIC -L \$(kde_widgetdir)"
+         fi
+         if test x$ac_uic_supports_nounload = xyes; then
+             UIC="$UIC -nounload"
+         fi
+       fi
+     fi
+   else
+     UIC="echo uic not available: "
+   fi
+
+   AC_SUBST(MOC)
+   AC_SUBST(UIC)
+
+   UIC_TR="i18n"
+   if test $kde_qtver = 3; then
+     UIC_TR="tr2i18n"
+   fi
+
+   AC_SUBST(UIC_TR)
+])
+
+AC_DEFUN([KDE_1_CHECK_PATHS],
+[
+  KDE_1_CHECK_PATH_HEADERS
+
+  KDE_TEST_RPATH=
+
+  if test -n "$USE_RPATH"; then
+
+     if test -n "$kde_libraries"; then
+       KDE_TEST_RPATH="-R $kde_libraries"
+     fi
+
+     if test -n "$qt_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+     fi
+
+     if test -n "$x_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+     fi
+
+     KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+  fi
+
+AC_MSG_CHECKING([for KDE libraries installed])
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_ERROR([your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log.])
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+  kde_result=done
+else
+  kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+KDE_SET_PATHS($kde_result)
+
+])
+
+AC_DEFUN([KDE_SET_PATHS],
+[
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=$1"
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_PATHS],
+[
+if test "$1" = "default"; then
+
+  if test -z "$kde_htmldir"; then
+    kde_htmldir='\${datadir}/doc/HTML'
+  fi
+  if test -z "$kde_appsdir"; then
+    kde_appsdir='\${datadir}/applnk'
+  fi
+  if test -z "$kde_icondir"; then
+    kde_icondir='\${datadir}/icons'
+  fi
+  if test -z "$kde_sounddir"; then
+    kde_sounddir='\${datadir}/sounds'
+  fi
+  if test -z "$kde_datadir"; then
+    kde_datadir='\${datadir}/apps'
+  fi
+  if test -z "$kde_locale"; then
+    kde_locale='\${datadir}/locale'
+  fi
+  if test -z "$kde_cgidir"; then
+    kde_cgidir='\${exec_prefix}/cgi-bin'
+  fi
+  if test -z "$kde_confdir"; then
+    kde_confdir='\${datadir}/config'
+  fi
+  if test -z "$kde_kcfgdir"; then
+    kde_kcfgdir='\${datadir}/config.kcfg'
+  fi
+  if test -z "$kde_mimedir"; then
+    kde_mimedir='\${datadir}/mimelnk'
+  fi
+  if test -z "$kde_toolbardir"; then
+    kde_toolbardir='\${datadir}/toolbar'
+  fi
+  if test -z "$kde_wallpaperdir"; then
+    kde_wallpaperdir='\${datadir}/wallpapers'
+  fi
+  if test -z "$kde_templatesdir"; then
+    kde_templatesdir='\${datadir}/templates'
+  fi
+  if test -z "$kde_bindir"; then
+    kde_bindir='\${exec_prefix}/bin'
+  fi
+  if test -z "$kde_servicesdir"; then
+    kde_servicesdir='\${datadir}/services'
+  fi
+  if test -z "$kde_servicetypesdir"; then
+    kde_servicetypesdir='\${datadir}/servicetypes'
+  fi
+  if test -z "$kde_moduledir"; then
+    if test "$kde_qtver" = "2"; then
+      kde_moduledir='\${libdir}/kde2'
+    else
+      kde_moduledir='\${libdir}/kde3'
+    fi
+  fi
+  if test -z "$kde_styledir"; then
+    kde_styledir='\${libdir}/kde3/plugins/styles'
+  fi
+  if test -z "$kde_widgetdir"; then
+    kde_widgetdir='\${libdir}/kde3/plugins/designer'
+  fi
+  if test -z "$xdg_appsdir"; then
+    xdg_appsdir='\${datadir}/applications/kde'
+  fi
+  if test -z "$xdg_menudir"; then
+    xdg_menudir='\${sysconfdir}/xdg/menus'
+  fi
+  if test -z "$xdg_directorydir"; then
+    xdg_directorydir='\${datadir}/desktop-directories'
+  fi
+
+  KDE_SET_PATHS(defaults)
+
+else
+
+  if test $kde_qtver = 1; then
+     AC_MSG_RESULT([compiling])
+     KDE_1_CHECK_PATHS
+  else
+     AC_MSG_ERROR([path checking not yet supported for KDE 2])
+  fi
+
+fi
+])
+
+AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
+[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+   test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+   test -z "$kde_datadir" || test -z "$kde_locale"  ||
+   test -z "$kde_cgidir"  || test -z "$kde_confdir" ||
+   test -z "$kde_kcfgdir" ||
+   test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+   test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+   test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+   test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+   test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+   test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+   test "x$kde_have_all_paths" != "xyes"; then
+     kde_have_all_paths=no
+  fi
+])
+
+AC_DEFUN([KDE_MISSING_PROG_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed KDE correctly.
+])
+])
+
+AC_DEFUN([KDE_MISSING_ARTS_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+])
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_BINDIRS],
+[
+    kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+    test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+    if test -n "$KDEDIRS"; then
+       kde_save_IFS=$IFS
+       IFS=:
+       for dir in $KDEDIRS; do
+            kde_default_bindirs="$dir/bin $kde_default_bindirs "
+       done
+       IFS=$kde_save_IFS
+    fi
+])
+
+AC_DEFUN([KDE_SUBST_PROGRAMS],
+[
+    AC_ARG_WITH(arts,
+        AC_HELP_STRING([--without-arts],[build without aRts [default=no]]),
+        [build_arts=$withval],
+        [build_arts=yes]
+    )
+    AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
+    if test "$build_arts" = "no"; then
+        AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts])
+    fi
+
+        KDE_SET_DEFAULT_BINDIRS
+        kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
+        KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
+        KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
+        if test "$build_arts" '!=' "no"; then
+          KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
+          KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
+        fi
+        KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
+
+        kde32ornewer=1
+        kde33ornewer=1
+        if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
+            kde32ornewer=
+            kde33ornewer=
+        else
+            if test "$kde_qtver" = "3"; then
+              if test "$kde_qtsubver" -le 1; then
+                kde32ornewer=
+              fi
+              if test "$kde_qtsubver" -le 2; then
+                kde33ornewer=
+              fi
+              if test "$KDECONFIG" != "compiled"; then
+                if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
+                  kde33ornewer=
+                fi
+              fi
+            fi
+        fi
+
+        if test -n "$kde32ornewer"; then
+            KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
+            KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
+        fi
+        if test -n "$kde33ornewer"; then
+            KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)])
+            AC_SUBST(MAKEKDEWIDGETS)
+        fi
+        KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""])
+
+        if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
+ 	    kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
+            test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
+            AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
+	    if test "$KDE_XSL_STYLESHEET" = "NO"; then
+		KDE_XSL_STYLESHEET=""
+	    else
+                KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
+	    fi
+        fi
+
+        DCOP_DEPENDENCIES='$(DCOPIDL)'
+        if test -n "$kde32ornewer"; then
+            KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
+            DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
+            AC_SUBST(KCONFIG_COMPILER)
+            AC_SUBST(KCFG_DEPENDENCIES)
+            AC_SUBST(DCOPIDLNG)
+        fi
+        AC_SUBST(DCOPIDL)
+        AC_SUBST(DCOPIDL2CPP)
+        AC_SUBST(DCOP_DEPENDENCIES)
+        AC_SUBST(MCOPIDL)
+        AC_SUBST(ARTSCCONFIG)
+	AC_SUBST(MEINPROC)
+ 	AC_SUBST(KDE_XSL_STYLESHEET)
+	AC_SUBST(XMLLINT)
+])dnl
+
+AC_DEFUN([AC_CREATE_KFSSTND],
+[
+AC_REQUIRE([AC_CHECK_RPATH])
+
+AC_MSG_CHECKING([for KDE paths])
+kde_result=""
+kde_cached_paths=yes
+AC_CACHE_VAL(kde_cv_all_paths,
+[
+  KDE_SET_DEFAULT_PATHS($1)
+  kde_cached_paths=no
+])
+eval "$kde_cv_all_paths"
+KDE_CHECK_PATHS_FOR_COMPLETENESS
+if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
+  # wrong values were cached, may be, we can set better ones
+  kde_result=
+  kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
+  kde_datadir= kde_locale=  kde_cgidir=  kde_confdir= kde_kcfgdir=
+  kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
+  kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
+  kde_have_all_paths=
+  kde_styledir=
+  kde_widgetdir=
+  xdg_appsdir = xdg_menudir= xdg_directorydir= 
+  KDE_SET_DEFAULT_PATHS($1)
+  eval "$kde_cv_all_paths"
+  KDE_CHECK_PATHS_FOR_COMPLETENESS
+  kde_result="$kde_result (cache overridden)"
+fi
+if test "$kde_have_all_paths" = "no"; then
+  AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+])
+else
+  rm -f conftest*
+  AC_MSG_RESULT($kde_result)
+fi
+
+bindir=$kde_bindir
+
+KDE_SUBST_PROGRAMS
+
+])
+
+AC_DEFUN([AC_SUBST_KFSSTND],
+[
+AC_SUBST(kde_htmldir)
+AC_SUBST(kde_appsdir)
+AC_SUBST(kde_icondir)
+AC_SUBST(kde_sounddir)
+AC_SUBST(kde_datadir)
+AC_SUBST(kde_locale)
+AC_SUBST(kde_confdir)
+AC_SUBST(kde_kcfgdir)
+AC_SUBST(kde_mimedir)
+AC_SUBST(kde_wallpaperdir)
+AC_SUBST(kde_bindir)
+dnl X Desktop Group standards
+AC_SUBST(xdg_appsdir)
+AC_SUBST(xdg_menudir)
+AC_SUBST(xdg_directorydir)
+dnl for KDE 2
+AC_SUBST(kde_templatesdir)
+AC_SUBST(kde_servicesdir)
+AC_SUBST(kde_servicetypesdir)
+AC_SUBST(kde_moduledir)
+AC_SUBST(kdeinitdir, '$(kde_moduledir)')
+AC_SUBST(kde_styledir)
+AC_SUBST(kde_widgetdir)
+if test "$kde_qtver" = 1; then
+  kde_minidir="$kde_icondir/mini"
+else
+# for KDE 1 - this breaks KDE2 apps using minidir, but
+# that's the plan ;-/
+  kde_minidir="/dev/null"
+fi
+dnl AC_SUBST(kde_minidir)
+dnl AC_SUBST(kde_cgidir)
+dnl AC_SUBST(kde_toolbardir)
+])
+
+AC_DEFUN([KDE_MISC_TESTS],
+[
+   dnl Checks for libraries.
+   AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD 
+   AC_SUBST(LIBUTIL)
+   AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
+   AC_SUBST(LIBCOMPAT)
+   kde_have_crypt=
+   AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
+      AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
+        AC_MSG_WARN([you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support])
+	kde_have_crypt=no
+      ]))
+   AC_SUBST(LIBCRYPT)
+   if test $kde_have_crypt = yes; then
+      AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
+   fi
+   AC_CHECK_SOCKLEN_T
+   AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
+   if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+      AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+        [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+   fi
+   AC_CHECK_FUNC(inet_ntoa)
+   if test $ac_cv_func_inet_ntoa = no; then
+     AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
+   fi
+   AC_CHECK_FUNC(connect)
+   if test $ac_cv_func_connect = no; then
+      AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
+        $X_EXTRA_LIBS)
+   fi
+
+   AC_CHECK_FUNC(remove)
+   if test $ac_cv_func_remove = no; then
+      AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
+   fi
+
+   # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+   AC_CHECK_FUNC(shmat, ,
+     AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
+   
+   # more headers that need to be explicitly included on darwin
+   AC_CHECK_HEADERS(sys/types.h stdint.h)
+
+   # sys/bitypes.h is needed for uint32_t and friends on Tru64
+   AC_CHECK_HEADERS(sys/bitypes.h)
+
+   # darwin requires a poll emulation library
+   AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
+
+   # for some image handling on Mac OS X
+   AC_CHECK_HEADERS(Carbon/Carbon.h)
+
+   # CoreAudio framework
+   AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
+     AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
+     FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio"
+   ])
+
+   AC_CHECK_RES_INIT
+   AC_SUBST(LIB_POLL)
+   AC_SUBST(FRAMEWORK_COREAUDIO)
+   LIBSOCKET="$X_EXTRA_LIBS"
+   AC_SUBST(LIBSOCKET)
+   AC_SUBST(X_EXTRA_LIBS)
+   AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
+   AC_SUBST(LIBUCB)
+
+   case $host in  dnl this *is* LynxOS specific
+   *-*-lynxos* )
+        AC_MSG_CHECKING([LynxOS header file wrappers])
+        [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
+        AC_MSG_RESULT(disabled)
+        AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
+         ;;
+    esac
+
+   KDE_CHECK_TYPES
+   KDE_CHECK_LIBDL
+   KDE_CHECK_STRLCPY
+   KDE_CHECK_PIE_SUPPORT
+
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
+ 
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
+AH_VERBATIM(_AIX_STRINGS_H_BZERO,
+[
+/*
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
+ * that defines bzero.
+ */
+
+#if defined(_AIX)
+#include <strings.h>
+#endif
+])
+
+AC_CHECK_FUNCS([vsnprintf snprintf])
+
+AH_VERBATIM(_TRU64,[
+/*
+ * On HP-UX, the declaration of vsnprintf() is needed every time !
+ */
+
+#if !defined(HAVE_VSNPRINTF) || defined(hpux)
+#if __STDC__
+#include <stdarg.h>
+#include <stdlib.h>
+#else
+#include <varargs.h>
+#endif
+#ifdef __cplusplus
+extern "C"
+#endif
+int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
+#ifdef __cplusplus
+extern "C"
+#endif
+int snprintf(char *str, size_t n, char const *fmt, ...);
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Find the header files and libraries for X-Windows. Extended the
+dnl macro AC_PATH_X
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([K_PATH_X],
+[
+AC_REQUIRE([KDE_MISC_TESTS])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_ARG_ENABLE(
+  embedded,
+  AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
+  kde_use_qt_emb=$enableval,
+  kde_use_qt_emb=no
+)
+
+AC_ARG_ENABLE(
+  qtopia,
+  AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
+  kde_use_qt_emb_palm=$enableval,
+  kde_use_qt_emb_palm=no
+)
+
+AC_ARG_ENABLE(
+  mac,
+  AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
+  kde_use_qt_mac=$enableval,
+  kde_use_qt_mac=no
+)
+
+# used to disable x11-specific stuff on special platforms
+AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+
+AC_MSG_CHECKING(for X)
+
+AC_CACHE_VAL(kde_cv_have_x,
+[# One or both of the vars are not set, and there is no cached value.
+if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
+   kde_x_includes=NO
+else
+   kde_x_includes=$x_includes
+fi
+if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
+   kde_x_libraries=NO
+else
+   kde_x_libraries=$x_libraries
+fi
+
+# below we use the standard autoconf calls
+ac_x_libraries=$kde_x_libraries
+ac_x_includes=$kde_x_includes
+
+KDE_PATH_X_DIRECT
+dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
+dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
+dnl location. The correct location is /usr/lib32 or an undefined value
+dnl (the linker is smart enough to pick the correct default library).
+dnl Things work just fine if you use just AC_PATH_X_DIRECT.
+dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
+dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
+dnl x_includes should be left alone.
+case "$host" in
+mips-sgi-irix6*)
+  ;;
+*-*-solaris*)
+  ;;
+*)
+  _AC_PATH_X_XMKMF
+  if test -z "$ac_x_includes"; then
+    ac_x_includes="."
+  fi
+  if test -z "$ac_x_libraries"; then
+    ac_x_libraries="/usr/lib${kdelibsuff}"
+  fi
+esac
+#from now on we use our own again
+
+# when the user already gave --x-includes, we ignore
+# what the standard autoconf macros told us.
+if test "$kde_x_includes" = NO; then
+  kde_x_includes=$ac_x_includes
+fi
+
+# for --x-libraries too
+if test "$kde_x_libraries" = NO; then
+  kde_x_libraries=$ac_x_libraries
+fi
+
+if test "$kde_x_includes" = NO; then
+  AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
+fi
+
+if test "$kde_x_libraries" = NO; then
+  AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
+fi
+
+# Record where we found X for the cache.
+kde_cv_have_x="have_x=yes \
+         kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
+])dnl
+
+eval "$kde_cv_have_x"
+
+if test "$have_x" != yes; then
+  AC_MSG_RESULT($have_x)
+  no_x=yes
+else
+  AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
+fi
+
+if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
+  X_INCLUDES=""
+  x_includes="."; dnl better than nothing :-
+ else
+  x_includes=$kde_x_includes
+  X_INCLUDES="-I$x_includes"
+fi
+
+if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then
+  X_LDFLAGS=""
+  x_libraries="/usr/lib"; dnl better than nothing :-
+ else
+  x_libraries=$kde_x_libraries
+  X_LDFLAGS="-L$x_libraries"
+fi
+all_includes="$X_INCLUDES"
+all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
+
+# Check for libraries that X11R6 Xt/Xaw programs need.
+ac_save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+# check for ICE first), but we must link in the order -lSM -lICE or
+# we get undefined symbols.  So assume we have SM if we have ICE.
+# These have to be linked with before -lX11, unlike the other
+# libraries we check for below, so use a different variable.
+#  --interran at uluru.Stanford.EDU, kb at cs.umb.edu.
+AC_CHECK_LIB(ICE, IceConnectionNumber,
+  [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
+LDFLAGS="$ac_save_LDFLAGS"
+
+LIB_X11='-lX11 $(LIBSOCKET)'
+
+AC_MSG_CHECKING(for libXext)
+AC_CACHE_VAL(kde_cv_have_libXext,
+[
+kde_ldflags_safe="$LDFLAGS"
+kde_libs_safe="$LIBS"
+
+LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
+LIBS="-lXext -lX11 $LIBSOCKET"
+
+AC_TRY_LINK([
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+],
+[
+printf("hello Xext\n");
+],
+kde_cv_have_libXext=yes,
+kde_cv_have_libXext=no
+)
+
+LDFLAGS=$kde_ldflags_safe
+LIBS=$kde_libs_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_libXext)
+
+if test "$kde_cv_have_libXext" = "no"; then
+  AC_MSG_ERROR([We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either.])
+fi
+
+LIB_XEXT="-lXext"
+QTE_NORTTI=""
+
+elif test "$kde_use_qt_emb" = "yes"; then
+  dnl We're using QT Embedded
+  CPPFLAGS=-DQWS
+  CXXFLAGS="$CXXFLAGS -fno-rtti"
+  QTE_NORTTI="-fno-rtti -DQWS"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+elif test "$kde_use_qt_mac" = "yes"; then
+  dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
+  dnl be included to get the information) --Sam
+  CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+  CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+fi
+AC_SUBST(X_PRE_LIBS)
+AC_SUBST(LIB_X11)
+AC_SUBST(LIB_XRENDER)
+AC_SUBST(LIBSM)
+AC_SUBST(X_INCLUDES)
+AC_SUBST(X_LDFLAGS)
+AC_SUBST(x_includes)
+AC_SUBST(x_libraries)
+AC_SUBST(QTE_NORTTI)
+AC_SUBST(LIB_XEXT)
+
+])
+
+AC_DEFUN([KDE_PRINT_QT_PROGRAM],
+[
+AC_REQUIRE([KDE_USE_QT])
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+    QStringList *t = new QStringList();
+    Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+    QString s;
+    s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+    (void)QStyleFactory::create(QString::null);
+    QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+    return 0;
+}
+EOF
+])
+
+AC_DEFUN([KDE_USE_QT],
+[
+if test -z "$1"; then
+  # Current default Qt version: 3.3
+  kde_qtver=3
+  kde_qtsubver=3
+else
+  kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
+  # following is the check if subversion isnt found in passed argument
+  if test "$kde_qtsubver" = "$1"; then
+    kde_qtsubver=1
+  fi
+  kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
+  if test "$kde_qtver" = "1"; then
+    kde_qtsubver=42
+  fi
+fi
+
+if test -z "$2"; then
+  if test "$kde_qtver" = "2"; then
+    if test $kde_qtsubver -gt 0; then
+      kde_qt_minversion=">= Qt 2.2.2"
+    else
+      kde_qt_minversion=">= Qt 2.0.2"
+    fi
+  fi
+  if test "$kde_qtver" = "3"; then
+    if test $kde_qtsubver -gt 0; then
+	 if test $kde_qtsubver -gt 1; then
+	    if test $kde_qtsubver -gt 2; then
+		kde_qt_minversion=">= Qt 3.3 and < 4.0"
+	    else
+	        kde_qt_minversion=">= Qt 3.2 and < 4.0"
+	    fi
+	 else
+            kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
+         fi
+    else
+      kde_qt_minversion=">= Qt 3.0 and < 4.0"
+    fi
+  fi
+  if test "$kde_qtver" = "1"; then
+    kde_qt_minversion=">= 1.42 and < 2.0"
+  fi
+else
+   kde_qt_minversion="$2"
+fi
+
+if test -z "$3"; then
+   if test $kde_qtver = 3; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 0x03 at VER@00 && QT_VERSION < 0x040000"
+       qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
+       kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s, at VER@,$qtsubver,"`
+     else
+       kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
+     fi
+   fi
+   if test $kde_qtver = 2; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 222"
+     else
+       kde_qt_verstring="QT_VERSION >= 200"
+     fi
+   fi
+   if test $kde_qtver = 1; then
+    kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
+   fi
+else
+   kde_qt_verstring="$3"
+fi
+
+if test $kde_qtver = 4; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
+fi
+if test $kde_qtver = 3; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3"
+fi
+if test $kde_qtver = 2; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
+fi
+if test $kde_qtver = 1; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt"
+fi
+])
+
+AC_DEFUN([KDE_CHECK_QT_DIRECT],
+[
+AC_REQUIRE([KDE_USE_QT])
+AC_MSG_CHECKING([if Qt compiles without flags])
+AC_CACHE_VAL(kde_cv_qt_direct,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
+ac_LIBRARY_PATH="$LIBRARY_PATH"
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_includes"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
+else
+LIBS="$LIBQT $LIBSOCKET"
+fi
+LD_LIBRARY_PATH=
+export LD_LIBRARY_PATH
+LIBRARY_PATH=
+export LIBRARY_PATH
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  kde_cv_qt_direct="yes"
+else
+  kde_cv_qt_direct="no"
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+fi
+
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
+export LD_LIBRARY_PATH
+LIBRARY_PATH="$ac_LIBRARY_PATH"
+export LIBRARY_PATH
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_qt_direct" = "yes"; then
+  AC_MSG_RESULT(yes)
+  $1
+else
+  AC_MSG_RESULT(no)
+  $2
+fi
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the Qt headers and libraries.
+dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
+dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_1_3],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([KDE_USE_QT])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+dnl ------------------------------------------------------------------------
+dnl Add configure flag to enable linking to MT version of Qt library.
+dnl ------------------------------------------------------------------------
+
+AC_ARG_ENABLE(
+  mt,
+  AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
+  kde_use_qt_mt=$enableval,
+  [
+    if test $kde_qtver = 3; then
+      kde_use_qt_mt=yes
+    else
+      kde_use_qt_mt=no
+    fi
+  ]
+)
+
+USING_QT_MT=""
+
+dnl ------------------------------------------------------------------------
+dnl If we not get --disable-qt-mt then adjust some vars for the host.
+dnl ------------------------------------------------------------------------
+
+KDE_MT_LDFLAGS=
+KDE_MT_LIBS=
+if test "x$kde_use_qt_mt" = "xyes"; then
+  KDE_CHECK_THREADING
+  if test "x$kde_use_threading" = "xyes"; then
+    CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
+    KDE_MT_LDFLAGS="$USE_THREADS"
+    KDE_MT_LIBS="$LIBPTHREAD"
+  else
+    kde_use_qt_mt=no
+  fi
+fi
+AC_SUBST(KDE_MT_LDFLAGS)
+AC_SUBST(KDE_MT_LIBS)
+
+kde_qt_was_given=yes
+
+dnl ------------------------------------------------------------------------
+dnl If we haven't been told how to link to Qt, we work it out for ourselves.
+dnl ------------------------------------------------------------------------
+if test -z "$LIBQT_GLOB"; then
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    LIBQT_GLOB="libqte.*"
+  else
+    LIBQT_GLOB="libqt.*"
+  fi
+fi
+
+dnl ------------------------------------------------------------
+dnl If we got --enable-embedded then adjust the Qt library name.
+dnl ------------------------------------------------------------
+if test "x$kde_use_qt_emb" = "xyes"; then
+  qtlib="qte"
+else
+  qtlib="qt"
+fi
+
+kde_int_qt="-l$qtlib"
+
+if test -z "$LIBQPE"; then
+dnl ------------------------------------------------------------
+dnl If we got --enable-palmtop then add -lqpe to the link line
+dnl ------------------------------------------------------------
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    if test "x$kde_use_qt_emb_palm" = "xyes"; then
+      LIB_QPE="-lqpe"
+    else
+      LIB_QPE=""
+    fi
+  else
+    LIB_QPE=""
+  fi
+fi
+
+dnl ------------------------------------------------------------------------
+dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
+dnl ------------------------------------------------------------------------
+
+if test "x$kde_use_qt_mt" = "xyes"; then
+  LIBQT="-l$qtlib-mt"
+  kde_int_qt="-l$qtlib-mt"
+  LIBQT_GLOB="lib$qtlib-mt.*"
+  USING_QT_MT="using -mt"
+else
+  LIBQT="-l$qtlib"
+fi
+
+if test $kde_qtver != 1; then
+
+  AC_REQUIRE([AC_FIND_PNG])
+  AC_REQUIRE([AC_FIND_JPEG])
+  LIBQT="$LIBQT $LIBPNG $LIBJPEG"
+fi
+
+if test $kde_qtver = 3; then
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+  LIBQT="$LIBQT $LIBDL"
+fi
+
+AC_MSG_CHECKING([for Qt])
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
+fi
+ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
+qt_libraries=""
+qt_includes=""
+AC_ARG_WITH(qt-dir,
+    AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
+    [  ac_qt_includes="$withval"/include
+       ac_qt_libraries="$withval"/lib${kdelibsuff}
+       ac_qt_bindir="$withval"/bin
+    ])
+
+AC_ARG_WITH(qt-includes,
+    AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
+    [
+       ac_qt_includes="$withval"
+    ])
+
+kde_qt_libs_given=no
+
+AC_ARG_WITH(qt-libraries,
+    AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
+    [  ac_qt_libraries="$withval"
+       kde_qt_libs_given=yes
+    ])
+
+AC_CACHE_VAL(ac_cv_have_qt,
+[#try to guess Qt locations
+
+qt_incdirs=""
+for dir in $kde_qt_dirs; do
+   qt_incdirs="$qt_incdirs $dir/include $dir"
+done
+qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
+if test ! "$ac_qt_includes" = "NO"; then
+   qt_incdirs="$ac_qt_includes $qt_incdirs"
+fi
+
+if test "$kde_qtver" != "1"; then
+  kde_qt_header=qstyle.h
+else
+  kde_qt_header=qglobal.h
+fi
+
+AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
+ac_qt_includes="$qt_incdir"
+
+qt_libdirs=""
+for dir in $kde_qt_dirs; do
+   qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir"
+done
+qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
+if test ! "$ac_qt_libraries" = "NO"; then
+  qt_libdir=$ac_qt_libraries
+else
+  qt_libdirs="$ac_qt_libraries $qt_libdirs"
+  # if the Qt was given, the chance is too big that libqt.* doesn't exist
+  qt_libdir=NONE
+  for dir in $qt_libdirs; do
+    try="ls -1 $dir/${LIBQT_GLOB}"
+    if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+    LIBQT="$LIBQT ${kde_int_qt}_incremental"
+    break
+  fi
+done
+
+ac_qt_libraries="$qt_libdir"
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  rm -f conftest*
+else
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+  ac_qt_libraries="NO"
+fi
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+AC_LANG_RESTORE
+if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
+  ac_cv_have_qt="have_qt=no"
+  ac_qt_notfound=""
+  missing_qt_mt=""
+  if test "$ac_qt_includes" = NO; then
+    if test "$ac_qt_libraries" = NO; then
+      ac_qt_notfound="(headers and libraries)";
+    else
+      ac_qt_notfound="(headers)";
+    fi
+  else
+    if test "x$kde_use_qt_mt" = "xyes"; then
+       missing_qt_mt="
+Make sure that you have compiled Qt with thread support!"
+       ac_qt_notfound="(library $qtlib-mt)";
+    else
+       ac_qt_notfound="(library $qtlib)";
+    fi
+  fi
+
+  AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt])
+else
+  have_qt="yes"
+fi
+])
+
+eval "$ac_cv_have_qt"
+
+if test "$have_qt" != yes; then
+  AC_MSG_RESULT([$have_qt]);
+else
+  ac_cv_have_qt="have_qt=yes \
+    ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
+  AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
+
+  qt_libraries="$ac_qt_libraries"
+  qt_includes="$ac_qt_includes"
+fi
+
+if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
+     KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
+fi
+
+AC_SUBST(qt_libraries)
+AC_SUBST(qt_includes)
+
+if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
+ QT_INCLUDES=""
+else
+ QT_INCLUDES="-I$qt_includes"
+ all_includes="$QT_INCLUDES $all_includes"
+fi
+
+if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
+ QT_LDFLAGS=""
+else
+ QT_LDFLAGS="-L$qt_libraries"
+ all_libraries="$QT_LDFLAGS $all_libraries"
+fi
+test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
+
+AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_LDFLAGS)
+AC_PATH_QT_MOC_UIC
+
+KDE_CHECK_QT_JPEG
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
+else
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
+fi
+test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+     LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+     break
+  fi
+done
+
+AC_SUBST(LIB_QT)
+AC_SUBST(LIB_QPE)
+
+AC_SUBST(kde_qtver)
+])
+
+AC_DEFUN([AC_PATH_QT],
+[
+AC_PATH_QT_1_3
+])
+
+AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
+[
+AC_REQUIRE([AC_PATH_QT_MOC_UIC])
+
+if test x$ac_uic_supports_libpath = xyes; then
+
+AC_MSG_CHECKING([if UIC has KDE plugins available])
+AC_CACHE_VAL(kde_cv_uic_plugins,
+[
+cat > actest.ui << EOF
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>NewConnectionDialog</class>
+<widget class="QDialog">
+   <widget class="KLineEdit">
+        <property name="name">
+           <cstring>testInput</cstring>
+        </property>
+   </widget>
+</widget>
+</UI>
+EOF
+       
+
+
+kde_cv_uic_plugins=no
+kde_line="$UIC_PATH -L $kde_widgetdir"
+if test x$ac_uic_supports_nounload = xyes; then
+   kde_line="$kde_line -nounload"
+fi
+kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
+if AC_TRY_EVAL(kde_line); then
+	# if you're trying to debug this check and think it's incorrect,
+	# better check your installation. The check _is_ correct - your
+	# installation is not.
+	if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
+		kde_cv_uic_plugins=yes
+	fi
+fi
+rm -f actest.ui actest.cpp
+])
+
+AC_MSG_RESULT([$kde_cv_uic_plugins])
+if test "$kde_cv_uic_plugins" != yes; then
+	AC_MSG_ERROR([
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs. 
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the 
+_same Qt version_, compiled with the _same compiler_ and the same Qt
+configuration settings.
+])
+fi
+fi
+])
+
+AC_DEFUN([KDE_CHECK_FINAL],
+[
+  AC_ARG_ENABLE(final,
+	AC_HELP_STRING([--enable-final],
+		       [build size optimized apps (experimental - needs lots of memory)]),
+	kde_use_final=$enableval, kde_use_final=no)
+
+  if test "x$kde_use_final" = "xyes"; then
+      KDE_USE_FINAL_TRUE=""
+      KDE_USE_FINAL_FALSE="#"
+   else
+      KDE_USE_FINAL_TRUE="#"
+      KDE_USE_FINAL_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_FINAL_TRUE)
+  AC_SUBST(KDE_USE_FINAL_FALSE)
+])
+
+AC_DEFUN([KDE_CHECK_CLOSURE],
+[
+  AC_ARG_ENABLE(closure,
+		AC_HELP_STRING([--enable-closure],[delay template instantiation]),
+  	kde_use_closure=$enableval, kde_use_closure=no)
+
+  KDE_NO_UNDEFINED=""
+  if test "x$kde_use_closure" = "xyes"; then
+       KDE_USE_CLOSURE_TRUE=""
+       KDE_USE_CLOSURE_FALSE="#"
+#       CXXFLAGS="$CXXFLAGS $REPO"
+  else
+       KDE_USE_CLOSURE_TRUE="#"
+       KDE_USE_CLOSURE_FALSE=""
+       KDE_NO_UNDEFINED=""
+       case $host in 
+         *-*-linux-gnu)
+           KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
+                [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
+		[KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
+		[KDE_NO_UNDEFINED=""])],
+	    [KDE_NO_UNDEFINED=""])
+           ;;
+       esac
+  fi
+  AC_SUBST(KDE_USE_CLOSURE_TRUE)
+  AC_SUBST(KDE_USE_CLOSURE_FALSE)
+  AC_SUBST(KDE_NO_UNDEFINED)
+])
+
+dnl Check if the linker supports --enable-new-dtags and --as-needed
+AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],
+[
+  AC_ARG_ENABLE(new_ldflags,
+		AC_HELP_STRING([--enable-new-ldflags],
+		[enable the new linker flags]),
+	kde_use_new_ldflags=$enableval, 
+	kde_use_new_ldflags=no)
+
+  LDFLAGS_AS_NEEDED=""
+  LDFLAGS_NEW_DTAGS=""
+  if test "x$kde_use_new_ldflags" = "xyes"; then
+       LDFLAGS_NEW_DTAGS=""
+       KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
+		[LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)
+
+       KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
+		[LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
+  fi
+  AC_SUBST(LDFLAGS_AS_NEEDED)
+  AC_SUBST(LDFLAGS_NEW_DTAGS)
+])
+
+AC_DEFUN([KDE_CHECK_NMCHECK],
+[
+  AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
+	kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
+
+  if test "$kde_use_nmcheck" = "yes"; then
+      KDE_USE_NMCHECK_TRUE=""
+      KDE_USE_NMCHECK_FALSE="#"
+   else
+      KDE_USE_NMCHECK_TRUE="#"
+      KDE_USE_NMCHECK_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_NMCHECK_TRUE)
+  AC_SUBST(KDE_USE_NMCHECK_FALSE)
+])
+
+AC_DEFUN([KDE_EXPAND_MAKEVAR], [
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$$2
+while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
+exec_prefix=$savex
+])
+
+dnl ------------------------------------------------------------------------
+dnl Now, the same with KDE
+dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
+dnl and $(kde_includes) will be the kdehdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_BASE_PATH_KDE],
+[
+AC_REQUIRE([KDE_CHECK_STL])
+AC_REQUIRE([AC_PATH_QT])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_CHECK_RPATH
+AC_MSG_CHECKING([for KDE])
+
+if test "${prefix}" != NONE; then
+  kde_includes=${includedir}
+  KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
+
+  kde_libraries=${libdir}
+  KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
+
+else
+  ac_kde_includes=
+  ac_kde_libraries=
+  kde_libraries=""
+  kde_includes=""
+fi
+
+AC_CACHE_VAL(ac_cv_have_kde,
+[#try to guess kde locations
+
+if test "$kde_qtver" = 1; then
+  kde_check_header="ksock.h"
+  kde_check_lib="libkdecore.la"
+else
+  kde_check_header="ksharedptr.h"
+  kde_check_lib="libkio.la"
+fi
+
+if test -z "$1"; then
+
+kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
+test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
+kde_incdirs="$ac_kde_includes $kde_incdirs"
+AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
+ac_kde_includes="$kde_incdir"
+
+if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
+  AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
+test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
+kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
+AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
+ac_kde_libraries="$kde_libdir"
+
+kde_widgetdir=NO
+dnl this might be somewhere else
+AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
+
+if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
+AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+AC_MSG_ERROR([
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs])
+fi
+
+if test -n "$kde_widgetdir"; then
+    kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+fi
+
+
+if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
+  ac_cv_have_kde="have_kde=no"
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+fi
+
+else dnl test -z $1, e.g. from kdelibs
+
+  ac_cv_have_kde="have_kde=no"
+
+fi
+])dnl
+
+eval "$ac_cv_have_kde"
+
+if test "$have_kde" != "yes"; then
+ if test "${prefix}" = NONE; then
+  ac_kde_prefix="$ac_default_prefix"
+ else
+  ac_kde_prefix="$prefix"
+ fi
+ if test "$exec_prefix" = NONE; then
+  ac_kde_exec_prefix="$ac_kde_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix])
+ else
+  ac_kde_exec_prefix="$exec_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
+ fi
+
+ kde_libraries="${libdir}"
+ kde_includes="${includedir}"
+
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+  AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
+
+  kde_libraries="$ac_kde_libraries"
+  kde_includes="$ac_kde_includes"
+fi
+AC_SUBST(kde_libraries)
+AC_SUBST(kde_includes)
+
+if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes"  || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+else
+ KDE_INCLUDES="-I$kde_includes"
+ all_includes="$KDE_INCLUDES $all_includes"
+fi
+
+KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+ 
+KDE_LDFLAGS="-L$kde_libraries"
+if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then 
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+fi
+
+AC_SUBST(KDE_LDFLAGS)
+AC_SUBST(KDE_INCLUDES)
+
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+all_libraries="$all_libraries $USER_LDFLAGS"
+all_includes="$all_includes $USER_INCLUDES"
+AC_SUBST(all_includes)
+AC_SUBST(all_libraries)
+
+if test -z "$1"; then
+KDE_CHECK_UIC_PLUGINS
+fi
+
+ac_kde_libraries="$kde_libdir"
+
+AC_SUBST(AUTODIRS)
+
+
+])
+
+AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
+[
+AC_MSG_CHECKING(for extra includes)
+AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
+  kde_use_extra_includes="$withval",
+  kde_use_extra_includes=NONE
+)
+kde_extra_includes=
+if test -n "$kde_use_extra_includes" && \
+   test "$kde_use_extra_includes" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_includes; do
+     kde_extra_includes="$kde_extra_includes $dir"
+     USER_INCLUDES="$USER_INCLUDES -I$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_includes="added"
+else
+   kde_use_extra_includes="no"
+fi
+AC_SUBST(USER_INCLUDES)
+
+AC_MSG_RESULT($kde_use_extra_includes)
+
+kde_extra_libs=
+AC_MSG_CHECKING(for extra libs)
+AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
+  kde_use_extra_libs=$withval,
+  kde_use_extra_libs=NONE
+)
+if test -n "$kde_use_extra_libs" && \
+   test "$kde_use_extra_libs" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_libs; do
+     kde_extra_libs="$kde_extra_libs $dir"
+     KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
+     USER_LDFLAGS="$USER_LDFLAGS -L$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_libs="added"
+else
+   kde_use_extra_libs="no"
+fi
+
+AC_SUBST(USER_LDFLAGS)
+
+AC_MSG_RESULT($kde_use_extra_libs)
+
+])
+
+AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
+[
+    AC_MSG_CHECKING([for KDE headers installed])
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+    printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+    printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+    printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+    printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+    printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+    printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+    printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+    printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+    printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+    printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+    printf("kde_wallpaperdir=\\"%s\\"\n",
+	KApplication::kde_wallpaperdir().data());
+    printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+    printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+    printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+    printf("kde_styledir=\\"/tmp/dummy\\"\n");
+    printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+    printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+    printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+    return 0;
+    }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if AC_TRY_EVAL(ac_compile); then
+   AC_MSG_RESULT(yes)
+ else
+   AC_MSG_ERROR([your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log.])
+  fi
+  CPPFLAGS=$ac_save_CPPFLAGS
+
+  AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_CHECK_KDEQTADDON],
+[
+AC_MSG_CHECKING(for kde-qt-addon)
+AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
+[
+ kde_ldflags_safe="$LDFLAGS"
+ kde_libs_safe="$LIBS"
+ kde_cxxflags_safe="$CXXFLAGS"
+
+ LIBS="-lkde-qt-addon $LIBQT $LIBS"
+ CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
+ LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
+
+ AC_TRY_LINK([
+   #include <qdom.h>
+ ],
+ [
+   QDomDocument doc;
+ ],
+  kde_cv_have_kdeqtaddon=yes,
+  kde_cv_have_kdeqtaddon=no
+ )
+
+ LDFLAGS=$kde_ldflags_safe
+ LIBS=$kde_libs_safe
+ CXXFLAGS=$kde_cxxflags_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
+
+if test "$kde_cv_have_kdeqtaddon" = "no"; then
+  AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
+It is a separate package (and CVS module) named kde-qt-addon.])
+fi
+])
+
+AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
+[
+   AC_REQUIRE([KDE_MISC_TESTS])
+   AC_REQUIRE([KDE_CHECK_LIBDL])
+   AC_REQUIRE([K_PATH_X])
+
+if test $kde_qtver = 3; then
+   case $host in 
+               *cygwin*) lib_kded="-lkdeinit_kded" ;;
+               *) lib_kded="" ;;
+       esac
+   AC_SUBST(LIB_KDED, $lib_kded)
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_KJS, "-lkjs")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KABC, "-lkabc")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KMDI, "-lkmdi")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+   AC_SUBST(LIB_KUTILS, "-lkutils")
+   AC_SUBST(LIB_KDEPIM, "-lkdepim")
+   AC_SUBST(LIB_KIMPROXY, "-lkimproxy")
+   AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff")
+   AC_SUBST(LIB_KDNSSD, "-lkdnssd")
+   AC_SUBST(LIB_KUNITTEST, "-lkunittest")
+# these are for backward compatibility
+   AC_SUBST(LIB_KSYCOCA, "-lkio")
+   AC_SUBST(LIB_KFILE, "-lkio")
+elif test $kde_qtver = 2; then
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_KSYCOCA, "-lksycoca")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KFILE, "-lkfile")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+else
+   AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
+   AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
+   AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
+fi
+])
+
+AC_DEFUN([AC_PATH_KDE],
+[
+  AC_BASE_PATH_KDE
+  AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
+  [
+  if test "$enableval" = "no";
+    then ac_use_path_checking="default"
+    else ac_use_path_checking=""
+  fi
+  ],
+  [
+  if test "$kde_qtver" = 1;
+    then ac_use_path_checking=""
+    else ac_use_path_checking="default"
+  fi
+  ]
+  )
+
+  AC_CREATE_KFSSTND($ac_use_path_checking)
+
+  AC_SUBST_KFSSTND
+  KDE_CREATE_LIBS_ALIASES
+])
+
+dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
+AC_DEFUN([KDE_CHECK_FUNC_EXT],
+[
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL(kde_cv_func_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+AC_TRY_COMPILE([
+$2
+],
+[
+$3
+],
+kde_cv_func_$1=yes,
+kde_cv_func_$1=no)
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+AC_LANG_RESTORE
+])
+
+AC_MSG_RESULT($kde_cv_func_$1)
+
+AC_MSG_CHECKING([if $1 needs custom prototype])
+AC_CACHE_VAL(kde_cv_proto_$1,
+[
+if test "x$kde_cv_func_$1" = xyes; then
+  kde_cv_proto_$1=no
+else
+  case "$1" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_$1="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_$1=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_$1" = xunknown; then
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  AC_TRY_LINK([
+$2
+
+extern "C" $4;
+],
+[
+$3
+],
+[ kde_cv_func_$1=yes
+  kde_cv_proto_$1=yes ],
+  [kde_cv_proto_$1="$1 unavailable"]
+)
+LIBS=$kde_safe_libs
+AC_LANG_RESTORE
+fi
+])
+AC_MSG_RESULT($kde_cv_proto_$1)
+
+if test "x$kde_cv_func_$1" = xyes; then
+  AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
+  $6
+fi
+if test "x$kde_cv_proto_$1" = xno; then
+  AC_DEFINE(HAVE_$5_PROTO, 1,
+  [Define if you have the $1 prototype])
+fi
+
+AH_VERBATIM([_HAVE_$5_PROTO],
+[
+#if !defined(HAVE_$5_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+$4;
+#ifdef __cplusplus
+}
+#endif
+#endif
+])
+])
+
+AC_DEFUN([AC_CHECK_SETENV],
+[
+	KDE_CHECK_FUNC_EXT(setenv, [
+#include <stdlib.h>
+], 
+		[setenv("VAR", "VALUE", 1);],
+	        [int setenv (const char *, const char *, int)],
+		[SETENV])
+])
+
+AC_DEFUN([AC_CHECK_UNSETENV],
+[
+	KDE_CHECK_FUNC_EXT(unsetenv, [
+#include <stdlib.h>
+], 
+		[unsetenv("VAR");],
+	        [void unsetenv (const char *)],
+		[UNSETENV])
+])
+
+AC_DEFUN([AC_CHECK_GETDOMAINNAME],
+[
+	KDE_CHECK_FUNC_EXT(getdomainname, [
+#include <stdlib.h>
+#include <unistd.h>
+#include <netdb.h>
+], 
+		[
+char buffer[200];
+getdomainname(buffer, 200);
+], 	
+	        [#include <sys/types.h>
+		int getdomainname (char *, size_t)],
+		[GETDOMAINNAME])
+])
+
+AC_DEFUN([AC_CHECK_GETHOSTNAME],
+[
+	KDE_CHECK_FUNC_EXT(gethostname, [
+#include <stdlib.h>
+#include <unistd.h>
+], 
+		[
+char buffer[200];
+gethostname(buffer, 200);
+], 	
+	        [int gethostname (char *, unsigned int)],
+		[GETHOSTNAME])
+])
+
+AC_DEFUN([AC_CHECK_USLEEP],
+[
+	KDE_CHECK_FUNC_EXT(usleep, [
+#include <unistd.h>
+], 
+		[
+usleep(200);
+], 	
+	        [int usleep (unsigned int)],
+		[USLEEP])
+])
+
+
+AC_DEFUN([AC_CHECK_RANDOM],
+[
+	KDE_CHECK_FUNC_EXT(random, [
+#include <stdlib.h>
+], 
+		[
+random();
+], 	
+	        [long int random(void)],
+		[RANDOM])
+
+	KDE_CHECK_FUNC_EXT(srandom, [
+#include <stdlib.h>
+], 
+		[
+srandom(27);
+], 	
+	        [void srandom(unsigned int)],
+		[SRANDOM])
+
+])
+
+AC_DEFUN([AC_CHECK_INITGROUPS],
+[
+	KDE_CHECK_FUNC_EXT(initgroups, [
+#include <sys/types.h>
+#include <unistd.h>
+#include <grp.h>
+],
+	[
+char buffer[200];
+initgroups(buffer, 27);
+],
+	[int initgroups(const char *, gid_t)],
+	[INITGROUPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMPS],
+[
+	KDE_CHECK_FUNC_EXT(mkstemps, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkstemps("/tmp/aaaXXXXXX", 6);
+],
+	[int mkstemps(char *, int)],
+	[MKSTEMPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMP],
+[
+	KDE_CHECK_FUNC_EXT(mkstemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkstemp("/tmp/aaaXXXXXX");
+],
+	[int mkstemp(char *)],
+	[MKSTEMP])
+])
+
+AC_DEFUN([AC_CHECK_MKDTEMP],
+[
+	KDE_CHECK_FUNC_EXT(mkdtemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkdtemp("/tmp/aaaXXXXXX");
+],
+	[char *mkdtemp(char *)],
+	[MKDTEMP])
+])
+
+
+AC_DEFUN([AC_CHECK_RES_INIT],
+[
+  AC_MSG_CHECKING([if res_init needs -lresolv])
+  kde_libs_safe="$LIBS"
+  LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
+  AC_TRY_LINK(
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [
+      res_init(); 
+    ],
+    [
+      LIBRESOLV="-lresolv"
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
+    ],
+    [ AC_MSG_RESULT(no) ]
+  )
+  LIBS=$kde_libs_safe
+  AC_SUBST(LIBRESOLV)
+
+  KDE_CHECK_FUNC_EXT(res_init,
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [res_init()],
+    [int res_init(void)],
+    [RES_INIT])
+])
+
+AC_DEFUN([AC_CHECK_STRLCPY],
+[
+	KDE_CHECK_FUNC_EXT(strlcpy, [
+#include <string.h>
+],
+[ char buf[20];
+  strlcpy(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcpy(char*, const char*, unsigned long)],
+	[STRLCPY])
+])
+
+AC_DEFUN([AC_CHECK_STRLCAT],
+[
+	KDE_CHECK_FUNC_EXT(strlcat, [
+#include <string.h>
+],
+[ char buf[20];
+  buf[0]='\0';
+  strlcat(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcat(char*, const char*, unsigned long)],
+	[STRLCAT])
+])
+
+AC_DEFUN([AC_CHECK_RES_QUERY],
+[
+	KDE_CHECK_FUNC_EXT(res_query, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <netdb.h>
+],
+[
+res_query(NULL, 0, 0, NULL, 0);
+],
+	[int res_query(const char *, int, int, unsigned char *, int)],
+	[RES_QUERY])
+])
+
+AC_DEFUN([AC_CHECK_DN_SKIPNAME],
+[
+	KDE_CHECK_FUNC_EXT(dn_skipname, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+],
+[
+dn_skipname (NULL, NULL);
+],
+	[int dn_skipname (unsigned char *, unsigned char *)],
+	[DN_SKIPNAME])
+])
+
+
+AC_DEFUN([AC_FIND_GIF],
+   [AC_MSG_CHECKING([for giflib])
+AC_CACHE_VAL(ac_cv_lib_gif,
+[ac_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
+else
+LIBS="$all_libraries -lgif"
+fi
+AC_TRY_LINK(dnl
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+int GifLastError(void);
+#ifdef __cplusplus
+}
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+],
+            [return GifLastError();],
+            eval "ac_cv_lib_gif=yes",
+            eval "ac_cv_lib_gif=no")
+LIBS="$ac_save_LIBS"
+])dnl
+if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
+else
+  AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
+fi
+])
+
+AC_DEFUN([KDE_FIND_JPEG_HELPER],
+[
+AC_MSG_CHECKING([for libjpeg$2])
+AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
+[
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+void jpeg_CreateDecompress();
+#ifdef __cplusplus
+}
+#endif
+],
+[jpeg_CreateDecompress();],
+            eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
+            eval "ac_cv_lib_jpeg_$1=no")
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+])
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
+  LIBJPEG="$ac_cv_lib_jpeg_$1"
+  AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
+else
+  AC_MSG_RESULT(no)
+  $3
+fi
+
+])
+
+AC_DEFUN([AC_FIND_JPEG],
+[
+dnl first look for libraries
+KDE_FIND_JPEG_HELPER(6b, 6b,
+   KDE_FIND_JPEG_HELPER(normal, [],
+    [
+       LIBJPEG=
+    ]
+   )
+)
+
+dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
+dnl requires system dependent includes loaded before it)
+jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
+AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
+test "x$jpeg_incdir" = xNO && jpeg_incdir=
+
+dnl if headers _and_ libraries are missing, this is no error, and we
+dnl continue with a warning (the user will get no jpeg support in khtml)
+dnl if only one is missing, it means a configuration error, but we still
+dnl only warn
+if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
+else
+  if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
+    AC_MSG_WARN([
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+])
+  else
+    AC_MSG_WARN([libjpeg not found. disable JPEG support.])
+  fi
+  jpeg_incdir=
+  LIBJPEG=
+fi
+
+AC_SUBST(LIBJPEG)
+AH_VERBATIM(_AC_CHECK_JPEG,
+[/*
+ * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
+ * headers and I'm too lazy to write a configure test as long as only
+ * unixware is related
+ */
+#ifdef _UNIXWARE
+#define HAVE_BOOLEAN
+#endif
+])
+])
+
+AC_DEFUN([KDE_CHECK_QT_JPEG],
+[
+if test -n "$LIBJPEG"; then
+AC_MSG_CHECKING([if Qt needs $LIBJPEG])
+AC_CACHE_VAL(kde_cv_qt_jpeg,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
+LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[#include <qapplication.h>],
+            [
+            int argc;
+            char** argv;
+            QApplication app(argc, argv);],
+            eval "kde_cv_qt_jpeg=no",
+            eval "kde_cv_qt_jpeg=yes")
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+fi
+])
+
+if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
+  AC_MSG_RESULT(yes)
+  LIBJPEG_QT='$(LIBJPEG)'
+else
+  AC_MSG_RESULT(no)
+  LIBJPEG_QT=
+fi
+
+])
+
+AC_DEFUN([AC_FIND_ZLIB],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for libz])
+AC_CACHE_VAL(ac_cv_lib_z,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#include<zlib.h>
+],
+[
+  char buf[42];
+  gzFile f = (gzFile) 0;
+  /* this would segfault.. but we only link, don't run */
+  (void) gzgets(f, buf, sizeof(buf));
+
+  return (zlibVersion() == ZLIB_VERSION); 
+],
+            eval "ac_cv_lib_z='-lz'",
+            eval "ac_cv_lib_z=no")
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if test ! "$ac_cv_lib_z" = no; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
+  LIBZ="$ac_cv_lib_z"
+  AC_MSG_RESULT($ac_cv_lib_z)
+else
+  AC_MSG_ERROR(not found. 
+          Possibly configure picks up an outdated version
+          installed by XFree86. Remove it from your system.
+
+          Check your installation and look into config.log)
+  LIBZ=""
+fi
+AC_SUBST(LIBZ)
+])
+
+AC_DEFUN([KDE_TRY_TIFFLIB],
+[
+AC_MSG_CHECKING([for libtiff $1])
+
+AC_CACHE_VAL(kde_cv_libtiff_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
+else
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
+fi
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+[
+#include<tiffio.h>
+],
+    [return (TIFFOpen( "", "r") == 0); ],
+[
+    kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
+], [
+    kde_cv_libtiff_$1=no
+])
+
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_libtiff_$1" = "no"; then
+    AC_MSG_RESULT(no)
+    LIBTIFF=""
+    $3
+else
+    LIBTIFF="$kde_cv_libtiff_$1"
+    AC_MSG_RESULT(yes)
+    AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
+    $2
+fi
+
+])
+
+AC_DEFUN([AC_FIND_TIFF],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+KDE_TRY_TIFFLIB(tiff, [],
+   KDE_TRY_TIFFLIB(tiff34))
+
+AC_SUBST(LIBTIFF)
+])
+
+AC_DEFUN([KDE_FIND_LIBEXR],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_CACHE_VAL(ac_cv_libexr,
+[
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  fi
+
+  AC_MSG_CHECKING([for OpenEXR libraries])
+
+  if test "$PKG_CONFIG" = "no" ; then
+     AC_MSG_RESULT(no)
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     if !(`$PKG_CONFIG --exists OpenEXR`) ; then
+        AC_MSG_RESULT(no)
+        EXRSTATUS=no
+     else
+        if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then
+           AC_MSG_RESULT(no)
+           EXRSTATUS=old
+        else
+           kde_save_LIBS="$LIBS"
+           LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ"
+           AC_LANG_SAVE
+           AC_LANG_CPLUSPLUS
+           kde_save_CXXFLAGS="$CXXFLAGS"
+           EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR`
+           CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS"
+
+           AC_TRY_LINK(dnl
+               [
+               #include <ImfRgbaFile.h>
+               ],
+               [
+               using namespace Imf;
+               RgbaInputFile file ("dummy");
+               return 0;
+               ],
+               eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'",
+               eval "ac_cv_libexr=no"
+           )
+           LIBS="$kde_save_LIBS"
+           CXXFLAGS="$kde_save_CXXFLAGS"
+           AC_LANG_RESTORE
+           ])dnl
+           if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then
+               AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR])
+               LIB_EXR="$ac_cv_libexr"
+               AC_MSG_RESULT($ac_cv_libexr)
+           else
+               AC_MSG_RESULT(no)
+               LIB_EXR=""
+           fi
+        fi
+     fi
+  fi
+  AC_SUBST(LIB_EXR)
+  AC_SUBST(EXR_FLAGS)
+])
+
+
+
+AC_DEFUN([AC_FIND_PNG],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_MSG_CHECKING([for libpng])
+AC_CACHE_VAL(ac_cv_lib_png,
+[
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
+else
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
+fi
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<png.h>
+    ],
+    [
+    png_structp png_ptr = png_create_read_struct(  /* image ptr */
+		PNG_LIBPNG_VER_STRING, 0, 0, 0 );
+    return( png_ptr != 0 );
+    ],
+    eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
+    eval "ac_cv_lib_png=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
+  LIBPNG="$ac_cv_lib_png"
+  AC_SUBST(LIBPNG)
+  AC_MSG_RESULT($ac_cv_lib_png)
+else
+  AC_MSG_RESULT(no)
+  LIBPNG=""
+  AC_SUBST(LIBPNG)
+fi
+])
+
+
+AC_DEFUN([AC_FIND_JASPER],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_MSG_CHECKING([for jasper])
+AC_CACHE_VAL(ac_cv_jasper,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<jasper/jasper.h>
+    ],
+    [
+    return( jas_init() );
+    ],
+    eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
+    eval "ac_cv_jasper=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
+  LIB_JASPER="$ac_cv_jasper"
+  AC_MSG_RESULT($ac_cv_jasper)
+else
+  AC_MSG_RESULT(no)
+  LIB_JASPER=""
+fi
+AC_SUBST(LIB_JASPER)
+])
+
+AC_DEFUN([AC_CHECK_BOOL],
+[
+  AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
+])
+
+AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
+[
+AC_MSG_CHECKING(if you need GNU extensions)
+AC_CACHE_VAL(ac_cv_gnu_extensions,
+[
+cat > conftest.c << EOF
+#include <features.h>
+
+#ifdef __GNU_LIBRARY__
+yes
+#endif
+EOF
+
+if (eval "$ac_cpp conftest.c") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_gnu_extensions=yes
+else
+  ac_cv_gnu_extensions=no
+fi
+])
+
+AC_MSG_RESULT($ac_cv_gnu_extensions)
+if test "$ac_cv_gnu_extensions" = "yes"; then
+  AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CXX supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -$1"
+  AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
+  CXXFLAGS="$save_CXXFLAGS"
+  AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CC supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache,
+[
+  AC_LANG_SAVE
+  AC_LANG_C
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -$1"
+  AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], [])
+  CFLAGS="$save_CFLAGS"
+  AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+
+dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
+dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
+dnl it's all white-space separated
+AC_DEFUN([AC_REMOVE_FORBIDDEN],
+[ __val=$$1
+  __forbid=" $2 "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    $1=$__new
+  fi
+])
+
+
+AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
+[
+  AC_MSG_CHECKING([whether $CC is blacklisted])
+
+  dnl In theory we have tu run this test against $CC and $CXX
+  dnl in C and in C++ mode, because its perfectly legal for
+  dnl the user to mix compiler versions, since C has a defined
+  dnl ABI. 
+  dnl 
+  dnl For now, we assume the user is not on crack.
+
+  AC_TRY_COMPILE([
+#ifdef __GNUC__
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
+choke me
+#endif
+#endif
+], ,
+  kde_bad_compiler=no, 
+  kde_bad_compiler=yes
+)
+
+  AC_MSG_RESULT($kde_bad_compiler)
+
+if test "$kde_bad_compiler" = "yes"; then
+  AC_MSG_ERROR([
+
+This particular compiler version is blacklisted because it
+is known to miscompile KDE. Please use a newer version, or
+if that is not yet available, choose an older version. 
+
+Please do not report a bug or bother us reporting this
+configure error. We know about it, and we introduced
+it by intention to avoid untraceable bugs or crashes in KDE.
+
+])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH],
+[
+  AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline],
+    kde_cv_opt_noinline_match,
+  [
+  kde_cv_opt_noinline_match=irrelevant
+  dnl if we don't use both -O2 and -fno-inline, this check is moot
+  if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
+     && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
+
+    ac_cflags_save="$CFLAGS"
+    CFLAGS="$CFLAGS -D_USE_GNU"
+
+    AC_TRY_LINK([
+  #include <string.h>
+], [  const char *pt, *et;
+  et = __extension__      ({ char __a0, __a1, __a2;       (__builtin_constant_p (  ";,"  ) && ((size_t)(const void *)((   ";,"   )+ 1) - (size_t)(const void *)(   ";,"   ) == 1)        ? ((__a0 =((__const char  *) (  ";,"  ))[0], __a0 == '\0')     ? ((void) (  pt ),((void *)0) )        : ((__a1 = ((__const char *) (  ";,"  ))[1], __a1== '\0')      ? (__extension__ (__builtin_constant_p (  __a0 ) && ( __a0 ) == '\0'   ? (char *) __rawmemchr (   pt  ,   __a0)       : strchr(   pt  ,   __a0 )))   : ((__a2 = ((__const char *) (  ";,"  ))[2], __a2 == '\0')      ? __strpbrk_c2 (  pt , __a0, __a1)      :(((__const char *) (  ";,"  ))[3] == '\0'     ? __strpbrk_c3 (  pt ,__a0, __a1, __a2): strpbrk (  pt ,   ";,"  ))))) : strpbrk (  pt ,  ";,"  )); }) ;
+],
+    kde_cv_opt_noinline_match=yes,
+    kde_cv_opt_noinline_match=no
+    )
+
+    CFLAGS="$ac_cflags_save"
+  fi
+  ])
+])
+
+
+dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
+AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
+[dnl
+if test "x$kde_use_qt_emb" != "xyes"; then
+ AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
+else
+ AC_REMOVE_FORBIDDEN(CXX, [-rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
+fi
+])
+
+AC_DEFUN([AC_CHECK_COMPILERS],
+[
+  AC_ARG_ENABLE(debug,
+	        AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+  [
+    case $enableval in
+      yes)
+        kde_use_debug_code="yes"
+        kde_use_debug_define=no
+        ;;
+      full)
+        kde_use_debug_code="full"
+        kde_use_debug_define=no
+        ;;
+      *)
+        kde_use_debug_code="no"
+        kde_use_debug_define=yes
+        ;;
+    esac
+  ], 
+    [kde_use_debug_code="no"
+      kde_use_debug_define=no
+  ])
+
+  dnl Just for configure --help
+  AC_ARG_ENABLE(dummyoption,
+	        AC_HELP_STRING([--disable-debug],
+	  		       [disables debug output and debug symbols [default=no]]),
+		[],[])
+
+  AC_ARG_ENABLE(strict,
+		AC_HELP_STRING([--enable-strict],
+			      [compiles with strict compiler options (may not work!)]),
+   [
+    if test $enableval = "no"; then
+         kde_use_strict_options="no"
+       else
+         kde_use_strict_options="yes"
+    fi
+   ], [kde_use_strict_options="no"])
+
+  AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
+   [
+    if test $enableval = "no"; then
+         kde_use_warnings="no"
+       else
+         kde_use_warnings="yes"
+    fi
+   ], [kde_use_warnings="yes"])
+
+  dnl enable warnings for debug build
+  if test "$kde_use_debug_code" != "no"; then
+    kde_use_warnings=yes
+  fi
+
+  AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
+    [kde_use_profiling=$enableval],
+    [kde_use_profiling="no"]
+  )
+
+  dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+  CFLAGS=" $CFLAGS"
+
+  AC_PROG_CC 
+
+  AC_PROG_CPP
+
+  if test "$GCC" = "yes"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test $kde_use_debug_code = "full"; then
+        CFLAGS="-g3 -fno-inline $CFLAGS"
+      else
+        CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
+      fi
+    else
+      CFLAGS="-O2 $CFLAGS"
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CFLAGS="-DNDEBUG $CFLAGS"
+  fi
+
+
+  case "$host" in
+  *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
+  *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
+  esac
+
+  if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
+     LDFLAGS=""
+  fi
+
+  CXXFLAGS=" $CXXFLAGS"
+
+  AC_PROG_CXX
+
+  KDE_CHECK_FOR_BAD_COMPILER
+
+  if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+      else
+        if test "$kde_use_debug_code" = "full"; then
+          CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
+        else
+          CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
+        fi
+      fi
+      KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
+
+      dnl convenience compiler flags
+      KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
+      AC_SUBST(WOVERLOADED_VIRTUAL)
+    else
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K3 $CXXFLAGS"
+      else
+        CXXFLAGS="-O2 $CXXFLAGS"
+      fi
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
+  fi  
+
+  if test "$kde_use_profiling" = "yes"; then
+    KDE_CHECK_COMPILER_FLAG(pg,
+    [
+      CFLAGS="-pg $CFLAGS"
+      CXXFLAGS="-pg $CXXFLAGS"
+    ])
+  fi
+
+  if test "$kde_use_warnings" = "yes"; then
+      if test "$GCC" = "yes"; then
+        CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
+        case $host in
+          *-*-linux-gnu)	
+            CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
+            CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
+            KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
+            KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
+          ;;
+        esac
+        KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
+        KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
+        dnl ### FIXME: revert for KDE 4
+        KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
+     fi
+  fi
+
+  if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
+    CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
+  fi
+
+  AC_ARG_ENABLE(pch,
+     AC_HELP_STRING([--enable-pch],
+                    [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
+    [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
+ 
+  HAVE_GCC_VISIBILITY=0
+  AC_SUBST([HAVE_GCC_VISIBILITY])
+
+  if test "$GXX" = "yes"; then
+    gcc_no_reorder_blocks=NO
+    KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES])
+    if test $kde_use_debug_code != "no" && \
+       test $kde_use_debug_code != "full" && \
+       test "YES" = "$gcc_no_reorder_blocks" ; then
+          CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
+          CFLAGS="$CFLAGS -fno-reorder-blocks"
+    fi
+    KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
+    KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
+    KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
+    KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS=	)
+    ENABLE_PERMISSIVE_FLAG="-fpermissive"
+
+    if test "$kde_use_pch" = "yes"; then
+        AC_MSG_CHECKING(whether gcc supports precompiling c header files)
+        echo >conftest.h
+        if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
+            kde_gcc_supports_pch=yes
+            AC_MSG_RESULT(yes)
+        else
+            kde_gcc_supports_pch=no
+            AC_MSG_RESULT(no)
+        fi
+        if test "$kde_gcc_supports_pch" = "yes"; then
+            AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
+            if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
+                kde_gcc_supports_pch=yes
+                AC_MSG_RESULT(yes)
+            else
+                kde_gcc_supports_pch=no
+                AC_MSG_RESULT(no)
+            fi
+        fi
+        rm -f conftest.h conftest.h.gch
+    fi
+
+    KDE_CHECK_FOR_OPT_NOINLINE_MATCH
+    if test "x$kde_cv_opt_noinline_match" = "xno" ; then
+       CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
+    fi
+  fi
+  AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
+  if test "$CXX" = "KCC"; then
+    dnl unfortunately we currently cannot disable exception support in KCC
+    dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
+    dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
+    dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS=	)
+
+    if test "$kde_use_pch" = "yes"; then
+      dnl TODO: support --pch-dir!
+      KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
+      dnl the below works (but the dir must exist), but it's
+      dnl useless for a whole package.
+      dnl The are precompiled headers for each source file, so when compiling
+      dnl from scratch, it doesn't make a difference, and they take up
+      dnl around ~5Mb _per_ sourcefile.
+      dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
+      dnl   [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
+    fi
+    dnl this flag controls inlining. by default KCC inlines in optimisation mode
+    dnl all implementations that are defined inside the class {} declaration. 
+    dnl because of templates-compatibility with broken gcc compilers, this
+    dnl can cause excessive inlining. This flag limits it to a sane level
+    KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
+    KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
+    KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
+    KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
+    dnl Some source files are shared between multiple executables
+    dnl (or libraries) and some of those need template instantiations.
+    dnl In that case KCC needs to compile those sources with
+    dnl --one_instantiation_per_object.  To make it easy for us we compile
+    dnl _all_ objects with that flag (--one_per is a shorthand).
+    KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
+  fi
+  AC_SUBST(USE_EXCEPTIONS)
+  dnl obsolete macro - provided to keep things going
+  USE_RTTI=
+  AC_SUBST(USE_RTTI)
+
+  case "$host" in
+      *-*-irix*)  test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
+      *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
+      *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
+      *-*-solaris*) 
+        if test "$GXX" = yes; then
+          libstdcpp=`$CXX -print-file-name=libstdc++.so`
+          if test ! -f $libstdcpp; then
+             AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
+          fi
+        fi
+        ;;
+  esac
+
+  AC_VALIDIFY_CXXFLAGS
+
+  AC_PROG_CXXCPP
+
+  if test "$GCC" = yes; then
+     NOOPT_CFLAGS=-O0
+  fi
+  KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
+
+  AC_ARG_ENABLE(coverage,
+    AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
+      if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker="-lgcc"
+      elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker=""
+      else
+        AC_MSG_ERROR([coverage with your compiler is not supported])
+      fi
+      CFLAGS="$CFLAGS $ac_coverage_compiler"
+      CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
+      LDFLAGS="$LDFLAGS $ac_coverage_linker"
+    ])
+
+  AC_SUBST(NOOPT_CXXFLAGS)
+  AC_SUBST(NOOPT_CFLAGS)
+  AC_SUBST(ENABLE_PERMISSIVE_FLAG)
+
+  KDE_CHECK_NEW_LDFLAGS
+  KDE_CHECK_FINAL
+  KDE_CHECK_CLOSURE
+  KDE_CHECK_NMCHECK
+
+  ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
+])
+
+AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
+  [
+    AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
+      [
+        AC_LANG_SAVE
+        AC_LANG_CPLUSPLUS
+
+        safe_CXXFLAGS=$CXXFLAGS
+        safe_LDFLAGS=$LDFLAGS
+        CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
+        LDFLAGS="$LDFLAGS -shared -fPIC"
+
+        AC_TRY_LINK(
+        [
+          /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
+	  #include <string>
+          int some_function( void ) __attribute__ ((visibility("default")));
+          int some_function( void )
+          {
+	    std::string s("blafasel");
+            return 0;
+          }
+        ], [/* elvis is alive */],
+        kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
+
+        CXXFLAGS=$safe_CXXFLAGS
+        LDFLAGS=$safe_LDFLAGS
+        AC_LANG_RESTORE
+      ]
+    )
+
+    if test x$kde_cv_val_gcc_visibility_bug = xno; then
+      CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+    fi
+  ]
+)
+
+AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
+[
+  AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
+
+  AC_MSG_CHECKING([grepping for visibility push/pop in headers])
+
+  if test "x$GXX" = "xyes"; then
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    AC_EGREP_CPP(
+       [GCC visibility push],
+       [ #include <exception> 
+       ], 
+    [
+      AC_MSG_RESULT(yes)
+      kde_stdc_visibility_patched=yes ],
+    [ 
+      AC_MSG_RESULT(no)
+      AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for 
+                   visibility support. Disabling -fvisibility=hidden])
+
+      kde_stdc_visibility_patched=no ])
+
+    AC_LANG_RESTORE
+
+    kde_have_gcc_visibility=no
+    KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, 
+    [
+      kde_have_gcc_visibility=yes
+      dnl the whole toolchain is just a mess, gcc is just too buggy
+      dnl to handle STL with visibility enabled. Lets reconsider 
+      dnl when gcc 4.2 is out or when things get fixed in the compiler.
+      dnl Contact mueller at kde.org for details.
+      AC_ARG_ENABLE(gcc-hidden-visibility,
+        AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
+          [kde_have_gcc_visibility=$enableval],
+          [kde_have_gcc_visibility=no])
+
+      AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
+        [
+          AC_LANG_SAVE
+          AC_LANG_CPLUSPLUS
+
+          safe_CXXFLAGS=$CXXFLAGS
+          CXXFLAGS="$CXXFLAGS $all_includes"
+
+          AC_TRY_COMPILE(
+          [
+#include <qglobal.h>
+#if Q_EXPORT - 0 != 0
+/* if this compiles, then Q_EXPORT is undefined */
+/* if Q_EXPORT is nonempty, this will break compilation */
+#endif
+          ], [/* elvis is alive */],
+          kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
+
+          CXXFLAGS=$safe_CXXFLAGS
+          AC_LANG_RESTORE
+        ]
+      )
+
+      if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
+        CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+        KDE_CHECK_VISIBILITY_GCC_BUG
+        HAVE_GCC_VISIBILITY=1
+        AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
+      fi
+    ])
+  fi
+])
+
+AC_DEFUN([KDE_ADD_DEPENDENCIES],
+[
+   [A]M_DEPENDENCIES(CC)
+   [A]M_DEPENDENCIES(CXX)
+])
+
+dnl just a wrapper to clean up configure.in
+AC_DEFUN([KDE_PROG_LIBTOOL],
+[
+AC_REQUIRE([AC_CHECK_COMPILERS])
+AC_REQUIRE([AC_ENABLE_SHARED])
+AC_REQUIRE([AC_ENABLE_STATIC])
+
+AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_OBJEXT
+AC_EXEEXT
+
+AM_PROG_LIBTOOL
+AC_LIBTOOL_CXX
+
+LIBTOOL_SHELL="/bin/sh ./libtool"
+#  LIBTOOL="$LIBTOOL --silent"
+KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
+AC_SUBST(KDE_PLUGIN)
+
+# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
+KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
+AC_SUBST(KDE_CHECK_PLUGIN)
+
+# we patch configure quite some so we better keep that consistent for incremental runs 
+AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
+])
+
+AC_DEFUN([KDE_CHECK_LIB64],
+[
+    AC_ARG_ENABLE(libsuffix,
+        AC_HELP_STRING([--enable-libsuffix],
+            [/lib directory suffix (64,32,none,auto[=default])]),
+            kdelibsuff=$enableval, kdelibsuff="auto")
+    
+    if test "$kdelibsuff" = "auto"; then
+    
+cat > conftest.c << EOF
+#include <stdio.h>
+int main() {
+ return 0;
+}
+EOF
+        kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
+    s,.*/lib\([[^\/]]*\)/.*,\1, 
+    p 
+}'`
+	rm -rf conftest.*
+    fi	
+	
+    if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
+       kdelibsuff=
+    fi
+    if test -z "$kdelibsuff"; then
+        AC_MSG_RESULT([not using lib directory suffix])
+        AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
+    else
+        if test "$libdir" = '${exec_prefix}/lib'; then
+            libdir="$libdir${kdelibsuff}"
+            AC_SUBST([libdir], ["$libdir"])  dnl ugly hack for lib64 platforms
+        fi
+        AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
+        AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
+    fi
+])
+
+AC_DEFUN([KDE_CHECK_TYPES],
+[  AC_CHECK_SIZEOF(int, 4)dnl
+   AC_CHECK_SIZEOF(short)dnl
+  AC_CHECK_SIZEOF(long, 4)dnl
+  AC_CHECK_SIZEOF(char *, 4)dnl
+])dnl
+
+dnl Not used - kept for compat only?
+AC_DEFUN([KDE_DO_IT_ALL],
+[
+AC_CANONICAL_SYSTEM
+AC_ARG_PROGRAM
+AM_INIT_AUTOMAKE($1, $2)
+AM_DISABLE_LIBRARIES
+AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+AC_CHECK_COMPILERS
+KDE_PROG_LIBTOOL
+AM_KDE_WITH_NLS
+AC_PATH_KDE
+])
+
+AC_DEFUN([AC_CHECK_RPATH],
+[
+AC_MSG_CHECKING(for rpath)
+AC_ARG_ENABLE(rpath,
+      AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
+      USE_RPATH=$enableval, USE_RPATH=yes)
+
+if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
+
+  KDE_RPATH="-R \$(libdir)"
+
+  if test "$kde_libraries" != "$libdir"; then
+      KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
+  fi
+
+  if test -n "$qt_libraries"; then
+    KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
+  fi
+  dnl $x_libraries is set to /usr/lib in case
+  if test -n "$X_LDFLAGS"; then
+    X_RPATH="-R \$(x_libraries)"
+    KDE_RPATH="$KDE_RPATH $X_RPATH"
+  fi
+  if test -n "$KDE_EXTRA_RPATH"; then
+    KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
+  fi
+fi
+AC_SUBST(KDE_EXTRA_RPATH)
+AC_SUBST(KDE_RPATH)
+AC_SUBST(X_RPATH)
+AC_MSG_RESULT($USE_RPATH)
+])
+
+dnl Check for the type of the third argument of getsockname
+AC_DEFUN([AC_CHECK_SOCKLEN_T],
+[
+   AC_MSG_CHECKING(for socklen_t)
+   AC_CACHE_VAL(kde_cv_socklen_t,
+   [
+      AC_LANG_PUSH(C++)
+      kde_cv_socklen_t=no
+      AC_TRY_COMPILE([
+         #include <sys/types.h>
+         #include <sys/socket.h>
+      ],
+      [
+         socklen_t len;
+         getpeername(0,0,&len);
+      ],
+      [
+         kde_cv_socklen_t=yes
+         kde_cv_socklen_t_equiv=socklen_t
+      ])
+      AC_LANG_POP(C++)
+   ])
+   AC_MSG_RESULT($kde_cv_socklen_t)
+   if test $kde_cv_socklen_t = no; then
+      AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
+      AC_CACHE_VAL(kde_cv_socklen_t_equiv,
+      [
+         kde_cv_socklen_t_equiv=int
+         AC_LANG_PUSH(C++)
+         for t in int size_t unsigned long "unsigned long"; do
+            AC_TRY_COMPILE([
+               #include <sys/types.h>
+               #include <sys/socket.h>
+            ],
+            [
+               $t len;
+               getpeername(0,0,&len);
+            ],
+            [
+               kde_cv_socklen_t_equiv="$t"
+               break
+            ])
+         done
+         AC_LANG_POP(C++)
+      ])
+      AC_MSG_RESULT($kde_cv_socklen_t_equiv)
+   fi
+   AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
+                     [type to use in place of socklen_t if not defined])
+   AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
+                     [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
+])
+
+dnl This is a merge of some macros out of the gettext aclocal.m4
+dnl since we don't need anything, I took the things we need
+dnl the copyright for them is:
+dnl >
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl This Makefile.in is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+dnl >
+dnl for this file it is relicensed under LGPL
+
+AC_DEFUN([AM_KDE_WITH_NLS],
+  [
+    dnl If we use NLS figure out what method
+
+    AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
+        [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
+    AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+     if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
+        AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
+        GMSGFMT=":"
+      fi
+      MSGFMT=$GMSGFMT
+      AC_SUBST(GMSGFMT)
+      AC_SUBST(MSGFMT)
+
+      AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
+	[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+
+      dnl Test whether we really found GNU xgettext.
+      if test "$XGETTEXT" != ":"; then
+	dnl If it is no GNU xgettext we define it as : so that the
+	dnl Makefiles still can work.
+	if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+	  : ;
+	else
+	  AC_MSG_RESULT(
+	    [found xgettext programs is not GNU xgettext; ignore it])
+	  XGETTEXT=":"
+	fi
+      fi
+     AC_SUBST(XGETTEXT)
+
+  ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper at cygnus.com>, 1996.
+
+# serial 1
+# Stephan Kulow: I appended a _KDE against name conflicts
+
+dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+# serial 1
+
+AC_DEFUN([AM_LC_MESSAGES],
+  [if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
+    fi
+  fi])
+
+dnl From Jim Meyering.
+dnl FIXME: migrate into libit.
+
+AC_DEFUN([AM_FUNC_OBSTACK],
+[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
+ [AC_TRY_LINK([#include "obstack.h"],
+	      [struct obstack *mem;obstack_free(mem,(char *) 0)],
+	      am_cv_func_obstack=yes,
+	      am_cv_func_obstack=no)])
+ if test $am_cv_func_obstack = yes; then
+   AC_DEFINE(HAVE_OBSTACK)
+ else
+   LIBOBJS="$LIBOBJS obstack.o"
+ fi
+])
+
+dnl From Jim Meyering.  Use this if you use the GNU error.[ch].
+dnl FIXME: Migrate into libit
+
+AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
+[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
+ [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
+              am_cv_lib_error_at_line=yes,
+	      am_cv_lib_error_at_line=no)])
+ if test $am_cv_lib_error_at_line = no; then
+   LIBOBJS="$LIBOBJS error.o"
+ fi
+ AC_SUBST(LIBOBJS)dnl
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+# serial 1
+# Stephan Kulow: I put a KDE in it to avoid name conflicts
+
+AC_DEFUN([AM_KDE_GNU_GETTEXT],
+  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+   AC_REQUIRE([AC_PROG_RANLIB])dnl
+   AC_REQUIRE([AC_HEADER_STDC])dnl
+   AC_REQUIRE([AC_TYPE_OFF_T])dnl
+   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+   AC_REQUIRE([AC_FUNC_MMAP])dnl
+   AC_REQUIRE([AM_KDE_WITH_NLS])dnl
+   AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
+   AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next])
+
+   AC_MSG_CHECKING(for stpcpy)
+   AC_CACHE_VAL(kde_cv_func_stpcpy,
+   [
+   kde_safe_cxxflags=$CXXFLAGS
+   CXXFLAGS="-Werror"
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   AC_TRY_COMPILE([
+   #include <string.h>
+   ],
+   [
+   char buffer[200];
+   stpcpy(buffer, buffer);
+   ],
+   kde_cv_func_stpcpy=yes,
+   kde_cv_func_stpcpy=no)
+   AC_LANG_RESTORE
+   CXXFLAGS=$kde_safe_cxxflags
+   ])
+   AC_MSG_RESULT($kde_cv_func_stpcpy)
+   if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
+     AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
+   fi
+
+   AM_LC_MESSAGES
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       AC_MSG_CHECKING(for catalogs to be installed)
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       AC_MSG_RESULT($LINGUAS)
+     fi
+
+     dnl Construct list of names of catalog files to be constructed.
+     if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+  ])
+
+AC_DEFUN([AC_HAVE_XPM],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
+ test -z "$XPM_INCLUDE" && XPM_INCLUDE=
+
+ AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
+	xpm_test=$withval, xpm_test="yes")
+ if test "x$xpm_test" = xno; then
+   ac_cv_have_xpm=no
+ else
+   AC_MSG_CHECKING(for XPM)
+   AC_CACHE_VAL(ac_cv_have_xpm,
+   [
+    ac_save_ldflags="$LDFLAGS"
+    ac_save_cflags="$CFLAGS"
+    if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
+    else
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
+    fi
+    CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
+    test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <X11/xpm.h>],[],
+	ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
+    LDFLAGS="$ac_save_ldflags"
+    CFLAGS="$ac_save_cflags"
+   ])dnl
+
+  if test "$ac_cv_have_xpm" = no; then
+    AC_MSG_RESULT(no)
+    XPM_LDFLAGS=""
+    XPMINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
+    if test "$XPM_LDFLAGS" = ""; then
+       XPMLIB='-lXpm $(LIB_X11)'
+    else
+       XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
+    fi
+    if test "$XPM_INCLUDE" = ""; then
+       XPMINC=""
+    else
+       XPMINC="-I$XPM_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ AC_SUBST(XPMINC)
+ AC_SUBST(XPMLIB)
+])
+
+AC_DEFUN([AC_HAVE_DPMS],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
+ test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
+ DPMS_LIB=
+
+ AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
+	dpms_test=$withval, dpms_test="yes")
+ if test "x$dpms_test" = xno; then
+   ac_cv_have_dpms=no
+ else
+   AC_MSG_CHECKING(for DPMS)
+   dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
+   dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
+   AC_CACHE_VAL(ac_cv_have_dpms,
+   [
+    if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
+      AC_MSG_RESULT(no)
+      ac_cv_have_dpms="no"
+    else
+      ac_save_ldflags="$LDFLAGS"
+      ac_save_cflags="$CFLAGS"
+      ac_save_libs="$LIBS"
+      LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
+      LIBS="-lX11 -lXext $LIBSOCKET"
+      CFLAGS="$CFLAGS $X_INCLUDES"
+      test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+      AC_TRY_LINK([
+	  #include <X11/Xproto.h>
+	  #include <X11/X.h>
+	  #include <X11/Xlib.h>
+	  #include <X11/extensions/dpms.h>
+	  int foo_test_dpms()
+	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+	  ac_cv_have_dpms="yes", [
+              LIBS="-lXdpms $LIBS"
+              AC_TRY_LINK([
+	          #include <X11/Xproto.h>
+        	  #include <X11/X.h>
+        	  #include <X11/Xlib.h>
+        	  #include <X11/extensions/dpms.h>
+        	  int foo_test_dpms()
+        	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+        	  [
+                  ac_cv_have_dpms="-lXdpms"
+                  ],ac_cv_have_dpms="no")
+              ])
+      LDFLAGS="$ac_save_ldflags"
+      CFLAGS="$ac_save_cflags"
+      LIBS="$ac_save_libs"
+    fi
+   ])dnl
+
+  if test "$ac_cv_have_dpms" = no; then
+    AC_MSG_RESULT(no)
+    DPMS_LDFLAGS=""
+    DPMSINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
+    if test "$ac_cv_have_dpms" = "-lXdpms"; then
+       DPMS_LIB="-lXdpms"
+    fi
+    if test "$DPMS_LDFLAGS" = ""; then
+       DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
+    else
+       DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
+    fi
+    if test "$DPMS_INCLUDE" = ""; then
+       DPMSINC=""
+    else
+       DPMSINC="-I$DPMS_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ ac_save_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+ AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
+   [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSCapable,
+   AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
+   [#include <X11/Xlib.h>
+   #include <X11/extensions/dpms.h>])
+ AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
+   [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSInfo,
+   AC_DEFINE(HAVE_DPMSINFO_PROTO),,
+   [#include <X11/Xlib.h>
+   #include <X11/extensions/dpms.h>])
+ CFLAGS="$ac_save_cflags"
+ AC_SUBST(DPMSINC)
+ AC_SUBST(DPMSLIB)
+])
+
+AC_DEFUN([AC_HAVE_GL],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$GL_LDFLAGS" && GL_LDFLAGS=
+ test -z "$GL_INCLUDE" && GL_INCLUDE=
+
+ AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
+	gl_test=$withval, gl_test="yes")
+ if test "x$kde_use_qt_emb" = "xyes"; then
+   # GL and Qt Embedded is a no-go for now.
+   ac_cv_have_gl=no
+ elif test "x$gl_test" = xno; then
+   ac_cv_have_gl=no
+ else
+   AC_MSG_CHECKING(for GL)
+   AC_CACHE_VAL(ac_cv_have_gl,
+   [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_ldflags=$LDFLAGS
+    ac_save_cxxflags=$CXXFLAGS
+    ac_save_libs=$LIBS
+    LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
+    LIBS="$LIBS -lGL -lGLU"
+    test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
+    LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
+    CXXFLAGS="$CFLAGS $X_INCLUDES"
+    test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <GL/gl.h>
+#include <GL/glu.h>
+], [],
+	ac_cv_have_gl="yes", ac_cv_have_gl="no")
+    AC_LANG_RESTORE
+    LDFLAGS=$ac_save_ldflags
+    CXXFLAGS=$ac_save_cxxflags
+    LIBS=$ac_save_libs
+   ])dnl
+
+  if test "$ac_cv_have_gl" = "no"; then
+    AC_MSG_RESULT(no)
+    GL_LDFLAGS=""
+    GLINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
+    if test "$GL_LDFLAGS" = ""; then
+       GLLIB='-lGLU -lGL $(LIB_X11)'
+    else
+       GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
+    fi
+    if test "$GL_INCLUDE" = ""; then
+       GLINC=""
+    else
+       GLINC="-I$GL_INCLUDE"
+    fi
+    AC_MSG_RESULT($ac_cv_have_gl)
+    $1
+  fi
+ fi
+ AC_SUBST(GLINC)
+ AC_SUBST(GLLIB)
+])
+
+
+ dnl shadow password and PAM magic - maintained by ossi at kde.org
+
+AC_DEFUN([KDE_PAM], [
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+
+  want_pam=
+  AC_ARG_WITH(pam,
+    AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
+    [ if test "x$withval" = "xyes"; then
+        want_pam=yes
+        pam_service=kde
+      elif test "x$withval" = "xno"; then
+        want_pam=no
+      else
+        want_pam=yes
+        pam_service=$withval
+      fi
+    ], [ pam_service=kde ])
+
+  use_pam=
+  PAMLIBS=
+  if test "x$want_pam" != xno; then
+    AC_CHECK_LIB(pam, pam_start, [
+      AC_CHECK_HEADER(security/pam_appl.h,
+        [ pam_header=security/pam_appl.h ],
+        [ AC_CHECK_HEADER(pam/pam_appl.h,
+            [ pam_header=pam/pam_appl.h ],
+            [
+    AC_MSG_WARN([PAM detected, but no headers found!
+Make sure you have the necessary development packages installed.])
+            ]
+          )
+        ]
+      )
+    ], , $LIBDL)
+    if test -z "$pam_header"; then
+      if test "x$want_pam" = xyes; then
+        AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
+      fi
+    else
+      AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
+      PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
+      use_pam=yes
+
+      dnl darwin claims to be something special
+      if test "$pam_header" = "pam/pam_appl.h"; then
+        AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
+      fi
+
+      dnl test whether struct pam_message is const (Linux) or not (Sun)
+      AC_MSG_CHECKING(for const pam_message)
+      AC_EGREP_HEADER([struct pam_message], $pam_header,
+        [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
+                          [AC_MSG_RESULT([const: Linux-type PAM])],
+                          [AC_MSG_RESULT([nonconst: Sun-type PAM])
+                          AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
+                          )],
+        [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
+    fi
+  fi
+
+  AC_SUBST(PAMLIBS)
+])
+
+dnl DEF_PAM_SERVICE(arg name, full name, define name)
+AC_DEFUN([DEF_PAM_SERVICE], [
+  AC_ARG_WITH($1-pam,
+    AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE=$withval
+      else
+        AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
+You may want to enforce it by using --with-pam.])
+      fi
+    ], 
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE="$pam_service"
+      fi
+    ])
+    if test -n "$$3_PAM_SERVICE"; then
+      AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
+      AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
+    fi
+    AC_SUBST($3_PAM_SERVICE)
+])
+
+AC_DEFUN([KDE_SHADOWPASSWD], [
+  AC_REQUIRE([KDE_PAM])
+
+  AC_CHECK_LIB(shadow, getspent,
+    [ LIBSHADOW="-lshadow"
+      ac_use_shadow=yes
+    ],
+    [ dnl for UnixWare
+      AC_CHECK_LIB(gen, getspent, 
+        [ LIBGEN="-lgen"
+          ac_use_shadow=yes
+        ], 
+        [ AC_CHECK_FUNC(getspent, 
+            [ ac_use_shadow=yes ],
+            [ ac_use_shadow=no ])
+	])
+    ])
+  AC_SUBST(LIBSHADOW)
+  AC_SUBST(LIBGEN)
+  
+  AC_MSG_CHECKING([for shadow passwords])
+
+  AC_ARG_WITH(shadow,
+    AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
+    [ if test "x$withval" != "xno"; then
+        use_shadow=yes
+      else
+        use_shadow=no
+      fi
+    ], [
+      use_shadow="$ac_use_shadow"
+    ])
+
+  if test "x$use_shadow" = xyes; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
+  else
+    AC_MSG_RESULT(no)
+    LIBSHADOW=
+    LIBGEN=
+  fi
+
+  dnl finally make the relevant binaries setuid root, if we have shadow passwds.
+  dnl this still applies, if we could use it indirectly through pam.
+  if test "x$use_shadow" = xyes || 
+     ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
+      case $host in
+      *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
+	SETUIDFLAGS="-m 4755 -o root";;
+      *)
+	SETUIDFLAGS="-m 4755";;
+      esac
+  fi
+  AC_SUBST(SETUIDFLAGS)
+
+])
+
+AC_DEFUN([KDE_PASSWDLIBS], [
+  AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
+  AC_REQUIRE([KDE_PAM])
+  AC_REQUIRE([KDE_SHADOWPASSWD])
+
+  if test "x$use_pam" = "xyes"; then 
+    PASSWDLIBS="$PAMLIBS"
+  else
+    PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
+  fi
+
+  dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
+  dnl /etc/master.passwd holds the actual passwords.  /etc/master.passwd requires
+  dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
+  dnl may need to read /etc/master.passwd).
+  case $host in
+  *-*-freebsd*)
+    SETUIDFLAGS="-m 4755 -o root"
+    ;;
+  *)
+    ;;
+  esac
+
+  AC_SUBST(PASSWDLIBS)
+])
+
+AC_DEFUN([KDE_CHECK_LIBDL],
+[
+AC_CHECK_LIB(dl, dlopen, [
+LIBDL="-ldl"
+ac_cv_have_dlfcn=yes
+])
+
+AC_CHECK_LIB(dld, shl_unload, [
+LIBDL="-ldld"
+ac_cv_have_shload=yes
+])
+
+AC_SUBST(LIBDL)
+])
+
+AC_DEFUN([KDE_CHECK_DLOPEN],
+[
+KDE_CHECK_LIBDL
+AC_CHECK_HEADERS(dlfcn.h dl.h)
+if test "$ac_cv_header_dlfcn_h" = "no"; then
+  ac_cv_have_dlfcn=no
+fi
+
+if test "$ac_cv_header_dl_h" = "no"; then
+  ac_cv_have_shload=no
+fi
+
+dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
+dnl (MM)
+AC_ARG_ENABLE(dlopen,
+AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
+enable_dlopen=$enableval,
+enable_dlopen=yes)
+
+# override the user's opinion, if we know it better ;)
+if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
+  enable_dlopen=no
+fi
+
+if test "$ac_cv_have_dlfcn" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
+fi
+
+if test "$ac_cv_have_shload" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
+fi
+
+if test "$enable_dlopen" = no ; then
+  test -n "$1" && eval $1
+else
+  test -n "$2" && eval $2
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
+[
+KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
+KDE_PROG_LIBTOOL
+AC_MSG_CHECKING([dynamic loading])
+eval "`egrep '^build_libtool_libs=' libtool`"
+if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
+  dynamic_loading=yes
+  AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
+else
+  dynamic_loading=no
+fi
+AC_MSG_RESULT($dynamic_loading)
+if test "$dynamic_loading" = "yes"; then
+  $1
+else
+  $2
+fi
+])
+
+AC_DEFUN([KDE_ADD_INCLUDES],
+[
+if test -z "$1"; then
+  test_include="Pix.h"
+else
+  test_include="$1"
+fi
+
+AC_MSG_CHECKING([for libg++ ($test_include)])
+
+AC_CACHE_VAL(kde_cv_libgpp_includes,
+[
+kde_cv_libgpp_includes=no
+
+   for ac_dir in               \
+                               \
+     /usr/include/g++          \
+     /usr/include              \
+     /usr/unsupported/include  \
+     /opt/include              \
+     $extra_include            \
+     ; \
+   do
+     if test -r "$ac_dir/$test_include"; then
+       kde_cv_libgpp_includes=$ac_dir
+       break
+     fi
+   done
+])
+
+AC_MSG_RESULT($kde_cv_libgpp_includes)
+if test "$kde_cv_libgpp_includes" != "no"; then
+  all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
+fi
+])
+])
+
+AC_DEFUN([KDE_CHECK_LIBPTHREAD],
+[
+  dnl This code is here specifically to handle the
+  dnl various flavors of threading library on FreeBSD
+  dnl 4-, 5-, and 6-, and the (weird) rules around it.
+  dnl There may be an environment PTHREAD_LIBS that 
+  dnl specifies what to use; otherwise, search for it.
+  dnl -pthread is special cased and unsets LIBPTHREAD
+  dnl below if found.
+  LIBPTHREAD=""
+
+  if test -n "$PTHREAD_LIBS"; then
+    if test "x$PTHREAD_LIBS" = "x-pthread" ; then
+      LIBPTHREAD="PTHREAD"
+    else
+      PTHREAD_LIBS_save="$PTHREAD_LIBS"
+      PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
+      AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
+      KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
+          LIBPTHREAD="$PTHREAD_LIBS_save"])
+      PTHREAD_LIBS="$PTHREAD_LIBS_save"
+    fi
+  fi
+
+  dnl Is this test really needed, in the face of the Tru64 test below?
+  if test -z "$LIBPTHREAD"; then
+    AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
+  fi
+
+  dnl This is a special Tru64 check, see BR 76171 issue #18.
+  if test -z "$LIBPTHREAD" ; then
+    AC_MSG_CHECKING([for pthread_create in -lpthread])
+    kde_safe_libs=$LIBS
+    LIBS="$LIBS -lpthread"
+    AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
+        AC_MSG_RESULT(yes)
+        LIBPTHREAD="-lpthread"],[
+	AC_MSG_RESULT(no)])
+    LIBS=$kde_safe_libs
+  fi
+
+  dnl Un-special-case for FreeBSD.
+  if test "x$LIBPTHREAD" = "xPTHREAD" ; then
+    LIBPTHREAD=""
+  fi
+
+  AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
+[
+      USE_THREADS=""
+      if test -z "$LIBPTHREAD"; then
+        KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
+      fi
+
+    AH_VERBATIM(__svr_define, [
+#if defined(__SVR4) && !defined(__svr4__)
+#define __svr4__ 1
+#endif
+])
+    case $host_os in
+ 	solaris*)
+		KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
+                CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
+    		;;
+        freebsd*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
+                ;;
+        aix*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+                LIBPTHREAD="$LIBPTHREAD -lc_r"
+                ;;
+        linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+                if test "$CXX" = "KCC"; then
+                  CXXFLAGS="$CXXFLAGS --thread_safe"
+		  NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
+                fi
+                ;;
+	*)
+		;;
+    esac
+    AC_SUBST(USE_THREADS)
+    AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_THREADING],
+[
+  AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+  AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
+  dnl default is yes if libpthread is found and no if no libpthread is available
+  if test -z "$LIBPTHREAD"; then
+    if test -z "$USE_THREADS"; then
+      kde_check_threading_default=no
+    else
+      kde_check_threading_default=yes
+    fi
+  else
+    kde_check_threading_default=yes
+  fi
+  AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
+   kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
+  if test "x$kde_use_threading" = "xyes"; then
+    AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
+  fi
+])
+
+AC_DEFUN([KDE_TRY_LINK_PYTHON],
+[
+if test "$kde_python_link_found" = no; then
+
+if test "$1" = normal; then
+  AC_MSG_CHECKING(if a Python application links)
+else
+  AC_MSG_CHECKING(if Python depends on $2)
+fi
+
+AC_CACHE_VAL(kde_cv_try_link_python_$1,
+[
+kde_save_cflags="$CFLAGS"
+CFLAGS="$CFLAGS $PYTHONINC"
+kde_save_libs="$LIBS"
+LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
+kde_save_ldflags="$LDFLAGS"
+LDFLAGS="$LDFLAGS $PYTHONLIB"
+
+AC_TRY_LINK(
+[
+#include <Python.h>
+],[
+	PySys_SetArgv(1, 0);
+],
+	[kde_cv_try_link_python_$1=yes],
+	[kde_cv_try_link_python_$1=no]
+)
+CFLAGS="$kde_save_cflags"
+LIBS="$kde_save_libs"
+LDFLAGS="$kde_save_ldflags"
+])
+
+if test "$kde_cv_try_link_python_$1" = "yes"; then
+  AC_MSG_RESULT(yes)
+  kde_python_link_found=yes
+  if test ! "$1" = normal; then
+    LIBPYTHON="$LIBPYTHON $2"
+  fi
+  $3
+else
+  AC_MSG_RESULT(no)
+  $4
+fi
+
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_DIR],
+[
+AC_MSG_CHECKING([for Python directory])
+ 
+AC_CACHE_VAL(kde_cv_pythondir,
+[
+  if test -z "$PYTHONDIR"; then
+    kde_cv_pythondir=/usr/local
+  else
+    kde_cv_pythondir="$PYTHONDIR"
+  fi
+])
+ 
+AC_ARG_WITH(pythondir,
+AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
+[
+  ac_python_dir=$withval
+], ac_python_dir=$kde_cv_pythondir
+)
+ 
+AC_MSG_RESULT($ac_python_dir)
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
+[
+AC_REQUIRE([KDE_CHECK_LIBDL])
+AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
+
+if test -z "$1"; then
+  version="1.5"
+else
+  version="$1"
+fi
+
+AC_MSG_CHECKING([for Python$version])
+
+python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
+AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
+if test ! -r $python_incdir/Python.h; then
+  AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
+  python_incdir=$python_incdir/python$version
+  if test ! -r $python_incdir/Python.h; then
+    python_incdir=no
+  fi
+fi
+
+PYTHONINC=-I$python_incdir
+
+python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
+AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
+if test ! -r $python_libdir/libpython$version.so; then
+  AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
+  if test ! -r $python_libdir/libpython$version.a; then
+    AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
+    python_libdir=$python_libdir/python$version/config
+    if test ! -r $python_libdir/libpython$version.a; then
+      python_libdir=no
+    fi
+  fi
+fi
+
+PYTHONLIB=-L$python_libdir
+kde_orig_LIBPYTHON=$LIBPYTHON
+if test -z "$LIBPYTHON"; then
+  LIBPYTHON=-lpython$version
+fi
+
+AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
+python_moddir=$python_moddir/python$version
+if test ! -r $python_moddir/copy.py; then
+  python_moddir=no
+fi
+
+PYTHONMODDIR=$python_moddir
+
+AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
+
+if test x$python_incdir = xno ||  test x$python_libdir = xno ||  test x$python_moddir = xno; then
+   LIBPYTHON=$kde_orig_LIBPYTHON
+   test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
+   test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
+   $2
+else 
+  dnl Note: this test is very weak
+  kde_python_link_found=no
+  KDE_TRY_LINK_PYTHON(normal)
+  KDE_TRY_LINK_PYTHON(m, -lm)
+  KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
+  KDE_TRY_LINK_PYTHON(tcl, -ltcl)
+  KDE_TRY_LINK_PYTHON(db2, -ldb2)
+  KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
+  KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
+	[AC_MSG_WARN([it seems, Python depends on another library.
+    Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
+    and contact the authors to let them know about this problem])
+	])
+
+  LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
+  AC_SUBST(PYTHONINC)
+  AC_SUBST(PYTHONLIB)
+  AC_SUBST(LIBPYTHON)
+  AC_SUBST(PYTHONMODDIR)
+  AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_PYTHON],
+[
+  KDE_CHECK_PYTHON_INTERN("2.5",
+    [KDE_CHECK_PYTHON_INTERN("2.4",
+     [KDE_CHECK_PYTHON_INTERN("2.3", 
+       [KDE_CHECK_PYTHON_INTERN("2.2", 
+         [KDE_CHECK_PYTHON_INTERN("2.1", 
+           [KDE_CHECK_PYTHON_INTERN("2.0", 
+             [KDE_CHECK_PYTHON_INTERN($1, $2) ])
+           ])
+         ])
+       ])
+     ])
+  ])
+])
+
+AC_DEFUN([KDE_CHECK_STL],
+[
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
+
+    AC_MSG_CHECKING([if C++ programs can be compiled])
+    AC_CACHE_VAL(kde_cv_stl_works,
+    [
+      AC_TRY_COMPILE([
+#include <string>
+using namespace std;
+],[
+  string astring="Hallo Welt.";
+  astring.erase(0, 6); // now astring is "Welt"
+  return 0;
+], kde_cv_stl_works=yes,
+   kde_cv_stl_works=no)
+])
+
+   AC_MSG_RESULT($kde_cv_stl_works)
+
+   if test "$kde_cv_stl_works" = "yes"; then
+     # back compatible
+	 AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
+   else
+	 AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similar to libstdc++-dev.])
+   fi
+
+   CXXFLAGS="$ac_save_CXXFLAGS"
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([AC_FIND_QIMGIO],
+   [AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for qimgio])
+AC_CACHE_VAL(ac_cv_lib_qimgio,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+ac_save_CXXFLAGS="$CXXFLAGS"
+LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+AC_TRY_RUN(dnl
+[
+#include <qimageio.h>
+#include <qstring.h>
+int main() {
+		QString t = "hallo";
+		t.fill('t');
+		qInitImageIO();
+}
+],
+            ac_cv_lib_qimgio=yes,
+            ac_cv_lib_qimgio=no,
+	    ac_cv_lib_qimgio=no)
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
+  LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
+  AC_SUBST(LIBQIMGIO)
+else
+  AC_MSG_RESULT(not found)
+fi
+])
+
+AC_DEFUN([AM_DISABLE_LIBRARIES],
+[
+    AC_PROVIDE([AM_ENABLE_STATIC])
+    AC_PROVIDE([AM_ENABLE_SHARED])
+    enable_static=no
+    enable_shared=yes
+])
+
+
+AC_DEFUN([AC_CHECK_UTMP_FILE],
+[
+    AC_MSG_CHECKING([for utmp file])
+
+    AC_CACHE_VAL(kde_cv_utmp_file,
+    [
+    kde_cv_utmp_file=no
+
+    for ac_file in    \
+                      \
+	/var/run/utmp \
+	/var/adm/utmp \
+	/etc/utmp     \
+     ; \
+    do
+     if test -r "$ac_file"; then
+       kde_cv_utmp_file=$ac_file
+       break
+     fi
+    done
+    ])
+
+    if test "$kde_cv_utmp_file" != "no"; then
+	AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
+	$1
+	AC_MSG_RESULT($kde_cv_utmp_file)
+    else
+    	$2
+	AC_MSG_RESULT([non found])
+    fi
+])
+
+
+AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
+[
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
+TOPSUBDIRS=""
+
+if test ! -s $srcdir/subdirs; then
+  dnl Note: Makefile.common creates subdirs, so this is just a fallback
+  files=`cd $srcdir && ls -1`
+  dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
+  for i in $dirs; do
+    echo $i >> $srcdir/subdirs
+  done
+fi
+
+ac_topsubdirs=
+if test -s $srcdir/inst-apps; then
+  ac_topsubdirs="`cat $srcdir/inst-apps`"
+elif test -s $srcdir/subdirs; then
+  ac_topsubdirs="`cat $srcdir/subdirs`"
+fi
+
+for i in $ac_topsubdirs; do
+  AC_MSG_CHECKING([if $i should be compiled])
+  if test -d $srcdir/$i; then
+    install_it="yes"
+    for j in $DO_NOT_COMPILE; do
+      if test $i = $j; then
+        install_it="no"
+      fi
+    done
+  else
+    install_it="no"
+  fi
+  AC_MSG_RESULT($install_it)
+  vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
+  if test $install_it = "yes"; then
+    TOPSUBDIRS="$TOPSUBDIRS $i"
+    eval "$vari""_SUBDIR_included=yes"
+  else
+    eval "$vari""_SUBDIR_included=no"
+  fi
+done
+
+AC_SUBST(TOPSUBDIRS)
+])
+
+AC_DEFUN([KDE_CHECK_NAMESPACES],
+[
+AC_MSG_CHECKING(whether C++ compiler supports namespaces)
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_TRY_COMPILE([
+],
+[
+namespace Foo {
+  extern int i;
+  namespace Bar {
+    extern int i;
+  }
+}
+
+int Foo::i = 0;
+int Foo::Bar::i = 1;
+],[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_NAMESPACES)
+], [
+AC_MSG_RESULT(no)
+])
+AC_LANG_RESTORE
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure at kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_S_ISSOCK],
+[
+AC_MSG_CHECKING(for S_ISSOCK)
+AC_CACHE_VAL(ac_cv_have_s_issock,
+[
+AC_TRY_LINK(
+[
+#include <sys/stat.h>
+],
+[
+struct stat buff;
+int b = S_ISSOCK( buff.st_mode );
+],
+ac_cv_have_s_issock=yes,
+ac_cv_have_s_issock=no)
+])
+AC_MSG_RESULT($ac_cv_have_s_issock)
+if test "$ac_cv_have_s_issock" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
+fi
+
+AH_VERBATIM(_ISSOCK,
+[
+#ifndef HAVE_S_ISSOCK
+#define HAVE_S_ISSOCK
+#define S_ISSOCK(mode) (1==0)
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure at kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
+[
+AC_MSG_CHECKING(for MAXPATHLEN)
+AC_CACHE_VAL(ac_cv_maxpathlen,
+[
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <sys/param.h>
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+KDE_HELLO MAXPATHLEN
+
+EOF
+
+ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
+
+if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
+    ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
+else
+    ac_cv_maxpathlen=1024
+fi
+
+rm conftest.*
+
+])
+AC_MSG_RESULT($ac_cv_maxpathlen)
+AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
+])
+
+AC_DEFUN([KDE_CHECK_HEADER],
+[
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADER([$1], [$2], [$3], [$4])
+   AC_LANG_RESTORE
+   CPPFLAGS=$kde_safe_cppflags
+])
+
+AC_DEFUN([KDE_CHECK_HEADERS],
+[
+   AH_CHECK_HEADERS([$1])
+   AC_LANG_SAVE
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
+   CPPFLAGS=$kde_safe_cppflags
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_FAST_CONFIGURE],
+[
+  dnl makes configure fast (needs perl)
+  AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
+      with_fast_perl=$enableval, with_fast_perl=yes)
+])
+
+AC_DEFUN([KDE_CONF_FILES],
+[
+  val=
+  if test -f $srcdir/configure.files ; then
+    val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
+  fi
+  CONF_FILES=
+  if test -n "$val" ; then
+    for i in $val ; do
+      CONF_FILES="$CONF_FILES $i"
+    done
+  fi
+  AC_SUBST(CONF_FILES)
+])dnl
+
+dnl This sets the prefix, for arts and kdelibs
+dnl Do NOT use in any other module.
+dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
+AC_DEFUN([KDE_SET_PREFIX_CORE],
+[
+  unset CDPATH
+  dnl make $KDEDIR the default for the installation
+  AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+
+  if test "x$prefix" = "xNONE"; then
+    prefix=$ac_default_prefix
+    ac_configure_args="$ac_configure_args --prefix=$prefix"
+  fi
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  kde_libs_htmldir=$prefix/share/doc/HTML/
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+  kde_libs_prefix='$(prefix)'
+  kde_libs_htmldir='$(kde_htmldir)'
+  AC_SUBST(kde_libs_prefix)
+  AC_SUBST(kde_libs_htmldir)
+  KDE_FAST_CONFIGURE
+  KDE_CONF_FILES
+])
+
+
+AC_DEFUN([KDE_SET_PREFIX],
+[
+  unset CDPATH
+  dnl We can't give real code to that macro, only a value.
+  dnl It only matters for --help, since we set the prefix in this function anyway.
+  AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+  KDE_SET_DEFAULT_BINDIRS
+  if test "x$prefix" = "xNONE"; then
+    dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+    KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+  else
+    dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+    kde_save_PATH="$PATH"
+    PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+    KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+    PATH="$kde_save_PATH"
+  fi
+
+  kde_libs_prefix=`$KDECONFIG --prefix`
+  if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+       AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+                    This means it has been moved since you installed it.
+                    This won't work. Please recompile kdelibs for the new prefix.
+                    ])
+  fi
+  kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+
+  AC_MSG_CHECKING([where to install])
+  if test "x$prefix" = "xNONE"; then
+    prefix=$kde_libs_prefix
+    AC_MSG_RESULT([$prefix (as returned by kde-config)])
+  else
+    dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+    given_prefix=$prefix
+    AC_MSG_RESULT([$prefix (as requested)])
+  fi
+
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+  AC_SUBST(KDECONFIG)
+  AC_SUBST(kde_libs_prefix)
+  AC_SUBST(kde_libs_htmldir)
+
+  KDE_FAST_CONFIGURE
+  KDE_CONF_FILES
+])
+
+pushdef([AC_PROG_INSTALL],
+[
+  dnl our own version, testing for a -p flag
+  popdef([AC_PROG_INSTALL])
+  dnl as AC_PROG_INSTALL works as it works we first have
+  dnl to save if the user didn't specify INSTALL, as the
+  dnl autoconf one overwrites INSTALL and we have no chance to find
+  dnl out afterwards
+  test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
+  test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
+  test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
+  AC_PROG_INSTALL
+
+  if test -z "$kde_save_INSTALL_given" ; then
+    # OK, user hasn't given any INSTALL, autoconf found one for us
+    # now we test, if it supports the -p flag
+    AC_MSG_CHECKING(for -p flag to install)
+    rm -f confinst.$$.* > /dev/null 2>&1
+    echo "Testtest" > confinst.$$.orig
+    ac_res=no
+    if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
+      if test -f confinst.$$.new ; then
+        # OK, -p seems to do no harm to install
+	INSTALL="${INSTALL} -p"
+	ac_res=yes
+      fi
+    fi
+    rm -f confinst.$$.*
+    AC_MSG_RESULT($ac_res)
+  fi
+  dnl the following tries to resolve some signs and wonders coming up
+  dnl with different autoconf/automake versions
+  dnl e.g.:
+  dnl  *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
+  dnl   and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
+  dnl   it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
+  dnl  *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
+  dnl   INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
+  dnl   install- at DIR@PROGRAMS targets to explicitly use that flag
+  dnl  *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
+  dnl   INSTALL_SCRIPT, which breaks with automake <= 1.4
+  dnl  *autoconf >2.13 (since 10.Apr 1999) has not that failure
+  dnl  *sometimes KDE does not use the install- at DIR@PROGRAM targets from
+  dnl   automake (due to broken Makefile.am or whatever) to install programs,
+  dnl   and so does not see the -s flag in automake > 1.4
+  dnl to clean up that mess we:
+  dnl  +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
+  dnl   which cleans KDE's program with automake > 1.4;
+  dnl  +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
+  dnl   with automake<=1.4
+  dnl  note that dues to this sometimes two '-s' flags are used (if KDE
+  dnl   properly uses install- at DIR@PROGRAMS, but I don't care
+  dnl
+  dnl And to all this comes, that I even can't write in comments variable
+  dnl  names used by automake, because it is so stupid to think I wanted to
+  dnl  _use_ them, therefor I have written A_M_... instead of AM_
+  dnl hmm, I wanted to say something ... ahh yes: Arghhh.
+
+  if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
+    INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
+  fi
+  if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
+    INSTALL_SCRIPT='${INSTALL}'
+  fi
+])dnl
+
+AC_DEFUN([KDE_LANG_CPLUSPLUS],
+[AC_LANG_CPLUSPLUS
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
+])
+
+pushdef([AC_LANG_CPLUSPLUS],
+[popdef([AC_LANG_CPLUSPLUS])
+KDE_LANG_CPLUSPLUS
+])
+
+AC_DEFUN([KDE_CHECK_LONG_LONG],
+[
+AC_MSG_CHECKING(for long long)
+AC_CACHE_VAL(kde_cv_c_long_long,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  AC_TRY_LINK([], [
+  long long foo = 0;
+  foo = foo+1;
+  ],
+  kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
+  AC_LANG_RESTORE
+])
+AC_MSG_RESULT($kde_cv_c_long_long)
+if test "$kde_cv_c_long_long" = yes; then
+   AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_LIB],
+[
+     kde_save_LDFLAGS="$LDFLAGS"
+     dnl AC_CHECK_LIB modifies LIBS, so save it here
+     kde_save_LIBS="$LIBS"
+     LDFLAGS="$LDFLAGS $all_libraries"
+     case $host_os in
+      aix*) LDFLAGS="-brtl $LDFLAGS"
+	test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
+	;;
+     esac
+     AC_CHECK_LIB($1, $2, $3, $4, $5)
+     LDFLAGS="$kde_save_LDFLAGS"
+     LIBS="$kde_save_LIBS"
+])
+
+AC_DEFUN([KDE_JAVA_PREFIX],
+[
+	dir=`dirname "$1"`
+	base=`basename "$1"`
+	list=`ls -1 $dir 2> /dev/null`
+	for entry in $list; do 
+		if test -d $dir/$entry/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/bin"
+				;;
+			esac
+		elif test -d $dir/$entry/jre/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/jre/bin"
+				;;
+			esac
+		fi
+	done
+])
+
+dnl KDE_CHEC_JAVA_DIR(onlyjre)
+AC_DEFUN([KDE_CHECK_JAVA_DIR],
+[
+
+AC_ARG_WITH(java,
+AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
+[  ac_java_dir=$withval
+], ac_java_dir=""
+)
+
+AC_MSG_CHECKING([for Java])
+
+dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
+if test "x$ac_java_dir" = "xno"; then
+   kde_java_bindir=no
+   kde_java_includedir=no
+   kde_java_libjvmdir=no
+   kde_java_libgcjdir=no
+   kde_java_libhpidir=no
+else
+  if test "x$ac_java_dir" = "x"; then
+     
+     
+      dnl No option set -> collect list of candidate paths
+      if test -n "$JAVA_HOME"; then
+        KDE_JAVA_PREFIX($JAVA_HOME)
+      fi
+      KDE_JAVA_PREFIX(/usr/j2se)
+      KDE_JAVA_PREFIX(/usr/lib/j2se)
+      KDE_JAVA_PREFIX(/usr/j*dk*)
+      KDE_JAVA_PREFIX(/usr/lib/j*dk*)
+      KDE_JAVA_PREFIX(/opt/j*sdk*)
+      KDE_JAVA_PREFIX(/usr/lib/java*)
+      KDE_JAVA_PREFIX(/usr/java*)
+      KDE_JAVA_PREFIX(/usr/java/j*dk*)
+      KDE_JAVA_PREFIX(/usr/java/j*re*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
+      KDE_JAVA_PREFIX(/opt/java*)
+
+      kde_cv_path="NONE"
+      kde_save_IFS=$IFS
+      IFS=':'
+      for dir in $PATH; do
+	  if test -d "$dir"; then
+	      javadirs="$javadirs $dir"
+	  fi
+      done
+      IFS=$kde_save_IFS
+      jredirs=
+
+      dnl Now javadirs contains a list of paths that exist, all ending with bin/
+      for dir in $javadirs; do
+          dnl Check for the java executable
+	  if test -x "$dir/java"; then
+	      sane_path=$(cd $dir; /bin/pwd)
+	      dnl And also check for a libjvm.so somewhere under there
+	      dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
+              if test "$sane_path" != "/usr/bin"; then
+                  libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+		  if test ! -f $libjvmdir/libjvm.so; then continue; fi
+		  jredirs="$jredirs $dir"
+	      fi
+	  fi
+      done
+
+      dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
+      JAVAC=
+      JAVA=
+      kde_java_bindir=no
+      for dir in $jredirs; do
+	  JAVA="$dir/java"
+	  kde_java_bindir=$dir
+	  if test -x "$dir/javac"; then
+		JAVAC="$dir/javac"
+                break
+	  fi
+      done
+
+      if test -n "$JAVAC"; then
+          dnl this substitution might not work - well, we test for jni.h below
+          kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
+      else
+          kde_java_includedir=no
+      fi
+  else
+    dnl config option set
+    kde_java_bindir=$ac_java_dir/bin
+    if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
+	kde_java_includedir=no
+    else
+        kde_java_includedir=$ac_java_dir/include
+    fi
+  fi
+fi
+
+dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
+if test "x$kde_java_bindir" != "xno"; then
+
+  dnl Look for libjvm.so
+  kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+  dnl Look for libgcj.so
+  kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
+  dnl Look for libhpi.so and avoid green threads
+  kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+  dnl Now check everything's fine under there
+  dnl the include dir is our flag for having the JDK
+  if test -d "$kde_java_includedir"; then
+    if test ! -x "$kde_java_bindir/javac"; then
+      AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
+    fi
+    if test ! -x "$kde_java_bindir/javah"; then
+      AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -x "$kde_java_bindir/jar"; then
+      AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -r "$kde_java_includedir/jni.h"; then
+      AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
+    fi
+
+    jni_includes="-I$kde_java_includedir"
+    dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
+    dnl and under linux here.. 
+    
+    dnl not needed for gcj
+
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
+      test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
+      test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
+    fi
+
+  else
+    JAVAC=
+    jni_includes=
+  fi
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+     if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
+        AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
+     fi 
+  else
+     if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
+        AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
+     fi 
+  fi
+
+  if test ! -x "$kde_java_bindir/java"; then
+      AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+  fi
+
+  dnl not needed for gcj compile
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+      if test ! -r "$kde_java_libhpidir/libhpi.so"; then
+        AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
+      fi
+  fi
+
+  if test -n "$jni_includes"; then
+    dnl Check for JNI version
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_cxxflags_safe="$CXXFLAGS"
+    CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
+
+    AC_TRY_COMPILE([
+  #include <jni.h>
+	      ],
+	      [
+  #ifndef JNI_VERSION_1_2
+  Syntax Error
+  #endif
+	      ],[ kde_jni_works=yes ],
+	      [ kde_jni_works=no ])
+
+    if test $kde_jni_works = no; then
+      AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
+		    You need to have Java Development Kit (JDK) version 1.2. 
+
+		    Use --with-java to specify another location.
+		    Use --without-java to configure without java support.
+		    Or download a newer JDK and try again. 
+		    See e.g. http://java.sun.com/products/jdk/1.2 ])
+    fi
+
+    CXXFLAGS="$ac_cxxflags_safe"    
+    AC_LANG_RESTORE
+
+    dnl All tests ok, inform and subst the variables
+
+    JAVAC=$kde_java_bindir/javac
+    JAVAH=$kde_java_bindir/javah
+    JAR=$kde_java_bindir/jar
+    AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
+    else
+      JVMLIBS="-L$kde_java_libgcjdir -lgcj"
+    fi
+    AC_MSG_RESULT([java JDK in $kde_java_bindir])
+
+  else
+      AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+      AC_MSG_RESULT([java JRE in $kde_java_bindir])
+  fi
+elif test -d "/Library/Java/Home"; then
+  kde_java_bindir="/Library/Java/Home/bin"
+  jni_includes="-I/Library/Java/Home/include"
+
+  JAVAC=$kde_java_bindir/javac
+  JAVAH=$kde_java_bindir/javah
+  JAR=$kde_java_bindir/jar
+  JVMLIBS="-Wl,-framework,JavaVM"
+
+  AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+  AC_MSG_RESULT([Apple Java Framework])
+else
+  AC_MSG_RESULT([none found])
+fi
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+AC_SUBST(JVMLIBS)
+AC_SUBST(jni_includes)
+
+# for backward compat
+kde_cv_java_includedir=$kde_java_includedir
+kde_cv_java_bindir=$kde_java_bindir
+])
+
+dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
+dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
+dnl big packages, m4_foreach is dog-slow.  So use our own version of
+dnl it.  (matz at kde.org)
+m4_define([mm_foreach],
+[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
+m4_define([mm_car], [[$1]])
+m4_define([mm_car2], [[$@]])
+m4_define([_mm_foreach],
+[m4_if(m4_quote($2), [], [],
+       [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
+                                                   mm_car2(m4_shift($2)),
+                                                   [$3])])])
+m4_define([AC_FOREACH],
+[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
+
+AC_DEFUN([KDE_NEED_FLEX],
+[
+kde_libs_safe=$LIBS
+LIBS="$LIBS $USER_LDFLAGS"
+AM_PROG_LEX
+LIBS=$kde_libs_safe
+if test -z "$LEXLIB"; then
+    AC_MSG_ERROR([You need to have flex installed.])
+fi
+AC_SUBST(LEXLIB)
+])
+
+AC_DEFUN([AC_PATH_QTOPIA],
+[
+  dnl TODO: use AC_CACHE_VAL
+
+  if test -z "$1"; then
+    qtopia_minver_maj=1
+    qtopia_minver_min=5
+    qtopia_minver_pat=0
+  else
+    qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+    qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+    qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+  fi
+
+  qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+  qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
+
+  AC_REQUIRE([AC_PATH_QT])
+
+  AC_MSG_CHECKING([for Qtopia])
+
+  LIB_QTOPIA="-lqpe"
+  AC_SUBST(LIB_QTOPIA)
+
+  kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
+
+  ac_qtopia_incdir=NO
+
+  AC_ARG_WITH(qtopia-dir,
+              AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
+              [  ac_qtopia_incdir="$withval"/include] ) 
+  
+  qtopia_incdirs=""
+  for dir in $kde_qtopia_dirs; do
+    qtopia_incdirs="$qtopia_incdirs $dir/include"
+  done
+
+  if test ! "$ac_qtopia_incdir" = "NO"; then
+    qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
+  fi
+
+  qtopia_incdir=""
+  AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
+  ac_qtopia_incdir="$qtopia_incdir"
+
+  if test -z "$qtopia_incdir"; then
+    AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
+  fi
+
+  qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
+  qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
+  qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
+
+  qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
+  qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
+  if test "$qtopia_ver" -lt "$qtopia_minver"; then
+    AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
+is required.])
+  fi
+
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+
+  ac_cxxflags_safe="$CXXFLAGS"
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
+  LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+  LIBS="$LIBS $LIB_QTOPIA $LIBQT"
+
+  cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qpe/qpeapplication.h>
+#include <qpe/version.h>
+
+int main( int argc, char **argv )
+{
+    QPEApplication app( argc, argv );
+    return 0;
+}
+EOF
+
+  if AC_TRY_EVAL(ac_link) && test -s conftest; then
+    rm -f conftest*
+  else
+    rm -f conftest*
+    AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
+the end of config.log])
+  fi
+
+  CXXFLAGS="$ac_cxxflags_safe"
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  AC_LANG_RESTORE
+
+  QTOPIA_INCLUDES="-I$qtopia_incdir"
+  AC_SUBST(QTOPIA_INCLUDES)
+
+  AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
+])
+
+
+AC_DEFUN([KDE_INIT_DOXYGEN],
+[
+AC_MSG_CHECKING([for Qt docs])
+kde_qtdir=
+if test "${with_qt_dir+set}" = set; then
+  kde_qtdir="$with_qt_dir"
+fi
+
+AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
+AC_MSG_RESULT($QTDOCDIR)
+
+AC_SUBST(QTDOCDIR)
+
+KDE_FIND_PATH(dot, DOT, [], [])
+if test -n "$DOT"; then
+  KDE_HAVE_DOT="YES"
+else
+  KDE_HAVE_DOT="NO"
+fi
+AC_SUBST(KDE_HAVE_DOT)
+KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
+AC_SUBST(DOXYGEN)
+
+DOXYGEN_PROJECT_NAME="$1"
+DOXYGEN_PROJECT_NUMBER="$2"
+AC_SUBST(DOXYGEN_PROJECT_NAME)
+AC_SUBST(DOXYGEN_PROJECT_NUMBER)
+
+KDE_HAS_DOXYGEN=no
+if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
+  KDE_HAS_DOXYGEN=yes
+fi
+AC_SUBST(KDE_HAS_DOXYGEN)
+
+])
+
+
+AC_DEFUN([AC_FIND_BZIP2],
+[
+AC_MSG_CHECKING([for bzDecompress in libbz2])
+AC_CACHE_VAL(ac_cv_lib_bzip2,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#define BZ_NO_STDIO
+#include<bzlib.h>
+],
+            [ bz_stream s; (void) bzDecompress(&s); ],
+            eval "ac_cv_lib_bzip2='-lbz2'",
+            eval "ac_cv_lib_bzip2=no")
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+AC_MSG_RESULT($ac_cv_lib_bzip2)
+
+if test ! "$ac_cv_lib_bzip2" = no; then
+  BZIP2DIR=bzip2
+
+  LIBBZ2="$ac_cv_lib_bzip2"
+  AC_SUBST(LIBBZ2)
+
+else
+
+   cxx_shared_flag=
+   ld_shared_flag=
+   KDE_CHECK_COMPILER_FLAG(shared, [
+	ld_shared_flag="-shared"
+   ])
+   KDE_CHECK_COMPILER_FLAG(fPIC, [
+        cxx_shared_flag="-fPIC"
+   ])
+
+   AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
+   AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
+   [
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   kde_save_LIBS="$LIBS"
+   LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
+   kde_save_CXXFLAGS="$CXXFLAGS"
+   CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
+
+   AC_TRY_LINK(dnl
+   [
+   #define BZ_NO_STDIO
+   #include<bzlib.h>
+   ],
+               [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
+               eval "ac_cv_lib_bzip2_prefix='-lbz2'",
+               eval "ac_cv_lib_bzip2_prefix=no")
+   LIBS="$kde_save_LIBS"
+   CXXFLAGS="$kde_save_CXXFLAGS"
+   AC_LANG_RESTORE
+   ])dnl
+
+   AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
+   
+   if test ! "$ac_cv_lib_bzip2_prefix" = no; then
+     BZIP2DIR=bzip2
+    
+     LIBBZ2="$ac_cv_lib_bzip2_prefix"
+     AC_SUBST(LIBBZ2)
+
+     AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
+   dnl else, we just ignore this
+   fi
+
+fi
+AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the SSL headers and libraries.
+dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
+dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([KDE_CHECK_SSL],
+[
+LIBSSL="-lssl -lcrypto"
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+ac_ssl_includes=NO ac_ssl_libraries=NO
+ssl_libraries=""
+ssl_includes=""
+AC_ARG_WITH(ssl-dir,
+    AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
+    [  ac_ssl_includes="$withval"/include
+       ac_ssl_libraries="$withval"/lib$kdelibsuff
+    ])
+
+want_ssl=yes
+AC_ARG_WITH(ssl,
+    AC_HELP_STRING([--without-ssl],[disable SSL checks]),
+    [want_ssl=$withval])
+
+if test $want_ssl = yes; then
+
+AC_MSG_CHECKING(for OpenSSL)
+
+AC_CACHE_VAL(ac_cv_have_ssl,
+[#try to guess OpenSSL locations
+  
+  ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
+  ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
+  AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
+  ac_ssl_includes="$ssl_incdir"
+
+  ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
+  if test ! "$ac_ssl_libraries" = "NO"; then
+    ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
+  fi
+
+  test=NONE
+  ssl_libdir=NONE
+  for dir in $ssl_libdirs; do
+    try="ls -1 $dir/libssl*"
+    if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+
+  ac_ssl_libraries="$ssl_libdir"
+
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
+  LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
+
+  AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
+  ac_ssl_rsaref="yes"
+  ,
+  ac_ssl_rsaref="no"
+  )
+
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
+    have_ssl=no
+  else
+    have_ssl=yes;
+  fi
+
+  ])
+
+  eval "$ac_cv_have_ssl"
+
+  AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
+
+  AC_MSG_CHECKING([whether OpenSSL uses rsaref])
+  AC_MSG_RESULT($ac_ssl_rsaref)
+
+  AC_MSG_CHECKING([for easter eggs])
+  AC_MSG_RESULT([none found])
+
+else
+  have_ssl=no
+fi
+
+if test "$have_ssl" = yes; then
+  AC_MSG_CHECKING(for OpenSSL version)
+  dnl Check for SSL version
+  AC_CACHE_VAL(ac_cv_ssl_version,
+  [
+
+    cat >conftest.$ac_ext <<EOF
+#include <openssl/opensslv.h>
+#include <stdio.h>
+    int main() {
+ 
+#ifndef OPENSSL_VERSION_NUMBER
+      printf("ssl_version=\\"error\\"\n");
+#else
+      if (OPENSSL_VERSION_NUMBER < 0x00906000)
+        printf("ssl_version=\\"old\\"\n");
+      else
+        printf("ssl_version=\\"ok\\"\n");
+#endif
+     return (0);
+    }
+EOF
+
+    ac_save_CPPFLAGS=$CPPFLAGS
+    if test "$ac_ssl_includes" != "/usr/include"; then
+        CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
+    fi
+
+    if AC_TRY_EVAL(ac_link); then 
+
+      if eval `./conftest 2>&5`; then
+        if test $ssl_version = error; then
+          AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
+        else
+          if test $ssl_version = old; then
+            AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
+            have_ssl=no
+          fi
+        fi
+        ac_cv_ssl_version="ssl_version=$ssl_version"
+      else
+        AC_MSG_ERROR([Your system couldn't run a small SSL test program.
+        Check config.log, and if you can't figure it out, send a mail to 
+        David Faure <faure at kde.org>, attaching your config.log])
+      fi
+
+    else
+      AC_MSG_ERROR([Your system couldn't link a small SSL test program.
+      Check config.log, and if you can't figure it out, send a mail to 
+      David Faure <faure at kde.org>, attaching your config.log])
+    fi 
+    CPPFLAGS=$ac_save_CPPFLAGS
+
+  ])
+
+  eval "$ac_cv_ssl_version"
+  AC_MSG_RESULT($ssl_version)
+fi
+
+if test "$have_ssl" != yes; then
+  LIBSSL="";
+else
+  AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
+  ac_cv_have_ssl="have_ssl=yes \
+    ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
+  
+  
+  ssl_libraries="$ac_ssl_libraries"
+  ssl_includes="$ac_ssl_includes"
+
+  if test "$ac_ssl_rsaref" = yes; then
+    LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" 
+  fi
+
+  if test $ssl_version = "old"; then
+    AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
+  fi
+fi
+
+SSL_INCLUDES=
+
+if test "$ssl_includes" = "/usr/include"; then
+  if test -f /usr/kerberos/include/krb5.h; then
+	SSL_INCLUDES="-I/usr/kerberos/include"
+  fi
+elif test  "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
+  SSL_INCLUDES="-I$ssl_includes"
+fi
+
+if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
+ SSL_LDFLAGS=""
+else
+ SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
+fi
+
+AC_SUBST(SSL_INCLUDES)
+AC_SUBST(SSL_LDFLAGS)
+AC_SUBST(LIBSSL)
+])
+
+AC_DEFUN([KDE_CHECK_STRLCPY],
+[
+  AC_REQUIRE([AC_CHECK_STRLCAT])
+  AC_REQUIRE([AC_CHECK_STRLCPY])
+  AC_CHECK_SIZEOF(size_t)
+  AC_CHECK_SIZEOF(unsigned long)
+
+  AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
+  AC_TRY_COMPILE(,[
+    #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
+       choke me
+    #endif
+    ],AC_MSG_RESULT([yes]),[
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([
+       Apparently on your system our assumption sizeof size_t == sizeof unsigned long 
+       does not apply. Please mail kde-devel at kde.org with a description of your system!
+      ])
+  ])
+])
+
+AC_DEFUN([KDE_CHECK_BINUTILS],
+[
+  AC_MSG_CHECKING([if ld supports unversioned version maps])
+
+  kde_save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+  echo "{ local: extern \"C++\" { foo }; };" > conftest.map
+  AC_TRY_LINK([int foo;],
+[
+#ifdef __INTEL_COMPILER
+icc apparently does not support libtools version-info and version-script
+at the same time. Dunno where the bug is, but until somebody figured out,
+better disable the optional version scripts.
+#endif
+
+  foo = 42;
+], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
+  LDFLAGS="$kde_save_LDFLAGS"
+  rm -f conftest.map
+  AM_CONDITIONAL(include_VERSION_SCRIPT, 
+    [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
+
+  AC_MSG_RESULT($kde_supports_versionmaps)
+])
+
+AC_DEFUN([AM_PROG_OBJC],[
+AC_CHECK_PROGS(OBJC, gcc, gcc)
+test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
+if test "x${OBJCFLAGS-unset}" = xunset; then
+   OBJCFLAGS="-g -O2"
+fi
+AC_SUBST(OBJCFLAGS)
+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
+])
+
+AC_DEFUN([KDE_CHECK_PERL],
+[
+	KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
+		    AC_MSG_ERROR([No Perl found in your $PATH.
+We need perl to generate some code.])
+	])
+    AC_SUBST(PERL)
+])
+
+AC_DEFUN([KDE_CHECK_LARGEFILE],
+[
+AC_SYS_LARGEFILE
+if test "$ac_cv_sys_file_offset_bits" != no; then
+  CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
+fi
+
+if test "x$ac_cv_sys_large_files" != "xno"; then
+  CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
+fi
+
+])
+
+dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
+dnl which allows to search for libs that get installed into the KDE prefix.
+dnl
+dnl Syntax:  KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
+dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
+dnl also defines KSTUFF_PKG_ERRORS on error
+AC_DEFUN([KDE_PKG_CHECK_MODULES], [
+
+   PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+   if test "$prefix" != "$kde_libs_prefix"; then
+       PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+   fi
+   export PKG_CONFIG_PATH
+   PKG_CHECK_MODULES([$1],[$2],[$3],[$4])
+])
+
+
+dnl Check for PIE support in the compiler and linker
+AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
+[
+  AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
+  [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    safe_CXXFLAGS=$CXXFLAGS
+    safe_LDFLAGS=$LDFLAGS
+    CXXFLAGS="$CXXFLAGS -fPIE"
+    LDFLAGS="$LDFLAGS -pie"
+
+    AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
+
+    CXXFLAGS=$safe_CXXFLAGS
+    LDFLAGS=$safe_LDFLAGS
+    AC_LANG_RESTORE
+  ])
+
+  AC_MSG_CHECKING(if enabling -pie/fPIE support)
+
+  AC_ARG_ENABLE(pie,
+    AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
+      [kde_has_pie_support=$enableval],
+      [kde_has_pie_support=detect])
+
+  if test "$kde_has_pie_support" = "detect"; then
+    kde_has_pie_support=$kde_cv_val_pie_support
+  fi
+
+  AC_MSG_RESULT([$kde_has_pie_support])
+
+  KDE_USE_FPIE=""
+  KDE_USE_PIE=""
+
+  AC_SUBST([KDE_USE_FPIE])
+  AC_SUBST([KDE_USE_PIE])
+
+  if test "$kde_has_pie_support" = "yes"; then
+    KDE_USE_FPIE="-fPIE"
+    KDE_USE_PIE="-pie"
+  fi
+])
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LINUX_64_MODE="32"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      LINUX_64_MODE="64"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  testring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+ *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+	       = "XX$testring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$testring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      testring=$testring$testring
+    done
+    testring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_unknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+    
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac  
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && test "X$CXX" != "Xno"; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+  
+mingw* | pw32*)
+  # win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='win32_libid'
+  ;;
+
+darwin* | rhapsody*)
+  # this will be overwritten by pass_all, but leave it in just in case
+  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  case "$host_os" in
+  rhapsody* | darwin1.[[012]])
+    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+    ;;
+  *) # Darwin 1.3 on
+    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+    ;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+  irix5* | nonstopux*)
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case $LD in
+    *-32|*"-32 ") libmagic=32-bit;;
+    *-n32|*"-n32 ") libmagic=N32;;
+    *-64|*"-64 ") libmagic=64-bit;;
+    *) libmagic=never-match;;
+    esac
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+    ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  case $host_cpu in
+  alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+  arm* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+  else
+    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  # this will be overridden with pass_all, but let us keep it just in case
+  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=/lib/libc.so
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!).  If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+    ;;
+  esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
+  else
+    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+  darwin* | rhapsody*)
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.[012])
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    output_verbose_link_cmd='echo'
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi  
+    ;;  
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      # KDE requires run time linking.  Make it the default.
+      aix_use_runtimelinking=yes
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+      esac
+      shared_flag='-shared'
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='-qmkshrobj ${wl}-G'
+	else
+	  shared_flag='-qmkshrobj'
+	fi
+      fi
+    fi
+
+    # Let the compiler handle the export list.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+
+  darwin* | rhapsody*)
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.[012])
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    lt_int_apple_cc_single_mod=no
+    output_verbose_link_cmd='echo'
+    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+      lt_int_apple_cc_single_mod=yes
+    fi
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    else
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+    fi
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi
+    ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+        ;;
+      ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc)
+	# Intel C++
+	with_gnu_ld=yes
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      cxx)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sco*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext|*.$libext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi  
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris* | sysv5*)
+  symcode='[[BDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGISTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;; 
+	  cxx)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+      runpath_var=LD_RUN_PATH
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi4*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      case "$host_os" in
+      rhapsody* | darwin1.[[012]])
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+	;;
+      *) # Darwin 1.3 on
+	if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	else
+	  case ${MACOSX_DEPLOYMENT_TARGET} in
+	    10.[012])
+	      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	      ;;
+	    10.*)
+	      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	      ;;
+	  esac
+	fi
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    	else
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+      fi
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    else  
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi  
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      fi
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv5*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+  
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && break
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])

Added: kde-extras/kpogre/branches/upstream/current/aclocal.m4
===================================================================
--- kde-extras/kpogre/branches/upstream/current/aclocal.m4	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/aclocal.m4	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,863 @@
+# generated automatically by aclocal 1.9.6 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005  Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION so it can be traced.
+# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+	 [AM_AUTOMAKE_VERSION([1.9.6])])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 7
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+	[$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])
+AC_SUBST([$1_FALSE])
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                   [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+#serial 3
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`AS_DIRNAME("$mf")`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`AS_DIRNAME(["$file"])`
+    AS_MKDIR_P([$dirpart/$fdir])
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 8
+
+# AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
+AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 12
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.58])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_PROG_INSTALL_SH
+AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+	      		     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+                  [_AM_DEPENDENCIES(CC)],
+                  [define([AC_PROG_CC],
+                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+                  [_AM_DEPENDENCIES(CXX)],
+                  [define([AC_PROG_CXX],
+                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+])
+])
+
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $1 | $1:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+AC_SUBST(install_sh)])
+
+# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+#
+# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+# created by `make install' are always world readable, even if the
+# installer happens to have an overly restrictive umask (e.g. 077).
+# This was a mistake.  There are at least two reasons why we must not
+# use `-m 0755':
+#   - it causes special bits like SGID to be ignored,
+#   - it may be too restrictive (some setups expect 775 directories).
+#
+# Do not use -m 0755 and let people choose whatever they expect by
+# setting umask.
+#
+# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+# Some implementations (such as Solaris 8's) are not thread-safe: if a
+# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+# concurrently, both version can detect that a/ is missing, but only
+# one can create it and the other will error out.  Consequently we
+# restrict ourselves to GNU make (using the --version option ensures
+# this.)
+AC_DEFUN([AM_PROG_MKDIR_P],
+[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
+else
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
+  else
+    mkdir_p='$(install_sh) -d'
+  fi
+fi
+AC_SUBST([mkdir_p])])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 3
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 4
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$[*]" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$[*]" != "X $srcdir/configure conftest.file" \
+      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+alias in your environment])
+   fi
+
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+
+# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+     [m4_case([$1], [ustar],, [pax],,
+              [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+  case $_am_tool in
+  gnutar)
+    for _am_tar in tar gnutar gtar;
+    do
+      AM_RUN_LOG([$_am_tar --version]) && break
+    done
+    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+    am__untar="$_am_tar -xf -"
+    ;;
+  plaintar)
+    # Must skip GNU tar: if it does not support --format= it doesn't create
+    # ustar tarball either.
+    (tar --version) >/dev/null 2>&1 && continue
+    am__tar='tar chf - "$$tardir"'
+    am__tar_='tar chf - "$tardir"'
+    am__untar='tar xf -'
+    ;;
+  pax)
+    am__tar='pax -L -x $1 -w "$$tardir"'
+    am__tar_='pax -L -x $1 -w "$tardir"'
+    am__untar='pax -r'
+    ;;
+  cpio)
+    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+    am__untar='cpio -i -H $1 -d'
+    ;;
+  none)
+    am__tar=false
+    am__tar_=false
+    am__untar=false
+    ;;
+  esac
+
+  # If the value was cached, stop now.  We just wanted to have am__tar
+  # and am__untar set.
+  test -n "${am_cv_prog_tar_$1}" && break
+
+  # tar/untar a dummy directory, and stop if the command works
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  echo GrepMe > conftest.dir/file
+  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+  rm -rf conftest.dir
+  if test -s conftest.tar; then
+    AM_RUN_LOG([$am__untar <conftest.tar])
+    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+  fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([acinclude.m4])

Added: kde-extras/kpogre/branches/upstream/current/admin/CVS/Entries
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/CVS/Entries	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/CVS/Entries	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+/ChangeLog/1.2/Sat Jan 17 16:22:44 2004//
+/Doxyfile.am/1.3/Mon May 29 11:52:09 2006//
+/Doxyfile.global/1.4/Mon May 29 11:52:09 2006//
+/Makefile/1.307/Tue Apr  1 11:58:41 2008//
+/Makefile.am/1.1/Sat Jan 17 16:51:32 2004//
+/Makefile.common/1.4/Mon May 29 11:52:09 2006//
+/Makefile.in/1.313/Tue Apr  1 11:58:42 2008//
+/acinclude.m4.in/1.10/Tue Nov 13 13:56:34 2007//
+/am_edit/1.8/Tue Nov 13 13:56:34 2007//
+/bcheck.pl/1.2/Mon May 29 11:52:09 2006//
+/compile/1.2/Mon May 29 11:52:09 2006//
+/conf.change.pl/1.3/Mon May 29 11:52:09 2006//
+/config.guess/1.4/Mon May 29 11:52:09 2006//
+/config.pl/1.4/Mon May 29 11:52:09 2006//
+/config.sub/1.4/Mon May 29 11:52:09 2006//
+/configure.in.bot.end/1.3/Mon May 29 11:52:09 2006//
+/configure.in.min/1.2/Mon May 29 11:52:09 2006//
+/cvs-clean.pl/1.2/Thu Dec  9 19:25:41 2004//
+/cvs.sh/1.6/Tue Nov 13 13:56:34 2007//
+/debianrules/1.3/Thu Dec  9 19:25:41 2004//
+/depcomp/1.4/Mon May 29 11:52:09 2006//
+/deps.am/1.1/Thu Dec  9 19:25:41 2004//
+/detect-autoconf.pl/1.1/Mon May 29 11:57:37 2006//
+/detect-autoconf.sh/1.2/Thu Dec  9 19:25:41 2004//
+/install-sh/1.4/Mon May 29 11:52:09 2006//
+/libtool.m4.in/1.9/Tue Nov 13 13:56:34 2007//
+/ltmain.sh/1.6/Mon May 29 11:52:09 2006//
+/missing/1.3/Mon May 29 11:52:09 2006//
+/mkinstalldirs/1.4/Mon May 29 11:52:09 2006//
+/nmcheck/1.1/Thu Dec  9 19:25:42 2004//
+/oldinclude.m4.in/1.2/Mon May 29 11:52:09 2006//
+/pkg.m4.in/1.1/Thu Dec  9 19:25:42 2004//
+/ylwrap/1.2/Mon May 29 11:52:09 2006//
+D

Added: kde-extras/kpogre/branches/upstream/current/admin/CVS/Repository
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/CVS/Repository	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/CVS/Repository	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1 @@
+kpogre/admin

Added: kde-extras/kpogre/branches/upstream/current/admin/CVS/Root
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/CVS/Root	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/CVS/Root	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1 @@
+lvanek at kpogre.cvs.sourceforge.net:/cvsroot/kpogre

Added: kde-extras/kpogre/branches/upstream/current/admin/ChangeLog
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/ChangeLog	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/ChangeLog	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,761 @@
+2002-10-03  Stephan Kulow  <coolo at kde.org>
+	
+	* made config.h.bot obsolete
+
+2002-04-26  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in removed bogus message
+
+2001-11-07  Walter Tasin <tasin at kdevelop.org>
+
+	* now #MIN_CONFIG tag takes parameters for KDE_USE_QT, too.
+          e.g. #MIN_CONFIG(2.2) for qt 2.2 usage
+
+2000-11-30  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: Added kde_moduledir which points to $prefix/lib/kde2/
+
+2000-07-24  Alex Zepeda  <jazepeda at pacbell.net>
+
+	* acinclude.m4.in: Remove the test for malloc.h
+
+2000-04-05  Michael Matz  <matz at ifh.de>
+
+        * config.pl : added kludge for compiling regexp's even if
+	perl < 5.005 is installed
+	* conf.change.pl : added support for autoconf 2.14.1
+
+2000-03-27  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in, Makefile.common: changed inst-apps semantics
+	If present, only the subdirs it lists will be configured and compiled.
+	If absent, then subdirs is used (and inst-apps isn't generated anymore)
+
+2000-03-22  David Faure  <faure at kde.org>
+
+	* am_edit: Added support for KDE_ICON = AUTO
+
+2000-03-18  David Faure  <faure at kde.org>
+
+	* Makefile.common: Rewrote the list-of-Makefiles generation to make it
+	simpler and nicer, using create_makefiles' way of doing it.
+	Added support for COMPILE_LAST and COMPILE_FIRST in toplevel Makefile.am
+
+2000-01-05  David Faure  <faure at kde.org>
+
+	* Makefile.common: hacked around autoconf bug (setting INSTALL to ".."
+	when calling a subconfigure and INSTALL is already set).
+
+1999-12-15  Waldo Bastian  <bastian at kde.org>
+
+        * acinclude.m4.in: Test whether Qt compiles AND LINKS without flags.
+
+1999-06-24  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: generate correct Makefile entries for kde-i18n toplevel directories
+	* am_edit:
+
+1999-06-14  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: remove idl generated files on make clean
+
+1999-06-09  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: skipping programs with variables in sources for final
+
+1999-06-07  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: added support for idl files
+
+1999-06-02  Stephan Kulow  <coolo at kde.org>
+
+	* Makefile.common: preserve comments in .pot files to make it
+		possible for programmers and translators to comment them
+
+1999-06-02  Simon Hausmann <hausmann at kde.org>
+
+        * acinclude.m4.in: added kde_servicetypesdir
+
+1999-06-02  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: removed LIB_KFM and LIB_KDEUTIL aliases
+
+1999-05-28  Simon Hausmann <hausmann at kde.org>
+
+	* acinclude.m4.in: added kde_servicesdir
+
+1999-05-27  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: lots of changes for better support of --enable-final
+
+1999-05-22  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added support for --with-dmalloc
+
+1999-05-19  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added support for --enable-final
+
+	* am_edit: added support for --enable-final
+	
+1999-05-06  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: change the meaning of --disable-debug
+
+1999-05-04  Helge Deller <deller at gmx.de>
+
+	* acinclude.m4.in: the test for the X-includes/directories failed,
+	when compile & link work without special directories (as on HP-UX).
+
+1999-04-20  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: adding DESTDIR replacement for rm and uninstall-local
+	too. Seems very useless, but makes testing for uninstall easier
+
+1999-04-01  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: Added -lkfile to $(LIB_KIO)
+
+1999-03-30  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: Added AC_CHECK_KDEMAXPATHLEN, which defines KDEMAXPATHLEN.
+
+1999-03-29  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: added LIB_X11 to XPMLIB and GLLIB, because
+	on SCO, they need it _after_ themselves.
+
+1999-03-28  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: added LIB_KFM to LIB_KAB alias
+
+1999-03-26  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: made LIB_KFILE use LIB_KIO instead of LIB_KFM
+	added LIB_KFORMULA
+
+1999-03-20  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: check for libXext - for Russel :)
+
+1999-03-16  Stephan Kulow  <coolo at kde.org>
+
+	* acinclud3.m4.in: extend the MICO test with a list of possible
+	places where to find CORBA.h
+
+1999-03-15  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: move $QTINC and $QTLIB in search path
+
+1999-03-14  Stephan Kulow  <coolo at kde.org>
+
+	* am_edit: install-root is obsolute. Use DESTDIR always
+
+1999-03-03  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixing a bug, that $QTDIR was taken before --with-qt*
+	* acinclude.m4.in: added KDE_USE_QT, that you can choose if to
+	use QT 2.0 or KDE 1.0
+	
+	* Makefile.common: added target package-merge
+
+	* am_edit: many fixes to the POFILES handeling of am_edit
+
+1999-03-02  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: first look at libjpeg6b (from kdesupport) then
+	for libjpeg
+
+	* config.*, libtool.*: update to the latest FSF tools
+
+1999-02-23  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: error when Sparc CC is used. Better use it in
+	configure and tell him the story then letting him find it while
+	compiling
+
+	* acinclude.m4.in: adding KDE_CHECK_EXTRA_LIBS to all possible tests,
+	so that --with-extra-includes is used when needed.
+
+	* acinclude.m4.in: configure looks for giflib30, so it should say so
+
+	* acinclude.m4.in: don't overwrite x include parameters. Patch by
+	Ari Lemmke <ari.lemmke at regex.fi> (bug report 741)
+	
+1999-02-20  Stephan Kulow <coolo at kde.org>
+
+	* acinclude.m4.in: fixing KDE_CHECK_PATHS for rechecking. In case
+	of defaults (kdelibs) configure didn't cache the results
+
+1999-02-18  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_S_ISSOCK, to fix #706.
+
+1999-02-17  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_RANDOM, just like
+	AC_CHECK_USLEEP, to enable the fake if necessary.
+
+1999-02-13  Kurt Granroth <granroth at kde.org>
+
+        * acinclude.m4.in: look for QT-2.0
+
+1999-02-05  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: in macro KDE_FIND_PATH treat user given dirs
+	and $PATH dirs the same. Added seperate test for to find binary
+	($5) to replace findperl
+
+1999-01-28  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: added patch by jbb to be a little bit more precise about
+	the number of sourcefiles that include the moc file if it's != 1.
+	Besides that automoc will fail with exit code, so the Makefile.cvs
+	process does stop in case a problem accoured.
+
+	* automoc: don't hardcode header suffix, but allow *.h, *.hh and *.H
+	
+1999-01-27  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: try qobjcoll.h and qapplication.h before saying
+	OK to qt headers. (I could kill SuSE for splitting into qt-dev
+	and qt-compat)
+
+1991-01-23  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: added fixes by JB <jb.nz at writeme.com>
+
+1999-01-21  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: added --help and --path (for use in dist-hook)
+
+1999-01-20  Alex Zepeda  <garbanzo at hooked.net>
+	
+	* ltconfig: added entries for FreeBSD 4.x
+
+1999-01-19  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: added a distclean-metasources target which deletes all
+	moc files and let distclean depend on it
+
+1999-01-18  Stephan Kulow  <coolo at kde.org>
+
+        * automoc: several fixes (ignore comment lines + join lines
+         with \ )
+	
+	* automoc: support META_INCLUDES in case the header files are
+	not in the same dir as the sources.
+
+1999-01-17  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: several fixes.
+
+1999-01-16  Stephan Kulow  <coolo at kde.org>
+
+	* automoc: added support for included MOC files.
+
+	* acinclude.m4.in: use srcdir for the subdirs stuff as well
+
+	* automoc: added better command line parsing and some preparation
+	for handling "normal" moc files
+
+	* acinclude.m4.in: added aliases for libkio and libkdeutil
+
+1999-01-15  Harri Porten  <porten at kde.org>
+
+	* automoc: Carved in stone syntax for Makefile.in:
+	{program}_METASOURCES = USE_AUTOMOC [{suffix}]
+
+1999-01-15  Stephan Kulow  <coolo at kde.org>
+
+	* Makefile.common: set top_srcdir to .
+
+1999-01-14  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: don't use config.h.bot any longer
+
+1999-01-08  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added KDE_CHECK_NEWLIBS
+
+	* acinclude.m4.in: test for Qt even if both --with-qt-headers and
+	--with-qt-libraries are given. They may be wrong.
+	
+1999-01-06  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: change the MOC test so it can be used for other
+	tools as well
+
+1998-12-28  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: look for QT-1.42 since kpanel needs it
+
+1998-12-27  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added /usr/lib for libpython test
+	
+	* acinclude.m4.in: take my email address out of it and added a
+	reference to www.kde.org/faq
+
+	* acinclude.m4.in: use Qt >= 1.4
+
+	* acinclude.m4.in: added KDE_CHECK_NAMESPACES
+	
+1998-12-18  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: test for directories to exist before saying yes
+	to compilation :)
+
+1998-12-14  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added CPLUSPLUS for the kimgio test. It's
+	only important for shaman right now, but at least there it is :)
+
+1998-12-12  Stephan Kulow  <coolo at kde.org>
+
+	* Makefile.cvs: added common Makefile.cvs
+
+	* acinclude.m4.in: Thomas.Schwarz at pro-sieben.de reported a very ugly
+	bug in AC_PROG_CXXCPP, so I added my own version
+	
+	* acinclude.m4.in: added KDE_CREATE_SUBDIRS_LIST to simplify
+	most toplevel configures
+
+1998-12-11  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added call to AC_PROG_CXXCPP. Not really sure why
+	it never caused problems
+
+	* acinclude.m4.in: moved LIBTIFF alias
+
+	* acinclude.m4.in: only test for the existance of libkimgio if the
+	user wants to. For 99% of the applications it doesn't matter if
+	configure can find libkimgio :)
+	
+1998-12-10  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: some changes to the python check to handle $LIBDL
+
+1998-12-09  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: make Alex's tiff test a real one
+	
+	* acinclude.m4.in: fix the LIB_TIFF alias to really expand
+
+1998-12-08  Alex Zepeda  <garbanzo at hooked.net>
+
+	* acinclude.m4.in: Fix tiff test to use libtiff34 if it exists.
+	This is what the FreeBSD port installs to for whatever reason.
+
+	* acinclude.m4.in: s/kde/KDE/ (at least in some of the
+	descriptions, obviously no variable names were touched.
+
+1998-12-08  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: moved the LIB_QT alias to the Qt check
+	
+	* acinclude.m4.in: unset KDEDIR before running conftest
+	
+	* acinclude.m4.in: fixed mean typo
+	
+	* acinclude.m4.in: added the copyright header for the gettext
+	tests, so that people know we're legal ;)
+
+	* acinclude.m4.in: set language to C++ before testing QIMGIO	
+
+1998-12-07  Alex Zepeda  <garbanzo at hooked.net>
+
+	* acinclude.m4.in: Fix PNG test to use correct ANSI C code, and
+	not trip up gcc.
+
+1998-12-07  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: don't hardcode -ldl
+	
+	* acinclude.m4.in: move the LIB_X11 alias to the X test to make it
+	useful for kdesupport as well
+	
+	* acinclude.m4.in: give the word CHECK_KIMGIO a meaning in really
+	checking for it
+
+	* acinclude.m4.in: simple fix to prevent kimgio test from compiling
+	KDE application in kdelibs
+
+1998-12-05  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: let KDE_CHECK_KIMGIO depend on AC_PATH_KDE,
+	otherwise most tests fail. It didn't mean anything to 90% of the
+	packages since they test for KDE before kimgio, but for shaman
+	it does
+
+	* ltconfig: the real fix for the Solaris && gcc problem.
+	Thanks Kurt for reporting it and Alexandre for fixing it :)
+
+1998-12-04  Stephan Kulow  <coolo at kde.org>
+
+	* libtool.*: update again
+
+	* acinclude.m4.in: changed the function to test for libnsl to
+	inet_ntoa since UnixWare 7's version did not have gethostbyname,
+	but needs libnsl
+
+1998-12-02  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixed the MOC test (again) to use the PATH variable
+	correctly (with the correct seperator)
+
+	* config.guess: update from the soon to be released autoconf-2.13
+
+1998-12-01  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixes for the MOC test. Use PATH now when found
+
+1998-11-30  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: extended the MOC test. It checks now for the
+	first line of the output of "moc --help" and looks for Qt in it.
+
+1998-11-27  Stephan Kulow  <coolo at kde.org>
+
+	* ltconfig: another libtool update. Fixes an ugly bug on Solaris,
+	when GNU ld is in path before Solaris ld, but gcc uses the later
+
+1998-11-26  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: made the Qt test more advance to check for qt
+	1.41 - I still need to make it better, but there shouldn't be too
+	many qt releases in a row, would there? ;)
+
+	* ltconfig: libtool update with better BSD/OS support
+
+1998-11-22  Stephan Kulow  <coolo at kde.org>
+
+	* ltconfig: cool - libtool uses g++ now to link libraries on Solaris.
+	This means, static objects become usuable on that plattforms (some
+	others as well).
+
+1998-11-20  Stephan Kulow  <coolo at kde.org>
+
+	* ltmain.sh: updated libtool from their CVS - fixes bugs we haven't
+	found and adds some more features, that we do not need ;-)
+
+1998-11-19  David Faure  <faure at kde.org>
+
+	* acinclude.m4.in: added AC_CHECK_UTMP_FILE, taken from kdebase
+
+1998-11-16  Harri Porten  <porten at kde.org>
+
+	* automoc: take care of "ar" object files, too.
+
+1998-11-16  Stephan Kulow  <coolo at kde.org>
+
+	* libtool.m4.in: revised my --silent patch. The solution
+	Alexandre suggested is much better.
+
+1998-11-15  Stephan Kulow  <coolo at kde.org>
+
+	* ltconfig.in: done some tweakings to support -export-dynamic
+	with egcs
+
+	* config.sub: wow - BeOS support :)
+
+1998-11-14  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: don't use rpath for test program, if rpath is
+	disabled for applications
+
+	* ltconfig: patched libtool to make it silent without making
+	ltconfig silent
+
+	* acinclude.m4.in: make libtool silent again
+
+	* libtool.m4.in: update to libtool-981114 (untested stuff, but
+	we have to test it to make it tested - sounds that logical? :-)
+
+	* libtool.m4.in: moved the self stricked libtool tests to "our"
+	file.
+
+	* acinclude.m4.in: moved ChangeLog of kdebase which I used to
+	maintain acinclude.m4.in logs to kde-common/admin. Hopefully I
+	will maintain it more often from now on :)
+
+1998-07-27  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixed some things in the MOC test
+
+	* acinclude.m4.in: fixed this damn msgfmt test
+
+1998-06-02  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: ignore msgfmt, if not GNU gettext
+
+1998-05-28  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixed KDE_CHECK_STL. Checks for HP and SGI type
+
+	* acinclude.m4.in: embraced every variable with "" to make
+	it consistent
+
+	* acinclude.m4.in: various fixes for the koffice checks
+	(mico, ministl and python)
+
+1998-05-16  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: don't use KDE_CHECK_QT_DIRECT, when
+	--with-qt-libs are given
+
+1998-04-21  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: cool, I found the trick to suppress the ls
+	errors
+
+1998-04-20  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: rewrote the qt checking test, since it
+	didn't work under FreeBSD, since it relied on the .so link.
+	The new version is a little bit buggy, but I need some testing
+	to make it perfect
+
+	* acinclude.m4.in: fixed the side effects of the PAM test
+
+1998-04-18  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: hopefully fixed the PAM test (I rewrote it)
+
+1998-04-16  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: extended the getsockname test inspired
+	by a patch by Martin Baulig
+
+	* configure.in: added test for utmp file
+
+	* acinclude.m4.in: made --without-pam default
+	
+
+1998-04-06  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: don't test compiling, linking, running in
+	one step. This proved to be too dangerous for my mail box.
+	
+1998-03-21  Stephan Kulow  <coolo at kde.org>
+
+	* libtool.m4.in: created some new macros to work around this
+	ugly (because long) help of configure --enable-shared/static
+
+1998-03-05  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: set language to C++ before trying the ksize_t
+	test
+
+	* configure.in: sorted the Makefile entries alphabeticly (and all
+	together: we love xemacs! we love xemacs! ;)
+	
+	* configure.in: added sk
+
+	* acinclude.m4.in: substitute x_libraries to fix the empty -rpath
+	
+1998-03-03  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: add a rpath for every shared library, that is
+	linked too (especially X11 libraries)
+	
+Tue Feb 24 22:04:59 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added kde_sounddir and set kde_minidir to
+	kde_icondir/mini to break not too much
+
+Sun Feb 15 18:25:50 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: added bugfix by Bob Miller <kbob at engr.sgi.com>
+	(correct reset of IFS)
+	
+Wed Feb 11 00:53:11 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: made shadow under Linux default, since the
+	binaries will work also under non-shadow systems. The only problem
+	left is PAM, so I disabled shadow in case, PAM is present
+
+Tue Feb 10 16:46:32 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: added test for nice to find out, if the option
+	-nice works for the screensavers
+
+	* acinclude.m4.in: port to LynxOS. For this I moved all library
+	search routines in KDE_MISC_TESTS, so I don't need to write this
+	in every package
+
+	* README: some grammar fixes
+
+	* acinclude.m4.in: search for the libs in the exec_prefix, when
+	it's present
+	
+Sun Feb  8 14:07:23 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: updated all packages
+
+	* libtool.m4.in: applied patch for libtool.m4.in to show the
+	correct default for shared and static
+	
+
+Sat Feb  7 10:56:00 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: good news - KDE is relocatable again.
+
+	* libtool.m4.in: updated to latest libtool 1.0i
+
+Fri Feb  6 21:26:51 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: added a AC_PROVIDE for AC_PROG_CC and
+	AC_PROG_CPP to KDE_CHECK_COMPILERS
+
+Thu Feb  5 16:27:47 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: put $QTDIR/bin before /usr/bin in the path to
+	look for moc. I don't know why, but I got a report, that configure
+	found /usr/bin/moc under Solaris
+
+Fri Jan 30 15:47:50 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: export LIBRARY_PATH after reset to the saved
+	value
+	
+	* acinclude.m4.in: unset the LIBRARY_PATH to get a relieable
+	result when trying to find, if Qt compiles without -L
+
+Sat Jan 24 00:45:52 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: fixed another bug in AC_PATH_KDE
+
+Thu Jan 22 14:46:15 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: fixed an ugly bug in AC_BASE_PATH_KDE
+
+	* kappfinder/kappfinder.in: let kappfinder create by configure to
+	allow the use of the kde_ paths
+
+Wed Jan 21 22:19:35 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in: - added a install_root prefix to all paths, if
+	set, to enable package managers to move the whole installation at once
+	- added --with-install-root to set the install_root prefix
+
+Tue Jan 20 22:41:04 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: added NOOPT_CXXFLAGS to allow kioslave to be
+	compiled without -O2
+
+Mon Jan 19 21:55:21 1998  Stephan Kulow  <coolo at kde.org>
+
+	* configure.in: some little fixes for the Makefiles
+
+	* acinclude.m4.in: --prefix will no longer override the search for
+	libraries. If they are present somewhere, they are used (through
+	the methodes in KApplication)
+
+Mon Jan 12 00:30:36 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in fixed an ugly bug, that accoured, when
+	qt_libraries is not set (empty/equals X11/not necessary)
+	
+	* acinclude.m4.in moved the remove of the files after the error
+	detection
+	
+
+Sun Jan 11 17:27:53 1998  Stephan Kulow  <coolo at kde.org>
+
+	* acinclude.m4.in added a new macro KDE_CHECK_QT_DIRECT to unset
+	the Qt library path, if a Qt program compiles without them
+		
+	* acinclude.m4.in added a return value in the CREATE_KFSSTND
+	macro. Perhaps this has caused the problems
+
+Sat Jan 10 17:40:44 1998  Stephan Kulow  <coolo at kde.org>
+
+	* ChangeLog started to maintain a ChangeLog file again
+	* acinclude.m4.in the AC_CREATE_KFSSTND to get better debug output
+	to find the problem
+	
+
+Old logs, Stephan Kulow made:
+	
+0.1 : first steps with libkde
+0.2 : first release with libkde, khtmlw, kdehelp, acli, kwm, kpanel
+0.3 : added kfm and bugfixes
+0.4 : updated khtmlw, kdehelp, kwm, changed install in all subdirs
+0.5 : support libtool (chooseable shared libs)
+0.6 : split libkde in kdecore and kdeui
+0.6.1 : Bugfixes
+0.7 : added code from Janos Farkas (configure)
+    : added @{kde,qt}_{includes,libraries}@
+0.7.1: Bugfixes
+0.7.2: Bugfixes
+0.7.3: added @all_includes@ and @all_libraries@
+       replaced all incompatible flags like $(CC) and -DHAVE_UNISTD_H
+0.7.4: changed support for libkde (back in it's own)
+       added kpat
+       updated kpanel, kwm, kghostview
+0.8: removed a bug in kghostview
+	lifted installation process of several apps
+	splitt kdebase into kdelibs and kdeapps	
+	updated khtmlw, kfm and kdehelp
+	added kcalc and kpaint
+	updated kdisplay
+	added kscreensaver
+	added --enable-kscreensaver
+	added --enable-debug (and @CXXFLAGS@ to all Makefile.ins)
+	updated kwm to 0.4.7
+	added make uninstall to every app
+	added kvt
+	added khexdit
+	added .kdelnk for kmines, kedit, ktetris
+	put kwm, kfind's .kdelnk in the right directories
+	replaced --enable-kscreensaver by --disable-kscreensaver
+	updated kpanel to 0.15
+	some bugfixes (thanks Marco)
+	some bugfixes (thanks Martin)
+	changed acinclude.m4, because aclocal won't
+	updated kwm to 0.4.8 (patched it again for Qt-1.2)
+	updated kvt to 0.13 (patch from Matthias)
+	patched kvt and kwm
+	updated kwm to 0.5.0
+	updated kvt for 0.14 (again and again :-)
+	updated kview to 0.10
+	updated kfm to 0.6.3
+ 	patched kscreensaver for FreeBSD (thanks Marc)
+0.9: updated kdisplay to 0.5.3
+	added klogout
+	patches from Matthias
+	updated kfm to 0.6.4
+	updated kghostview to 0.4
+	added QTINC and QTLIB
+	updated kdehelp to 0.4.11
+	patched kfm to support ktoolbar
+	updated kedit to kedit+
+	added kfontmanager 0.2.1
+0.9.1: changed kpaint's make style
+	bugfixing
+	updated kmines to 0.6.5
+	updated ktetris to 0.2.4
+	changed to Makefiles to depend on Makefile.in
+	changed the Makefiles to let install depend on all
+	added kjots-0.2.2
+	updated kjots-0.2.3
+	updated kfm to 0.6.6
+	updated kjots-0.2.4
+	updated kpaint-0.2
+	updated kedit to 0.5
+	updated kfontmanager to 0.2.2
+	updated kfm to 0.6.7
+	updated ktetris to 0.2.5
+	updated kjots to 0.2.5
+0.10: added HAVE_SQRTL
+	added HAVE_CRYPT_H
+	updated kfind
+	updated kfm to kfm-0.8.1
+	re-introduced automake to kdebase
+	bugfixes for the configure.in
+	added XPM, GL and PAM tests to configure
+	added morph3d to kscreensavers
+	updated kfind to 0.3.2
+	added some patches for SGI
+... lost the time to maintain a Changelog ;)

Added: kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,102 @@
+## generate API documentation with doxygen
+apidox-am-yes:
+	@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$DOXDATA" ; then \
+		export DOXDATA=$(kde_libs_htmldir)/en/common ; \
+	fi ; \
+	abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
+	test -d $(top_builddir)/apidocs || \
+		( cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
+		--no-modulename --installdir=$(kde_libs_htmldir)/en \
+		--no-recurse $(abs_top_srcdir) . ) ; \
+	cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
+		--recurse --no-modulename --installdir=$(kde_libs_htmldir)/en \
+		$$abs_top_srcdir $(subdir)
+
+apidox-am-toplevel-yes:
+	@if test \! -d "$(top_srcdir)/doc/common/" && test -z "$$ADMIN" ; then \
+		export DOXDATA=$(kde_libs_htmldir)/en/common ; \
+	fi ; \
+	abs_top_srcdir=`cd $(top_srcdir) && pwd` ;\
+	cd $(top_builddir) && sh $$abs_top_srcdir/admin/doxygen.sh \
+		--no-modulename --installdir=$(kde_libs_htmldir)/en \
+		$$abs_top_srcdir
+
+## Don't generate API documentation without doxygen
+apidox-am-no:
+
+apidox-am-toplevel-no:
+
+
+apidox:
+	@if test "$(subdir)" != "."; then \
+		$(MAKE) apidox-am- at KDE_HAS_DOXYGEN@ ;\
+	else \
+		$(MAKE) apidox-am-toplevel- at KDE_HAS_DOXYGEN@ ;\
+	fi
+
+
+
+install-data-local: install-apidox
+
+## install API documentation
+install-apidox:
+	@if test "$(subdir)" != "."; then \
+		$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html ; \
+		if test -f $(top_builddir)/apidocs/$(subdir)/$(subdir).tag; then \
+		echo $(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/$(subdir).tag $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		fi; \
+		if test -d $(top_builddir)/apidocs/$(subdir)/html; then \
+			list=`ls $(top_builddir)/apidocs/$(subdir)/html`; \
+			echo "installing $(top_builddir)/apidocs/$(subdir)/html" ;\
+			for file in $$list; do \
+				$(INSTALL_DATA) $(top_builddir)/apidocs/$(subdir)/html/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir)/html; \
+		done; \
+		fi; \
+	else\
+		if test -d $(top_builddir)/apidocs; then \
+		$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs ;\
+		list=`cd $(top_builddir)/apidocs && ls -1`; \
+		echo "installing $(top_builddir)/apidocs/$$file" ;\
+		echo "target directory $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs" ; \
+		for file in $$list; do \
+			if test -f $(top_builddir)/apidocs/$$file; then \
+				$(INSTALL_DATA) $(top_builddir)/apidocs/$$file $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
+			fi; \
+		done ; fi; \
+	fi
+
+uninstall-local: uninstall-apidox
+
+## uninstall API documentation
+uninstall-apidox:
+	@if test "$(subdir)" != "."; then \
+		if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); then \
+			rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs/$(subdir); \
+		fi \
+	else \
+		if test -d $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; then \
+			rm -rfv $(DESTDIR)$(kde_htmldir)/en/$(PACKAGE)-apidocs; \
+		fi \
+	fi
+
+install-apidox-recurse: install-apidox
+	@set fnord $(MAKEFLAGS); amf=$$2; if test -n '$(SUBDIRS)'; then \
+	    list='$(SUBDIRS)'; \
+	    for subdir in $$list; do \
+		if grep '^include .*Doxyfile.am' $(srcdir)/$$subdir/Makefile.am > /dev/null ; then \
+		echo "Installing apidox from $$subdir"; \
+		if test "$$subdir" != "."; then \
+			(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) GENERATE_FLAG=no install-apidox-recurse) || exit 1; \
+		fi ; fi ;\
+	    done; \
+	fi
+
+
+
+.PHONY: apidox-am-yes apidox-am-no install-data-local install-apidox install-apidox uninstall-local uninstall-apidox uninstall-apidox apidox apidox-am-toplevel-no apidox-am-toplevel-yes
+
+
+# Local Variables:
+# mode: makefile
+# End:

Added: kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.global
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.global	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Doxyfile.global	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,192 @@
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = NO
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = YES
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 4
+OPTIMIZE_OUTPUT_FOR_C  = NO
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = YES
+EXTRACT_LOCAL_CLASSES  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TESTLIST      = NO
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+QUIET                  = YES
+WARNINGS               = NO
+WARN_IF_UNDOCUMENTED   = NO
+WARN_IF_DOC_ERROR      = YES
+WARN_FORMAT            = 
+WARN_LOGFILE           = 
+INPUT                  = 
+FILE_PATTERNS          = *.h \
+                         *.cpp \
+                         *.cc \
+                         *.hpp \
+                         *.dox \
+                         *.c++ \
+                         *.cxx \
+                         *.h++ \
+                         *.hh
+RECURSIVE              = YES
+EXCLUDE                = 
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = *.moc.* \
+                         moc* \
+                         *.all_cpp.* \
+                         *unload.* \
+                         */test/* \
+                         */tests/* \
+                         *_p.h 
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = NO
+SOURCE_BROWSER         = YES
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 3
+HTML_OUTPUT            = 
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = ../apidocs/common/header.html
+HTML_FOOTER            = ../apidocs/common/footer.html
+HTML_STYLESHEET        = ../apidocs/common/doxygen.css
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = YES
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = 
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+GENERATE_RTF           = NO
+RTF_OUTPUT             = 
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+GENERATE_MAN           = NO
+MAN_OUTPUT             = 
+MAN_EXTENSION          = .kde3
+MAN_LINKS              = YES
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = NO
+GENERATE_AUTOGEN_DEF   = NO
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+ENABLE_PREPROCESSING   = YES
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = QT_VERSION=320 \
+                         __cplusplus \
+                         Q_WS_X11
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = NO
+PERL_PATH              = 
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = NO
+HAVE_DOT               = NO
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = YES
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 800
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+SEARCHENGINE           = NO
+
+### KDE Settings
+ALIASES = \
+	"intern=\par<b>Internal use only.</b>" \
+	"reimp=\par<b>Reimplemented from superclass.</b>" \
+	"obsolete=@deprecated" \
+	"feature=\xrefitem features \"Feature(s)\" \"Features\"" \
+	"maintainer=\xrefitem maintainers \"Maintainer(s)\" \"Maintainers\"" \
+	"unmaintained=\xrefitem unmaintained \"Unmaintained\" \"Unmaintained\"" \
+	"requirement=\xrefitem requirements \"Requirement(s)\" \"Requirements\"" \
+	"faq=\xrefitem FAQ \"F.A.Q.\" \"F.A.Q.\"" \
+	"authors=\xrefitem authors \"Author(s)\" \"Authors\"" \
+	"FIXME=\xrefitem fixme \"Fixme\" \"Fixme\""
+
+HTML_ALIGN_MEMBERS     = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION    = NO
+VERBATIM_HEADERS       = NO
+GENERATE_HTML          = YES
+SOURCE_BROWSER         = YES
+GENERATE_AUTOGEN_DEF   = NO
+DETAILS_AT_TOP         = YES
+SORT_MEMBER_DOCS       = YES
+GENERATE_TODOLIST      = YES
+IGNORE_PREFIX          = K
+GENERATE_HTML          = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = NO
+
+
+MACRO_EXPANSION = YES
+EXPAND_ONLY_PREDEF = YES
+

Added: kde-extras/kpogre/branches/upstream/current/admin/Makefile
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Makefile	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Makefile	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,551 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# admin/Makefile.  Generated from Makefile.in by config.pl.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = /home/lvanek/Projects/Own/kpogre/admin
+top_srcdir = /home/lvanek/Projects/Own/kpogre
+VPATH = /home/lvanek/Projects/Own/kpogre/admin
+pkgdatadir = $(datadir)/kpogre
+pkglibdir = $(libdir)/kpogre
+pkgincludedir = $(includedir)/kpogre
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = /usr/bin/install -c -p
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+target_triplet = x86_64-unknown-linux-gnu
+subdir = admin
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
+	compile config.guess config.sub depcomp install-sh ltmain.sh \
+	missing mkinstalldirs ylwrap
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = ${SHELL} /home/lvanek/Projects/Own/kpogre/admin/missing --run aclocal-1.9
+AMDEP_FALSE = #
+AMDEP_TRUE = 
+AMTAR = ${SHELL} /home/lvanek/Projects/Own/kpogre/admin/missing --run tar
+AR = ar
+ARTSCCONFIG = /opt/kde3/bin/artsc-config
+AUTOCONF = $(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure
+AUTODIRS = 
+AUTOHEADER = ${SHELL} /home/lvanek/Projects/Own/kpogre/admin/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/lvanek/Projects/Own/kpogre/admin/missing --run automake-1.9
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -g3 -fno-inline  -gstabs+ -Wformat-security -Wmissing-format-attribute
+CONF_FILES =  $(top_srcdir)/./admin/configure.in.min $(top_srcdir)/configure.in.in
+CPP = gcc -E
+CPPFLAGS =  -DQT_THREAD_SUPPORT  -D_REENTRANT
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -g3 -fno-inline -O0 -g3 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -fexceptions -I/usr/include/pgsql  
+CYGPATH_W = echo
+DCOPIDL = /opt/kde3/bin/dcopidl
+DCOPIDL2CPP = /opt/kde3/bin/dcopidl2cpp
+DCOPIDLNG = 
+DCOP_DEPENDENCIES = $(DCOPIDL)
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = grep -E
+ENABLE_PERMISSIVE_FLAG = -fpermissive
+EXEEXT = 
+F77 = 
+FFLAGS = 
+FRAMEWORK_COREAUDIO = 
+GMSGFMT = /usr/bin/msgfmt
+HAVE_GCC_VISIBILITY = 0
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL} $(INSTALL_STRIP_FLAG)
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
+KCFG_DEPENDENCIES = 
+KCONFIG_COMPILER = 
+KDECONFIG = /opt/kde3/bin/kde-config
+KDE_CHECK_PLUGIN = $(KDE_PLUGIN) -rpath $(libdir)
+KDE_EXTRA_RPATH = 
+KDE_INCLUDES = -I/opt/kde3/include
+KDE_LDFLAGS = -L/opt/kde3/lib64
+KDE_MT_LDFLAGS = 
+KDE_MT_LIBS = -lpthread
+KDE_NO_UNDEFINED = -Wl,--no-undefined -Wl,--allow-shlib-undefined
+KDE_PLUGIN = -avoid-version -module -no-undefined $(KDE_NO_UNDEFINED) $(KDE_RPATH) $(KDE_MT_LDFLAGS)
+KDE_RPATH = -R $(libdir) -R $(kde_libraries) -R $(qt_libraries) -R $(x_libraries)
+KDE_USE_CLOSURE_FALSE = 
+KDE_USE_CLOSURE_TRUE = #
+KDE_USE_FINAL_FALSE = 
+KDE_USE_FINAL_TRUE = #
+KDE_USE_FPIE = -fPIE
+KDE_USE_NMCHECK_FALSE = 
+KDE_USE_NMCHECK_TRUE = #
+KDE_USE_PIE = -pie
+KDE_XSL_STYLESHEET = /opt/kde3/share/apps/ksgmltools2/customization/kde-chunk.xsl
+LDFLAGS = -L/usr/lib64
+LDFLAGS_AS_NEEDED = 
+LDFLAGS_NEW_DTAGS = 
+LIBCOMPAT = 
+LIBCRYPT = -lcrypt
+LIBDL = -ldl
+LIBJPEG = -ljpeg
+LIBOBJS = 
+LIBPNG = -lpng -lz -lm
+LIBPTHREAD = -lpthread
+LIBRESOLV = -lresolv
+LIBS = 
+LIBSM = -lSM -lICE
+LIBSOCKET = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool --silent
+LIBUCB = 
+LIBUTIL = -lutil
+LIBZ = -lz
+LIB_KAB = -lkab
+LIB_KABC = -lkabc
+LIB_KDECORE = -lkdecore
+LIB_KDED = 
+LIB_KDEPIM = -lkdepim
+LIB_KDEPRINT = -lkdeprint
+LIB_KDEUI = -lkdeui
+LIB_KDNSSD = -lkdnssd
+LIB_KFILE = -lkio
+LIB_KFM = 
+LIB_KHTML = -lkhtml
+LIB_KIMPROXY = -lkimproxy
+LIB_KIO = -lkio
+LIB_KJS = -lkjs
+LIB_KMDI = -lkmdi
+LIB_KNEWSTUFF = -lknewstuff
+LIB_KPARTS = -lkparts
+LIB_KSPELL = -lkspell
+LIB_KSYCOCA = -lkio
+LIB_KUNITTEST = -lkunittest
+LIB_KUTILS = -lkutils
+LIB_POLL = 
+LIB_QPE = 
+LIB_QT = -lqt-mt  $(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM) -lpthread
+LIB_SMB = -lsmb
+LIB_X11 = -lX11 $(LIBSOCKET)
+LIB_XEXT = -lXext
+LIB_XRENDER = 
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/lvanek/Projects/Own/kpogre/admin/missing --run makeinfo
+MAKEKDEWIDGETS = 
+MCOPIDL = /opt/kde3/bin/mcopidl
+MEINPROC = /opt/kde3/bin/meinproc
+MOC = /usr/lib64/qt3/bin/moc
+MSGFMT = /usr/bin/msgfmt
+NOOPT_CFLAGS = -O0
+NOOPT_CXXFLAGS = -O0
+OBJEXT = o
+PACKAGE = kpogre
+PACKAGE_BUGREPORT = 
+PACKAGE_NAME = 
+PACKAGE_STRING = 
+PACKAGE_TARNAME = 
+PACKAGE_VERSION = 
+PATH_SEPARATOR = :
+PERL = /usr/bin/perl
+PQXX_CFLAGS = -I/usr/include/pgsql  
+PQXX_LIBS = -lpqxx  
+QTE_NORTTI = 
+QT_INCLUDES = -I/usr/lib64/qt3/include
+QT_LDFLAGS = -L/usr/lib64/qt3/lib64
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = strip
+TOPSUBDIRS =  doc kpogre po
+UIC = /usr/lib64/qt3/bin/uic -L $(kde_widgetdir) -nounload
+UIC_TR = tr2i18n
+USER_INCLUDES =  -I/usr/include/pqxx -I /usr/include/pgsql
+USER_LDFLAGS = 
+USE_EXCEPTIONS = -fexceptions
+USE_RTTI = 
+USE_THREADS = 
+VERSION = 1.6.2
+WOVERLOADED_VIRTUAL = -Woverloaded-virtual
+XGETTEXT = :
+XMLLINT = /usr/bin/xmllint
+X_EXTRA_LIBS = 
+X_INCLUDES = -I/usr/X11R6/include
+X_LDFLAGS = -L/usr/X11R6/lib64
+X_PRE_LIBS = 
+X_RPATH = -R $(x_libraries)
+ac_ct_AR = ar
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+ac_ct_RANLIB = ranlib
+ac_ct_STRIP = strip
+all_includes = -I/opt/kde3/include -I/usr/lib64/qt3/include -I/usr/X11R6/include  -I/usr/include/pqxx -I /usr/include/pgsql
+all_libraries = -L/opt/kde3/lib64 -L/usr/lib64/qt3/lib64 -L/usr/X11R6/lib64   
+am__fastdepCC_FALSE = #
+am__fastdepCC_TRUE = 
+am__fastdepCXX_FALSE = #
+am__fastdepCXX_TRUE = 
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+datadir = ${prefix}/share
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+include_ARTS_FALSE = #
+include_ARTS_TRUE = 
+include_x11_FALSE = #
+include_x11_TRUE = 
+includedir = ${prefix}/include
+infodir = ${prefix}/info
+install_sh = /home/lvanek/Projects/Own/kpogre/admin/install-sh
+kde_appsdir = ${datadir}/applnk
+kde_bindir = ${exec_prefix}/bin
+kde_confdir = ${datadir}/config
+kde_datadir = ${datadir}/apps
+kde_htmldir = ${datadir}/doc/HTML
+kde_icondir = ${datadir}/icons
+kde_includes = /opt/kde3/include
+kde_kcfgdir = ${datadir}/config.kcfg
+kde_libraries = /opt/kde3/lib64
+kde_libs_htmldir = /opt/kde3/share/doc/HTML
+kde_libs_prefix = /opt/kde3
+kde_locale = ${datadir}/locale
+kde_mimedir = ${datadir}/mimelnk
+kde_moduledir = ${libdir}/kde3
+kde_qtver = 3
+kde_servicesdir = ${datadir}/services
+kde_servicetypesdir = ${datadir}/servicetypes
+kde_sounddir = ${datadir}/sounds
+kde_styledir = ${libdir}/kde3/plugins/styles
+kde_templatesdir = ${datadir}/templates
+kde_wallpaperdir = ${datadir}/wallpapers
+kde_widgetdir = /opt/kde3/lib64/kde3/plugins/designer
+kdeinitdir = $(kde_moduledir)
+libdir = ${exec_prefix}/lib64
+libexecdir = ${exec_prefix}/libexec
+localstatedir = ${prefix}/var
+mandir = ${prefix}/man
+mkdir_p = mkdir -p --
+oldincludedir = /usr/include
+prefix = /opt/kde3
+program_transform_name = s,x,x,
+qt_includes = /usr/lib64/qt3/include
+qt_libraries = /usr/lib64/qt3/lib64
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+sysconfdir = ${prefix}/etc
+target = x86_64-unknown-linux-gnu
+target_alias = 
+target_cpu = x86_64
+target_os = linux-gnu
+target_vendor = unknown
+unsermake_enable_pch_FALSE = 
+unsermake_enable_pch_TRUE = #
+x_includes = /usr/X11R6/include
+x_libraries = /usr/X11R6/lib64
+xdg_appsdir = ${datadir}/applications/kde
+xdg_directorydir = ${datadir}/desktop-directories
+xdg_menudir = ${sysconfdir}/xdg/menus
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  admin/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  admin/Makefile
+	cd $(top_srcdir) && perl admin/am_edit admin/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+####### kdevelop will overwrite this part!!! (end)############
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+#>+ 2
+KDE_DIST=configure.in.bot.end bcheck.pl detect-autoconf.sh deps.am detect-autoconf.pl configure.in.min debianrules cvs.sh config.pl oldinclude.m4.in am_edit Makefile.common cvs-clean.pl Makefile.in Doxyfile.global pkg.m4.in acinclude.m4.in nmcheck libtool.m4.in Doxyfile.am Makefile.am conf.change.pl 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  admin/Makefile
+	cd $(top_srcdir) && perl admin/am_edit admin/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/admin/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,4 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+
+####### kdevelop will overwrite this part!!! (end)############

Added: kde-extras/kpogre/branches/upstream/current/admin/Makefile.common
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Makefile.common	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Makefile.common	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+### Makefile.common
+###
+### Copyright (C) 2002 by the KDE developers
+
+### All the real work is done by the shellscript cvs.sh
+
+SHELL=/bin/sh
+
+cvs dist configure configure.in configure.files subdirs package-messages package-merge Makefile.am acinclude.m4 extract-messages:
+	@admindir=$(admindir); \
+	if test "x$$admindir" = x; then \
+	  admindir=.; until test -f $$admindir/admin/cvs.sh; do \
+	    admindir=$$admindir/..; \
+	    if test `cd $$admindir && pwd` = / ; then break; fi; \
+	  done; \
+	  admindir=$$admindir/admin; \
+	  if test -f $$admindir/cvs.sh; then :; else \
+	    echo "Can't find the admin/ directory in any parent of the"; \
+	    echo "current directory.  Please set it with admindir=..."; \
+	    exit 1; \
+	  fi; \
+	fi; \
+	if test "$@" = "package-merge"; then \
+		MAKE="$(MAKE)" POFILES="$(POFILES)" PACKAGE="$(PACKAGE)" \
+	  	$(SHELL) $$admindir/cvs.sh package-merge ;\
+	else \
+		MAKE="$(MAKE)" $(SHELL) $$admindir/cvs.sh $@ ;\
+	fi
+
+configure.in: configure.files subdirs
+configure.files: subdirs
+
+svn: cvs
+
+.SILENT:
+
+.PHONY: svn cvs dist package-merge package-messages

Added: kde-extras/kpogre/branches/upstream/current/admin/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,552 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = admin
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog \
+	compile config.guess config.sub depcomp install-sh ltmain.sh \
+	missing mkinstalldirs ylwrap
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  admin/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  admin/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin admin/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+
+####### kdevelop will overwrite this part!!! (end)############
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=configure.in.bot.end bcheck.pl detect-autoconf.sh deps.am detect-autoconf.pl configure.in.min debianrules cvs.sh config.pl oldinclude.m4.in am_edit Makefile.common cvs-clean.pl Makefile.in Doxyfile.global pkg.m4.in acinclude.m4.in nmcheck libtool.m4.in Doxyfile.am Makefile.am conf.change.pl 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  admin/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  admin/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin admin/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/admin/acinclude.m4.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/acinclude.m4.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/acinclude.m4.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,5974 @@
+##   -*- autoconf -*-
+
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 1997 Janos Farkas (chexum at shadow.banki.hu)
+dnl              (C) 1997,98,99 Stephan Kulow (coolo at kde.org)
+
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl    Boston, MA 02110-1301, USA.
+
+dnl IMPORTANT NOTE:
+dnl Please do not modify this file unless you expect your modifications to be
+dnl carried into every other module in the repository. 
+dnl
+dnl Single-module modifications are best placed in configure.in for kdelibs
+dnl and kdebase or configure.in.in if present.
+
+# KDE_PATH_X_DIRECT
+dnl Internal subroutine of AC_PATH_X.
+dnl Set ac_x_includes and/or ac_x_libraries.
+AC_DEFUN([KDE_PATH_X_DIRECT],
+[
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+if test "$ac_x_includes" = NO; then
+  # Guess where to find include files, by looking for this one X11 .h file.
+  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+  # First, try using that file with no special directory specified.
+AC_TRY_CPP([#include <$x_direct_test_include>],
+[# We can compile using X headers with no special include directory.
+ac_x_includes=],
+[# Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+  for ac_dir in               \
+    /usr/X11/include          \
+    /usr/X11R6/include        \
+    /usr/X11R5/include        \
+    /usr/X11R4/include        \
+                              \
+    /usr/include/X11          \
+    /usr/include/X11R6        \
+    /usr/include/X11R5        \
+    /usr/include/X11R4        \
+                              \
+    /usr/local/X11/include    \
+    /usr/local/X11R6/include  \
+    /usr/local/X11R5/include  \
+    /usr/local/X11R4/include  \
+                              \
+    /usr/local/include/X11    \
+    /usr/local/include/X11R6  \
+    /usr/local/include/X11R5  \
+    /usr/local/include/X11R4  \
+                              \
+    /usr/X386/include         \
+    /usr/x386/include         \
+    /usr/XFree86/include/X11  \
+                              \
+    /usr/include              \
+    /usr/local/include        \
+    /usr/unsupported/include  \
+    /usr/athena/include       \
+    /usr/local/x11r5/include  \
+    /usr/lpp/Xamples/include  \
+                              \
+    /usr/openwin/include      \
+    /usr/openwin/share/include \
+    ; \
+  do
+    if test -r "$ac_dir/$x_direct_test_include"; then
+      ac_x_includes=$ac_dir
+      break
+    fi
+  done])
+fi # $ac_x_includes = NO
+
+if test "$ac_x_libraries" = NO; then
+  # Check for the libraries.
+
+  test -z "$x_direct_test_library" && x_direct_test_library=Xt
+  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
+
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS="$LIBS"
+  LIBS="-l$x_direct_test_library $LIBS"
+AC_TRY_LINK([#include <X11/Intrinsic.h>], [${x_direct_test_function}(1)],
+[LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=],
+[LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
+    /usr/X11/lib${kdelibsuff}           \
+    /usr/X11R6/lib${kdelibsuff}         \
+    /usr/X11R5/lib${kdelibsuff}         \
+    /usr/X11R4/lib${kdelibsuff}         \
+                                        \
+    /usr/lib${kdelibsuff}/X11           \
+    /usr/lib${kdelibsuff}/X11R6         \
+    /usr/lib${kdelibsuff}/X11R5         \
+    /usr/lib${kdelibsuff}/X11R4         \
+                                        \
+    /usr/local/X11/lib${kdelibsuff}     \
+    /usr/local/X11R6/lib${kdelibsuff}   \
+    /usr/local/X11R5/lib${kdelibsuff}   \
+    /usr/local/X11R4/lib${kdelibsuff}   \
+                                        \
+    /usr/local/lib${kdelibsuff}/X11     \
+    /usr/local/lib${kdelibsuff}/X11R6   \
+    /usr/local/lib${kdelibsuff}/X11R5   \
+    /usr/local/lib${kdelibsuff}/X11R4   \
+                                        \
+    /usr/X386/lib${kdelibsuff}          \
+    /usr/x386/lib${kdelibsuff}          \
+    /usr/XFree86/lib${kdelibsuff}/X11   \
+                                        \
+    /usr/lib${kdelibsuff}               \
+    /usr/local/lib${kdelibsuff}         \
+    /usr/unsupported/lib${kdelibsuff}   \
+    /usr/athena/lib${kdelibsuff}        \
+    /usr/local/x11r5/lib${kdelibsuff}   \
+    /usr/lpp/Xamples/lib${kdelibsuff}   \
+    /lib/usr/lib${kdelibsuff}/X11       \
+                                        \
+    /usr/openwin/lib${kdelibsuff}       \
+    /usr/openwin/share/lib${kdelibsuff} \
+    ; \
+do
+dnl Don't even attempt the hair of trying to link an X program!
+  for ac_extension in a so sl; do
+    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done])
+fi # $ac_x_libraries = NO
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find a file (or one of more files in a list of dirs)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_FIND_FILE],
+[
+$3=NO
+for i in $2;
+do
+  for j in $1;
+  do
+    echo "configure: __oline__: $i/$j" >&AC_FD_CC
+    if test -r "$i/$j"; then
+      echo "taking that" >&AC_FD_CC
+      $3=$i
+      break 2
+    fi
+  done
+done
+])
+
+dnl KDE_FIND_PATH(program-name, variable-name, list-of-dirs,
+dnl	if-not-found, test-parameter, prepend-path)
+dnl
+dnl Look for program-name in list-of-dirs+$PATH.
+dnl If prepend-path is set, look in $PATH+list-of-dirs instead.
+dnl If found, $variable-name is set. If not, if-not-found is evaluated.
+dnl test-parameter: if set, the program is executed with this arg,
+dnl                 and only a successful exit code is required.
+AC_DEFUN([KDE_FIND_PATH],
+[
+   AC_MSG_CHECKING([for $1])
+   if test -n "$$2"; then
+        kde_cv_path="$$2";
+   else
+        kde_cache=`echo $1 | sed 'y%./+-%__p_%'`
+
+        AC_CACHE_VAL(kde_cv_path_$kde_cache,
+        [
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z "$6"; then  dnl Append dirs in PATH (default)
+	  dirs="$3 $dirs"
+        else  dnl Prepend dirs in PATH (if 6th arg is set)
+	  dirs="$dirs $3"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/$1"; then
+	    if test -n "$5"
+	    then
+              evalstr="$dir/$1 $5 2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/$1"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/$1"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+        ])
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      AC_MSG_RESULT(not found)
+      $4
+   else
+      AC_MSG_RESULT($kde_cv_path)
+      $2=$kde_cv_path
+
+   fi
+])
+
+AC_DEFUN([KDE_MOC_ERROR_MESSAGE],
+[
+    AC_MSG_ERROR([No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+])
+])
+
+AC_DEFUN([KDE_UIC_ERROR_MESSAGE],
+[
+    AC_MSG_WARN([No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+])
+])
+
+
+AC_DEFUN([KDE_CHECK_UIC_FLAG],
+[
+    AC_MSG_CHECKING([whether uic supports -$1 ])
+    kde_cache=`echo $1 | sed 'y% .=/+-%____p_%'`
+    AC_CACHE_VAL(kde_cv_prog_uic_$kde_cache,
+    [
+        cat >conftest.ui <<EOT
+        <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+        ac_uic_testrun="$UIC_PATH -$1 $2 conftest.ui >/dev/null"
+        if AC_TRY_EVAL(ac_uic_testrun); then
+            eval "kde_cv_prog_uic_$kde_cache=yes"
+        else
+            eval "kde_cv_prog_uic_$kde_cache=no"
+        fi
+        rm -f conftest*
+    ])
+
+    if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+        AC_MSG_RESULT([yes])
+        :
+        $3
+    else
+        AC_MSG_RESULT([no])
+        :
+        $4
+    fi
+])
+
+
+dnl ------------------------------------------------------------------------
+dnl Find the meta object compiler and the ui compiler in the PATH,
+dnl in $QTDIR/bin, and some more usual places
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_MOC_UIC],
+[
+   AC_REQUIRE([KDE_CHECK_PERL])
+   qt_bindirs=""
+   for dir in $kde_qt_dirs; do
+      qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
+   done
+   qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
+   if test ! "$ac_qt_bindir" = "NO"; then
+      qt_bindirs="$ac_qt_bindir $qt_bindirs"
+   fi
+
+   KDE_FIND_PATH(moc, MOC, [$qt_bindirs], [KDE_MOC_ERROR_MESSAGE])
+   if test -z "$UIC_NOT_NEEDED"; then
+     KDE_FIND_PATH(uic, UIC_PATH, [$qt_bindirs], [UIC_PATH=""])
+     if test -z "$UIC_PATH" ; then
+       KDE_UIC_ERROR_MESSAGE
+       exit 1
+     else
+       UIC=$UIC_PATH
+
+       if test $kde_qtver = 3; then
+         KDE_CHECK_UIC_FLAG(L,[/nonexistent],ac_uic_supports_libpath=yes,ac_uic_supports_libpath=no)
+         KDE_CHECK_UIC_FLAG(nounload,,ac_uic_supports_nounload=yes,ac_uic_supports_nounload=no)
+
+         if test x$ac_uic_supports_libpath = xyes; then
+             UIC="$UIC -L \$(kde_widgetdir)"
+         fi
+         if test x$ac_uic_supports_nounload = xyes; then
+             UIC="$UIC -nounload"
+         fi
+       fi
+     fi
+   else
+     UIC="echo uic not available: "
+   fi
+
+   AC_SUBST(MOC)
+   AC_SUBST(UIC)
+
+   UIC_TR="i18n"
+   if test $kde_qtver = 3; then
+     UIC_TR="tr2i18n"
+   fi
+
+   AC_SUBST(UIC_TR)
+])
+
+AC_DEFUN([KDE_1_CHECK_PATHS],
+[
+  KDE_1_CHECK_PATH_HEADERS
+
+  KDE_TEST_RPATH=
+
+  if test -n "$USE_RPATH"; then
+
+     if test -n "$kde_libraries"; then
+       KDE_TEST_RPATH="-R $kde_libraries"
+     fi
+
+     if test -n "$qt_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+     fi
+
+     if test -n "$x_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+     fi
+
+     KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+  fi
+
+AC_MSG_CHECKING([for KDE libraries installed])
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_ERROR([your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log.])
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+  kde_result=done
+else
+  kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+KDE_SET_PATHS($kde_result)
+
+])
+
+AC_DEFUN([KDE_SET_PATHS],
+[
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=$1"
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_PATHS],
+[
+if test "$1" = "default"; then
+
+  if test -z "$kde_htmldir"; then
+    kde_htmldir='\${datadir}/doc/HTML'
+  fi
+  if test -z "$kde_appsdir"; then
+    kde_appsdir='\${datadir}/applnk'
+  fi
+  if test -z "$kde_icondir"; then
+    kde_icondir='\${datadir}/icons'
+  fi
+  if test -z "$kde_sounddir"; then
+    kde_sounddir='\${datadir}/sounds'
+  fi
+  if test -z "$kde_datadir"; then
+    kde_datadir='\${datadir}/apps'
+  fi
+  if test -z "$kde_locale"; then
+    kde_locale='\${datadir}/locale'
+  fi
+  if test -z "$kde_cgidir"; then
+    kde_cgidir='\${exec_prefix}/cgi-bin'
+  fi
+  if test -z "$kde_confdir"; then
+    kde_confdir='\${datadir}/config'
+  fi
+  if test -z "$kde_kcfgdir"; then
+    kde_kcfgdir='\${datadir}/config.kcfg'
+  fi
+  if test -z "$kde_mimedir"; then
+    kde_mimedir='\${datadir}/mimelnk'
+  fi
+  if test -z "$kde_toolbardir"; then
+    kde_toolbardir='\${datadir}/toolbar'
+  fi
+  if test -z "$kde_wallpaperdir"; then
+    kde_wallpaperdir='\${datadir}/wallpapers'
+  fi
+  if test -z "$kde_templatesdir"; then
+    kde_templatesdir='\${datadir}/templates'
+  fi
+  if test -z "$kde_bindir"; then
+    kde_bindir='\${exec_prefix}/bin'
+  fi
+  if test -z "$kde_servicesdir"; then
+    kde_servicesdir='\${datadir}/services'
+  fi
+  if test -z "$kde_servicetypesdir"; then
+    kde_servicetypesdir='\${datadir}/servicetypes'
+  fi
+  if test -z "$kde_moduledir"; then
+    if test "$kde_qtver" = "2"; then
+      kde_moduledir='\${libdir}/kde2'
+    else
+      kde_moduledir='\${libdir}/kde3'
+    fi
+  fi
+  if test -z "$kde_styledir"; then
+    kde_styledir='\${libdir}/kde3/plugins/styles'
+  fi
+  if test -z "$kde_widgetdir"; then
+    kde_widgetdir='\${libdir}/kde3/plugins/designer'
+  fi
+  if test -z "$xdg_appsdir"; then
+    xdg_appsdir='\${datadir}/applications/kde'
+  fi
+  if test -z "$xdg_menudir"; then
+    xdg_menudir='\${sysconfdir}/xdg/menus'
+  fi
+  if test -z "$xdg_directorydir"; then
+    xdg_directorydir='\${datadir}/desktop-directories'
+  fi
+
+  KDE_SET_PATHS(defaults)
+
+else
+
+  if test $kde_qtver = 1; then
+     AC_MSG_RESULT([compiling])
+     KDE_1_CHECK_PATHS
+  else
+     AC_MSG_ERROR([path checking not yet supported for KDE 2])
+  fi
+
+fi
+])
+
+AC_DEFUN([KDE_CHECK_PATHS_FOR_COMPLETENESS],
+[ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+   test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+   test -z "$kde_datadir" || test -z "$kde_locale"  ||
+   test -z "$kde_cgidir"  || test -z "$kde_confdir" ||
+   test -z "$kde_kcfgdir" ||
+   test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+   test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+   test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+   test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+   test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+   test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+   test "x$kde_have_all_paths" != "xyes"; then
+     kde_have_all_paths=no
+  fi
+])
+
+AC_DEFUN([KDE_MISSING_PROG_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed KDE correctly.
+])
+])
+
+AC_DEFUN([KDE_MISSING_ARTS_ERROR],
+[
+    AC_MSG_ERROR([The important program $1 was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+])
+])
+
+AC_DEFUN([KDE_SET_DEFAULT_BINDIRS],
+[
+    kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+    test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+    if test -n "$KDEDIRS"; then
+       kde_save_IFS=$IFS
+       IFS=:
+       for dir in $KDEDIRS; do
+            kde_default_bindirs="$dir/bin $kde_default_bindirs "
+       done
+       IFS=$kde_save_IFS
+    fi
+])
+
+AC_DEFUN([KDE_SUBST_PROGRAMS],
+[
+    AC_ARG_WITH(arts,
+        AC_HELP_STRING([--without-arts],[build without aRts [default=no]]),
+        [build_arts=$withval],
+        [build_arts=yes]
+    )
+    AM_CONDITIONAL(include_ARTS, test "$build_arts" '!=' "no")
+    if test "$build_arts" = "no"; then
+        AC_DEFINE(WITHOUT_ARTS, 1, [Defined if compiling without arts])
+    fi
+
+        KDE_SET_DEFAULT_BINDIRS
+        kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
+        KDE_FIND_PATH(dcopidl, DCOPIDL, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl)])
+        KDE_FIND_PATH(dcopidl2cpp, DCOPIDL2CPP, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidl2cpp)])
+        if test "$build_arts" '!=' "no"; then
+          KDE_FIND_PATH(mcopidl, MCOPIDL, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(mcopidl)])
+          KDE_FIND_PATH(artsc-config, ARTSCCONFIG, [$kde_default_bindirs], [KDE_MISSING_ARTS_ERROR(artsc-config)])
+        fi
+        KDE_FIND_PATH(meinproc, MEINPROC, [$kde_default_bindirs])
+
+        kde32ornewer=1
+        kde33ornewer=1
+        if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
+            kde32ornewer=
+            kde33ornewer=
+        else
+            if test "$kde_qtver" = "3"; then
+              if test "$kde_qtsubver" -le 1; then
+                kde32ornewer=
+              fi
+              if test "$kde_qtsubver" -le 2; then
+                kde33ornewer=
+              fi
+              if test "$KDECONFIG" != "compiled"; then
+                if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
+                  kde33ornewer=
+                fi
+              fi
+            fi
+        fi
+
+        if test -n "$kde32ornewer"; then
+            KDE_FIND_PATH(kconfig_compiler, KCONFIG_COMPILER, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kconfig_compiler)])
+            KDE_FIND_PATH(dcopidlng, DCOPIDLNG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(dcopidlng)])
+        fi
+        if test -n "$kde33ornewer"; then
+            KDE_FIND_PATH(makekdewidgets, MAKEKDEWIDGETS, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(makekdewidgets)])
+            AC_SUBST(MAKEKDEWIDGETS)
+        fi
+        KDE_FIND_PATH(xmllint, XMLLINT, [${prefix}/bin ${exec_prefix}/bin], [XMLLINT=""])
+
+        if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
+ 	    kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
+            test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
+            AC_FIND_FILE(apps/ksgmltools2/customization/kde-chunk.xsl, $kde_sharedirs, KDE_XSL_STYLESHEET)
+	    if test "$KDE_XSL_STYLESHEET" = "NO"; then
+		KDE_XSL_STYLESHEET=""
+	    else
+                KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
+	    fi
+        fi
+
+        DCOP_DEPENDENCIES='$(DCOPIDL)'
+        if test -n "$kde32ornewer"; then
+            KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
+            DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
+            AC_SUBST(KCONFIG_COMPILER)
+            AC_SUBST(KCFG_DEPENDENCIES)
+            AC_SUBST(DCOPIDLNG)
+        fi
+        AC_SUBST(DCOPIDL)
+        AC_SUBST(DCOPIDL2CPP)
+        AC_SUBST(DCOP_DEPENDENCIES)
+        AC_SUBST(MCOPIDL)
+        AC_SUBST(ARTSCCONFIG)
+	AC_SUBST(MEINPROC)
+ 	AC_SUBST(KDE_XSL_STYLESHEET)
+	AC_SUBST(XMLLINT)
+])dnl
+
+AC_DEFUN([AC_CREATE_KFSSTND],
+[
+AC_REQUIRE([AC_CHECK_RPATH])
+
+AC_MSG_CHECKING([for KDE paths])
+kde_result=""
+kde_cached_paths=yes
+AC_CACHE_VAL(kde_cv_all_paths,
+[
+  KDE_SET_DEFAULT_PATHS($1)
+  kde_cached_paths=no
+])
+eval "$kde_cv_all_paths"
+KDE_CHECK_PATHS_FOR_COMPLETENESS
+if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
+  # wrong values were cached, may be, we can set better ones
+  kde_result=
+  kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
+  kde_datadir= kde_locale=  kde_cgidir=  kde_confdir= kde_kcfgdir=
+  kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
+  kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
+  kde_have_all_paths=
+  kde_styledir=
+  kde_widgetdir=
+  xdg_appsdir = xdg_menudir= xdg_directorydir= 
+  KDE_SET_DEFAULT_PATHS($1)
+  eval "$kde_cv_all_paths"
+  KDE_CHECK_PATHS_FOR_COMPLETENESS
+  kde_result="$kde_result (cache overridden)"
+fi
+if test "$kde_have_all_paths" = "no"; then
+  AC_MSG_ERROR([configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+])
+else
+  rm -f conftest*
+  AC_MSG_RESULT($kde_result)
+fi
+
+bindir=$kde_bindir
+
+KDE_SUBST_PROGRAMS
+
+])
+
+AC_DEFUN([AC_SUBST_KFSSTND],
+[
+AC_SUBST(kde_htmldir)
+AC_SUBST(kde_appsdir)
+AC_SUBST(kde_icondir)
+AC_SUBST(kde_sounddir)
+AC_SUBST(kde_datadir)
+AC_SUBST(kde_locale)
+AC_SUBST(kde_confdir)
+AC_SUBST(kde_kcfgdir)
+AC_SUBST(kde_mimedir)
+AC_SUBST(kde_wallpaperdir)
+AC_SUBST(kde_bindir)
+dnl X Desktop Group standards
+AC_SUBST(xdg_appsdir)
+AC_SUBST(xdg_menudir)
+AC_SUBST(xdg_directorydir)
+dnl for KDE 2
+AC_SUBST(kde_templatesdir)
+AC_SUBST(kde_servicesdir)
+AC_SUBST(kde_servicetypesdir)
+AC_SUBST(kde_moduledir)
+AC_SUBST(kdeinitdir, '$(kde_moduledir)')
+AC_SUBST(kde_styledir)
+AC_SUBST(kde_widgetdir)
+if test "$kde_qtver" = 1; then
+  kde_minidir="$kde_icondir/mini"
+else
+# for KDE 1 - this breaks KDE2 apps using minidir, but
+# that's the plan ;-/
+  kde_minidir="/dev/null"
+fi
+dnl AC_SUBST(kde_minidir)
+dnl AC_SUBST(kde_cgidir)
+dnl AC_SUBST(kde_toolbardir)
+])
+
+AC_DEFUN([KDE_MISC_TESTS],
+[
+   dnl Checks for libraries.
+   AC_CHECK_LIB(util, main, [LIBUTIL="-lutil"]) dnl for *BSD 
+   AC_SUBST(LIBUTIL)
+   AC_CHECK_LIB(compat, main, [LIBCOMPAT="-lcompat"]) dnl for *BSD
+   AC_SUBST(LIBCOMPAT)
+   kde_have_crypt=
+   AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"; kde_have_crypt=yes],
+      AC_CHECK_LIB(c, crypt, [kde_have_crypt=yes], [
+        AC_MSG_WARN([you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support])
+	kde_have_crypt=no
+      ]))
+   AC_SUBST(LIBCRYPT)
+   if test $kde_have_crypt = yes; then
+      AC_DEFINE_UNQUOTED(HAVE_CRYPT, 1, [Defines if your system has the crypt function])
+   fi
+   AC_CHECK_SOCKLEN_T
+   AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
+   if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+      AC_CHECK_LIB(dnet_stub, dnet_ntoa,
+        [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
+   fi
+   AC_CHECK_FUNC(inet_ntoa)
+   if test $ac_cv_func_inet_ntoa = no; then
+     AC_CHECK_LIB(nsl, inet_ntoa, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
+   fi
+   AC_CHECK_FUNC(connect)
+   if test $ac_cv_func_connect = no; then
+      AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
+        $X_EXTRA_LIBS)
+   fi
+
+   AC_CHECK_FUNC(remove)
+   if test $ac_cv_func_remove = no; then
+      AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
+   fi
+
+   # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+   AC_CHECK_FUNC(shmat, ,
+     AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"))
+   
+   # more headers that need to be explicitly included on darwin
+   AC_CHECK_HEADERS(sys/types.h stdint.h)
+
+   # sys/bitypes.h is needed for uint32_t and friends on Tru64
+   AC_CHECK_HEADERS(sys/bitypes.h)
+
+   # darwin requires a poll emulation library
+   AC_CHECK_LIB(poll, poll, LIB_POLL="-lpoll")
+
+   # for some image handling on Mac OS X
+   AC_CHECK_HEADERS(Carbon/Carbon.h)
+
+   # CoreAudio framework
+   AC_CHECK_HEADER(CoreAudio/CoreAudio.h, [
+     AC_DEFINE(HAVE_COREAUDIO, 1, [Define if you have the CoreAudio API])
+     FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio"
+   ])
+
+   AC_CHECK_RES_INIT
+   AC_SUBST(LIB_POLL)
+   AC_SUBST(FRAMEWORK_COREAUDIO)
+   LIBSOCKET="$X_EXTRA_LIBS"
+   AC_SUBST(LIBSOCKET)
+   AC_SUBST(X_EXTRA_LIBS)
+   AC_CHECK_LIB(ucb, killpg, [LIBUCB="-lucb"]) dnl for Solaris2.4
+   AC_SUBST(LIBUCB)
+
+   case $host in  dnl this *is* LynxOS specific
+   *-*-lynxos* )
+        AC_MSG_CHECKING([LynxOS header file wrappers])
+        [CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"]
+        AC_MSG_RESULT(disabled)
+        AC_CHECK_LIB(bsd, gethostbyname, [LIBSOCKET="-lbsd"]) dnl for LynxOS
+         ;;
+    esac
+
+   KDE_CHECK_TYPES
+   KDE_CHECK_LIBDL
+   KDE_CHECK_STRLCPY
+   KDE_CHECK_PIE_SUPPORT
+
+# darwin needs this to initialize the environment
+AC_CHECK_HEADERS(crt_externs.h)
+AC_CHECK_FUNC(_NSGetEnviron, [AC_DEFINE(HAVE_NSGETENVIRON, 1, [Define if your system needs _NSGetEnviron to set up the environment])])
+ 
+AH_VERBATIM(_DARWIN_ENVIRON,
+[
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+])
+
+AH_VERBATIM(_AIX_STRINGS_H_BZERO,
+[
+/*
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
+ * that defines bzero.
+ */
+
+#if defined(_AIX)
+#include <strings.h>
+#endif
+])
+
+AC_CHECK_FUNCS([vsnprintf snprintf])
+
+AH_VERBATIM(_TRU64,[
+/*
+ * On HP-UX, the declaration of vsnprintf() is needed every time !
+ */
+
+#if !defined(HAVE_VSNPRINTF) || defined(hpux)
+#if __STDC__
+#include <stdarg.h>
+#include <stdlib.h>
+#else
+#include <varargs.h>
+#endif
+#ifdef __cplusplus
+extern "C"
+#endif
+int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
+#ifdef __cplusplus
+extern "C"
+#endif
+int snprintf(char *str, size_t n, char const *fmt, ...);
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Find the header files and libraries for X-Windows. Extended the
+dnl macro AC_PATH_X
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([K_PATH_X],
+[
+AC_REQUIRE([KDE_MISC_TESTS])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_ARG_ENABLE(
+  embedded,
+  AC_HELP_STRING([--enable-embedded],[link to Qt-embedded, don't use X]),
+  kde_use_qt_emb=$enableval,
+  kde_use_qt_emb=no
+)
+
+AC_ARG_ENABLE(
+  qtopia,
+  AC_HELP_STRING([--enable-qtopia],[link to Qt-embedded, link to the Qtopia Environment]),
+  kde_use_qt_emb_palm=$enableval,
+  kde_use_qt_emb_palm=no
+)
+
+AC_ARG_ENABLE(
+  mac,
+  AC_HELP_STRING([--enable-mac],[link to Qt/Mac (don't use X)]),
+  kde_use_qt_mac=$enableval,
+  kde_use_qt_mac=no
+)
+
+# used to disable x11-specific stuff on special platforms
+AM_CONDITIONAL(include_x11, test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no")
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+
+AC_MSG_CHECKING(for X)
+
+AC_CACHE_VAL(kde_cv_have_x,
+[# One or both of the vars are not set, and there is no cached value.
+if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
+   kde_x_includes=NO
+else
+   kde_x_includes=$x_includes
+fi
+if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
+   kde_x_libraries=NO
+else
+   kde_x_libraries=$x_libraries
+fi
+
+# below we use the standard autoconf calls
+ac_x_libraries=$kde_x_libraries
+ac_x_includes=$kde_x_includes
+
+KDE_PATH_X_DIRECT
+dnl AC_PATH_X_XMKMF picks /usr/lib as the path for the X libraries.
+dnl Unfortunately, if compiling with the N32 ABI, this is not the correct
+dnl location. The correct location is /usr/lib32 or an undefined value
+dnl (the linker is smart enough to pick the correct default library).
+dnl Things work just fine if you use just AC_PATH_X_DIRECT.
+dnl Solaris has a similar problem. AC_PATH_X_XMKMF forces x_includes to
+dnl /usr/openwin/include, which doesn't work. /usr/include does work, so
+dnl x_includes should be left alone.
+case "$host" in
+mips-sgi-irix6*)
+  ;;
+*-*-solaris*)
+  ;;
+*)
+  _AC_PATH_X_XMKMF
+  if test -z "$ac_x_includes"; then
+    ac_x_includes="."
+  fi
+  if test -z "$ac_x_libraries"; then
+    ac_x_libraries="/usr/lib${kdelibsuff}"
+  fi
+esac
+#from now on we use our own again
+
+# when the user already gave --x-includes, we ignore
+# what the standard autoconf macros told us.
+if test "$kde_x_includes" = NO; then
+  kde_x_includes=$ac_x_includes
+fi
+
+# for --x-libraries too
+if test "$kde_x_libraries" = NO; then
+  kde_x_libraries=$ac_x_libraries
+fi
+
+if test "$kde_x_includes" = NO; then
+  AC_MSG_ERROR([Can't find X includes. Please check your installation and add the correct paths!])
+fi
+
+if test "$kde_x_libraries" = NO; then
+  AC_MSG_ERROR([Can't find X libraries. Please check your installation and add the correct paths!])
+fi
+
+# Record where we found X for the cache.
+kde_cv_have_x="have_x=yes \
+         kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
+])dnl
+
+eval "$kde_cv_have_x"
+
+if test "$have_x" != yes; then
+  AC_MSG_RESULT($have_x)
+  no_x=yes
+else
+  AC_MSG_RESULT([libraries $kde_x_libraries, headers $kde_x_includes])
+fi
+
+if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
+  X_INCLUDES=""
+  x_includes="."; dnl better than nothing :-
+ else
+  x_includes=$kde_x_includes
+  X_INCLUDES="-I$x_includes"
+fi
+
+if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then
+  X_LDFLAGS=""
+  x_libraries="/usr/lib"; dnl better than nothing :-
+ else
+  x_libraries=$kde_x_libraries
+  X_LDFLAGS="-L$x_libraries"
+fi
+all_includes="$X_INCLUDES"
+all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
+
+# Check for libraries that X11R6 Xt/Xaw programs need.
+ac_save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+# check for ICE first), but we must link in the order -lSM -lICE or
+# we get undefined symbols.  So assume we have SM if we have ICE.
+# These have to be linked with before -lX11, unlike the other
+# libraries we check for below, so use a different variable.
+#  --interran at uluru.Stanford.EDU, kb at cs.umb.edu.
+AC_CHECK_LIB(ICE, IceConnectionNumber,
+  [LIBSM="-lSM -lICE"], , $X_EXTRA_LIBS)
+LDFLAGS="$ac_save_LDFLAGS"
+
+LIB_X11='-lX11 $(LIBSOCKET)'
+
+AC_MSG_CHECKING(for libXext)
+AC_CACHE_VAL(kde_cv_have_libXext,
+[
+kde_ldflags_safe="$LDFLAGS"
+kde_libs_safe="$LIBS"
+
+LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
+LIBS="-lXext -lX11 $LIBSOCKET"
+
+AC_TRY_LINK([
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+],
+[
+printf("hello Xext\n");
+],
+kde_cv_have_libXext=yes,
+kde_cv_have_libXext=no
+)
+
+LDFLAGS=$kde_ldflags_safe
+LIBS=$kde_libs_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_libXext)
+
+if test "$kde_cv_have_libXext" = "no"; then
+  AC_MSG_ERROR([We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either.])
+fi
+
+LIB_XEXT="-lXext"
+QTE_NORTTI=""
+
+elif test "$kde_use_qt_emb" = "yes"; then
+  dnl We're using QT Embedded
+  CPPFLAGS=-DQWS
+  CXXFLAGS="$CXXFLAGS -fno-rtti"
+  QTE_NORTTI="-fno-rtti -DQWS"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+elif test "$kde_use_qt_mac" = "yes"; then
+  dnl We're using QT/Mac (I use QT_MAC so that qglobal.h doesn't *have* to
+  dnl be included to get the information) --Sam
+  CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+  CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+fi
+AC_SUBST(X_PRE_LIBS)
+AC_SUBST(LIB_X11)
+AC_SUBST(LIB_XRENDER)
+AC_SUBST(LIBSM)
+AC_SUBST(X_INCLUDES)
+AC_SUBST(X_LDFLAGS)
+AC_SUBST(x_includes)
+AC_SUBST(x_libraries)
+AC_SUBST(QTE_NORTTI)
+AC_SUBST(LIB_XEXT)
+
+])
+
+AC_DEFUN([KDE_PRINT_QT_PROGRAM],
+[
+AC_REQUIRE([KDE_USE_QT])
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+    QStringList *t = new QStringList();
+    Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+    QString s;
+    s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+    (void)QStyleFactory::create(QString::null);
+    QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+    return 0;
+}
+EOF
+])
+
+AC_DEFUN([KDE_USE_QT],
+[
+if test -z "$1"; then
+  # Current default Qt version: 3.3
+  kde_qtver=3
+  kde_qtsubver=3
+else
+  kde_qtsubver=`echo "$1" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
+  # following is the check if subversion isnt found in passed argument
+  if test "$kde_qtsubver" = "$1"; then
+    kde_qtsubver=1
+  fi
+  kde_qtver=`echo "$1" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
+  if test "$kde_qtver" = "1"; then
+    kde_qtsubver=42
+  fi
+fi
+
+if test -z "$2"; then
+  if test "$kde_qtver" = "2"; then
+    if test $kde_qtsubver -gt 0; then
+      kde_qt_minversion=">= Qt 2.2.2"
+    else
+      kde_qt_minversion=">= Qt 2.0.2"
+    fi
+  fi
+  if test "$kde_qtver" = "3"; then
+    if test $kde_qtsubver -gt 0; then
+	 if test $kde_qtsubver -gt 1; then
+	    if test $kde_qtsubver -gt 2; then
+		kde_qt_minversion=">= Qt 3.3 and < 4.0"
+	    else
+	        kde_qt_minversion=">= Qt 3.2 and < 4.0"
+	    fi
+	 else
+            kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
+         fi
+    else
+      kde_qt_minversion=">= Qt 3.0 and < 4.0"
+    fi
+  fi
+  if test "$kde_qtver" = "1"; then
+    kde_qt_minversion=">= 1.42 and < 2.0"
+  fi
+else
+   kde_qt_minversion="$2"
+fi
+
+if test -z "$3"; then
+   if test $kde_qtver = 3; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 0x03 at VER@00 && QT_VERSION < 0x040000"
+       qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
+       kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s, at VER@,$qtsubver,"`
+     else
+       kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
+     fi
+   fi
+   if test $kde_qtver = 2; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 222"
+     else
+       kde_qt_verstring="QT_VERSION >= 200"
+     fi
+   fi
+   if test $kde_qtver = 1; then
+    kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
+   fi
+else
+   kde_qt_verstring="$3"
+fi
+
+if test $kde_qtver = 4; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
+fi
+if test $kde_qtver = 3; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3"
+fi
+if test $kde_qtver = 2; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
+fi
+if test $kde_qtver = 1; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt"
+fi
+])
+
+AC_DEFUN([KDE_CHECK_QT_DIRECT],
+[
+AC_REQUIRE([KDE_USE_QT])
+AC_MSG_CHECKING([if Qt compiles without flags])
+AC_CACHE_VAL(kde_cv_qt_direct,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
+ac_LIBRARY_PATH="$LIBRARY_PATH"
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_includes"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
+else
+LIBS="$LIBQT $LIBSOCKET"
+fi
+LD_LIBRARY_PATH=
+export LD_LIBRARY_PATH
+LIBRARY_PATH=
+export LIBRARY_PATH
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  kde_cv_qt_direct="yes"
+else
+  kde_cv_qt_direct="no"
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+fi
+
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
+export LD_LIBRARY_PATH
+LIBRARY_PATH="$ac_LIBRARY_PATH"
+export LIBRARY_PATH
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_qt_direct" = "yes"; then
+  AC_MSG_RESULT(yes)
+  $1
+else
+  AC_MSG_RESULT(no)
+  $2
+fi
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the Qt headers and libraries.
+dnl $(QT_LDFLAGS) will be -Lqtliblocation (if needed)
+dnl and $(QT_INCLUDES) will be -Iqthdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_PATH_QT_1_3],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([KDE_USE_QT])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+dnl ------------------------------------------------------------------------
+dnl Add configure flag to enable linking to MT version of Qt library.
+dnl ------------------------------------------------------------------------
+
+AC_ARG_ENABLE(
+  mt,
+  AC_HELP_STRING([--disable-mt],[link to non-threaded Qt (deprecated)]),
+  kde_use_qt_mt=$enableval,
+  [
+    if test $kde_qtver = 3; then
+      kde_use_qt_mt=yes
+    else
+      kde_use_qt_mt=no
+    fi
+  ]
+)
+
+USING_QT_MT=""
+
+dnl ------------------------------------------------------------------------
+dnl If we not get --disable-qt-mt then adjust some vars for the host.
+dnl ------------------------------------------------------------------------
+
+KDE_MT_LDFLAGS=
+KDE_MT_LIBS=
+if test "x$kde_use_qt_mt" = "xyes"; then
+  KDE_CHECK_THREADING
+  if test "x$kde_use_threading" = "xyes"; then
+    CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
+    KDE_MT_LDFLAGS="$USE_THREADS"
+    KDE_MT_LIBS="$LIBPTHREAD"
+  else
+    kde_use_qt_mt=no
+  fi
+fi
+AC_SUBST(KDE_MT_LDFLAGS)
+AC_SUBST(KDE_MT_LIBS)
+
+kde_qt_was_given=yes
+
+dnl ------------------------------------------------------------------------
+dnl If we haven't been told how to link to Qt, we work it out for ourselves.
+dnl ------------------------------------------------------------------------
+if test -z "$LIBQT_GLOB"; then
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    LIBQT_GLOB="libqte.*"
+  else
+    LIBQT_GLOB="libqt.*"
+  fi
+fi
+
+dnl ------------------------------------------------------------
+dnl If we got --enable-embedded then adjust the Qt library name.
+dnl ------------------------------------------------------------
+if test "x$kde_use_qt_emb" = "xyes"; then
+  qtlib="qte"
+else
+  qtlib="qt"
+fi
+
+kde_int_qt="-l$qtlib"
+
+if test -z "$LIBQPE"; then
+dnl ------------------------------------------------------------
+dnl If we got --enable-palmtop then add -lqpe to the link line
+dnl ------------------------------------------------------------
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    if test "x$kde_use_qt_emb_palm" = "xyes"; then
+      LIB_QPE="-lqpe"
+    else
+      LIB_QPE=""
+    fi
+  else
+    LIB_QPE=""
+  fi
+fi
+
+dnl ------------------------------------------------------------------------
+dnl If we got --enable-qt-mt then adjust the Qt library name for the host.
+dnl ------------------------------------------------------------------------
+
+if test "x$kde_use_qt_mt" = "xyes"; then
+  LIBQT="-l$qtlib-mt"
+  kde_int_qt="-l$qtlib-mt"
+  LIBQT_GLOB="lib$qtlib-mt.*"
+  USING_QT_MT="using -mt"
+else
+  LIBQT="-l$qtlib"
+fi
+
+if test $kde_qtver != 1; then
+
+  AC_REQUIRE([AC_FIND_PNG])
+  AC_REQUIRE([AC_FIND_JPEG])
+  LIBQT="$LIBQT $LIBPNG $LIBJPEG"
+fi
+
+if test $kde_qtver = 3; then
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+  LIBQT="$LIBQT $LIBDL"
+fi
+
+AC_MSG_CHECKING([for Qt])
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
+fi
+ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
+qt_libraries=""
+qt_includes=""
+AC_ARG_WITH(qt-dir,
+    AC_HELP_STRING([--with-qt-dir=DIR],[where the root of Qt is installed ]),
+    [  ac_qt_includes="$withval"/include
+       ac_qt_libraries="$withval"/lib${kdelibsuff}
+       ac_qt_bindir="$withval"/bin
+    ])
+
+AC_ARG_WITH(qt-includes,
+    AC_HELP_STRING([--with-qt-includes=DIR],[where the Qt includes are. ]),
+    [
+       ac_qt_includes="$withval"
+    ])
+
+kde_qt_libs_given=no
+
+AC_ARG_WITH(qt-libraries,
+    AC_HELP_STRING([--with-qt-libraries=DIR],[where the Qt library is installed.]),
+    [  ac_qt_libraries="$withval"
+       kde_qt_libs_given=yes
+    ])
+
+AC_CACHE_VAL(ac_cv_have_qt,
+[#try to guess Qt locations
+
+qt_incdirs=""
+for dir in $kde_qt_dirs; do
+   qt_incdirs="$qt_incdirs $dir/include $dir"
+done
+qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
+if test ! "$ac_qt_includes" = "NO"; then
+   qt_incdirs="$ac_qt_includes $qt_incdirs"
+fi
+
+if test "$kde_qtver" != "1"; then
+  kde_qt_header=qstyle.h
+else
+  kde_qt_header=qglobal.h
+fi
+
+AC_FIND_FILE($kde_qt_header, $qt_incdirs, qt_incdir)
+ac_qt_includes="$qt_incdir"
+
+qt_libdirs=""
+for dir in $kde_qt_dirs; do
+   qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir"
+done
+qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
+if test ! "$ac_qt_libraries" = "NO"; then
+  qt_libdir=$ac_qt_libraries
+else
+  qt_libdirs="$ac_qt_libraries $qt_libdirs"
+  # if the Qt was given, the chance is too big that libqt.* doesn't exist
+  qt_libdir=NONE
+  for dir in $qt_libdirs; do
+    try="ls -1 $dir/${LIBQT_GLOB}"
+    if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+    LIBQT="$LIBQT ${kde_int_qt}_incremental"
+    break
+  fi
+done
+
+ac_qt_libraries="$qt_libdir"
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+KDE_PRINT_QT_PROGRAM
+
+if AC_TRY_EVAL(ac_link) && test -s conftest; then
+  rm -f conftest*
+else
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat conftest.$ac_ext >&AC_FD_CC
+  ac_qt_libraries="NO"
+fi
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+AC_LANG_RESTORE
+if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
+  ac_cv_have_qt="have_qt=no"
+  ac_qt_notfound=""
+  missing_qt_mt=""
+  if test "$ac_qt_includes" = NO; then
+    if test "$ac_qt_libraries" = NO; then
+      ac_qt_notfound="(headers and libraries)";
+    else
+      ac_qt_notfound="(headers)";
+    fi
+  else
+    if test "x$kde_use_qt_mt" = "xyes"; then
+       missing_qt_mt="
+Make sure that you have compiled Qt with thread support!"
+       ac_qt_notfound="(library $qtlib-mt)";
+    else
+       ac_qt_notfound="(library $qtlib)";
+    fi
+  fi
+
+  AC_MSG_ERROR([Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt])
+else
+  have_qt="yes"
+fi
+])
+
+eval "$ac_cv_have_qt"
+
+if test "$have_qt" != yes; then
+  AC_MSG_RESULT([$have_qt]);
+else
+  ac_cv_have_qt="have_qt=yes \
+    ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
+  AC_MSG_RESULT([libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT])
+
+  qt_libraries="$ac_qt_libraries"
+  qt_includes="$ac_qt_includes"
+fi
+
+if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
+     KDE_CHECK_QT_DIRECT(qt_libraries= ,[])
+fi
+
+AC_SUBST(qt_libraries)
+AC_SUBST(qt_includes)
+
+if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
+ QT_INCLUDES=""
+else
+ QT_INCLUDES="-I$qt_includes"
+ all_includes="$QT_INCLUDES $all_includes"
+fi
+
+if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
+ QT_LDFLAGS=""
+else
+ QT_LDFLAGS="-L$qt_libraries"
+ all_libraries="$QT_LDFLAGS $all_libraries"
+fi
+test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
+
+AC_SUBST(QT_INCLUDES)
+AC_SUBST(QT_LDFLAGS)
+AC_PATH_QT_MOC_UIC
+
+KDE_CHECK_QT_JPEG
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
+else
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
+fi
+test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+     LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+     break
+  fi
+done
+
+AC_SUBST(LIB_QT)
+AC_SUBST(LIB_QPE)
+
+AC_SUBST(kde_qtver)
+])
+
+AC_DEFUN([AC_PATH_QT],
+[
+AC_PATH_QT_1_3
+])
+
+AC_DEFUN([KDE_CHECK_UIC_PLUGINS],
+[
+AC_REQUIRE([AC_PATH_QT_MOC_UIC])
+
+if test x$ac_uic_supports_libpath = xyes; then
+
+AC_MSG_CHECKING([if UIC has KDE plugins available])
+AC_CACHE_VAL(kde_cv_uic_plugins,
+[
+cat > actest.ui << EOF
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>NewConnectionDialog</class>
+<widget class="QDialog">
+   <widget class="KLineEdit">
+        <property name="name">
+           <cstring>testInput</cstring>
+        </property>
+   </widget>
+</widget>
+</UI>
+EOF
+       
+
+
+kde_cv_uic_plugins=no
+kde_line="$UIC_PATH -L $kde_widgetdir"
+if test x$ac_uic_supports_nounload = xyes; then
+   kde_line="$kde_line -nounload"
+fi
+kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
+if AC_TRY_EVAL(kde_line); then
+	# if you're trying to debug this check and think it's incorrect,
+	# better check your installation. The check _is_ correct - your
+	# installation is not.
+	if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
+		kde_cv_uic_plugins=yes
+	fi
+fi
+rm -f actest.ui actest.cpp
+])
+
+AC_MSG_RESULT([$kde_cv_uic_plugins])
+if test "$kde_cv_uic_plugins" != yes; then
+	AC_MSG_ERROR([
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs. 
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the 
+_same Qt version_, compiled with the _same compiler_ and the same Qt
+configuration settings.
+])
+fi
+fi
+])
+
+AC_DEFUN([KDE_CHECK_FINAL],
+[
+  AC_ARG_ENABLE(final,
+	AC_HELP_STRING([--enable-final],
+		       [build size optimized apps (experimental - needs lots of memory)]),
+	kde_use_final=$enableval, kde_use_final=no)
+
+  if test "x$kde_use_final" = "xyes"; then
+      KDE_USE_FINAL_TRUE=""
+      KDE_USE_FINAL_FALSE="#"
+   else
+      KDE_USE_FINAL_TRUE="#"
+      KDE_USE_FINAL_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_FINAL_TRUE)
+  AC_SUBST(KDE_USE_FINAL_FALSE)
+])
+
+AC_DEFUN([KDE_CHECK_CLOSURE],
+[
+  AC_ARG_ENABLE(closure,
+		AC_HELP_STRING([--enable-closure],[delay template instantiation]),
+  	kde_use_closure=$enableval, kde_use_closure=no)
+
+  KDE_NO_UNDEFINED=""
+  if test "x$kde_use_closure" = "xyes"; then
+       KDE_USE_CLOSURE_TRUE=""
+       KDE_USE_CLOSURE_FALSE="#"
+#       CXXFLAGS="$CXXFLAGS $REPO"
+  else
+       KDE_USE_CLOSURE_TRUE="#"
+       KDE_USE_CLOSURE_FALSE=""
+       KDE_NO_UNDEFINED=""
+       case $host in 
+         *-*-linux-gnu)
+           KDE_CHECK_COMPILER_FLAG([Wl,--no-undefined],
+                [KDE_CHECK_COMPILER_FLAG([Wl,--allow-shlib-undefined],
+		[KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"],
+		[KDE_NO_UNDEFINED=""])],
+	    [KDE_NO_UNDEFINED=""])
+           ;;
+       esac
+  fi
+  AC_SUBST(KDE_USE_CLOSURE_TRUE)
+  AC_SUBST(KDE_USE_CLOSURE_FALSE)
+  AC_SUBST(KDE_NO_UNDEFINED)
+])
+
+dnl Check if the linker supports --enable-new-dtags and --as-needed
+AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],
+[
+  AC_ARG_ENABLE(new_ldflags,
+		AC_HELP_STRING([--enable-new-ldflags],
+		[enable the new linker flags]),
+	kde_use_new_ldflags=$enableval, 
+	kde_use_new_ldflags=no)
+
+  LDFLAGS_AS_NEEDED=""
+  LDFLAGS_NEW_DTAGS=""
+  if test "x$kde_use_new_ldflags" = "xyes"; then
+       LDFLAGS_NEW_DTAGS=""
+       KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
+		[LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)
+
+       KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
+		[LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
+  fi
+  AC_SUBST(LDFLAGS_AS_NEEDED)
+  AC_SUBST(LDFLAGS_NEW_DTAGS)
+])
+
+AC_DEFUN([KDE_CHECK_NMCHECK],
+[
+  AC_ARG_ENABLE(nmcheck,AC_HELP_STRING([--enable-nmcheck],[enable automatic namespace cleanness check]),
+	kde_use_nmcheck=$enableval, kde_use_nmcheck=no)
+
+  if test "$kde_use_nmcheck" = "yes"; then
+      KDE_USE_NMCHECK_TRUE=""
+      KDE_USE_NMCHECK_FALSE="#"
+   else
+      KDE_USE_NMCHECK_TRUE="#"
+      KDE_USE_NMCHECK_FALSE=""
+  fi
+  AC_SUBST(KDE_USE_NMCHECK_TRUE)
+  AC_SUBST(KDE_USE_NMCHECK_FALSE)
+])
+
+AC_DEFUN([KDE_EXPAND_MAKEVAR], [
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$$2
+while $1=`eval echo "$tmp"`; test "x$$1" != "x$tmp"; do tmp=$$1; done
+exec_prefix=$savex
+])
+
+dnl ------------------------------------------------------------------------
+dnl Now, the same with KDE
+dnl $(KDE_LDFLAGS) will be the kdeliblocation (if needed)
+dnl and $(kde_includes) will be the kdehdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_BASE_PATH_KDE],
+[
+AC_REQUIRE([KDE_CHECK_STL])
+AC_REQUIRE([AC_PATH_QT])dnl
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_CHECK_RPATH
+AC_MSG_CHECKING([for KDE])
+
+if test "${prefix}" != NONE; then
+  kde_includes=${includedir}
+  KDE_EXPAND_MAKEVAR(ac_kde_includes, includedir)
+
+  kde_libraries=${libdir}
+  KDE_EXPAND_MAKEVAR(ac_kde_libraries, libdir)
+
+else
+  ac_kde_includes=
+  ac_kde_libraries=
+  kde_libraries=""
+  kde_includes=""
+fi
+
+AC_CACHE_VAL(ac_cv_have_kde,
+[#try to guess kde locations
+
+if test "$kde_qtver" = 1; then
+  kde_check_header="ksock.h"
+  kde_check_lib="libkdecore.la"
+else
+  kde_check_header="ksharedptr.h"
+  kde_check_lib="libkio.la"
+fi
+
+if test -z "$1"; then
+
+kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
+test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
+kde_incdirs="$ac_kde_includes $kde_incdirs"
+AC_FIND_FILE($kde_check_header, $kde_incdirs, kde_incdir)
+ac_kde_includes="$kde_incdir"
+
+if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
+  AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
+test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
+kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
+AC_FIND_FILE($kde_check_lib, $kde_libdirs, kde_libdir)
+ac_kde_libraries="$kde_libdir"
+
+kde_widgetdir=NO
+dnl this might be somewhere else
+AC_FIND_FILE("kde3/plugins/designer/kdewidgets.la", $kde_libdirs, kde_widgetdir)
+
+if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
+AC_MSG_ERROR([
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!])
+fi
+
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+AC_MSG_ERROR([
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs])
+fi
+
+if test -n "$kde_widgetdir"; then
+    kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+fi
+
+
+if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
+  ac_cv_have_kde="have_kde=no"
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+fi
+
+else dnl test -z $1, e.g. from kdelibs
+
+  ac_cv_have_kde="have_kde=no"
+
+fi
+])dnl
+
+eval "$ac_cv_have_kde"
+
+if test "$have_kde" != "yes"; then
+ if test "${prefix}" = NONE; then
+  ac_kde_prefix="$ac_default_prefix"
+ else
+  ac_kde_prefix="$prefix"
+ fi
+ if test "$exec_prefix" = NONE; then
+  ac_kde_exec_prefix="$ac_kde_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix])
+ else
+  ac_kde_exec_prefix="$exec_prefix"
+  AC_MSG_RESULT([will be installed in $ac_kde_prefix and $ac_kde_exec_prefix])
+ fi
+
+ kde_libraries="${libdir}"
+ kde_includes="${includedir}"
+
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+  AC_MSG_RESULT([libraries $ac_kde_libraries, headers $ac_kde_includes])
+
+  kde_libraries="$ac_kde_libraries"
+  kde_includes="$ac_kde_includes"
+fi
+AC_SUBST(kde_libraries)
+AC_SUBST(kde_includes)
+
+if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes"  || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+else
+ KDE_INCLUDES="-I$kde_includes"
+ all_includes="$KDE_INCLUDES $all_includes"
+fi
+
+KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+ 
+KDE_LDFLAGS="-L$kde_libraries"
+if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then 
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+fi
+
+AC_SUBST(KDE_LDFLAGS)
+AC_SUBST(KDE_INCLUDES)
+
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+all_libraries="$all_libraries $USER_LDFLAGS"
+all_includes="$all_includes $USER_INCLUDES"
+AC_SUBST(all_includes)
+AC_SUBST(all_libraries)
+
+if test -z "$1"; then
+KDE_CHECK_UIC_PLUGINS
+fi
+
+ac_kde_libraries="$kde_libdir"
+
+AC_SUBST(AUTODIRS)
+
+
+])
+
+AC_DEFUN([KDE_CHECK_EXTRA_LIBS],
+[
+AC_MSG_CHECKING(for extra includes)
+AC_ARG_WITH(extra-includes,AC_HELP_STRING([--with-extra-includes=DIR],[adds non standard include paths]),
+  kde_use_extra_includes="$withval",
+  kde_use_extra_includes=NONE
+)
+kde_extra_includes=
+if test -n "$kde_use_extra_includes" && \
+   test "$kde_use_extra_includes" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_includes; do
+     kde_extra_includes="$kde_extra_includes $dir"
+     USER_INCLUDES="$USER_INCLUDES -I$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_includes="added"
+else
+   kde_use_extra_includes="no"
+fi
+AC_SUBST(USER_INCLUDES)
+
+AC_MSG_RESULT($kde_use_extra_includes)
+
+kde_extra_libs=
+AC_MSG_CHECKING(for extra libs)
+AC_ARG_WITH(extra-libs,AC_HELP_STRING([--with-extra-libs=DIR],[adds non standard library paths]),
+  kde_use_extra_libs=$withval,
+  kde_use_extra_libs=NONE
+)
+if test -n "$kde_use_extra_libs" && \
+   test "$kde_use_extra_libs" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_libs; do
+     kde_extra_libs="$kde_extra_libs $dir"
+     KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
+     USER_LDFLAGS="$USER_LDFLAGS -L$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_libs="added"
+else
+   kde_use_extra_libs="no"
+fi
+
+AC_SUBST(USER_LDFLAGS)
+
+AC_MSG_RESULT($kde_use_extra_libs)
+
+])
+
+AC_DEFUN([KDE_1_CHECK_PATH_HEADERS],
+[
+    AC_MSG_CHECKING([for KDE headers installed])
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+    printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+    printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+    printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+    printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+    printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+    printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+    printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+    printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+    printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+    printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+    printf("kde_wallpaperdir=\\"%s\\"\n",
+	KApplication::kde_wallpaperdir().data());
+    printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+    printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+    printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+    printf("kde_styledir=\\"/tmp/dummy\\"\n");
+    printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+    printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+    printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+    return 0;
+    }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if AC_TRY_EVAL(ac_compile); then
+   AC_MSG_RESULT(yes)
+ else
+   AC_MSG_ERROR([your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log.])
+  fi
+  CPPFLAGS=$ac_save_CPPFLAGS
+
+  AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_CHECK_KDEQTADDON],
+[
+AC_MSG_CHECKING(for kde-qt-addon)
+AC_CACHE_VAL(kde_cv_have_kdeqtaddon,
+[
+ kde_ldflags_safe="$LDFLAGS"
+ kde_libs_safe="$LIBS"
+ kde_cxxflags_safe="$CXXFLAGS"
+
+ LIBS="-lkde-qt-addon $LIBQT $LIBS"
+ CXXFLAGS="$CXXFLAGS -I$prefix/include -I$prefix/include/kde $all_includes"
+ LDFLAGS="$LDFLAGS $all_libraries $USER_LDFLAGS"
+
+ AC_TRY_LINK([
+   #include <qdom.h>
+ ],
+ [
+   QDomDocument doc;
+ ],
+  kde_cv_have_kdeqtaddon=yes,
+  kde_cv_have_kdeqtaddon=no
+ )
+
+ LDFLAGS=$kde_ldflags_safe
+ LIBS=$kde_libs_safe
+ CXXFLAGS=$kde_cxxflags_safe
+])
+
+AC_MSG_RESULT($kde_cv_have_kdeqtaddon)
+
+if test "$kde_cv_have_kdeqtaddon" = "no"; then
+  AC_MSG_ERROR([Can't find libkde-qt-addon. You need to install it first.
+It is a separate package (and CVS module) named kde-qt-addon.])
+fi
+])
+
+AC_DEFUN([KDE_CREATE_LIBS_ALIASES],
+[
+   AC_REQUIRE([KDE_MISC_TESTS])
+   AC_REQUIRE([KDE_CHECK_LIBDL])
+   AC_REQUIRE([K_PATH_X])
+
+if test $kde_qtver = 3; then
+   case $host in 
+               *cygwin*) lib_kded="-lkdeinit_kded" ;;
+               *) lib_kded="" ;;
+       esac
+   AC_SUBST(LIB_KDED, $lib_kded)
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_KJS, "-lkjs")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KABC, "-lkabc")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KMDI, "-lkmdi")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+   AC_SUBST(LIB_KUTILS, "-lkutils")
+   AC_SUBST(LIB_KDEPIM, "-lkdepim")
+   AC_SUBST(LIB_KIMPROXY, "-lkimproxy")
+   AC_SUBST(LIB_KNEWSTUFF, "-lknewstuff")
+   AC_SUBST(LIB_KDNSSD, "-lkdnssd")
+   AC_SUBST(LIB_KUNITTEST, "-lkunittest")
+# these are for backward compatibility
+   AC_SUBST(LIB_KSYCOCA, "-lkio")
+   AC_SUBST(LIB_KFILE, "-lkio")
+elif test $kde_qtver = 2; then
+   AC_SUBST(LIB_KDECORE, "-lkdecore")
+   AC_SUBST(LIB_KDEUI, "-lkdeui")
+   AC_SUBST(LIB_KIO, "-lkio")
+   AC_SUBST(LIB_KSYCOCA, "-lksycoca")
+   AC_SUBST(LIB_SMB, "-lsmb")
+   AC_SUBST(LIB_KFILE, "-lkfile")
+   AC_SUBST(LIB_KAB, "-lkab")
+   AC_SUBST(LIB_KHTML, "-lkhtml")
+   AC_SUBST(LIB_KSPELL, "-lkspell")
+   AC_SUBST(LIB_KPARTS, "-lkparts")
+   AC_SUBST(LIB_KDEPRINT, "-lkdeprint")
+else
+   AC_SUBST(LIB_KDECORE, "-lkdecore -lXext $(LIB_QT)")
+   AC_SUBST(LIB_KDEUI, "-lkdeui $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFM, "-lkfm $(LIB_KDECORE)")
+   AC_SUBST(LIB_KFILE, "-lkfile $(LIB_KFM) $(LIB_KDEUI)")
+   AC_SUBST(LIB_KAB, "-lkab $(LIB_KIMGIO) $(LIB_KDECORE)")
+fi
+])
+
+AC_DEFUN([AC_PATH_KDE],
+[
+  AC_BASE_PATH_KDE
+  AC_ARG_ENABLE(path-check,AC_HELP_STRING([--disable-path-check],[don't try to find out, where to install]),
+  [
+  if test "$enableval" = "no";
+    then ac_use_path_checking="default"
+    else ac_use_path_checking=""
+  fi
+  ],
+  [
+  if test "$kde_qtver" = 1;
+    then ac_use_path_checking=""
+    else ac_use_path_checking="default"
+  fi
+  ]
+  )
+
+  AC_CREATE_KFSSTND($ac_use_path_checking)
+
+  AC_SUBST_KFSSTND
+  KDE_CREATE_LIBS_ALIASES
+])
+
+dnl KDE_CHECK_FUNC_EXT(<func>, [headers], [sample-use], [C prototype], [autoheader define], [call if found])
+AC_DEFUN([KDE_CHECK_FUNC_EXT],
+[
+AC_MSG_CHECKING(for $1)
+AC_CACHE_VAL(kde_cv_func_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+AC_TRY_COMPILE([
+$2
+],
+[
+$3
+],
+kde_cv_func_$1=yes,
+kde_cv_func_$1=no)
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+AC_LANG_RESTORE
+])
+
+AC_MSG_RESULT($kde_cv_func_$1)
+
+AC_MSG_CHECKING([if $1 needs custom prototype])
+AC_CACHE_VAL(kde_cv_proto_$1,
+[
+if test "x$kde_cv_func_$1" = xyes; then
+  kde_cv_proto_$1=no
+else
+  case "$1" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_$1="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_$1=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_$1" = xunknown; then
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  AC_TRY_LINK([
+$2
+
+extern "C" $4;
+],
+[
+$3
+],
+[ kde_cv_func_$1=yes
+  kde_cv_proto_$1=yes ],
+  [kde_cv_proto_$1="$1 unavailable"]
+)
+LIBS=$kde_safe_libs
+AC_LANG_RESTORE
+fi
+])
+AC_MSG_RESULT($kde_cv_proto_$1)
+
+if test "x$kde_cv_func_$1" = xyes; then
+  AC_DEFINE(HAVE_$5, 1, [Define if you have $1])
+  $6
+fi
+if test "x$kde_cv_proto_$1" = xno; then
+  AC_DEFINE(HAVE_$5_PROTO, 1,
+  [Define if you have the $1 prototype])
+fi
+
+AH_VERBATIM([_HAVE_$5_PROTO],
+[
+#if !defined(HAVE_$5_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+$4;
+#ifdef __cplusplus
+}
+#endif
+#endif
+])
+])
+
+AC_DEFUN([AC_CHECK_SETENV],
+[
+	KDE_CHECK_FUNC_EXT(setenv, [
+#include <stdlib.h>
+], 
+		[setenv("VAR", "VALUE", 1);],
+	        [int setenv (const char *, const char *, int)],
+		[SETENV])
+])
+
+AC_DEFUN([AC_CHECK_UNSETENV],
+[
+	KDE_CHECK_FUNC_EXT(unsetenv, [
+#include <stdlib.h>
+], 
+		[unsetenv("VAR");],
+	        [void unsetenv (const char *)],
+		[UNSETENV])
+])
+
+AC_DEFUN([AC_CHECK_GETDOMAINNAME],
+[
+	KDE_CHECK_FUNC_EXT(getdomainname, [
+#include <stdlib.h>
+#include <unistd.h>
+#include <netdb.h>
+], 
+		[
+char buffer[200];
+getdomainname(buffer, 200);
+], 	
+	        [#include <sys/types.h>
+		int getdomainname (char *, size_t)],
+		[GETDOMAINNAME])
+])
+
+AC_DEFUN([AC_CHECK_GETHOSTNAME],
+[
+	KDE_CHECK_FUNC_EXT(gethostname, [
+#include <stdlib.h>
+#include <unistd.h>
+], 
+		[
+char buffer[200];
+gethostname(buffer, 200);
+], 	
+	        [int gethostname (char *, unsigned int)],
+		[GETHOSTNAME])
+])
+
+AC_DEFUN([AC_CHECK_USLEEP],
+[
+	KDE_CHECK_FUNC_EXT(usleep, [
+#include <unistd.h>
+], 
+		[
+usleep(200);
+], 	
+	        [int usleep (unsigned int)],
+		[USLEEP])
+])
+
+
+AC_DEFUN([AC_CHECK_RANDOM],
+[
+	KDE_CHECK_FUNC_EXT(random, [
+#include <stdlib.h>
+], 
+		[
+random();
+], 	
+	        [long int random(void)],
+		[RANDOM])
+
+	KDE_CHECK_FUNC_EXT(srandom, [
+#include <stdlib.h>
+], 
+		[
+srandom(27);
+], 	
+	        [void srandom(unsigned int)],
+		[SRANDOM])
+
+])
+
+AC_DEFUN([AC_CHECK_INITGROUPS],
+[
+	KDE_CHECK_FUNC_EXT(initgroups, [
+#include <sys/types.h>
+#include <unistd.h>
+#include <grp.h>
+],
+	[
+char buffer[200];
+initgroups(buffer, 27);
+],
+	[int initgroups(const char *, gid_t)],
+	[INITGROUPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMPS],
+[
+	KDE_CHECK_FUNC_EXT(mkstemps, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkstemps("/tmp/aaaXXXXXX", 6);
+],
+	[int mkstemps(char *, int)],
+	[MKSTEMPS])
+])
+
+AC_DEFUN([AC_CHECK_MKSTEMP],
+[
+	KDE_CHECK_FUNC_EXT(mkstemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkstemp("/tmp/aaaXXXXXX");
+],
+	[int mkstemp(char *)],
+	[MKSTEMP])
+])
+
+AC_DEFUN([AC_CHECK_MKDTEMP],
+[
+	KDE_CHECK_FUNC_EXT(mkdtemp, [
+#include <stdlib.h>
+#include <unistd.h>
+],
+	[
+mkdtemp("/tmp/aaaXXXXXX");
+],
+	[char *mkdtemp(char *)],
+	[MKDTEMP])
+])
+
+
+AC_DEFUN([AC_CHECK_RES_INIT],
+[
+  AC_MSG_CHECKING([if res_init needs -lresolv])
+  kde_libs_safe="$LIBS"
+  LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
+  AC_TRY_LINK(
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [
+      res_init(); 
+    ],
+    [
+      LIBRESOLV="-lresolv"
+      AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_RES_INIT, 1, [Define if you have the res_init function])
+    ],
+    [ AC_MSG_RESULT(no) ]
+  )
+  LIBS=$kde_libs_safe
+  AC_SUBST(LIBRESOLV)
+
+  KDE_CHECK_FUNC_EXT(res_init,
+    [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+    ],
+    [res_init()],
+    [int res_init(void)],
+    [RES_INIT])
+])
+
+AC_DEFUN([AC_CHECK_STRLCPY],
+[
+	KDE_CHECK_FUNC_EXT(strlcpy, [
+#include <string.h>
+],
+[ char buf[20];
+  strlcpy(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcpy(char*, const char*, unsigned long)],
+	[STRLCPY])
+])
+
+AC_DEFUN([AC_CHECK_STRLCAT],
+[
+	KDE_CHECK_FUNC_EXT(strlcat, [
+#include <string.h>
+],
+[ char buf[20];
+  buf[0]='\0';
+  strlcat(buf, "KDE function test", sizeof(buf));
+],
+ 	[unsigned long strlcat(char*, const char*, unsigned long)],
+	[STRLCAT])
+])
+
+AC_DEFUN([AC_CHECK_RES_QUERY],
+[
+	KDE_CHECK_FUNC_EXT(res_query, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <netdb.h>
+],
+[
+res_query(NULL, 0, 0, NULL, 0);
+],
+	[int res_query(const char *, int, int, unsigned char *, int)],
+	[RES_QUERY])
+])
+
+AC_DEFUN([AC_CHECK_DN_SKIPNAME],
+[
+	KDE_CHECK_FUNC_EXT(dn_skipname, [
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+],
+[
+dn_skipname (NULL, NULL);
+],
+	[int dn_skipname (unsigned char *, unsigned char *)],
+	[DN_SKIPNAME])
+])
+
+
+AC_DEFUN([AC_FIND_GIF],
+   [AC_MSG_CHECKING([for giflib])
+AC_CACHE_VAL(ac_cv_lib_gif,
+[ac_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries -lgif -lX11 $LIBSOCKET"
+else
+LIBS="$all_libraries -lgif"
+fi
+AC_TRY_LINK(dnl
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+int GifLastError(void);
+#ifdef __cplusplus
+}
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+],
+            [return GifLastError();],
+            eval "ac_cv_lib_gif=yes",
+            eval "ac_cv_lib_gif=no")
+LIBS="$ac_save_LIBS"
+])dnl
+if eval "test \"`echo $ac_cv_lib_gif`\" = yes"; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_LIBGIF, 1, [Define if you have libgif])
+else
+  AC_MSG_ERROR(You need giflib30. Please install the kdesupport package)
+fi
+])
+
+AC_DEFUN([KDE_FIND_JPEG_HELPER],
+[
+AC_MSG_CHECKING([for libjpeg$2])
+AC_CACHE_VAL(ac_cv_lib_jpeg_$1,
+[
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg$2 -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[
+#ifdef __cplusplus
+extern "C" {
+#endif
+void jpeg_CreateDecompress();
+#ifdef __cplusplus
+}
+#endif
+],
+[jpeg_CreateDecompress();],
+            eval "ac_cv_lib_jpeg_$1=-ljpeg$2",
+            eval "ac_cv_lib_jpeg_$1=no")
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+])
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_$1`\" = no"; then
+  LIBJPEG="$ac_cv_lib_jpeg_$1"
+  AC_MSG_RESULT($ac_cv_lib_jpeg_$1)
+else
+  AC_MSG_RESULT(no)
+  $3
+fi
+
+])
+
+AC_DEFUN([AC_FIND_JPEG],
+[
+dnl first look for libraries
+KDE_FIND_JPEG_HELPER(6b, 6b,
+   KDE_FIND_JPEG_HELPER(normal, [],
+    [
+       LIBJPEG=
+    ]
+   )
+)
+
+dnl then search the headers (can't use simply AC_TRY_xxx, as jpeglib.h
+dnl requires system dependent includes loaded before it)
+jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
+AC_FIND_FILE(jpeglib.h, $jpeg_incdirs, jpeg_incdir)
+test "x$jpeg_incdir" = xNO && jpeg_incdir=
+
+dnl if headers _and_ libraries are missing, this is no error, and we
+dnl continue with a warning (the user will get no jpeg support in khtml)
+dnl if only one is missing, it means a configuration error, but we still
+dnl only warn
+if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define if you have libjpeg])
+else
+  if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
+    AC_MSG_WARN([
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+])
+  else
+    AC_MSG_WARN([libjpeg not found. disable JPEG support.])
+  fi
+  jpeg_incdir=
+  LIBJPEG=
+fi
+
+AC_SUBST(LIBJPEG)
+AH_VERBATIM(_AC_CHECK_JPEG,
+[/*
+ * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
+ * headers and I'm too lazy to write a configure test as long as only
+ * unixware is related
+ */
+#ifdef _UNIXWARE
+#define HAVE_BOOLEAN
+#endif
+])
+])
+
+AC_DEFUN([KDE_CHECK_QT_JPEG],
+[
+if test -n "$LIBJPEG"; then
+AC_MSG_CHECKING([if Qt needs $LIBJPEG])
+AC_CACHE_VAL(kde_cv_qt_jpeg,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
+LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(
+[#include <qapplication.h>],
+            [
+            int argc;
+            char** argv;
+            QApplication app(argc, argv);],
+            eval "kde_cv_qt_jpeg=no",
+            eval "kde_cv_qt_jpeg=yes")
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+fi
+])
+
+if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
+  AC_MSG_RESULT(yes)
+  LIBJPEG_QT='$(LIBJPEG)'
+else
+  AC_MSG_RESULT(no)
+  LIBJPEG_QT=
+fi
+
+])
+
+AC_DEFUN([AC_FIND_ZLIB],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for libz])
+AC_CACHE_VAL(ac_cv_lib_z,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#include<zlib.h>
+],
+[
+  char buf[42];
+  gzFile f = (gzFile) 0;
+  /* this would segfault.. but we only link, don't run */
+  (void) gzgets(f, buf, sizeof(buf));
+
+  return (zlibVersion() == ZLIB_VERSION); 
+],
+            eval "ac_cv_lib_z='-lz'",
+            eval "ac_cv_lib_z=no")
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if test ! "$ac_cv_lib_z" = no; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBZ, 1, [Define if you have libz])
+  LIBZ="$ac_cv_lib_z"
+  AC_MSG_RESULT($ac_cv_lib_z)
+else
+  AC_MSG_ERROR(not found. 
+          Possibly configure picks up an outdated version
+          installed by XFree86. Remove it from your system.
+
+          Check your installation and look into config.log)
+  LIBZ=""
+fi
+AC_SUBST(LIBZ)
+])
+
+AC_DEFUN([KDE_TRY_TIFFLIB],
+[
+AC_MSG_CHECKING([for libtiff $1])
+
+AC_CACHE_VAL(kde_cv_libtiff_$1,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lX11 $LIBSOCKET -lm"
+else
+LIBS="$all_libraries $USER_LDFLAGS -l$1 $LIBJPEG $LIBZ -lm"
+fi
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+[
+#include<tiffio.h>
+],
+    [return (TIFFOpen( "", "r") == 0); ],
+[
+    kde_cv_libtiff_$1="-l$1 $LIBJPEG $LIBZ"
+], [
+    kde_cv_libtiff_$1=no
+])
+
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])
+
+if test "$kde_cv_libtiff_$1" = "no"; then
+    AC_MSG_RESULT(no)
+    LIBTIFF=""
+    $3
+else
+    LIBTIFF="$kde_cv_libtiff_$1"
+    AC_MSG_RESULT(yes)
+    AC_DEFINE_UNQUOTED(HAVE_LIBTIFF, 1, [Define if you have libtiff])
+    $2
+fi
+
+])
+
+AC_DEFUN([AC_FIND_TIFF],
+[
+AC_REQUIRE([K_PATH_X])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+KDE_TRY_TIFFLIB(tiff, [],
+   KDE_TRY_TIFFLIB(tiff34))
+
+AC_SUBST(LIBTIFF)
+])
+
+AC_DEFUN([KDE_FIND_LIBEXR],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_CACHE_VAL(ac_cv_libexr,
+[
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  fi
+
+  AC_MSG_CHECKING([for OpenEXR libraries])
+
+  if test "$PKG_CONFIG" = "no" ; then
+     AC_MSG_RESULT(no)
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     if !(`$PKG_CONFIG --exists OpenEXR`) ; then
+        AC_MSG_RESULT(no)
+        EXRSTATUS=no
+     else
+        if !(`$PKG_CONFIG --atleast-version="1.1.1" OpenEXR`) ; then
+           AC_MSG_RESULT(no)
+           EXRSTATUS=old
+        else
+           kde_save_LIBS="$LIBS"
+           LIBS="$LIBS $all_libraries $USER_LDFLAGS `pkg-config --libs OpenEXR` $LIBZ"
+           AC_LANG_SAVE
+           AC_LANG_CPLUSPLUS
+           kde_save_CXXFLAGS="$CXXFLAGS"
+           EXR_FLAGS=`$PKG_CONFIG --cflags OpenEXR`
+           CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES $EXR_FLAGS"
+
+           AC_TRY_LINK(dnl
+               [
+               #include <ImfRgbaFile.h>
+               ],
+               [
+               using namespace Imf;
+               RgbaInputFile file ("dummy");
+               return 0;
+               ],
+               eval "ac_cv_libexr='`pkg-config --libs OpenEXR`'",
+               eval "ac_cv_libexr=no"
+           )
+           LIBS="$kde_save_LIBS"
+           CXXFLAGS="$kde_save_CXXFLAGS"
+           AC_LANG_RESTORE
+           ])dnl
+           if eval "test ! \"`echo $ac_cv_libexr`\" = no"; then
+               AC_DEFINE_UNQUOTED(HAVE_EXR, 1, [Define if you have OpenEXR])
+               LIB_EXR="$ac_cv_libexr"
+               AC_MSG_RESULT($ac_cv_libexr)
+           else
+               AC_MSG_RESULT(no)
+               LIB_EXR=""
+           fi
+        fi
+     fi
+  fi
+  AC_SUBST(LIB_EXR)
+  AC_SUBST(EXR_FLAGS)
+])
+
+
+
+AC_DEFUN([AC_FIND_PNG],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_ZLIB])
+AC_MSG_CHECKING([for libpng])
+AC_CACHE_VAL(ac_cv_lib_png,
+[
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
+else
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
+fi
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<png.h>
+    ],
+    [
+    png_structp png_ptr = png_create_read_struct(  /* image ptr */
+		PNG_LIBPNG_VER_STRING, 0, 0, 0 );
+    return( png_ptr != 0 );
+    ],
+    eval "ac_cv_lib_png='-lpng $LIBZ -lm'",
+    eval "ac_cv_lib_png=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_LIBPNG, 1, [Define if you have libpng])
+  LIBPNG="$ac_cv_lib_png"
+  AC_SUBST(LIBPNG)
+  AC_MSG_RESULT($ac_cv_lib_png)
+else
+  AC_MSG_RESULT(no)
+  LIBPNG=""
+  AC_SUBST(LIBPNG)
+fi
+])
+
+
+AC_DEFUN([AC_FIND_JASPER],
+[
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_REQUIRE([AC_FIND_JPEG])
+AC_MSG_CHECKING([for jasper])
+AC_CACHE_VAL(ac_cv_jasper,
+[
+kde_save_LIBS="$LIBS"
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -ljasper $LIBJPEG -lm"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+AC_TRY_LINK(dnl
+    [
+    #include<jasper/jasper.h>
+    ],
+    [
+    return( jas_init() );
+    ],
+    eval "ac_cv_jasper='-ljasper $LIBJPEG -lm'",
+    eval "ac_cv_jasper=no"
+)
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+])dnl
+if eval "test ! \"`echo $ac_cv_jasper`\" = no"; then
+  AC_DEFINE_UNQUOTED(HAVE_JASPER, 1, [Define if you have jasper])
+  LIB_JASPER="$ac_cv_jasper"
+  AC_MSG_RESULT($ac_cv_jasper)
+else
+  AC_MSG_RESULT(no)
+  LIB_JASPER=""
+fi
+AC_SUBST(LIB_JASPER)
+])
+
+AC_DEFUN([AC_CHECK_BOOL],
+[
+  AC_DEFINE_UNQUOTED(HAVE_BOOL, 1, [You _must_ have bool])
+])
+
+AC_DEFUN([AC_CHECK_GNU_EXTENSIONS],
+[
+AC_MSG_CHECKING(if you need GNU extensions)
+AC_CACHE_VAL(ac_cv_gnu_extensions,
+[
+cat > conftest.c << EOF
+#include <features.h>
+
+#ifdef __GNU_LIBRARY__
+yes
+#endif
+EOF
+
+if (eval "$ac_cpp conftest.c") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_gnu_extensions=yes
+else
+  ac_cv_gnu_extensions=no
+fi
+])
+
+AC_MSG_RESULT($ac_cv_gnu_extensions)
+if test "$ac_cv_gnu_extensions" = "yes"; then
+  AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define if you need to use the GNU extensions])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CXX supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cxx_$kde_cache,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -$1"
+  AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cxx_$kde_cache=yes"], [])
+  CXXFLAGS="$save_CXXFLAGS"
+  AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+AC_DEFUN([KDE_CHECK_C_COMPILER_FLAG],
+[
+AC_MSG_CHECKING([whether $CC supports -$1])
+kde_cache=`echo $1 | sed 'y% .=/+-,%____p__%'`
+AC_CACHE_VAL(kde_cv_prog_cc_$kde_cache,
+[
+  AC_LANG_SAVE
+  AC_LANG_C
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -$1"
+  AC_TRY_LINK([],[ return 0; ], [eval "kde_cv_prog_cc_$kde_cache=yes"], [])
+  CFLAGS="$save_CFLAGS"
+  AC_LANG_RESTORE
+])
+if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
+ AC_MSG_RESULT(yes)
+ :
+ $2
+else
+ AC_MSG_RESULT(no)
+ :
+ $3
+fi
+])
+
+
+dnl AC_REMOVE_FORBIDDEN removes forbidden arguments from variables
+dnl use: AC_REMOVE_FORBIDDEN(CC, [-forbid -bad-option whatever])
+dnl it's all white-space separated
+AC_DEFUN([AC_REMOVE_FORBIDDEN],
+[ __val=$$1
+  __forbid=" $2 "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) AC_MSG_WARN([found forbidden $i in $1, removing it]) ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    $1=$__new
+  fi
+])
+
+
+AC_DEFUN([KDE_CHECK_FOR_BAD_COMPILER],
+[
+  AC_MSG_CHECKING([whether $CC is blacklisted])
+
+  dnl In theory we have tu run this test against $CC and $CXX
+  dnl in C and in C++ mode, because its perfectly legal for
+  dnl the user to mix compiler versions, since C has a defined
+  dnl ABI. 
+  dnl 
+  dnl For now, we assume the user is not on crack.
+
+  AC_TRY_COMPILE([
+#ifdef __GNUC__
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
+choke me
+#endif
+#endif
+], ,
+  kde_bad_compiler=no, 
+  kde_bad_compiler=yes
+)
+
+  AC_MSG_RESULT($kde_bad_compiler)
+
+if test "$kde_bad_compiler" = "yes"; then
+  AC_MSG_ERROR([
+
+This particular compiler version is blacklisted because it
+is known to miscompile KDE. Please use a newer version, or
+if that is not yet available, choose an older version. 
+
+Please do not report a bug or bother us reporting this
+configure error. We know about it, and we introduced
+it by intention to avoid untraceable bugs or crashes in KDE.
+
+])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_FOR_OPT_NOINLINE_MATCH],
+[
+  AC_CACHE_CHECK([whether system headers can cope with -O2 -fno-inline],
+    kde_cv_opt_noinline_match,
+  [
+  kde_cv_opt_noinline_match=irrelevant
+  dnl if we don't use both -O2 and -fno-inline, this check is moot
+  if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
+     && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
+
+    ac_cflags_save="$CFLAGS"
+    CFLAGS="$CFLAGS -D_USE_GNU"
+
+    AC_TRY_LINK([
+  #include <string.h>
+], [  const char *pt, *et;
+  et = __extension__      ({ char __a0, __a1, __a2;       (__builtin_constant_p (  ";,"  ) && ((size_t)(const void *)((   ";,"   )+ 1) - (size_t)(const void *)(   ";,"   ) == 1)        ? ((__a0 =((__const char  *) (  ";,"  ))[0], __a0 == '\0')     ? ((void) (  pt ),((void *)0) )        : ((__a1 = ((__const char *) (  ";,"  ))[1], __a1== '\0')      ? (__extension__ (__builtin_constant_p (  __a0 ) && ( __a0 ) == '\0'   ? (char *) __rawmemchr (   pt  ,   __a0)       : strchr(   pt  ,   __a0 )))   : ((__a2 = ((__const char *) (  ";,"  ))[2], __a2 == '\0')      ? __strpbrk_c2 (  pt , __a0, __a1)      :(((__const char *) (  ";,"  ))[3] == '\0'     ? __strpbrk_c3 (  pt ,__a0, __a1, __a2): strpbrk (  pt ,   ";,"  ))))) : strpbrk (  pt ,  ";,"  )); }) ;
+],
+    kde_cv_opt_noinline_match=yes,
+    kde_cv_opt_noinline_match=no
+    )
+
+    CFLAGS="$ac_cflags_save"
+  fi
+  ])
+])
+
+
+dnl AC_VALIDIFY_CXXFLAGS checks for forbidden flags the user may have given
+AC_DEFUN([AC_VALIDIFY_CXXFLAGS],
+[dnl
+if test "x$kde_use_qt_emb" != "xyes"; then
+ AC_REMOVE_FORBIDDEN(CXX, [-fno-rtti -rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-fno-rtti -rpath])
+else
+ AC_REMOVE_FORBIDDEN(CXX, [-rpath])
+ AC_REMOVE_FORBIDDEN(CXXFLAGS, [-rpath])
+fi
+])
+
+AC_DEFUN([AC_CHECK_COMPILERS],
+[
+  AC_ARG_ENABLE(debug,
+	        AC_HELP_STRING([--enable-debug=ARG],[enables debug symbols (yes|no|full) [default=no]]),
+  [
+    case $enableval in
+      yes)
+        kde_use_debug_code="yes"
+        kde_use_debug_define=no
+        ;;
+      full)
+        kde_use_debug_code="full"
+        kde_use_debug_define=no
+        ;;
+      *)
+        kde_use_debug_code="no"
+        kde_use_debug_define=yes
+        ;;
+    esac
+  ], 
+    [kde_use_debug_code="no"
+      kde_use_debug_define=no
+  ])
+
+  dnl Just for configure --help
+  AC_ARG_ENABLE(dummyoption,
+	        AC_HELP_STRING([--disable-debug],
+	  		       [disables debug output and debug symbols [default=no]]),
+		[],[])
+
+  AC_ARG_ENABLE(strict,
+		AC_HELP_STRING([--enable-strict],
+			      [compiles with strict compiler options (may not work!)]),
+   [
+    if test $enableval = "no"; then
+         kde_use_strict_options="no"
+       else
+         kde_use_strict_options="yes"
+    fi
+   ], [kde_use_strict_options="no"])
+
+  AC_ARG_ENABLE(warnings,AC_HELP_STRING([--disable-warnings],[disables compilation with -Wall and similar]),
+   [
+    if test $enableval = "no"; then
+         kde_use_warnings="no"
+       else
+         kde_use_warnings="yes"
+    fi
+   ], [kde_use_warnings="yes"])
+
+  dnl enable warnings for debug build
+  if test "$kde_use_debug_code" != "no"; then
+    kde_use_warnings=yes
+  fi
+
+  AC_ARG_ENABLE(profile,AC_HELP_STRING([--enable-profile],[creates profiling infos [default=no]]),
+    [kde_use_profiling=$enableval],
+    [kde_use_profiling="no"]
+  )
+
+  dnl this prevents stupid AC_PROG_CC to add "-g" to the default CFLAGS
+  CFLAGS=" $CFLAGS"
+
+  AC_PROG_CC 
+
+  AC_PROG_CPP
+
+  if test "$GCC" = "yes"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test $kde_use_debug_code = "full"; then
+        CFLAGS="-g3 -fno-inline $CFLAGS"
+      else
+        CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
+      fi
+    else
+      CFLAGS="-O2 $CFLAGS"
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CFLAGS="-DNDEBUG $CFLAGS"
+  fi
+
+
+  case "$host" in
+  *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
+  *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
+  esac
+
+  if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
+     LDFLAGS=""
+  fi
+
+  CXXFLAGS=" $CXXFLAGS"
+
+  AC_PROG_CXX
+
+  KDE_CHECK_FOR_BAD_COMPILER
+
+  if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+      else
+        if test "$kde_use_debug_code" = "full"; then
+          CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
+        else
+          CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
+        fi
+      fi
+      KDE_CHECK_COMPILER_FLAG(fno-builtin,[CXXFLAGS="-fno-builtin $CXXFLAGS"])
+
+      dnl convenience compiler flags
+      KDE_CHECK_COMPILER_FLAG(Woverloaded-virtual, [WOVERLOADED_VIRTUAL="-Woverloaded-virtual"], [WOVERLOADED_VRITUAL=""])
+      AC_SUBST(WOVERLOADED_VIRTUAL)
+    else
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K3 $CXXFLAGS"
+      else
+        CXXFLAGS="-O2 $CXXFLAGS"
+      fi
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
+  fi  
+
+  if test "$kde_use_profiling" = "yes"; then
+    KDE_CHECK_COMPILER_FLAG(pg,
+    [
+      CFLAGS="-pg $CFLAGS"
+      CXXFLAGS="-pg $CXXFLAGS"
+    ])
+  fi
+
+  if test "$kde_use_warnings" = "yes"; then
+      if test "$GCC" = "yes"; then
+        CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
+        case $host in
+          *-*-linux-gnu)	
+            CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
+            CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
+            KDE_CHECK_COMPILER_FLAG(Wmissing-format-attribute, [CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"])
+            KDE_CHECK_C_COMPILER_FLAG(Wmissing-format-attribute, [CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"])
+          ;;
+        esac
+        KDE_CHECK_COMPILER_FLAG(Wundef,[CXXFLAGS="-Wundef $CXXFLAGS"])
+        KDE_CHECK_COMPILER_FLAG(Wno-long-long,[CXXFLAGS="-Wno-long-long $CXXFLAGS"])
+        dnl ### FIXME: revert for KDE 4
+        KDE_CHECK_COMPILER_FLAG(Wno-non-virtual-dtor,[CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"])
+     fi
+  fi
+
+  if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
+    CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
+  fi
+
+  AC_ARG_ENABLE(pch,
+     AC_HELP_STRING([--enable-pch],
+                    [enables precompiled header support (currently only KCC or gcc >=3.4+unsermake) [default=no]]),
+    [ kde_use_pch=$enableval ],[ kde_use_pch=no ])
+ 
+  HAVE_GCC_VISIBILITY=0
+  AC_SUBST([HAVE_GCC_VISIBILITY])
+
+  if test "$GXX" = "yes"; then
+    gcc_no_reorder_blocks=NO
+    KDE_CHECK_COMPILER_FLAG(fno-reorder-blocks,[gcc_no_reorder_blocks=YES])
+    if test $kde_use_debug_code != "no" && \
+       test $kde_use_debug_code != "full" && \
+       test "YES" = "$gcc_no_reorder_blocks" ; then
+          CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
+          CFLAGS="$CFLAGS -fno-reorder-blocks"
+    fi
+    KDE_CHECK_COMPILER_FLAG(fno-exceptions,[CXXFLAGS="$CXXFLAGS -fno-exceptions"])
+    KDE_CHECK_COMPILER_FLAG(fno-check-new, [CXXFLAGS="$CXXFLAGS -fno-check-new"])
+    KDE_CHECK_COMPILER_FLAG(fno-common, [CXXFLAGS="$CXXFLAGS -fno-common"])
+    KDE_CHECK_COMPILER_FLAG(fexceptions, [USE_EXCEPTIONS="-fexceptions"], USE_EXCEPTIONS=	)
+    ENABLE_PERMISSIVE_FLAG="-fpermissive"
+
+    if test "$kde_use_pch" = "yes"; then
+        AC_MSG_CHECKING(whether gcc supports precompiling c header files)
+        echo >conftest.h
+        if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
+            kde_gcc_supports_pch=yes
+            AC_MSG_RESULT(yes)
+        else
+            kde_gcc_supports_pch=no
+            AC_MSG_RESULT(no)
+        fi
+        if test "$kde_gcc_supports_pch" = "yes"; then
+            AC_MSG_CHECKING(whether gcc supports precompiling c++ header files)
+            if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
+                kde_gcc_supports_pch=yes
+                AC_MSG_RESULT(yes)
+            else
+                kde_gcc_supports_pch=no
+                AC_MSG_RESULT(no)
+            fi
+        fi
+        rm -f conftest.h conftest.h.gch
+    fi
+
+    KDE_CHECK_FOR_OPT_NOINLINE_MATCH
+    if test "x$kde_cv_opt_noinline_match" = "xno" ; then
+       CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
+    fi
+  fi
+  AM_CONDITIONAL(unsermake_enable_pch, test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes")
+  if test "$CXX" = "KCC"; then
+    dnl unfortunately we currently cannot disable exception support in KCC
+    dnl because doing so is binary incompatible and Qt by default links with exceptions :-(
+    dnl KDE_CHECK_COMPILER_FLAG(-no_exceptions,[CXXFLAGS="$CXXFLAGS --no_exceptions"])
+    dnl KDE_CHECK_COMPILER_FLAG(-exceptions, [USE_EXCEPTIONS="--exceptions"], USE_EXCEPTIONS=	)
+
+    if test "$kde_use_pch" = "yes"; then
+      dnl TODO: support --pch-dir!
+      KDE_CHECK_COMPILER_FLAG(-pch,[CXXFLAGS="$CXXFLAGS --pch"])
+      dnl the below works (but the dir must exist), but it's
+      dnl useless for a whole package.
+      dnl The are precompiled headers for each source file, so when compiling
+      dnl from scratch, it doesn't make a difference, and they take up
+      dnl around ~5Mb _per_ sourcefile.
+      dnl KDE_CHECK_COMPILER_FLAG(-pch_dir /tmp,
+      dnl   [CXXFLAGS="$CXXFLAGS --pch_dir `pwd`/pcheaders"])
+    fi
+    dnl this flag controls inlining. by default KCC inlines in optimisation mode
+    dnl all implementations that are defined inside the class {} declaration. 
+    dnl because of templates-compatibility with broken gcc compilers, this
+    dnl can cause excessive inlining. This flag limits it to a sane level
+    KDE_CHECK_COMPILER_FLAG(-inline_keyword_space_time=6,[CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"])
+    KDE_CHECK_COMPILER_FLAG(-inline_auto_space_time=2,[CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"])
+    KDE_CHECK_COMPILER_FLAG(-inline_implicit_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"])
+    KDE_CHECK_COMPILER_FLAG(-inline_generated_space_time=2.0,[CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"])
+    dnl Some source files are shared between multiple executables
+    dnl (or libraries) and some of those need template instantiations.
+    dnl In that case KCC needs to compile those sources with
+    dnl --one_instantiation_per_object.  To make it easy for us we compile
+    dnl _all_ objects with that flag (--one_per is a shorthand).
+    KDE_CHECK_COMPILER_FLAG(-one_per, [CXXFLAGS="$CXXFLAGS --one_per"])
+  fi
+  AC_SUBST(USE_EXCEPTIONS)
+  dnl obsolete macro - provided to keep things going
+  USE_RTTI=
+  AC_SUBST(USE_RTTI)
+
+  case "$host" in
+      *-*-irix*)  test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
+      *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
+      *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
+      *-*-solaris*) 
+        if test "$GXX" = yes; then
+          libstdcpp=`$CXX -print-file-name=libstdc++.so`
+          if test ! -f $libstdcpp; then
+             AC_MSG_ERROR([You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so])
+          fi
+        fi
+        ;;
+  esac
+
+  AC_VALIDIFY_CXXFLAGS
+
+  AC_PROG_CXXCPP
+
+  if test "$GCC" = yes; then
+     NOOPT_CFLAGS=-O0
+  fi
+  KDE_CHECK_COMPILER_FLAG(O0,[NOOPT_CXXFLAGS=-O0])
+
+  AC_ARG_ENABLE(coverage,
+    AC_HELP_STRING([--enable-coverage],[use gcc coverage testing]), [
+      if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker="-lgcc"
+      elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker=""
+      else
+        AC_MSG_ERROR([coverage with your compiler is not supported])
+      fi
+      CFLAGS="$CFLAGS $ac_coverage_compiler"
+      CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
+      LDFLAGS="$LDFLAGS $ac_coverage_linker"
+    ])
+
+  AC_SUBST(NOOPT_CXXFLAGS)
+  AC_SUBST(NOOPT_CFLAGS)
+  AC_SUBST(ENABLE_PERMISSIVE_FLAG)
+
+  KDE_CHECK_NEW_LDFLAGS
+  KDE_CHECK_FINAL
+  KDE_CHECK_CLOSURE
+  KDE_CHECK_NMCHECK
+
+  ifdef([AM_DEPENDENCIES], AC_REQUIRE([KDE_ADD_DEPENDENCIES]), [])
+])
+
+AC_DEFUN([KDE_CHECK_VISIBILITY_GCC_BUG],
+  [
+    AC_CACHE_CHECK([for gcc -fvisibility-inlines-hidden bug], kde_cv_val_gcc_visibility_bug,
+      [
+        AC_LANG_SAVE
+        AC_LANG_CPLUSPLUS
+
+        safe_CXXFLAGS=$CXXFLAGS
+        safe_LDFLAGS=$LDFLAGS
+        CXXFLAGS="$CXXFLAGS -fPIC -fvisibility-inlines-hidden -O0"
+        LDFLAGS="$LDFLAGS -shared -fPIC"
+
+        AC_TRY_LINK(
+        [
+          /* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19664 */
+	  #include <string>
+          int some_function( void ) __attribute__ ((visibility("default")));
+          int some_function( void )
+          {
+	    std::string s("blafasel");
+            return 0;
+          }
+        ], [/* elvis is alive */],
+        kde_cv_val_gcc_visibility_bug=no, kde_cv_val_gcc_visibility_bug=yes)
+
+        CXXFLAGS=$safe_CXXFLAGS
+        LDFLAGS=$safe_LDFLAGS
+        AC_LANG_RESTORE
+      ]
+    )
+
+    if test x$kde_cv_val_gcc_visibility_bug = xno; then
+      CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+    fi
+  ]
+)
+
+AC_DEFUN([KDE_ENABLE_HIDDEN_VISIBILITY],
+[
+  AC_BEFORE([AC_PATH_QT_1_3], [KDE_ENABLE_HIDDEN_VISIBILITY])
+
+  AC_MSG_CHECKING([grepping for visibility push/pop in headers])
+
+  if test "x$GXX" = "xyes"; then
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    AC_EGREP_CPP(
+       [GCC visibility push],
+       [ #include <exception> 
+       ], 
+    [
+      AC_MSG_RESULT(yes)
+      kde_stdc_visibility_patched=yes ],
+    [ 
+      AC_MSG_RESULT(no)
+      AC_MSG_WARN([Your libstdc++ doesn't appear to be patched for 
+                   visibility support. Disabling -fvisibility=hidden])
+
+      kde_stdc_visibility_patched=no ])
+
+    AC_LANG_RESTORE
+
+    kde_have_gcc_visibility=no
+    KDE_CHECK_COMPILER_FLAG(fvisibility=hidden, 
+    [
+      kde_have_gcc_visibility=yes
+      dnl the whole toolchain is just a mess, gcc is just too buggy
+      dnl to handle STL with visibility enabled. Lets reconsider 
+      dnl when gcc 4.2 is out or when things get fixed in the compiler.
+      dnl Contact mueller at kde.org for details.
+      AC_ARG_ENABLE(gcc-hidden-visibility,
+        AC_HELP_STRING([--enable-gcc-hidden-visibility],[toolchain hidden visibility [default=no]]),
+          [kde_have_gcc_visibility=$enableval],
+          [kde_have_gcc_visibility=no])
+
+      AC_CACHE_CHECK([if Qt is patched for -fvisibility], kde_cv_val_qt_gcc_visibility_patched,
+        [
+          AC_LANG_SAVE
+          AC_LANG_CPLUSPLUS
+
+          safe_CXXFLAGS=$CXXFLAGS
+          CXXFLAGS="$CXXFLAGS $all_includes"
+
+          AC_TRY_COMPILE(
+          [
+#include <qglobal.h>
+#if Q_EXPORT - 0 != 0
+/* if this compiles, then Q_EXPORT is undefined */
+/* if Q_EXPORT is nonempty, this will break compilation */
+#endif
+          ], [/* elvis is alive */],
+          kde_cv_val_qt_gcc_visibility_patched=no, kde_cv_val_qt_gcc_visibility_patched=yes)
+
+          CXXFLAGS=$safe_CXXFLAGS
+          AC_LANG_RESTORE
+        ]
+      )
+
+      if test x$kde_have_gcc_visibility = "xyes" && test x$kde_stdc_visibility_patched = "xyes" && test x$kde_cv_val_qt_gcc_visibility_patched = "xyes"; then
+        CXXFLAGS="$CXXFLAGS -fvisibility=hidden"
+        KDE_CHECK_VISIBILITY_GCC_BUG
+        HAVE_GCC_VISIBILITY=1
+        AC_DEFINE_UNQUOTED(__KDE_HAVE_GCC_VISIBILITY, "$HAVE_GCC_VISIBILITY", [define to 1 if -fvisibility is supported])
+      fi
+    ])
+  fi
+])
+
+AC_DEFUN([KDE_ADD_DEPENDENCIES],
+[
+   [A]M_DEPENDENCIES(CC)
+   [A]M_DEPENDENCIES(CXX)
+])
+
+dnl just a wrapper to clean up configure.in
+AC_DEFUN([KDE_PROG_LIBTOOL],
+[
+AC_REQUIRE([AC_CHECK_COMPILERS])
+AC_REQUIRE([AC_ENABLE_SHARED])
+AC_REQUIRE([AC_ENABLE_STATIC])
+
+AC_REQUIRE([AC_LIBTOOL_DLOPEN])
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+AC_OBJEXT
+AC_EXEEXT
+
+AM_PROG_LIBTOOL
+AC_LIBTOOL_CXX
+
+LIBTOOL_SHELL="/bin/sh ./libtool"
+#  LIBTOOL="$LIBTOOL --silent"
+KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
+AC_SUBST(KDE_PLUGIN)
+
+# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
+KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
+AC_SUBST(KDE_CHECK_PLUGIN)
+
+# we patch configure quite some so we better keep that consistent for incremental runs 
+AC_SUBST(AUTOCONF,'$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure')
+])
+
+AC_DEFUN([KDE_CHECK_LIB64],
+[
+    AC_ARG_ENABLE(libsuffix,
+        AC_HELP_STRING([--enable-libsuffix],
+            [/lib directory suffix (64,32,none,auto[=default])]),
+            kdelibsuff=$enableval, kdelibsuff="auto")
+    
+    if test "$kdelibsuff" = "auto"; then
+    
+cat > conftest.c << EOF
+#include <stdio.h>
+int main() {
+ return 0;
+}
+EOF
+        kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
+    s,.*/lib\([[^\/]]*\)/.*,\1, 
+    p 
+}'`
+	rm -rf conftest.*
+    fi	
+	
+    if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
+       kdelibsuff=
+    fi
+    if test -z "$kdelibsuff"; then
+        AC_MSG_RESULT([not using lib directory suffix])
+        AC_DEFINE(KDELIBSUFF, [""], Suffix for lib directories)
+    else
+        if test "$libdir" = '${exec_prefix}/lib'; then
+            libdir="$libdir${kdelibsuff}"
+            AC_SUBST([libdir], ["$libdir"])  dnl ugly hack for lib64 platforms
+        fi
+        AC_DEFINE_UNQUOTED(KDELIBSUFF, ["${kdelibsuff}"], Suffix for lib directories)
+        AC_MSG_RESULT([using lib directory suffix $kdelibsuff])
+    fi
+])
+
+AC_DEFUN([KDE_CHECK_TYPES],
+[  AC_CHECK_SIZEOF(int, 4)dnl
+   AC_CHECK_SIZEOF(short)dnl
+  AC_CHECK_SIZEOF(long, 4)dnl
+  AC_CHECK_SIZEOF(char *, 4)dnl
+])dnl
+
+dnl Not used - kept for compat only?
+AC_DEFUN([KDE_DO_IT_ALL],
+[
+AC_CANONICAL_SYSTEM
+AC_ARG_PROGRAM
+AM_INIT_AUTOMAKE($1, $2)
+AM_DISABLE_LIBRARIES
+AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+AC_CHECK_COMPILERS
+KDE_PROG_LIBTOOL
+AM_KDE_WITH_NLS
+AC_PATH_KDE
+])
+
+AC_DEFUN([AC_CHECK_RPATH],
+[
+AC_MSG_CHECKING(for rpath)
+AC_ARG_ENABLE(rpath,
+      AC_HELP_STRING([--disable-rpath],[do not use the rpath feature of ld]),
+      USE_RPATH=$enableval, USE_RPATH=yes)
+
+if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
+
+  KDE_RPATH="-R \$(libdir)"
+
+  if test "$kde_libraries" != "$libdir"; then
+      KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
+  fi
+
+  if test -n "$qt_libraries"; then
+    KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
+  fi
+  dnl $x_libraries is set to /usr/lib in case
+  if test -n "$X_LDFLAGS"; then
+    X_RPATH="-R \$(x_libraries)"
+    KDE_RPATH="$KDE_RPATH $X_RPATH"
+  fi
+  if test -n "$KDE_EXTRA_RPATH"; then
+    KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
+  fi
+fi
+AC_SUBST(KDE_EXTRA_RPATH)
+AC_SUBST(KDE_RPATH)
+AC_SUBST(X_RPATH)
+AC_MSG_RESULT($USE_RPATH)
+])
+
+dnl Check for the type of the third argument of getsockname
+AC_DEFUN([AC_CHECK_SOCKLEN_T],
+[
+   AC_MSG_CHECKING(for socklen_t)
+   AC_CACHE_VAL(kde_cv_socklen_t,
+   [
+      AC_LANG_PUSH(C++)
+      kde_cv_socklen_t=no
+      AC_TRY_COMPILE([
+         #include <sys/types.h>
+         #include <sys/socket.h>
+      ],
+      [
+         socklen_t len;
+         getpeername(0,0,&len);
+      ],
+      [
+         kde_cv_socklen_t=yes
+         kde_cv_socklen_t_equiv=socklen_t
+      ])
+      AC_LANG_POP(C++)
+   ])
+   AC_MSG_RESULT($kde_cv_socklen_t)
+   if test $kde_cv_socklen_t = no; then
+      AC_MSG_CHECKING([for socklen_t equivalent for socket functions])
+      AC_CACHE_VAL(kde_cv_socklen_t_equiv,
+      [
+         kde_cv_socklen_t_equiv=int
+         AC_LANG_PUSH(C++)
+         for t in int size_t unsigned long "unsigned long"; do
+            AC_TRY_COMPILE([
+               #include <sys/types.h>
+               #include <sys/socket.h>
+            ],
+            [
+               $t len;
+               getpeername(0,0,&len);
+            ],
+            [
+               kde_cv_socklen_t_equiv="$t"
+               break
+            ])
+         done
+         AC_LANG_POP(C++)
+      ])
+      AC_MSG_RESULT($kde_cv_socklen_t_equiv)
+   fi
+   AC_DEFINE_UNQUOTED(kde_socklen_t, $kde_cv_socklen_t_equiv,
+                     [type to use in place of socklen_t if not defined])
+   AC_DEFINE_UNQUOTED(ksize_t, $kde_cv_socklen_t_equiv,
+                     [type to use in place of socklen_t if not defined (deprecated, use kde_socklen_t)])
+])
+
+dnl This is a merge of some macros out of the gettext aclocal.m4
+dnl since we don't need anything, I took the things we need
+dnl the copyright for them is:
+dnl >
+dnl Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+dnl This Makefile.in is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+dnl PARTICULAR PURPOSE.
+dnl >
+dnl for this file it is relicensed under LGPL
+
+AC_DEFUN([AM_KDE_WITH_NLS],
+  [
+    dnl If we use NLS figure out what method
+
+    AM_PATH_PROG_WITH_TEST_KDE(MSGFMT, msgfmt,
+        [test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"], msgfmt)
+    AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+     if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
+        AC_MSG_RESULT([found msgfmt program is not GNU msgfmt; ignore it])
+        GMSGFMT=":"
+      fi
+      MSGFMT=$GMSGFMT
+      AC_SUBST(GMSGFMT)
+      AC_SUBST(MSGFMT)
+
+      AM_PATH_PROG_WITH_TEST_KDE(XGETTEXT, xgettext,
+	[test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+
+      dnl Test whether we really found GNU xgettext.
+      if test "$XGETTEXT" != ":"; then
+	dnl If it is no GNU xgettext we define it as : so that the
+	dnl Makefiles still can work.
+	if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+	  : ;
+	else
+	  AC_MSG_RESULT(
+	    [found xgettext programs is not GNU xgettext; ignore it])
+	  XGETTEXT=":"
+	fi
+      fi
+     AC_SUBST(XGETTEXT)
+
+  ])
+
+# Search path for a program which passes the given test.
+# Ulrich Drepper <drepper at cygnus.com>, 1996.
+
+# serial 1
+# Stephan Kulow: I appended a _KDE against name conflicts
+
+dnl AM_PATH_PROG_WITH_TEST_KDE(VARIABLE, PROG-TO-CHECK-FOR,
+dnl   TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST_KDE],
+[# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+  /*)
+  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if [$3]; then
+	ac_cv_path_$1="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+  ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test -n "[$]$1"; then
+  AC_MSG_RESULT([$]$1)
+else
+  AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
+
+
+# Check whether LC_MESSAGES is available in <locale.h>.
+# Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+# serial 1
+
+AC_DEFUN([AM_LC_MESSAGES],
+  [if test $ac_cv_header_locale_h = yes; then
+    AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
+      [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+       am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your locale.h file contains LC_MESSAGES])
+    fi
+  fi])
+
+dnl From Jim Meyering.
+dnl FIXME: migrate into libit.
+
+AC_DEFUN([AM_FUNC_OBSTACK],
+[AC_CACHE_CHECK([for obstacks], am_cv_func_obstack,
+ [AC_TRY_LINK([#include "obstack.h"],
+	      [struct obstack *mem;obstack_free(mem,(char *) 0)],
+	      am_cv_func_obstack=yes,
+	      am_cv_func_obstack=no)])
+ if test $am_cv_func_obstack = yes; then
+   AC_DEFINE(HAVE_OBSTACK)
+ else
+   LIBOBJS="$LIBOBJS obstack.o"
+ fi
+])
+
+dnl From Jim Meyering.  Use this if you use the GNU error.[ch].
+dnl FIXME: Migrate into libit
+
+AC_DEFUN([AM_FUNC_ERROR_AT_LINE],
+[AC_CACHE_CHECK([for error_at_line], am_cv_lib_error_at_line,
+ [AC_TRY_LINK([],[error_at_line(0, 0, "", 0, "");],
+              am_cv_lib_error_at_line=yes,
+	      am_cv_lib_error_at_line=no)])
+ if test $am_cv_lib_error_at_line = no; then
+   LIBOBJS="$LIBOBJS error.o"
+ fi
+ AC_SUBST(LIBOBJS)dnl
+])
+
+# Macro to add for using GNU gettext.
+# Ulrich Drepper <drepper at cygnus.com>, 1995.
+
+# serial 1
+# Stephan Kulow: I put a KDE in it to avoid name conflicts
+
+AC_DEFUN([AM_KDE_GNU_GETTEXT],
+  [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+   AC_REQUIRE([AC_PROG_RANLIB])dnl
+   AC_REQUIRE([AC_HEADER_STDC])dnl
+   AC_REQUIRE([AC_TYPE_OFF_T])dnl
+   AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+   AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+   AC_REQUIRE([AC_FUNC_MMAP])dnl
+   AC_REQUIRE([AM_KDE_WITH_NLS])dnl
+   AC_CHECK_HEADERS([limits.h locale.h nl_types.h string.h values.h alloca.h])
+   AC_CHECK_FUNCS([getcwd munmap putenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next])
+
+   AC_MSG_CHECKING(for stpcpy)
+   AC_CACHE_VAL(kde_cv_func_stpcpy,
+   [
+   kde_safe_cxxflags=$CXXFLAGS
+   CXXFLAGS="-Werror"
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   AC_TRY_COMPILE([
+   #include <string.h>
+   ],
+   [
+   char buffer[200];
+   stpcpy(buffer, buffer);
+   ],
+   kde_cv_func_stpcpy=yes,
+   kde_cv_func_stpcpy=no)
+   AC_LANG_RESTORE
+   CXXFLAGS=$kde_safe_cxxflags
+   ])
+   AC_MSG_RESULT($kde_cv_func_stpcpy)
+   if eval "test \"`echo $kde_cv_func_stpcpy`\" = yes"; then
+     AC_DEFINE(HAVE_STPCPY, 1, [Define if you have stpcpy])
+   fi
+
+   AM_LC_MESSAGES
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       AC_MSG_CHECKING(for catalogs to be installed)
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       AC_MSG_RESULT($LINGUAS)
+     fi
+
+     dnl Construct list of names of catalog files to be constructed.
+     if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+  ])
+
+AC_DEFUN([AC_HAVE_XPM],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$XPM_LDFLAGS" && XPM_LDFLAGS=
+ test -z "$XPM_INCLUDE" && XPM_INCLUDE=
+
+ AC_ARG_WITH(xpm,AC_HELP_STRING([--without-xpm],[disable color pixmap XPM tests]),
+	xpm_test=$withval, xpm_test="yes")
+ if test "x$xpm_test" = xno; then
+   ac_cv_have_xpm=no
+ else
+   AC_MSG_CHECKING(for XPM)
+   AC_CACHE_VAL(ac_cv_have_xpm,
+   [
+    ac_save_ldflags="$LDFLAGS"
+    ac_save_cflags="$CFLAGS"
+    if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm -lX11 -lXext $LIBZ $LIBSOCKET"
+    else
+      LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS $LDFLAGS $XPM_LDFLAGS $all_libraries -lXpm $LIBZ $LIBSOCKET"
+    fi
+    CFLAGS="$CFLAGS $X_INCLUDES $USER_INCLUDES"
+    test -n "$XPM_INCLUDE" && CFLAGS="-I$XPM_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <X11/xpm.h>],[],
+	ac_cv_have_xpm="yes",ac_cv_have_xpm="no")
+    LDFLAGS="$ac_save_ldflags"
+    CFLAGS="$ac_save_cflags"
+   ])dnl
+
+  if test "$ac_cv_have_xpm" = no; then
+    AC_MSG_RESULT(no)
+    XPM_LDFLAGS=""
+    XPMINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_XPM, 1, [Define if you have XPM support])
+    if test "$XPM_LDFLAGS" = ""; then
+       XPMLIB='-lXpm $(LIB_X11)'
+    else
+       XPMLIB="-L$XPM_LDFLAGS -lXpm "'$(LIB_X11)'
+    fi
+    if test "$XPM_INCLUDE" = ""; then
+       XPMINC=""
+    else
+       XPMINC="-I$XPM_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ AC_SUBST(XPMINC)
+ AC_SUBST(XPMLIB)
+])
+
+AC_DEFUN([AC_HAVE_DPMS],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$DPMS_LDFLAGS" && DPMS_LDFLAGS=
+ test -z "$DPMS_INCLUDE" && DPMS_INCLUDE=
+ DPMS_LIB=
+
+ AC_ARG_WITH(dpms,AC_HELP_STRING([--without-dpms],[disable DPMS power saving]),
+	dpms_test=$withval, dpms_test="yes")
+ if test "x$dpms_test" = xno; then
+   ac_cv_have_dpms=no
+ else
+   AC_MSG_CHECKING(for DPMS)
+   dnl Note: ac_cv_have_dpms can be no, yes, or -lXdpms.
+   dnl 'yes' means DPMS_LIB="", '-lXdpms' means DPMS_LIB="-lXdpms".
+   AC_CACHE_VAL(ac_cv_have_dpms,
+   [
+    if test "x$kde_use_qt_emb" = "xyes" || test "x$kde_use_qt_mac" = "xyes"; then
+      AC_MSG_RESULT(no)
+      ac_cv_have_dpms="no"
+    else
+      ac_save_ldflags="$LDFLAGS"
+      ac_save_cflags="$CFLAGS"
+      ac_save_libs="$LIBS"
+      LDFLAGS="$LDFLAGS $DPMS_LDFLAGS $all_libraries"
+      LIBS="-lX11 -lXext $LIBSOCKET"
+      CFLAGS="$CFLAGS $X_INCLUDES"
+      test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+      AC_TRY_LINK([
+	  #include <X11/Xproto.h>
+	  #include <X11/X.h>
+	  #include <X11/Xlib.h>
+	  #include <X11/extensions/dpms.h>
+	  int foo_test_dpms()
+	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+	  ac_cv_have_dpms="yes", [
+              LIBS="-lXdpms $LIBS"
+              AC_TRY_LINK([
+	          #include <X11/Xproto.h>
+        	  #include <X11/X.h>
+        	  #include <X11/Xlib.h>
+        	  #include <X11/extensions/dpms.h>
+        	  int foo_test_dpms()
+        	  { return DPMSSetTimeouts( 0, 0, 0, 0 ); }],[],
+        	  [
+                  ac_cv_have_dpms="-lXdpms"
+                  ],ac_cv_have_dpms="no")
+              ])
+      LDFLAGS="$ac_save_ldflags"
+      CFLAGS="$ac_save_cflags"
+      LIBS="$ac_save_libs"
+    fi
+   ])dnl
+
+  if test "$ac_cv_have_dpms" = no; then
+    AC_MSG_RESULT(no)
+    DPMS_LDFLAGS=""
+    DPMSINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_DPMS, 1, [Define if you have DPMS support])
+    if test "$ac_cv_have_dpms" = "-lXdpms"; then
+       DPMS_LIB="-lXdpms"
+    fi
+    if test "$DPMS_LDFLAGS" = ""; then
+       DPMSLIB="$DPMS_LIB "'$(LIB_X11)'
+    else
+       DPMSLIB="$DPMS_LDFLAGS $DPMS_LIB "'$(LIB_X11)'
+    fi
+    if test "$DPMS_INCLUDE" = ""; then
+       DPMSINC=""
+    else
+       DPMSINC="-I$DPMS_INCLUDE"
+    fi
+    AC_MSG_RESULT(yes)
+    $1
+  fi
+ fi
+ ac_save_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $X_INCLUDES"
+ test -n "$DPMS_INCLUDE" && CFLAGS="-I$DPMS_INCLUDE $CFLAGS"
+ AH_TEMPLATE(HAVE_DPMSCAPABLE_PROTO,
+   [Define if you have the DPMSCapable prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSCapable,
+   AC_DEFINE(HAVE_DPMSCAPABLE_PROTO),,
+   [#include <X11/Xlib.h>
+   #include <X11/extensions/dpms.h>])
+ AH_TEMPLATE(HAVE_DPMSINFO_PROTO,
+   [Define if you have the DPMSInfo prototype in <X11/extensions/dpms.h>])
+ AC_CHECK_DECL(DPMSInfo,
+   AC_DEFINE(HAVE_DPMSINFO_PROTO),,
+   [#include <X11/Xlib.h>
+   #include <X11/extensions/dpms.h>])
+ CFLAGS="$ac_save_cflags"
+ AC_SUBST(DPMSINC)
+ AC_SUBST(DPMSLIB)
+])
+
+AC_DEFUN([AC_HAVE_GL],
+ [AC_REQUIRE_CPP()dnl
+  AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+
+ test -z "$GL_LDFLAGS" && GL_LDFLAGS=
+ test -z "$GL_INCLUDE" && GL_INCLUDE=
+
+ AC_ARG_WITH(gl,AC_HELP_STRING([--without-gl],[disable 3D GL modes]),
+	gl_test=$withval, gl_test="yes")
+ if test "x$kde_use_qt_emb" = "xyes"; then
+   # GL and Qt Embedded is a no-go for now.
+   ac_cv_have_gl=no
+ elif test "x$gl_test" = xno; then
+   ac_cv_have_gl=no
+ else
+   AC_MSG_CHECKING(for GL)
+   AC_CACHE_VAL(ac_cv_have_gl,
+   [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_ldflags=$LDFLAGS
+    ac_save_cxxflags=$CXXFLAGS
+    ac_save_libs=$LIBS
+    LDFLAGS="$LDFLAGS $GL_LDFLAGS $X_LDFLAGS $all_libraries"
+    LIBS="$LIBS -lGL -lGLU"
+    test "x$kde_use_qt_mac" != xyes && test "x$kde_use_qt_emb" != xyes && LIBS="$LIBS -lX11"
+    LIBS="$LIBS $LIB_XEXT -lm $LIBSOCKET"
+    CXXFLAGS="$CFLAGS $X_INCLUDES"
+    test -n "$GL_INCLUDE" && CFLAGS="-I$GL_INCLUDE $CFLAGS"
+    AC_TRY_LINK([#include <GL/gl.h>
+#include <GL/glu.h>
+], [],
+	ac_cv_have_gl="yes", ac_cv_have_gl="no")
+    AC_LANG_RESTORE
+    LDFLAGS=$ac_save_ldflags
+    CXXFLAGS=$ac_save_cxxflags
+    LIBS=$ac_save_libs
+   ])dnl
+
+  if test "$ac_cv_have_gl" = "no"; then
+    AC_MSG_RESULT(no)
+    GL_LDFLAGS=""
+    GLINC=""
+    $2
+  else
+    AC_DEFINE(HAVE_GL, 1, [Defines if you have GL (Mesa, OpenGL, ...)])
+    if test "$GL_LDFLAGS" = ""; then
+       GLLIB='-lGLU -lGL $(LIB_X11)'
+    else
+       GLLIB="$GL_LDFLAGS -lGLU -lGL "'$(LIB_X11)'
+    fi
+    if test "$GL_INCLUDE" = ""; then
+       GLINC=""
+    else
+       GLINC="-I$GL_INCLUDE"
+    fi
+    AC_MSG_RESULT($ac_cv_have_gl)
+    $1
+  fi
+ fi
+ AC_SUBST(GLINC)
+ AC_SUBST(GLLIB)
+])
+
+
+ dnl shadow password and PAM magic - maintained by ossi at kde.org
+
+AC_DEFUN([KDE_PAM], [
+  AC_REQUIRE([KDE_CHECK_LIBDL])
+
+  want_pam=
+  AC_ARG_WITH(pam,
+    AC_HELP_STRING([--with-pam[=ARG]],[enable support for PAM: ARG=[yes|no|service name]]),
+    [ if test "x$withval" = "xyes"; then
+        want_pam=yes
+        pam_service=kde
+      elif test "x$withval" = "xno"; then
+        want_pam=no
+      else
+        want_pam=yes
+        pam_service=$withval
+      fi
+    ], [ pam_service=kde ])
+
+  use_pam=
+  PAMLIBS=
+  if test "x$want_pam" != xno; then
+    AC_CHECK_LIB(pam, pam_start, [
+      AC_CHECK_HEADER(security/pam_appl.h,
+        [ pam_header=security/pam_appl.h ],
+        [ AC_CHECK_HEADER(pam/pam_appl.h,
+            [ pam_header=pam/pam_appl.h ],
+            [
+    AC_MSG_WARN([PAM detected, but no headers found!
+Make sure you have the necessary development packages installed.])
+            ]
+          )
+        ]
+      )
+    ], , $LIBDL)
+    if test -z "$pam_header"; then
+      if test "x$want_pam" = xyes; then
+        AC_MSG_ERROR([--with-pam was specified, but cannot compile with PAM!])
+      fi
+    else
+      AC_DEFINE(HAVE_PAM, 1, [Defines if you have PAM (Pluggable Authentication Modules)])
+      PAMLIBS="$PAM_MISC_LIB -lpam $LIBDL"
+      use_pam=yes
+
+      dnl darwin claims to be something special
+      if test "$pam_header" = "pam/pam_appl.h"; then
+        AC_DEFINE(HAVE_PAM_PAM_APPL_H, 1, [Define if your PAM headers are in pam/ instead of security/])
+      fi
+
+      dnl test whether struct pam_message is const (Linux) or not (Sun)
+      AC_MSG_CHECKING(for const pam_message)
+      AC_EGREP_HEADER([struct pam_message], $pam_header,
+        [ AC_EGREP_HEADER([const struct pam_message], $pam_header,
+                          [AC_MSG_RESULT([const: Linux-type PAM])],
+                          [AC_MSG_RESULT([nonconst: Sun-type PAM])
+                          AC_DEFINE(PAM_MESSAGE_NONCONST, 1, [Define if your PAM support takes non-const arguments (Solaris)])]
+                          )],
+        [AC_MSG_RESULT([not found - assume const, Linux-type PAM])])
+    fi
+  fi
+
+  AC_SUBST(PAMLIBS)
+])
+
+dnl DEF_PAM_SERVICE(arg name, full name, define name)
+AC_DEFUN([DEF_PAM_SERVICE], [
+  AC_ARG_WITH($1-pam,
+    AC_HELP_STRING([--with-$1-pam=[val]],[override PAM service from --with-pam for $2]),
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE=$withval
+      else
+        AC_MSG_ERROR([Cannot use use --with-$1-pam, as no PAM was detected.
+You may want to enforce it by using --with-pam.])
+      fi
+    ], 
+    [ if test "x$use_pam" = xyes; then
+        $3_PAM_SERVICE="$pam_service"
+      fi
+    ])
+    if test -n "$$3_PAM_SERVICE"; then
+      AC_MSG_RESULT([The PAM service used by $2 will be $$3_PAM_SERVICE])
+      AC_DEFINE_UNQUOTED($3_PAM_SERVICE, "$$3_PAM_SERVICE", [The PAM service to be used by $2])
+    fi
+    AC_SUBST($3_PAM_SERVICE)
+])
+
+AC_DEFUN([KDE_SHADOWPASSWD], [
+  AC_REQUIRE([KDE_PAM])
+
+  AC_CHECK_LIB(shadow, getspent,
+    [ LIBSHADOW="-lshadow"
+      ac_use_shadow=yes
+    ],
+    [ dnl for UnixWare
+      AC_CHECK_LIB(gen, getspent, 
+        [ LIBGEN="-lgen"
+          ac_use_shadow=yes
+        ], 
+        [ AC_CHECK_FUNC(getspent, 
+            [ ac_use_shadow=yes ],
+            [ ac_use_shadow=no ])
+	])
+    ])
+  AC_SUBST(LIBSHADOW)
+  AC_SUBST(LIBGEN)
+  
+  AC_MSG_CHECKING([for shadow passwords])
+
+  AC_ARG_WITH(shadow,
+    AC_HELP_STRING([--with-shadow],[If you want shadow password support]),
+    [ if test "x$withval" != "xno"; then
+        use_shadow=yes
+      else
+        use_shadow=no
+      fi
+    ], [
+      use_shadow="$ac_use_shadow"
+    ])
+
+  if test "x$use_shadow" = xyes; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE(HAVE_SHADOW, 1, [Define if you use shadow passwords])
+  else
+    AC_MSG_RESULT(no)
+    LIBSHADOW=
+    LIBGEN=
+  fi
+
+  dnl finally make the relevant binaries setuid root, if we have shadow passwds.
+  dnl this still applies, if we could use it indirectly through pam.
+  if test "x$use_shadow" = xyes || 
+     ( test "x$use_pam" = xyes && test "x$ac_use_shadow" = xyes ); then
+      case $host in
+      *-*-freebsd* | *-*-netbsd* | *-*-openbsd*)
+	SETUIDFLAGS="-m 4755 -o root";;
+      *)
+	SETUIDFLAGS="-m 4755";;
+      esac
+  fi
+  AC_SUBST(SETUIDFLAGS)
+
+])
+
+AC_DEFUN([KDE_PASSWDLIBS], [
+  AC_REQUIRE([KDE_MISC_TESTS]) dnl for LIBCRYPT
+  AC_REQUIRE([KDE_PAM])
+  AC_REQUIRE([KDE_SHADOWPASSWD])
+
+  if test "x$use_pam" = "xyes"; then 
+    PASSWDLIBS="$PAMLIBS"
+  else
+    PASSWDLIBS="$LIBCRYPT $LIBSHADOW $LIBGEN"
+  fi
+
+  dnl FreeBSD uses a shadow-like setup, where /etc/passwd holds the users, but
+  dnl /etc/master.passwd holds the actual passwords.  /etc/master.passwd requires
+  dnl root to read, so kcheckpass needs to be root (even when using pam, since pam
+  dnl may need to read /etc/master.passwd).
+  case $host in
+  *-*-freebsd*)
+    SETUIDFLAGS="-m 4755 -o root"
+    ;;
+  *)
+    ;;
+  esac
+
+  AC_SUBST(PASSWDLIBS)
+])
+
+AC_DEFUN([KDE_CHECK_LIBDL],
+[
+AC_CHECK_LIB(dl, dlopen, [
+LIBDL="-ldl"
+ac_cv_have_dlfcn=yes
+])
+
+AC_CHECK_LIB(dld, shl_unload, [
+LIBDL="-ldld"
+ac_cv_have_shload=yes
+])
+
+AC_SUBST(LIBDL)
+])
+
+AC_DEFUN([KDE_CHECK_DLOPEN],
+[
+KDE_CHECK_LIBDL
+AC_CHECK_HEADERS(dlfcn.h dl.h)
+if test "$ac_cv_header_dlfcn_h" = "no"; then
+  ac_cv_have_dlfcn=no
+fi
+
+if test "$ac_cv_header_dl_h" = "no"; then
+  ac_cv_have_shload=no
+fi
+
+dnl XXX why change enable_dlopen? its already set by autoconf's AC_ARG_ENABLE
+dnl (MM)
+AC_ARG_ENABLE(dlopen,
+AC_HELP_STRING([--disable-dlopen],[link statically [default=no]]),
+enable_dlopen=$enableval,
+enable_dlopen=yes)
+
+# override the user's opinion, if we know it better ;)
+if test "$ac_cv_have_dlfcn" = "no" && test "$ac_cv_have_shload" = "no"; then
+  enable_dlopen=no
+fi
+
+if test "$ac_cv_have_dlfcn" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_DLFCN, 1, [Define if you have dlfcn])
+fi
+
+if test "$ac_cv_have_shload" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_SHLOAD, 1, [Define if you have shload])
+fi
+
+if test "$enable_dlopen" = no ; then
+  test -n "$1" && eval $1
+else
+  test -n "$2" && eval $2
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_DYNAMIC_LOADING],
+[
+KDE_CHECK_DLOPEN(libtool_enable_shared=yes, libtool_enable_static=no)
+KDE_PROG_LIBTOOL
+AC_MSG_CHECKING([dynamic loading])
+eval "`egrep '^build_libtool_libs=' libtool`"
+if test "$build_libtool_libs" = "yes" && test "$enable_dlopen" = "yes"; then
+  dynamic_loading=yes
+  AC_DEFINE_UNQUOTED(HAVE_DYNAMIC_LOADING)
+else
+  dynamic_loading=no
+fi
+AC_MSG_RESULT($dynamic_loading)
+if test "$dynamic_loading" = "yes"; then
+  $1
+else
+  $2
+fi
+])
+
+AC_DEFUN([KDE_ADD_INCLUDES],
+[
+if test -z "$1"; then
+  test_include="Pix.h"
+else
+  test_include="$1"
+fi
+
+AC_MSG_CHECKING([for libg++ ($test_include)])
+
+AC_CACHE_VAL(kde_cv_libgpp_includes,
+[
+kde_cv_libgpp_includes=no
+
+   for ac_dir in               \
+                               \
+     /usr/include/g++          \
+     /usr/include              \
+     /usr/unsupported/include  \
+     /opt/include              \
+     $extra_include            \
+     ; \
+   do
+     if test -r "$ac_dir/$test_include"; then
+       kde_cv_libgpp_includes=$ac_dir
+       break
+     fi
+   done
+])
+
+AC_MSG_RESULT($kde_cv_libgpp_includes)
+if test "$kde_cv_libgpp_includes" != "no"; then
+  all_includes="-I$kde_cv_libgpp_includes $all_includes $USER_INCLUDES"
+fi
+])
+])
+
+AC_DEFUN([KDE_CHECK_LIBPTHREAD],
+[
+  dnl This code is here specifically to handle the
+  dnl various flavors of threading library on FreeBSD
+  dnl 4-, 5-, and 6-, and the (weird) rules around it.
+  dnl There may be an environment PTHREAD_LIBS that 
+  dnl specifies what to use; otherwise, search for it.
+  dnl -pthread is special cased and unsets LIBPTHREAD
+  dnl below if found.
+  LIBPTHREAD=""
+
+  if test -n "$PTHREAD_LIBS"; then
+    if test "x$PTHREAD_LIBS" = "x-pthread" ; then
+      LIBPTHREAD="PTHREAD"
+    else
+      PTHREAD_LIBS_save="$PTHREAD_LIBS"
+      PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
+      AC_MSG_CHECKING([for pthread_create in $PTHREAD_LIBS])
+      KDE_CHECK_LIB($PTHREAD_LIBS, pthread_create, [
+          LIBPTHREAD="$PTHREAD_LIBS_save"])
+      PTHREAD_LIBS="$PTHREAD_LIBS_save"
+    fi
+  fi
+
+  dnl Is this test really needed, in the face of the Tru64 test below?
+  if test -z "$LIBPTHREAD"; then
+    AC_CHECK_LIB(pthread, pthread_create, [LIBPTHREAD="-lpthread"])
+  fi
+
+  dnl This is a special Tru64 check, see BR 76171 issue #18.
+  if test -z "$LIBPTHREAD" ; then
+    AC_MSG_CHECKING([for pthread_create in -lpthread])
+    kde_safe_libs=$LIBS
+    LIBS="$LIBS -lpthread"
+    AC_TRY_LINK([#include <pthread.h>],[(void)pthread_create(0,0,0,0);],[
+        AC_MSG_RESULT(yes)
+        LIBPTHREAD="-lpthread"],[
+	AC_MSG_RESULT(no)])
+    LIBS=$kde_safe_libs
+  fi
+
+  dnl Un-special-case for FreeBSD.
+  if test "x$LIBPTHREAD" = "xPTHREAD" ; then
+    LIBPTHREAD=""
+  fi
+
+  AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_PTHREAD_OPTION],
+[
+      USE_THREADS=""
+      if test -z "$LIBPTHREAD"; then
+        KDE_CHECK_COMPILER_FLAG(pthread, [USE_THREADS="-D_THREAD_SAFE -pthread"])
+      fi
+
+    AH_VERBATIM(__svr_define, [
+#if defined(__SVR4) && !defined(__svr4__)
+#define __svr4__ 1
+#endif
+])
+    case $host_os in
+ 	solaris*)
+		KDE_CHECK_COMPILER_FLAG(mt, [USE_THREADS="-mt"])
+                CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
+    		;;
+        freebsd*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
+                ;;
+        aix*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+                LIBPTHREAD="$LIBPTHREAD -lc_r"
+                ;;
+        linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+                if test "$CXX" = "KCC"; then
+                  CXXFLAGS="$CXXFLAGS --thread_safe"
+		  NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
+                fi
+                ;;
+	*)
+		;;
+    esac
+    AC_SUBST(USE_THREADS)
+    AC_SUBST(LIBPTHREAD)
+])
+
+AC_DEFUN([KDE_CHECK_THREADING],
+[
+  AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+  AC_REQUIRE([KDE_CHECK_PTHREAD_OPTION])
+  dnl default is yes if libpthread is found and no if no libpthread is available
+  if test -z "$LIBPTHREAD"; then
+    if test -z "$USE_THREADS"; then
+      kde_check_threading_default=no
+    else
+      kde_check_threading_default=yes
+    fi
+  else
+    kde_check_threading_default=yes
+  fi
+  AC_ARG_ENABLE(threading,AC_HELP_STRING([--disable-threading],[disables threading even if libpthread found]),
+   kde_use_threading=$enableval, kde_use_threading=$kde_check_threading_default)
+  if test "x$kde_use_threading" = "xyes"; then
+    AC_DEFINE(HAVE_LIBPTHREAD, 1, [Define if you have a working libpthread (will enable threaded code)])
+  fi
+])
+
+AC_DEFUN([KDE_TRY_LINK_PYTHON],
+[
+if test "$kde_python_link_found" = no; then
+
+if test "$1" = normal; then
+  AC_MSG_CHECKING(if a Python application links)
+else
+  AC_MSG_CHECKING(if Python depends on $2)
+fi
+
+AC_CACHE_VAL(kde_cv_try_link_python_$1,
+[
+kde_save_cflags="$CFLAGS"
+CFLAGS="$CFLAGS $PYTHONINC"
+kde_save_libs="$LIBS"
+LIBS="$LIBS $LIBPYTHON $2 $LIBDL $LIBSOCKET"
+kde_save_ldflags="$LDFLAGS"
+LDFLAGS="$LDFLAGS $PYTHONLIB"
+
+AC_TRY_LINK(
+[
+#include <Python.h>
+],[
+	PySys_SetArgv(1, 0);
+],
+	[kde_cv_try_link_python_$1=yes],
+	[kde_cv_try_link_python_$1=no]
+)
+CFLAGS="$kde_save_cflags"
+LIBS="$kde_save_libs"
+LDFLAGS="$kde_save_ldflags"
+])
+
+if test "$kde_cv_try_link_python_$1" = "yes"; then
+  AC_MSG_RESULT(yes)
+  kde_python_link_found=yes
+  if test ! "$1" = normal; then
+    LIBPYTHON="$LIBPYTHON $2"
+  fi
+  $3
+else
+  AC_MSG_RESULT(no)
+  $4
+fi
+
+fi
+
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_DIR],
+[
+AC_MSG_CHECKING([for Python directory])
+ 
+AC_CACHE_VAL(kde_cv_pythondir,
+[
+  if test -z "$PYTHONDIR"; then
+    kde_cv_pythondir=/usr/local
+  else
+    kde_cv_pythondir="$PYTHONDIR"
+  fi
+])
+ 
+AC_ARG_WITH(pythondir,
+AC_HELP_STRING([--with-pythondir=pythondir],[use python installed in pythondir]),
+[
+  ac_python_dir=$withval
+], ac_python_dir=$kde_cv_pythondir
+)
+ 
+AC_MSG_RESULT($ac_python_dir)
+])
+
+AC_DEFUN([KDE_CHECK_PYTHON_INTERN],
+[
+AC_REQUIRE([KDE_CHECK_LIBDL])
+AC_REQUIRE([KDE_CHECK_LIBPTHREAD])
+AC_REQUIRE([KDE_CHECK_PYTHON_DIR])
+
+if test -z "$1"; then
+  version="1.5"
+else
+  version="$1"
+fi
+
+AC_MSG_CHECKING([for Python$version])
+
+python_incdirs="$ac_python_dir/include /usr/include /usr/local/include/ $kde_extra_includes"
+AC_FIND_FILE(Python.h, $python_incdirs, python_incdir)
+if test ! -r $python_incdir/Python.h; then
+  AC_FIND_FILE(python$version/Python.h, $python_incdirs, python_incdir)
+  python_incdir=$python_incdir/python$version
+  if test ! -r $python_incdir/Python.h; then
+    python_incdir=no
+  fi
+fi
+
+PYTHONINC=-I$python_incdir
+
+python_libdirs="$ac_python_dir/lib$kdelibsuff /usr/lib$kdelibsuff /usr/local /usr/lib$kdelibsuff $kde_extra_libs"
+AC_FIND_FILE(libpython$version.so, $python_libdirs, python_libdir)
+if test ! -r $python_libdir/libpython$version.so; then
+  AC_FIND_FILE(libpython$version.a, $python_libdirs, python_libdir)
+  if test ! -r $python_libdir/libpython$version.a; then
+    AC_FIND_FILE(python$version/config/libpython$version.a, $python_libdirs, python_libdir)
+    python_libdir=$python_libdir/python$version/config
+    if test ! -r $python_libdir/libpython$version.a; then
+      python_libdir=no
+    fi
+  fi
+fi
+
+PYTHONLIB=-L$python_libdir
+kde_orig_LIBPYTHON=$LIBPYTHON
+if test -z "$LIBPYTHON"; then
+  LIBPYTHON=-lpython$version
+fi
+
+AC_FIND_FILE(python$version/copy.py, $python_libdirs, python_moddir)
+python_moddir=$python_moddir/python$version
+if test ! -r $python_moddir/copy.py; then
+  python_moddir=no
+fi
+
+PYTHONMODDIR=$python_moddir
+
+AC_MSG_RESULT(header $python_incdir library $python_libdir modules $python_moddir)
+
+if test x$python_incdir = xno ||  test x$python_libdir = xno ||  test x$python_moddir = xno; then
+   LIBPYTHON=$kde_orig_LIBPYTHON
+   test "x$PYTHONLIB" = "x-Lno" && PYTHONLIB=""
+   test "x$PYTHONINC" = "x-Ino" && PYTHONINC=""
+   $2
+else 
+  dnl Note: this test is very weak
+  kde_python_link_found=no
+  KDE_TRY_LINK_PYTHON(normal)
+  KDE_TRY_LINK_PYTHON(m, -lm)
+  KDE_TRY_LINK_PYTHON(pthread, $LIBPTHREAD)
+  KDE_TRY_LINK_PYTHON(tcl, -ltcl)
+  KDE_TRY_LINK_PYTHON(db2, -ldb2)
+  KDE_TRY_LINK_PYTHON(m_and_thread, [$LIBPTHREAD -lm])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_util, [$LIBPTHREAD -lm -lutil])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db3, [$LIBPTHREAD -lm -ldb-3 -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_db3, [$LIBPTHREAD -ldb-3])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db, [$LIBPTHREAD -lm -ldb -ltermcap -lutil])
+  KDE_TRY_LINK_PYTHON(pthread_and_dl, [$LIBPTHREAD $LIBDL -lutil -lreadline -lncurses -lm])
+  KDE_TRY_LINK_PYTHON(pthread_and_panel_curses, [$LIBPTHREAD $LIBDL -lm -lpanel -lcurses])
+  KDE_TRY_LINK_PYTHON(m_and_thread_and_db_special, [$LIBPTHREAD -lm -ldb -lutil], [],
+	[AC_MSG_WARN([it seems, Python depends on another library.
+    Please set LIBPYTHON to '-lpython$version -lotherlib' before calling configure to fix this
+    and contact the authors to let them know about this problem])
+	])
+
+  LIBPYTHON="$LIBPYTHON $LIBDL $LIBSOCKET"
+  AC_SUBST(PYTHONINC)
+  AC_SUBST(PYTHONLIB)
+  AC_SUBST(LIBPYTHON)
+  AC_SUBST(PYTHONMODDIR)
+  AC_DEFINE(HAVE_PYTHON, 1, [Define if you have the development files for python])
+fi
+
+])
+
+
+AC_DEFUN([KDE_CHECK_PYTHON],
+[
+  KDE_CHECK_PYTHON_INTERN("2.5",
+    [KDE_CHECK_PYTHON_INTERN("2.4",
+     [KDE_CHECK_PYTHON_INTERN("2.3", 
+       [KDE_CHECK_PYTHON_INTERN("2.2", 
+         [KDE_CHECK_PYTHON_INTERN("2.1", 
+           [KDE_CHECK_PYTHON_INTERN("2.0", 
+             [KDE_CHECK_PYTHON_INTERN($1, $2) ])
+           ])
+         ])
+       ])
+     ])
+  ])
+])
+
+AC_DEFUN([KDE_CHECK_STL],
+[
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_save_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
+
+    AC_MSG_CHECKING([if C++ programs can be compiled])
+    AC_CACHE_VAL(kde_cv_stl_works,
+    [
+      AC_TRY_COMPILE([
+#include <string>
+using namespace std;
+],[
+  string astring="Hallo Welt.";
+  astring.erase(0, 6); // now astring is "Welt"
+  return 0;
+], kde_cv_stl_works=yes,
+   kde_cv_stl_works=no)
+])
+
+   AC_MSG_RESULT($kde_cv_stl_works)
+
+   if test "$kde_cv_stl_works" = "yes"; then
+     # back compatible
+	 AC_DEFINE_UNQUOTED(HAVE_SGI_STL, 1, [Define if you have a STL implementation by SGI])
+   else
+	 AC_MSG_ERROR([Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similar to libstdc++-dev.])
+   fi
+
+   CXXFLAGS="$ac_save_CXXFLAGS"
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([AC_FIND_QIMGIO],
+   [AC_REQUIRE([AC_FIND_JPEG])
+AC_REQUIRE([KDE_CHECK_EXTRA_LIBS])
+AC_MSG_CHECKING([for qimgio])
+AC_CACHE_VAL(ac_cv_lib_qimgio,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+ac_save_LIBS="$LIBS"
+ac_save_CXXFLAGS="$CXXFLAGS"
+LIBS="$all_libraries -lqimgio -lpng -lz $LIBJPEG $LIBQT"
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+AC_TRY_RUN(dnl
+[
+#include <qimageio.h>
+#include <qstring.h>
+int main() {
+		QString t = "hallo";
+		t.fill('t');
+		qInitImageIO();
+}
+],
+            ac_cv_lib_qimgio=yes,
+            ac_cv_lib_qimgio=no,
+	    ac_cv_lib_qimgio=no)
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+if eval "test \"`echo $ac_cv_lib_qimgio`\" = yes"; then
+  LIBQIMGIO="-lqimgio -lpng -lz $LIBJPEG"
+  AC_MSG_RESULT(yes)
+  AC_DEFINE_UNQUOTED(HAVE_QIMGIO, 1, [Define if you have the Qt extension qimgio available])
+  AC_SUBST(LIBQIMGIO)
+else
+  AC_MSG_RESULT(not found)
+fi
+])
+
+AC_DEFUN([AM_DISABLE_LIBRARIES],
+[
+    AC_PROVIDE([AM_ENABLE_STATIC])
+    AC_PROVIDE([AM_ENABLE_SHARED])
+    enable_static=no
+    enable_shared=yes
+])
+
+
+AC_DEFUN([AC_CHECK_UTMP_FILE],
+[
+    AC_MSG_CHECKING([for utmp file])
+
+    AC_CACHE_VAL(kde_cv_utmp_file,
+    [
+    kde_cv_utmp_file=no
+
+    for ac_file in    \
+                      \
+	/var/run/utmp \
+	/var/adm/utmp \
+	/etc/utmp     \
+     ; \
+    do
+     if test -r "$ac_file"; then
+       kde_cv_utmp_file=$ac_file
+       break
+     fi
+    done
+    ])
+
+    if test "$kde_cv_utmp_file" != "no"; then
+	AC_DEFINE_UNQUOTED(UTMP, "$kde_cv_utmp_file", [Define the file for utmp entries])
+	$1
+	AC_MSG_RESULT($kde_cv_utmp_file)
+    else
+    	$2
+	AC_MSG_RESULT([non found])
+    fi
+])
+
+
+AC_DEFUN([KDE_CREATE_SUBDIRSLIST],
+[
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
+TOPSUBDIRS=""
+
+if test ! -s $srcdir/subdirs; then
+  dnl Note: Makefile.common creates subdirs, so this is just a fallback
+  files=`cd $srcdir && ls -1`
+  dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
+  for i in $dirs; do
+    echo $i >> $srcdir/subdirs
+  done
+fi
+
+ac_topsubdirs=
+if test -s $srcdir/inst-apps; then
+  ac_topsubdirs="`cat $srcdir/inst-apps`"
+elif test -s $srcdir/subdirs; then
+  ac_topsubdirs="`cat $srcdir/subdirs`"
+fi
+
+for i in $ac_topsubdirs; do
+  AC_MSG_CHECKING([if $i should be compiled])
+  if test -d $srcdir/$i; then
+    install_it="yes"
+    for j in $DO_NOT_COMPILE; do
+      if test $i = $j; then
+        install_it="no"
+      fi
+    done
+  else
+    install_it="no"
+  fi
+  AC_MSG_RESULT($install_it)
+  vari=`echo $i | sed -e 's,[[-+.@]],_,g'`
+  if test $install_it = "yes"; then
+    TOPSUBDIRS="$TOPSUBDIRS $i"
+    eval "$vari""_SUBDIR_included=yes"
+  else
+    eval "$vari""_SUBDIR_included=no"
+  fi
+done
+
+AC_SUBST(TOPSUBDIRS)
+])
+
+AC_DEFUN([KDE_CHECK_NAMESPACES],
+[
+AC_MSG_CHECKING(whether C++ compiler supports namespaces)
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+AC_TRY_COMPILE([
+],
+[
+namespace Foo {
+  extern int i;
+  namespace Bar {
+    extern int i;
+  }
+}
+
+int Foo::i = 0;
+int Foo::Bar::i = 1;
+],[
+  AC_MSG_RESULT(yes)
+  AC_DEFINE(HAVE_NAMESPACES)
+], [
+AC_MSG_RESULT(no)
+])
+AC_LANG_RESTORE
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for S_ISSOCK macro. Doesn't exist on Unix SCO. faure at kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_S_ISSOCK],
+[
+AC_MSG_CHECKING(for S_ISSOCK)
+AC_CACHE_VAL(ac_cv_have_s_issock,
+[
+AC_TRY_LINK(
+[
+#include <sys/stat.h>
+],
+[
+struct stat buff;
+int b = S_ISSOCK( buff.st_mode );
+],
+ac_cv_have_s_issock=yes,
+ac_cv_have_s_issock=no)
+])
+AC_MSG_RESULT($ac_cv_have_s_issock)
+if test "$ac_cv_have_s_issock" = "yes"; then
+  AC_DEFINE_UNQUOTED(HAVE_S_ISSOCK, 1, [Define if sys/stat.h declares S_ISSOCK.])
+fi
+
+AH_VERBATIM(_ISSOCK,
+[
+#ifndef HAVE_S_ISSOCK
+#define HAVE_S_ISSOCK
+#define S_ISSOCK(mode) (1==0)
+#endif
+])
+
+])
+
+dnl ------------------------------------------------------------------------
+dnl Check for MAXPATHLEN macro, defines KDEMAXPATHLEN. faure at kde.org
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([AC_CHECK_KDEMAXPATHLEN],
+[
+AC_MSG_CHECKING(for MAXPATHLEN)
+AC_CACHE_VAL(ac_cv_maxpathlen,
+[
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include <sys/param.h>
+#ifndef MAXPATHLEN
+#define MAXPATHLEN 1024
+#endif
+
+KDE_HELLO MAXPATHLEN
+
+EOF
+
+ac_try="$ac_cpp conftest.$ac_ext 2>/dev/null | grep '^KDE_HELLO' >conftest.out"
+
+if AC_TRY_EVAL(ac_try) && test -s conftest.out; then
+    ac_cv_maxpathlen=`sed 's#KDE_HELLO ##' conftest.out`
+else
+    ac_cv_maxpathlen=1024
+fi
+
+rm conftest.*
+
+])
+AC_MSG_RESULT($ac_cv_maxpathlen)
+AC_DEFINE_UNQUOTED(KDEMAXPATHLEN,$ac_cv_maxpathlen, [Define a safe value for MAXPATHLEN] )
+])
+
+AC_DEFUN([KDE_CHECK_HEADER],
+[
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADER([$1], [$2], [$3], [$4])
+   AC_LANG_RESTORE
+   CPPFLAGS=$kde_safe_cppflags
+])
+
+AC_DEFUN([KDE_CHECK_HEADERS],
+[
+   AH_CHECK_HEADERS([$1])
+   AC_LANG_SAVE
+   kde_safe_cppflags=$CPPFLAGS
+   CPPFLAGS="$CPPFLAGS $all_includes"
+   AC_LANG_CPLUSPLUS
+   AC_CHECK_HEADERS([$1], [$2], [$3], [$4])
+   CPPFLAGS=$kde_safe_cppflags
+   AC_LANG_RESTORE
+])
+
+AC_DEFUN([KDE_FAST_CONFIGURE],
+[
+  dnl makes configure fast (needs perl)
+  AC_ARG_ENABLE(fast-perl, AC_HELP_STRING([--disable-fast-perl],[disable fast Makefile generation (needs perl)]),
+      with_fast_perl=$enableval, with_fast_perl=yes)
+])
+
+AC_DEFUN([KDE_CONF_FILES],
+[
+  val=
+  if test -f $srcdir/configure.files ; then
+    val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
+  fi
+  CONF_FILES=
+  if test -n "$val" ; then
+    for i in $val ; do
+      CONF_FILES="$CONF_FILES $i"
+    done
+  fi
+  AC_SUBST(CONF_FILES)
+])dnl
+
+dnl This sets the prefix, for arts and kdelibs
+dnl Do NOT use in any other module.
+dnl It only looks at --prefix, KDEDIR and falls back to /usr/local/kde
+AC_DEFUN([KDE_SET_PREFIX_CORE],
+[
+  unset CDPATH
+  dnl make $KDEDIR the default for the installation
+  AC_PREFIX_DEFAULT(${KDEDIR:-/usr/local/kde})
+
+  if test "x$prefix" = "xNONE"; then
+    prefix=$ac_default_prefix
+    ac_configure_args="$ac_configure_args --prefix=$prefix"
+  fi
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  kde_libs_htmldir=$prefix/share/doc/HTML/
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+  kde_libs_prefix='$(prefix)'
+  kde_libs_htmldir='$(kde_htmldir)'
+  AC_SUBST(kde_libs_prefix)
+  AC_SUBST(kde_libs_htmldir)
+  KDE_FAST_CONFIGURE
+  KDE_CONF_FILES
+])
+
+
+AC_DEFUN([KDE_SET_PREFIX],
+[
+  unset CDPATH
+  dnl We can't give real code to that macro, only a value.
+  dnl It only matters for --help, since we set the prefix in this function anyway.
+  AC_PREFIX_DEFAULT(${KDEDIR:-the kde prefix})
+
+  KDE_SET_DEFAULT_BINDIRS
+  if test "x$prefix" = "xNONE"; then
+    dnl no prefix given: look for kde-config in the PATH and deduce the prefix from it
+    KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+  else
+    dnl prefix given: look for kde-config, preferrably in prefix, otherwise in PATH
+    kde_save_PATH="$PATH"
+    PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+    KDE_FIND_PATH(kde-config, KDECONFIG, [$kde_default_bindirs], [KDE_MISSING_PROG_ERROR(kde-config)], [], prepend)
+    PATH="$kde_save_PATH"
+  fi
+
+  kde_libs_prefix=`$KDECONFIG --prefix`
+  if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+       AC_MSG_ERROR([$KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+                    This means it has been moved since you installed it.
+                    This won't work. Please recompile kdelibs for the new prefix.
+                    ])
+  fi
+  kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+
+  AC_MSG_CHECKING([where to install])
+  if test "x$prefix" = "xNONE"; then
+    prefix=$kde_libs_prefix
+    AC_MSG_RESULT([$prefix (as returned by kde-config)])
+  else
+    dnl --prefix was given. Compare prefixes and warn (in configure.in.bot.end) if different
+    given_prefix=$prefix
+    AC_MSG_RESULT([$prefix (as requested)])
+  fi
+
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+  AC_SUBST(KDECONFIG)
+  AC_SUBST(kde_libs_prefix)
+  AC_SUBST(kde_libs_htmldir)
+
+  KDE_FAST_CONFIGURE
+  KDE_CONF_FILES
+])
+
+pushdef([AC_PROG_INSTALL],
+[
+  dnl our own version, testing for a -p flag
+  popdef([AC_PROG_INSTALL])
+  dnl as AC_PROG_INSTALL works as it works we first have
+  dnl to save if the user didn't specify INSTALL, as the
+  dnl autoconf one overwrites INSTALL and we have no chance to find
+  dnl out afterwards
+  test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
+  test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
+  test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
+  AC_PROG_INSTALL
+
+  if test -z "$kde_save_INSTALL_given" ; then
+    # OK, user hasn't given any INSTALL, autoconf found one for us
+    # now we test, if it supports the -p flag
+    AC_MSG_CHECKING(for -p flag to install)
+    rm -f confinst.$$.* > /dev/null 2>&1
+    echo "Testtest" > confinst.$$.orig
+    ac_res=no
+    if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
+      if test -f confinst.$$.new ; then
+        # OK, -p seems to do no harm to install
+	INSTALL="${INSTALL} -p"
+	ac_res=yes
+      fi
+    fi
+    rm -f confinst.$$.*
+    AC_MSG_RESULT($ac_res)
+  fi
+  dnl the following tries to resolve some signs and wonders coming up
+  dnl with different autoconf/automake versions
+  dnl e.g.:
+  dnl  *automake 1.4 install-strip sets A_M_INSTALL_PROGRAM_FLAGS to -s
+  dnl   and has INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(A_M_INSTALL_PROGRAM_FLAGS)
+  dnl   it header-vars.am, so there the actual INSTALL_PROGRAM gets the -s
+  dnl  *automake 1.4a (and above) use INSTALL_STRIP_FLAG and only has
+  dnl   INSTALL_PROGRAM = @INSTALL_PROGRAM@ there, but changes the
+  dnl   install- at DIR@PROGRAMS targets to explicitly use that flag
+  dnl  *autoconf 2.13 is dumb, and thinks it can use INSTALL_PROGRAM as
+  dnl   INSTALL_SCRIPT, which breaks with automake <= 1.4
+  dnl  *autoconf >2.13 (since 10.Apr 1999) has not that failure
+  dnl  *sometimes KDE does not use the install- at DIR@PROGRAM targets from
+  dnl   automake (due to broken Makefile.am or whatever) to install programs,
+  dnl   and so does not see the -s flag in automake > 1.4
+  dnl to clean up that mess we:
+  dnl  +set INSTALL_PROGRAM to use INSTALL_STRIP_FLAG
+  dnl   which cleans KDE's program with automake > 1.4;
+  dnl  +set INSTALL_SCRIPT to only use INSTALL, to clean up autoconf's problems
+  dnl   with automake<=1.4
+  dnl  note that dues to this sometimes two '-s' flags are used (if KDE
+  dnl   properly uses install- at DIR@PROGRAMS, but I don't care
+  dnl
+  dnl And to all this comes, that I even can't write in comments variable
+  dnl  names used by automake, because it is so stupid to think I wanted to
+  dnl  _use_ them, therefor I have written A_M_... instead of AM_
+  dnl hmm, I wanted to say something ... ahh yes: Arghhh.
+
+  if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
+    INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
+  fi
+  if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
+    INSTALL_SCRIPT='${INSTALL}'
+  fi
+])dnl
+
+AC_DEFUN([KDE_LANG_CPLUSPLUS],
+[AC_LANG_CPLUSPLUS
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AC_FD_CC'
+pushdef([AC_LANG_CPLUSPLUS], [popdef([AC_LANG_CPLUSPLUS]) KDE_LANG_CPLUSPLUS])
+])
+
+pushdef([AC_LANG_CPLUSPLUS],
+[popdef([AC_LANG_CPLUSPLUS])
+KDE_LANG_CPLUSPLUS
+])
+
+AC_DEFUN([KDE_CHECK_LONG_LONG],
+[
+AC_MSG_CHECKING(for long long)
+AC_CACHE_VAL(kde_cv_c_long_long,
+[
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  AC_TRY_LINK([], [
+  long long foo = 0;
+  foo = foo+1;
+  ],
+  kde_cv_c_long_long=yes, kde_cv_c_long_long=no)
+  AC_LANG_RESTORE
+])
+AC_MSG_RESULT($kde_cv_c_long_long)
+if test "$kde_cv_c_long_long" = yes; then
+   AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have long long as datatype])
+fi
+])
+
+AC_DEFUN([KDE_CHECK_LIB],
+[
+     kde_save_LDFLAGS="$LDFLAGS"
+     dnl AC_CHECK_LIB modifies LIBS, so save it here
+     kde_save_LIBS="$LIBS"
+     LDFLAGS="$LDFLAGS $all_libraries"
+     case $host_os in
+      aix*) LDFLAGS="-brtl $LDFLAGS"
+	test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
+	;;
+     esac
+     AC_CHECK_LIB($1, $2, $3, $4, $5)
+     LDFLAGS="$kde_save_LDFLAGS"
+     LIBS="$kde_save_LIBS"
+])
+
+AC_DEFUN([KDE_JAVA_PREFIX],
+[
+	dir=`dirname "$1"`
+	base=`basename "$1"`
+	list=`ls -1 $dir 2> /dev/null`
+	for entry in $list; do 
+		if test -d $dir/$entry/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/bin"
+				;;
+			esac
+		elif test -d $dir/$entry/jre/bin; then
+			case $entry in
+			   $base)
+				javadirs="$javadirs $dir/$entry/jre/bin"
+				;;
+			esac
+		fi
+	done
+])
+
+dnl KDE_CHEC_JAVA_DIR(onlyjre)
+AC_DEFUN([KDE_CHECK_JAVA_DIR],
+[
+
+AC_ARG_WITH(java,
+AC_HELP_STRING([--with-java=javadir],[use java installed in javadir, --without-java disables]),
+[  ac_java_dir=$withval
+], ac_java_dir=""
+)
+
+AC_MSG_CHECKING([for Java])
+
+dnl at this point ac_java_dir is either a dir, 'no' to disable, or '' to say look in $PATH
+if test "x$ac_java_dir" = "xno"; then
+   kde_java_bindir=no
+   kde_java_includedir=no
+   kde_java_libjvmdir=no
+   kde_java_libgcjdir=no
+   kde_java_libhpidir=no
+else
+  if test "x$ac_java_dir" = "x"; then
+     
+     
+      dnl No option set -> collect list of candidate paths
+      if test -n "$JAVA_HOME"; then
+        KDE_JAVA_PREFIX($JAVA_HOME)
+      fi
+      KDE_JAVA_PREFIX(/usr/j2se)
+      KDE_JAVA_PREFIX(/usr/lib/j2se)
+      KDE_JAVA_PREFIX(/usr/j*dk*)
+      KDE_JAVA_PREFIX(/usr/lib/j*dk*)
+      KDE_JAVA_PREFIX(/opt/j*sdk*)
+      KDE_JAVA_PREFIX(/usr/lib/java*)
+      KDE_JAVA_PREFIX(/usr/java*)
+      KDE_JAVA_PREFIX(/usr/java/j*dk*)
+      KDE_JAVA_PREFIX(/usr/java/j*re*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/SunJava*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava2*)
+      KDE_JAVA_PREFIX(/usr/lib/IBMJava*)
+      KDE_JAVA_PREFIX(/opt/java*)
+
+      kde_cv_path="NONE"
+      kde_save_IFS=$IFS
+      IFS=':'
+      for dir in $PATH; do
+	  if test -d "$dir"; then
+	      javadirs="$javadirs $dir"
+	  fi
+      done
+      IFS=$kde_save_IFS
+      jredirs=
+
+      dnl Now javadirs contains a list of paths that exist, all ending with bin/
+      for dir in $javadirs; do
+          dnl Check for the java executable
+	  if test -x "$dir/java"; then
+	      sane_path=$(cd $dir; /bin/pwd)
+	      dnl And also check for a libjvm.so somewhere under there
+	      dnl Since we have to go to the parent dir, /usr/bin is excluded, /usr is too big.
+              if test "$sane_path" != "/usr/bin"; then
+                  libjvmdir=`find $dir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+		  if test ! -f $libjvmdir/libjvm.so; then continue; fi
+		  jredirs="$jredirs $dir"
+	      fi
+	  fi
+      done
+
+      dnl Now jredirs contains a reduced list, of paths where both java and ../**/libjvm.so was found
+      JAVAC=
+      JAVA=
+      kde_java_bindir=no
+      for dir in $jredirs; do
+	  JAVA="$dir/java"
+	  kde_java_bindir=$dir
+	  if test -x "$dir/javac"; then
+		JAVAC="$dir/javac"
+                break
+	  fi
+      done
+
+      if test -n "$JAVAC"; then
+          dnl this substitution might not work - well, we test for jni.h below
+          kde_java_includedir=`echo $JAVAC | sed -e 's,bin/javac$,include/,'`
+      else
+          kde_java_includedir=no
+      fi
+  else
+    dnl config option set
+    kde_java_bindir=$ac_java_dir/bin
+    if test -x $ac_java_dir/bin/java && test ! -x $ac_java_dir/bin/javac; then
+	kde_java_includedir=no
+    else
+        kde_java_includedir=$ac_java_dir/include
+    fi
+  fi
+fi
+
+dnl At this point kde_java_bindir and kde_java_includedir are either set or "no"
+if test "x$kde_java_bindir" != "xno"; then
+
+  dnl Look for libjvm.so
+  kde_java_libjvmdir=`find $kde_java_bindir/.. -name libjvm.so | sed 's,libjvm.so,,'|head -n 1`
+  dnl Look for libgcj.so
+  kde_java_libgcjdir=`find $kde_java_bindir/.. -name libgcj.so | sed 's,libgcj.so,,'|head -n 1`
+  dnl Look for libhpi.so and avoid green threads
+  kde_java_libhpidir=`find $kde_java_bindir/.. -name libhpi.so | grep -v green | sed 's,libhpi.so,,' | head -n 1`
+
+  dnl Now check everything's fine under there
+  dnl the include dir is our flag for having the JDK
+  if test -d "$kde_java_includedir"; then
+    if test ! -x "$kde_java_bindir/javac"; then
+      AC_MSG_ERROR([javac not found under $kde_java_bindir - it seems you passed a wrong --with-java.])
+    fi
+    if test ! -x "$kde_java_bindir/javah"; then
+      AC_MSG_ERROR([javah not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -x "$kde_java_bindir/jar"; then
+      AC_MSG_ERROR([jar not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+    fi
+    if test ! -r "$kde_java_includedir/jni.h"; then
+      AC_MSG_ERROR([jni.h not found under $kde_java_includedir. Use --with-java or --without-java.])
+    fi
+
+    jni_includes="-I$kde_java_includedir"
+    dnl Strange thing, jni.h requires jni_md.h which is under genunix here..
+    dnl and under linux here.. 
+    
+    dnl not needed for gcj
+
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      test -d "$kde_java_includedir/linux" && jni_includes="$jni_includes -I$kde_java_includedir/linux"
+      test -d "$kde_java_includedir/solaris" && jni_includes="$jni_includes -I$kde_java_includedir/solaris"
+      test -d "$kde_java_includedir/genunix" && jni_includes="$jni_includes -I$kde_java_includedir/genunix"
+    fi
+
+  else
+    JAVAC=
+    jni_includes=
+  fi
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+     if test ! -r "$kde_java_libjvmdir/libjvm.so"; then
+        AC_MSG_ERROR([libjvm.so not found under $kde_java_libjvmdir. Use --without-java.])
+     fi 
+  else
+     if test ! -r "$kde_java_libgcjdir/libgcj.so"; then
+        AC_MSG_ERROR([libgcj.so not found under $kde_java_libgcjdir. Use --without-java.])
+     fi 
+  fi
+
+  if test ! -x "$kde_java_bindir/java"; then
+      AC_MSG_ERROR([java not found under $kde_java_bindir. javac was found though! Use --with-java or --without-java.])
+  fi
+
+  dnl not needed for gcj compile
+
+  if test "x$kde_java_libgcjdir" = "x"; then 
+      if test ! -r "$kde_java_libhpidir/libhpi.so"; then
+        AC_MSG_ERROR([libhpi.so not found under $kde_java_libhpidir. Use --without-java.])
+      fi
+  fi
+
+  if test -n "$jni_includes"; then
+    dnl Check for JNI version
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    ac_cxxflags_safe="$CXXFLAGS"
+    CXXFLAGS="$CXXFLAGS $all_includes $jni_includes"
+
+    AC_TRY_COMPILE([
+  #include <jni.h>
+	      ],
+	      [
+  #ifndef JNI_VERSION_1_2
+  Syntax Error
+  #endif
+	      ],[ kde_jni_works=yes ],
+	      [ kde_jni_works=no ])
+
+    if test $kde_jni_works = no; then
+      AC_MSG_ERROR([Incorrect version of $kde_java_includedir/jni.h.
+		    You need to have Java Development Kit (JDK) version 1.2. 
+
+		    Use --with-java to specify another location.
+		    Use --without-java to configure without java support.
+		    Or download a newer JDK and try again. 
+		    See e.g. http://java.sun.com/products/jdk/1.2 ])
+    fi
+
+    CXXFLAGS="$ac_cxxflags_safe"    
+    AC_LANG_RESTORE
+
+    dnl All tests ok, inform and subst the variables
+
+    JAVAC=$kde_java_bindir/javac
+    JAVAH=$kde_java_bindir/javah
+    JAR=$kde_java_bindir/jar
+    AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+    if test "x$kde_java_libgcjdir" = "x"; then 
+      JVMLIBS="-L$kde_java_libjvmdir -ljvm -L$kde_java_libhpidir -lhpi"
+    else
+      JVMLIBS="-L$kde_java_libgcjdir -lgcj"
+    fi
+    AC_MSG_RESULT([java JDK in $kde_java_bindir])
+
+  else
+      AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+      AC_MSG_RESULT([java JRE in $kde_java_bindir])
+  fi
+elif test -d "/Library/Java/Home"; then
+  kde_java_bindir="/Library/Java/Home/bin"
+  jni_includes="-I/Library/Java/Home/include"
+
+  JAVAC=$kde_java_bindir/javac
+  JAVAH=$kde_java_bindir/javah
+  JAR=$kde_java_bindir/jar
+  JVMLIBS="-Wl,-framework,JavaVM"
+
+  AC_DEFINE_UNQUOTED(PATH_JAVA, "$kde_java_bindir/java", [Define where your java executable is])
+  AC_MSG_RESULT([Apple Java Framework])
+else
+  AC_MSG_RESULT([none found])
+fi
+
+AC_SUBST(JAVAC)
+AC_SUBST(JAVAH)
+AC_SUBST(JAR)
+AC_SUBST(JVMLIBS)
+AC_SUBST(jni_includes)
+
+# for backward compat
+kde_cv_java_includedir=$kde_java_includedir
+kde_cv_java_bindir=$kde_java_bindir
+])
+
+dnl this is a redefinition of autoconf 2.5x's AC_FOREACH.
+dnl When the argument list becomes big, as in KDE for AC_OUTPUT in
+dnl big packages, m4_foreach is dog-slow.  So use our own version of
+dnl it.  (matz at kde.org)
+m4_define([mm_foreach],
+[m4_pushdef([$1])_mm_foreach($@)m4_popdef([$1])])
+m4_define([mm_car], [[$1]])
+m4_define([mm_car2], [[$@]])
+m4_define([_mm_foreach],
+[m4_if(m4_quote($2), [], [],
+       [m4_define([$1], mm_car($2))$3[]_mm_foreach([$1],
+                                                   mm_car2(m4_shift($2)),
+                                                   [$3])])])
+m4_define([AC_FOREACH],
+[mm_foreach([$1], m4_split(m4_normalize([$2])), [$3])])
+
+AC_DEFUN([KDE_NEED_FLEX],
+[
+kde_libs_safe=$LIBS
+LIBS="$LIBS $USER_LDFLAGS"
+AM_PROG_LEX
+LIBS=$kde_libs_safe
+if test -z "$LEXLIB"; then
+    AC_MSG_ERROR([You need to have flex installed.])
+fi
+AC_SUBST(LEXLIB)
+])
+
+AC_DEFUN([AC_PATH_QTOPIA],
+[
+  dnl TODO: use AC_CACHE_VAL
+
+  if test -z "$1"; then
+    qtopia_minver_maj=1
+    qtopia_minver_min=5
+    qtopia_minver_pat=0
+  else
+    qtopia_minver_maj=`echo "$1" | sed -e "s/^\(.*\)\..*\..*$/\1/"`
+    qtopia_minver_min=`echo "$1" | sed -e "s/^.*\.\(.*\)\..*$/\1/"`
+    qtopia_minver_pat=`echo "$1" | sed -e "s/^.*\..*\.\(.*\)$/\1/"`
+  fi
+
+  qtopia_minver="$qtopia_minver_maj$qtopia_minver_min$qtopia_minver_pat"
+  qtopia_minverstr="$qtopia_minver_maj.$qtopia_minver_min.$qtopia_minver_pat"
+
+  AC_REQUIRE([AC_PATH_QT])
+
+  AC_MSG_CHECKING([for Qtopia])
+
+  LIB_QTOPIA="-lqpe"
+  AC_SUBST(LIB_QTOPIA)
+
+  kde_qtopia_dirs="$QPEDIR /opt/Qtopia"
+
+  ac_qtopia_incdir=NO
+
+  AC_ARG_WITH(qtopia-dir,
+              AC_HELP_STRING([--with-qtopia-dir=DIR],[where the root of Qtopia is installed]),
+              [  ac_qtopia_incdir="$withval"/include] ) 
+  
+  qtopia_incdirs=""
+  for dir in $kde_qtopia_dirs; do
+    qtopia_incdirs="$qtopia_incdirs $dir/include"
+  done
+
+  if test ! "$ac_qtopia_incdir" = "NO"; then
+    qtopia_incdirs="$ac_qtopia_incdir $qtopia_incdirs"
+  fi
+
+  qtopia_incdir=""
+  AC_FIND_FILE(qpe/qpeapplication.h, $qtopia_incdirs, qtopia_incdir)
+  ac_qtopia_incdir="$qtopia_incdir"
+
+  if test -z "$qtopia_incdir"; then
+    AC_MSG_ERROR([Cannot find Qtopia headers. Please check your installation.])
+  fi
+
+  qtopia_ver_maj=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION "\(.*\)\..*\..*".*,\1,p'`;
+  qtopia_ver_min=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\.\(.*\)\..*".*,\1,p'`;
+  qtopia_ver_pat=`cat $qtopia_incdir/qpe/version.h | sed -n -e 's,.*QPE_VERSION ".*\..*\.\(.*\)".*,\1,p'`;
+
+  qtopia_ver="$qtopia_ver_maj$qtopia_ver_min$qtopia_ver_pat"
+  qtopia_verstr="$qtopia_ver_maj.$qtopia_ver_min.$qtopia_ver_pat"
+  if test "$qtopia_ver" -lt "$qtopia_minver"; then
+    AC_MSG_ERROR([found Qtopia version $qtopia_verstr but version $qtopia_minverstr
+is required.])
+  fi
+
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+
+  ac_cxxflags_safe="$CXXFLAGS"
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  CXXFLAGS="$CXXFLAGS -I$qtopia_incdir $all_includes"
+  LDFLAGS="$LDFLAGS $QT_LDFLAGS $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+  LIBS="$LIBS $LIB_QTOPIA $LIBQT"
+
+  cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qpe/qpeapplication.h>
+#include <qpe/version.h>
+
+int main( int argc, char **argv )
+{
+    QPEApplication app( argc, argv );
+    return 0;
+}
+EOF
+
+  if AC_TRY_EVAL(ac_link) && test -s conftest; then
+    rm -f conftest*
+  else
+    rm -f conftest*
+    AC_MSG_ERROR([Cannot link small Qtopia Application. For more details look at
+the end of config.log])
+  fi
+
+  CXXFLAGS="$ac_cxxflags_safe"
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  AC_LANG_RESTORE
+
+  QTOPIA_INCLUDES="-I$qtopia_incdir"
+  AC_SUBST(QTOPIA_INCLUDES)
+
+  AC_MSG_RESULT([found version $qtopia_verstr with headers at $qtopia_incdir])
+])
+
+
+AC_DEFUN([KDE_INIT_DOXYGEN],
+[
+AC_MSG_CHECKING([for Qt docs])
+kde_qtdir=
+if test "${with_qt_dir+set}" = set; then
+  kde_qtdir="$with_qt_dir"
+fi
+
+AC_FIND_FILE(qsql.html, [ $kde_qtdir/doc/html $QTDIR/doc/html /usr/share/doc/packages/qt3/html /usr/lib/qt/doc /usr/lib/qt3/doc /usr/lib/qt3/doc/html /usr/doc/qt3/html /usr/doc/qt3 /usr/share/doc/qt3-doc /usr/share/qt3/doc/html /usr/X11R6/share/doc/qt/html ], QTDOCDIR)
+AC_MSG_RESULT($QTDOCDIR)
+
+AC_SUBST(QTDOCDIR)
+
+KDE_FIND_PATH(dot, DOT, [], [])
+if test -n "$DOT"; then
+  KDE_HAVE_DOT="YES"
+else
+  KDE_HAVE_DOT="NO"
+fi
+AC_SUBST(KDE_HAVE_DOT)
+KDE_FIND_PATH(doxygen, DOXYGEN, [], [])
+AC_SUBST(DOXYGEN)
+
+DOXYGEN_PROJECT_NAME="$1"
+DOXYGEN_PROJECT_NUMBER="$2"
+AC_SUBST(DOXYGEN_PROJECT_NAME)
+AC_SUBST(DOXYGEN_PROJECT_NUMBER)
+
+KDE_HAS_DOXYGEN=no
+if test -n "$DOXYGEN" && test -x "$DOXYGEN" && test -f $QTDOCDIR/qsql.html; then
+  KDE_HAS_DOXYGEN=yes
+fi
+AC_SUBST(KDE_HAS_DOXYGEN)
+
+])
+
+
+AC_DEFUN([AC_FIND_BZIP2],
+[
+AC_MSG_CHECKING([for bzDecompress in libbz2])
+AC_CACHE_VAL(ac_cv_lib_bzip2,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lbz2 $LIBSOCKET"
+kde_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+AC_TRY_LINK(dnl
+[
+#define BZ_NO_STDIO
+#include<bzlib.h>
+],
+            [ bz_stream s; (void) bzDecompress(&s); ],
+            eval "ac_cv_lib_bzip2='-lbz2'",
+            eval "ac_cv_lib_bzip2=no")
+LIBS="$kde_save_LIBS"
+CXXFLAGS="$kde_save_CXXFLAGS"
+AC_LANG_RESTORE
+])dnl
+AC_MSG_RESULT($ac_cv_lib_bzip2)
+
+if test ! "$ac_cv_lib_bzip2" = no; then
+  BZIP2DIR=bzip2
+
+  LIBBZ2="$ac_cv_lib_bzip2"
+  AC_SUBST(LIBBZ2)
+
+else
+
+   cxx_shared_flag=
+   ld_shared_flag=
+   KDE_CHECK_COMPILER_FLAG(shared, [
+	ld_shared_flag="-shared"
+   ])
+   KDE_CHECK_COMPILER_FLAG(fPIC, [
+        cxx_shared_flag="-fPIC"
+   ])
+
+   AC_MSG_CHECKING([for BZ2_bzDecompress in (shared) libbz2])
+   AC_CACHE_VAL(ac_cv_lib_bzip2_prefix,
+   [
+   AC_LANG_SAVE
+   AC_LANG_CPLUSPLUS
+   kde_save_LIBS="$LIBS"
+   LIBS="$all_libraries $USER_LDFLAGS $ld_shared_flag -lbz2 $LIBSOCKET"
+   kde_save_CXXFLAGS="$CXXFLAGS"
+   CXXFLAGS="$CFLAGS $cxx_shared_flag $all_includes $USER_INCLUDES"
+
+   AC_TRY_LINK(dnl
+   [
+   #define BZ_NO_STDIO
+   #include<bzlib.h>
+   ],
+               [ bz_stream s; (void) BZ2_bzDecompress(&s); ],
+               eval "ac_cv_lib_bzip2_prefix='-lbz2'",
+               eval "ac_cv_lib_bzip2_prefix=no")
+   LIBS="$kde_save_LIBS"
+   CXXFLAGS="$kde_save_CXXFLAGS"
+   AC_LANG_RESTORE
+   ])dnl
+
+   AC_MSG_RESULT($ac_cv_lib_bzip2_prefix)
+   
+   if test ! "$ac_cv_lib_bzip2_prefix" = no; then
+     BZIP2DIR=bzip2
+    
+     LIBBZ2="$ac_cv_lib_bzip2_prefix"
+     AC_SUBST(LIBBZ2)
+
+     AC_DEFINE(NEED_BZ2_PREFIX, 1, [Define if the libbz2 functions need the BZ2_ prefix])
+   dnl else, we just ignore this
+   fi
+
+fi
+AM_CONDITIONAL(include_BZIP2, test -n "$BZIP2DIR")
+])
+
+dnl ------------------------------------------------------------------------
+dnl Try to find the SSL headers and libraries.
+dnl $(SSL_LDFLAGS) will be -Lsslliblocation (if needed)
+dnl and $(SSL_INCLUDES) will be -Isslhdrlocation (if needed)
+dnl ------------------------------------------------------------------------
+dnl
+AC_DEFUN([KDE_CHECK_SSL],
+[
+LIBSSL="-lssl -lcrypto"
+AC_REQUIRE([KDE_CHECK_LIB64])
+
+ac_ssl_includes=NO ac_ssl_libraries=NO
+ssl_libraries=""
+ssl_includes=""
+AC_ARG_WITH(ssl-dir,
+    AC_HELP_STRING([--with-ssl-dir=DIR],[where the root of OpenSSL is installed]),
+    [  ac_ssl_includes="$withval"/include
+       ac_ssl_libraries="$withval"/lib$kdelibsuff
+    ])
+
+want_ssl=yes
+AC_ARG_WITH(ssl,
+    AC_HELP_STRING([--without-ssl],[disable SSL checks]),
+    [want_ssl=$withval])
+
+if test $want_ssl = yes; then
+
+AC_MSG_CHECKING(for OpenSSL)
+
+AC_CACHE_VAL(ac_cv_have_ssl,
+[#try to guess OpenSSL locations
+  
+  ssl_incdirs="/usr/include /usr/local/include /usr/ssl/include /usr/local/ssl/include $prefix/include $kde_extra_includes"
+  ssl_incdirs="$ac_ssl_includes $ssl_incdirs"
+  AC_FIND_FILE(openssl/ssl.h, $ssl_incdirs, ssl_incdir)
+  ac_ssl_includes="$ssl_incdir"
+
+  ssl_libdirs="/usr/lib$kdelibsuff /usr/local/lib$kdelibsuff /usr/ssl/lib$kdelibsuff /usr/local/ssl/lib$kdelibsuff $libdir $prefix/lib$kdelibsuff $exec_prefix/lib$kdelibsuff $kde_extra_libs"
+  if test ! "$ac_ssl_libraries" = "NO"; then
+    ssl_libdirs="$ac_ssl_libraries $ssl_libdirs"
+  fi
+
+  test=NONE
+  ssl_libdir=NONE
+  for dir in $ssl_libdirs; do
+    try="ls -1 $dir/libssl*"
+    if test=`eval $try 2> /dev/null`; then ssl_libdir=$dir; break; else echo "tried $dir" >&AC_FD_CC ; fi
+  done
+
+  ac_ssl_libraries="$ssl_libdir"
+
+  ac_ldflags_safe="$LDFLAGS"
+  ac_libs_safe="$LIBS"
+
+  LDFLAGS="$LDFLAGS -L$ssl_libdir $all_libraries"
+  LIBS="$LIBS $LIBSSL -lRSAglue -lrsaref"
+
+  AC_TRY_LINK(,void RSAPrivateEncrypt(void);RSAPrivateEncrypt();,
+  ac_ssl_rsaref="yes"
+  ,
+  ac_ssl_rsaref="no"
+  )
+
+  LDFLAGS="$ac_ldflags_safe"
+  LIBS="$ac_libs_safe"
+
+  if test "$ac_ssl_includes" = NO || test "$ac_ssl_libraries" = NO; then
+    have_ssl=no
+  else
+    have_ssl=yes;
+  fi
+
+  ])
+
+  eval "$ac_cv_have_ssl"
+
+  AC_MSG_RESULT([libraries $ac_ssl_libraries, headers $ac_ssl_includes])
+
+  AC_MSG_CHECKING([whether OpenSSL uses rsaref])
+  AC_MSG_RESULT($ac_ssl_rsaref)
+
+  AC_MSG_CHECKING([for easter eggs])
+  AC_MSG_RESULT([none found])
+
+else
+  have_ssl=no
+fi
+
+if test "$have_ssl" = yes; then
+  AC_MSG_CHECKING(for OpenSSL version)
+  dnl Check for SSL version
+  AC_CACHE_VAL(ac_cv_ssl_version,
+  [
+
+    cat >conftest.$ac_ext <<EOF
+#include <openssl/opensslv.h>
+#include <stdio.h>
+    int main() {
+ 
+#ifndef OPENSSL_VERSION_NUMBER
+      printf("ssl_version=\\"error\\"\n");
+#else
+      if (OPENSSL_VERSION_NUMBER < 0x00906000)
+        printf("ssl_version=\\"old\\"\n");
+      else
+        printf("ssl_version=\\"ok\\"\n");
+#endif
+     return (0);
+    }
+EOF
+
+    ac_save_CPPFLAGS=$CPPFLAGS
+    if test "$ac_ssl_includes" != "/usr/include"; then
+        CPPFLAGS="$CPPFLAGS -I$ac_ssl_includes"
+    fi
+
+    if AC_TRY_EVAL(ac_link); then 
+
+      if eval `./conftest 2>&5`; then
+        if test $ssl_version = error; then
+          AC_MSG_ERROR([$ssl_incdir/openssl/opensslv.h doesn't define OPENSSL_VERSION_NUMBER !])
+        else
+          if test $ssl_version = old; then
+            AC_MSG_WARN([OpenSSL version too old. Upgrade to 0.9.6 at least, see http://www.openssl.org. SSL support disabled.])
+            have_ssl=no
+          fi
+        fi
+        ac_cv_ssl_version="ssl_version=$ssl_version"
+      else
+        AC_MSG_ERROR([Your system couldn't run a small SSL test program.
+        Check config.log, and if you can't figure it out, send a mail to 
+        David Faure <faure at kde.org>, attaching your config.log])
+      fi
+
+    else
+      AC_MSG_ERROR([Your system couldn't link a small SSL test program.
+      Check config.log, and if you can't figure it out, send a mail to 
+      David Faure <faure at kde.org>, attaching your config.log])
+    fi 
+    CPPFLAGS=$ac_save_CPPFLAGS
+
+  ])
+
+  eval "$ac_cv_ssl_version"
+  AC_MSG_RESULT($ssl_version)
+fi
+
+if test "$have_ssl" != yes; then
+  LIBSSL="";
+else
+  AC_DEFINE(HAVE_SSL, 1, [If we are going to use OpenSSL])
+  ac_cv_have_ssl="have_ssl=yes \
+    ac_ssl_includes=$ac_ssl_includes ac_ssl_libraries=$ac_ssl_libraries ac_ssl_rsaref=$ac_ssl_rsaref"
+  
+  
+  ssl_libraries="$ac_ssl_libraries"
+  ssl_includes="$ac_ssl_includes"
+
+  if test "$ac_ssl_rsaref" = yes; then
+    LIBSSL="-lssl -lcrypto -lRSAglue -lrsaref" 
+  fi
+
+  if test $ssl_version = "old"; then
+    AC_DEFINE(HAVE_OLD_SSL_API, 1, [Define if you have OpenSSL < 0.9.6])
+  fi
+fi
+
+SSL_INCLUDES=
+
+if test "$ssl_includes" = "/usr/include"; then
+  if test -f /usr/kerberos/include/krb5.h; then
+	SSL_INCLUDES="-I/usr/kerberos/include"
+  fi
+elif test  "$ssl_includes" != "/usr/local/include" && test -n "$ssl_includes"; then
+  SSL_INCLUDES="-I$ssl_includes"
+fi
+
+if test "$ssl_libraries" = "/usr/lib" || test "$ssl_libraries" = "/usr/local/lib" || test -z "$ssl_libraries" || test "$ssl_libraries" = "NONE"; then
+ SSL_LDFLAGS=""
+else
+ SSL_LDFLAGS="-L$ssl_libraries -R$ssl_libraries"
+fi
+
+AC_SUBST(SSL_INCLUDES)
+AC_SUBST(SSL_LDFLAGS)
+AC_SUBST(LIBSSL)
+])
+
+AC_DEFUN([KDE_CHECK_STRLCPY],
+[
+  AC_REQUIRE([AC_CHECK_STRLCAT])
+  AC_REQUIRE([AC_CHECK_STRLCPY])
+  AC_CHECK_SIZEOF(size_t)
+  AC_CHECK_SIZEOF(unsigned long)
+
+  AC_MSG_CHECKING([sizeof size_t == sizeof unsigned long])
+  AC_TRY_COMPILE(,[
+    #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
+       choke me
+    #endif
+    ],AC_MSG_RESULT([yes]),[
+      AC_MSG_RESULT(no)
+      AC_MSG_ERROR([
+       Apparently on your system our assumption sizeof size_t == sizeof unsigned long 
+       does not apply. Please mail kde-devel at kde.org with a description of your system!
+      ])
+  ])
+])
+
+AC_DEFUN([KDE_CHECK_BINUTILS],
+[
+  AC_MSG_CHECKING([if ld supports unversioned version maps])
+
+  kde_save_LDFLAGS="$LDFLAGS"
+  LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
+  echo "{ local: extern \"C++\" { foo }; };" > conftest.map
+  AC_TRY_LINK([int foo;],
+[
+#ifdef __INTEL_COMPILER
+icc apparently does not support libtools version-info and version-script
+at the same time. Dunno where the bug is, but until somebody figured out,
+better disable the optional version scripts.
+#endif
+
+  foo = 42;
+], kde_supports_versionmaps=yes, kde_supports_versionmaps=no)
+  LDFLAGS="$kde_save_LDFLAGS"
+  rm -f conftest.map
+  AM_CONDITIONAL(include_VERSION_SCRIPT, 
+    [test "$kde_supports_versionmaps" = "yes" && test "$kde_use_debug_code" = "no"])
+
+  AC_MSG_RESULT($kde_supports_versionmaps)
+])
+
+AC_DEFUN([AM_PROG_OBJC],[
+AC_CHECK_PROGS(OBJC, gcc, gcc)
+test -z "$OBJC" && AC_MSG_ERROR([no acceptable objective-c gcc found in \$PATH])
+if test "x${OBJCFLAGS-unset}" = xunset; then
+   OBJCFLAGS="-g -O2"
+fi
+AC_SUBST(OBJCFLAGS)
+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(OBJC)])
+])
+
+AC_DEFUN([KDE_CHECK_PERL],
+[
+	KDE_FIND_PATH(perl, PERL, [$bindir $exec_prefix/bin $prefix/bin], [
+		    AC_MSG_ERROR([No Perl found in your $PATH.
+We need perl to generate some code.])
+	])
+    AC_SUBST(PERL)
+])
+
+AC_DEFUN([KDE_CHECK_LARGEFILE],
+[
+AC_SYS_LARGEFILE
+if test "$ac_cv_sys_file_offset_bits" != no; then
+  CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
+fi
+
+if test "x$ac_cv_sys_large_files" != "xno"; then
+  CPPFLAGS="$CPPFLAGS -D_LARGE_FILES=1"
+fi
+
+])
+
+dnl A small extension to PKG_CHECK_MODULES (defined in pkg.m4.in)
+dnl which allows to search for libs that get installed into the KDE prefix.
+dnl
+dnl Syntax:  KDE_PKG_CHECK_MODULES(KSTUFF, libkexif >= 0.2 glib = 1.3.4, action-if, action-not)
+dnl defines KSTUFF_LIBS, KSTUFF_CFLAGS, see pkg-config man page
+dnl also defines KSTUFF_PKG_ERRORS on error
+AC_DEFUN([KDE_PKG_CHECK_MODULES], [
+
+   PKG_CONFIG_PATH="$prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+   if test "$prefix" != "$kde_libs_prefix"; then
+       PKG_CONFIG_PATH="$kde_libs_prefix/lib${kdelibsuff}/pkgconfig:$PKG_CONFIG_PATH"
+   fi
+   export PKG_CONFIG_PATH
+   PKG_CHECK_MODULES([$1],[$2],[$3],[$4])
+])
+
+
+dnl Check for PIE support in the compiler and linker
+AC_DEFUN([KDE_CHECK_PIE_SUPPORT],
+[
+  AC_CACHE_CHECK([for PIE support], kde_cv_val_pie_support,
+  [
+    AC_LANG_SAVE
+    AC_LANG_CPLUSPLUS
+    safe_CXXFLAGS=$CXXFLAGS
+    safe_LDFLAGS=$LDFLAGS
+    CXXFLAGS="$CXXFLAGS -fPIE"
+    LDFLAGS="$LDFLAGS -pie"
+
+    AC_TRY_LINK([int foo;], [], [kde_cv_val_pie_support=yes], [kde_cv_val_pie_support=no])
+
+    CXXFLAGS=$safe_CXXFLAGS
+    LDFLAGS=$safe_LDFLAGS
+    AC_LANG_RESTORE
+  ])
+
+  AC_MSG_CHECKING(if enabling -pie/fPIE support)
+
+  AC_ARG_ENABLE(pie,
+    AC_HELP_STRING([--enable-pie],[platform supports PIE linking [default=detect]]),
+      [kde_has_pie_support=$enableval],
+      [kde_has_pie_support=detect])
+
+  if test "$kde_has_pie_support" = "detect"; then
+    kde_has_pie_support=$kde_cv_val_pie_support
+  fi
+
+  AC_MSG_RESULT([$kde_has_pie_support])
+
+  KDE_USE_FPIE=""
+  KDE_USE_PIE=""
+
+  AC_SUBST([KDE_USE_FPIE])
+  AC_SUBST([KDE_USE_PIE])
+
+  if test "$kde_has_pie_support" = "yes"; then
+    KDE_USE_FPIE="-fPIE"
+    KDE_USE_PIE="-pie"
+  fi
+])

Added: kde-extras/kpogre/branches/upstream/current/admin/am_edit
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/am_edit	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/am_edit	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,2445 @@
+#!/usr/bin/perl -w
+
+# Expands the specialised KDE tags in Makefile.in to (hopefully) valid
+# make syntax.
+# When called without file parameters, we work recursively on all Makefile.in
+# in and below the current subdirectory. When called with file parameters,
+# only those Makefile.in are changed.
+# The currently supported tags are
+#
+# {program}_METASOURCES
+# where you have a choice of two styles
+#   {program}_METASOURCES = name1.moc name2.moc ... [\]
+#   {program}_METASOURCES = AUTO
+#       The second style requires other tags as well.
+#
+# To install icons :
+#    KDE_ICON = iconname iconname2 ...
+#    KDE_ICON = AUTO
+#
+# For documentation :
+#    http://developer.kde.org/documentation/other/developer-faq.html
+#
+# and more new tags TBD!
+#
+# The concept (and base code) for this program came from automoc,
+# supplied by the following
+#
+# Matthias Ettrich <ettrich at kde.org>      (The originator)
+# Kalle Dalheimer <kalle at kde.org>      (The original implementator)
+# Harri Porten  <porten at tu-harburg.de>
+# Alex Zepeda  <jazepeda at pacbell.net>
+# David Faure <faure at kde.org>
+# Stephan Kulow <coolo at kde.org>
+# Dirk Mueller <mueller at kde.org>
+
+use Cwd;
+use File::Find;
+use File::Basename;
+
+# Prototype the functions
+sub initialise ();
+sub processMakefile ($);
+sub updateMakefile ();
+sub restoreMakefile ();
+
+sub removeLine ($$);
+sub appendLines ($);
+sub substituteLine ($$);
+
+sub findMocCandidates ();
+sub pruneMocCandidates ($);
+sub checkMocCandidates ();
+sub addMocRules ();
+sub findKcfgFile($);
+
+sub tag_AUTOMAKE ();
+sub tag_META_INCLUDES ();
+sub tag_METASOURCES ();
+sub tag_POFILES ();
+sub tag_DOCFILES ();
+sub tag_LOCALINSTALL();
+sub tag_IDLFILES();
+sub tag_UIFILES();
+sub tag_KCFGFILES();
+sub tag_SUBDIRS();
+sub tag_ICON();
+sub tag_CLOSURE();
+sub tag_NO_UNDEFINED();
+sub tag_NMCHECK();
+sub tag_DIST();
+sub tag_KDEINIT();
+
+# Some global globals...
+$verbose    = 0;        # a debug flag
+$thisProg   = "$0";     # This programs name
+$topdir     = cwd();    # The current directory
+ at makefiles  = ();       # Contains all the files we'll process
+ at foreignfiles = ();
+$start      = (times)[0]; # some stats for testing - comment out for release
+$version    = "v0.2";
+$errorflag  = 0;
+$cppExt     = "(cpp|cc|cxx|C|c\\+\\+)";
+$hExt       = "(h|H|hh|hxx|hpp|h\\+\\+)";
+$progId     = "KDE tags expanded automatically by " . basename($thisProg);
+$automkCall = "\n";
+$printname  = "";  # used to display the directory the Makefile is in
+$use_final  = 1;        # create code for --enable-final
+$cleantarget = "clean";
+$dryrun     = 0;
+$pathoption = 0;
+$foreign_libtool = 0;
+
+while (defined ($ARGV[0]))
+{
+    $_ = shift;
+    if (/^--version$/)
+    {
+        print STDOUT "\n";
+        print STDOUT basename($thisProg), " $version\n",
+                "This is really free software, unencumbered by the GPL.\n",
+                "You can do anything you like with it except sueing me.\n",
+                "Copyright 1998 Kalle Dalheimer <kalle\@kde.org>\n",
+                "Concept, design and unnecessary questions about perl\n",
+                "       by Matthias Ettrich <ettrich\@kde.org>\n\n",
+                "Making it useful by Stephan Kulow <coolo\@kde.org> and\n",
+                "Harri Porten <porten\@kde.org>\n",
+                "Updated (Feb-1999), John Birch <jb.nz\@writeme.com>\n",
+                "Fixes and Improvements by Dirk Mueller <mueller\@kde.org>\n",
+	        "Current Maintainer Stephan Kulow\n\n";
+        exit 0;
+    }
+    elsif (/^--verbose$|^-v$/)
+    {
+        $verbose = 1;       # Oh is there a problem...?
+    }
+    elsif (/^(?:-p|--path=)(.+)$/)
+    {
+        my $p = $1;
+        $thisProg = $p . "/". basename($thisProg);
+        warn ("$thisProg doesn't exist\n")      if (!(-f $thisProg));
+        $thisProg .= " -p".$p;
+        $pathoption=1;
+    }
+    elsif (/^--help$|^-h$/)
+    {
+        print STDOUT "Usage $thisProg [OPTION] ... [dir/Makefile.in]...\n",
+                "\n",
+                "Patches dir/Makefile.in generated by automake\n",
+                "(where dir can be an absolute or relative directory name)\n",
+                "\n",
+                "  -v, --verbose      verbosely list files processed\n",
+                "  -h, --help         print this help, then exit\n",
+                "  --version          print version number, then exit\n",
+                "  -p, --path=        use the path to am_edit if the path\n",
+                "                     called from is not the one to be used\n",
+	        "  --no-final         don't patch for --enable-final\n";
+	
+        exit 0;
+    }
+    elsif (/^--no-final$/)
+    {
+	$use_final = 0;
+        $thisProg .= " --no-final";
+    }
+    elsif (/^--foreign-libtool$/)
+    {
+        $foreign_libtool = 1;
+        $thisProg .= " --foreign-libtool";
+    }
+    elsif (/^-n$/)
+    {
+    	$dryrun = 1;
+    }
+    else
+    {
+        # user selects what input files to check
+        # add full path if relative path is given
+        $_ = cwd()."/".$_   if (! /^\//);
+        print "User wants $_\n" if ($verbose);
+        push (@makefiles, $_);
+    }
+}
+
+if ($thisProg =~ /^\// && !$pathoption )
+{
+  print STDERR "Illegal full pathname call performed...\n",
+      "The call to \"$thisProg\"\nwould be inserted in some Makefile.in.\n",
+      "Please use option --path.\n";
+  exit 1;
+}
+
+# Only scan for files when the user hasn't entered data
+if (!@makefiles)
+{
+    print STDOUT "Scanning for Makefile.in\n"       if ($verbose);
+    find (\&add_makefile, cwd());
+    #chdir('$topdir');
+} else {
+    print STDOUT "Using input files specified by user\n"   if ($verbose);
+}
+
+foreach $makefile (sort(@makefiles))
+{
+    processMakefile ($makefile);
+    last            if ($errorflag);
+}
+
+# Just some debug statistics - comment out for release as it uses printf.
+printf STDOUT "Time %.2f CPU sec\n", (times)[0] - $start     if ($verbose);
+
+exit $errorflag;        # causes make to fail if erroflag is set
+
+#-----------------------------------------------------------------------------
+
+# In conjunction with the "find" call, this builds the list of input files
+sub add_makefile ()
+{
+  push (@makefiles, $File::Find::name) if (/Makefile.in$/);
+}
+
+#-----------------------------------------------------------------------------
+
+# Processes a single make file
+# The parameter contains the full path name of the Makefile.in to use
+sub processMakefile ($)
+{
+    # some useful globals for the subroutines called here
+    local ($makefile)       = @_;
+    local @headerdirs       = ('.');
+    local $haveAutomocTag   = 0;
+    local $MakefileData     = "";
+
+    local $cxxsuffix  = "KKK";
+
+    local @programs = ();  # lists the names of programs and libraries
+    local $program = "";
+
+    local @kdeinits = (); # lists the kdeinit targets
+
+    local %realObjs = ();  # lists the objects compiled into $program
+    local %sources = ();   # lists the sources used for $program
+    local %finalObjs = (); # lists the objects compiled when final
+    local %realname = ();  # the binary name of program variable
+    local %idlfiles = ();  # lists the idl files used for $program
+    local %globalmocs = ();# list of all mocfiles (in %mocFiles format)
+    local %important = (); # list of files to be generated asap
+    local %uiFiles = ();
+    local %kcfgFiles = ();
+
+    local $allidls = "";
+    local $idl_output = "";# lists all idl generated files for cleantarget
+    local $ui_output = "";# lists all uic generated files for cleantarget
+    local $kcfg_output = "";# lists all kcfg generated files for cleantarget
+
+    local %dependmocs = ();
+    
+    local $metasourceTags = 0;
+    local $dep_files      = "";
+    local $dep_finals     = "";
+    local %target_adds    = (); # the targets to add
+    local %rule_adds      = ();
+    local $kdelang        = "";
+    local @cleanfiles     = ();
+    local $cleanMoc       = "";
+    local $closure_output = "";
+
+    local %varcontent     = ();
+
+    $makefileDir = dirname($makefile);
+    chdir ($makefileDir);
+    $printname = $makefile;
+    $printname =~ s/^\Q$topdir\E\///;
+    $makefile = basename($makefile);
+
+    print STDOUT "Processing makefile $printname\n"   if ($verbose);
+
+    # Setup and see if we need to do this.
+    return      if (!initialise());
+
+    tag_AUTOMAKE ();            # Allows a "make" to redo the Makefile.in
+    tag_META_INCLUDES ();       # Supplies directories for src locations
+
+    foreach $program (@programs) {
+        $sources_changed{$program} = 0;
+        $dependmocs{$program} = "";
+        $important{$program} = "";
+	tag_IDLFILES();             # Sorts out idl rules
+	tag_NO_UNDEFINED();
+	tag_CLOSURE();
+	tag_NMCHECK();
+	tag_UIFILES();              # Sorts out ui rules
+	tag_KCFGFILES();            # Sorts out kcfg rules
+        tag_METASOURCES ();         # Sorts out the moc rules
+        if ($sources_changed{$program}) {
+            my $lookup = $program . '_SOURCES\s*=[ \t]*(.*)';
+
+            if($program =~ /libkdeinit_(.*)/) {
+                my $prog = $1;
+                substituteLine($prog . '_SOURCES\s*=[ \t]*(.*)', 
+                    "${prog}_SOURCES = ${prog}_dummy.$cxxsuffix\n" .
+                    "libkdeinit_${prog}_SOURCES = " . $sources{$program});
+                $sources{$prog} = "${prog}_dummy.$cxxsuffix";
+            }
+            else {
+                substituteLine($lookup, "$program\_SOURCES=" . $sources{$program});
+            }
+        }
+        if ($important{$program}) {
+            local %source_dict = ();
+            for $source (split(/[\034\s]+/, $sources{$program})) {
+                $source_dict{$source} = 1;
+            }
+            for $source (@cleanfiles) {
+                $source_dict{$source} = 0;
+            }
+            for $source (keys %source_dict) {
+                next if (!$source);
+                if ($source_dict{$source}) {
+                    # sanity check
+                    if (! -f $source) {
+                        print STDERR "Error: $source is listed in a _SOURCE line in $printname, but doesn't exist yet. Put it in DISTCLEANFILES!\n";
+                    } else {
+                        $target_adds{"\$(srcdir)/$source"} .= $important{$program};
+                    }
+                }
+            }
+        }
+    }
+    if ($cleanMoc) {
+        # Always add dist clean tag
+        # Add extra *.moc.cpp files created for USE_AUTOMOC because they
+        # aren't included in the normal *.moc clean rules.
+        appendLines ("$cleantarget-metasources:\n\t-rm -f $cleanMoc\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-metasources ";
+    }
+    
+    tag_DIST() unless ($kdeopts{"noautodist"});
+
+    if ($idl_output) {
+        appendLines ("$cleantarget-idl:\n\t-rm -f $idl_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-idl ";
+    }
+
+    if ($ui_output) {
+        appendLines ("$cleantarget-ui:\n\t-rm -f $ui_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-ui ";
+    }
+
+    if ($kcfg_output) {
+        appendLines ("$cleantarget-kcfg:\n\t-rm -f $kcfg_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-kcfg ";
+    }
+
+    if ($closure_output) {
+        appendLines ("$cleantarget-closures:\n\t-rm -f $closure_output\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-closures ";
+    }
+
+    if ($MakefileData =~ /\nKDE_LANG\s*=\s*(\S*)\s*\n/) {
+        $kdelang = '$(KDE_LANG)'
+    } else {
+        $kdelang = '';
+    }
+
+    tag_POFILES ();             # language rules for po directory
+    tag_DOCFILES ();            # language rules for doc directories
+    tag_LOCALINSTALL();         # add $(DESTDIR) before all kde_ dirs
+    tag_ICON();
+    tag_SUBDIRS();
+
+    my $tmp = "force-reedit:\n";
+    $tmp   .= "\t$automkCall\n\tcd \$(top_srcdir) && perl $thisProg $printname\n\n";
+    appendLines($tmp);
+
+    make_bcheck_target();
+    make_meta_classes();
+    tag_COMPILE_FIRST();
+    tag_FINAL() if (!$kdeopts{"nofinal"});
+
+    my $final_lines = "final:\n\t\$(MAKE) ";
+    my $final_install_lines = "final-install:\n\t\$(MAKE) ";
+    my $nofinal_lines = "no-final:\n\t\$(MAKE) ";
+    my $nofinal_install_lines = "no-final-install:\n\t\$(MAKE) ";
+
+    foreach $program (@programs) {
+        my $lookup = $program . '_OBJECTS\s*=[ \t]*.*';
+        my $new = "";
+        my @list = split(/[\034\s]+/, $realObjs{$program});
+        if (!$kdeopts{"nofinal"} && @list > 1 && $finalObjs{$program}) {
+            $new .= "$program\_final\_OBJECTS = " . $finalObjs{$program};
+            $new .= "\n$program\_nofinal\_OBJECTS = " . $realObjs{$program};
+            $new .= "\n\@KDE_USE_FINAL_FALSE\@$program\_OBJECTS = \$($program\_nofinal\_OBJECTS)";
+            $new .= "\n\@KDE_USE_FINAL_TRUE\@$program\_OBJECTS = \$($program\_final\_OBJECTS)";
+
+            $final_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
+            $final_install_lines .= "$program\_OBJECTS=\"\$($program\_final_OBJECTS)\" ";
+            $nofinal_lines .= "$program\_OBJECTS=\"\$($program\_nofinal\_OBJECTS)\" ";
+            $nofinal_install_lines .= "$program\_OBJECTS=\"\$($program\_nofinal_OBJECTS)\" ";
+        } else {
+            $new = "$program\_OBJECTS = " . $realObjs{$program};
+        }
+        if($MakefileData =~ m/\n$lookup/) {
+            substituteLine ($lookup, $new);
+        }
+        else {
+            appendLines("$new\n");
+        }
+    }
+    appendLines($final_lines . "all-am\n");
+    appendLines($final_install_lines . "install-am\n");
+    appendLines($nofinal_lines . "all-am\n");
+    appendLines($nofinal_install_lines . "install-am\n");
+
+    my $lookup = '(\@\S+\@)?DEP_FILES\s*=[ \t]*(.*)';
+    if ($MakefileData =~ /\n$lookup/) {
+        my $condition = $1;
+        my $depfiles = $2;
+        my $workfiles;
+
+        if ($dep_finals) {
+            # Add the conditions on every line, since
+            # there may be line continuations in the list.
+            $workfiles = "$dep_files $dep_finals $depfiles";
+            $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_TRUE\@\t/g;
+            $lines  = "$condition\@KDE_USE_FINAL_TRUE\@DEP_FILES = $workfiles\n";
+            $workfiles = "$dep_files $depfiles";
+            $workfiles =~ s/\034/\034$condition\@KDE_USE_FINAL_FALSE\@\t/g;
+            $lines .= "$condition\@KDE_USE_FINAL_FALSE\@DEP_FILES = $workfiles";
+        } else {
+            $workfiles = "$dep_files $depfiles";
+            $workfiles =~ s/\034/\034$condition\t/g;
+            $lines = $condition . "DEP_FILES = $workfiles";
+        }
+        substituteLine($lookup, $lines);
+    }
+
+    # new recursive targets
+    $target_adds{ "nmcheck" } .= ""; # always create nmcheck target
+    $target_adds{ "nmcheck-am" } .= "nmcheck";
+    $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
+    if ($MakefileData =~ /\n$lookup/) {
+      substituteLine($lookup, "RECURSIVE_TARGETS = $1 nmcheck-recursive bcheck-recursive");
+    }
+
+    $cvs_lines  = "kde-rpo-clean:\n";
+    $cvs_lines .= "\t-rm -f *.rpo\n";
+    appendLines($cvs_lines);
+    $target_adds{"clean"} .= "kde-rpo-clean ";
+
+    my %target_dels = ("install-data-am" => "");
+
+    # some strange people like to do a install-exec, and expect that also
+    # all modules are installed.  automake doesn't know this, so we need to move
+    # this here from install-data to install-exec.
+    if ($MakefileData =~ m/\nkde_module_LTLIBRARIES\s*=/) {
+#      $target_adds{"install-exec-am"} .= "install-kde_moduleLTLIBRARIES ";
+#      don't use $target_adds here because we need to append the dependency, not
+#      prepend it. Fixes #44342 , when a module depends on a lib in the same dir
+#      and libtool needs it during relinking upon install (Simon)
+      my $lookup = "install-exec-am:([^\n]*)";
+      if($MakefileData =~ /\n$lookup\n/) {
+        substituteLine("$lookup", "install-exec-am: $1 install-kde_moduleLTLIBRARIES");
+      }
+      $target_dels{"install-data-am"} .= "install-kde_moduleLTLIBRARIES ";
+      $target_adds{"install-data-am"} .= " ";
+    }
+
+    my $lines = "";
+
+    foreach $add (keys %target_adds) {
+	my $lookup = quotemeta($add) . ':([^\n]*)';
+        if ($MakefileData =~ /\n$lookup\n/) {
+	  my $newlines = $1;
+	  my $oldlines = $lookup;
+	  if (defined $target_dels{$add}) {
+	    foreach $del (split(' ', $target_dels{$add})) {
+	      $newlines =~ s/\s*$del\s*/ /g;
+	    }
+	  }
+	  substituteLine($oldlines, "$add: " . $target_adds{$add} . $newlines);
+        } else {
+	  $lines .= "$add: " . $target_adds{$add} . "\n";
+        }
+    }
+
+    appendLines($lines) if ($lines);
+
+    $lines = join("\n", values %rule_adds);
+    appendLines($lines) if ($lines);
+
+    my $found = 1;
+
+    while ($found) {
+        if ($MakefileData =~ m/\n(.*)\$\(CXXFLAGS\)(.*)\n/) {
+            my $stuff_before = $1;
+            my $stuff_after = $2;
+            my $lookup = quotemeta("$1\$(CXXFLAGS)$2");
+            my $replacement = "$1\$(KCXXFLAGS)$2";
+            $MakefileData =~ s/$lookup/$replacement/;
+            $lookup =~ s/\\\$\\\(CXXFLAGS\\\)/\\\$\\\(KCXXFLAGS\\\)/;
+            $replacement = "$stuff_before\$(KCXXFLAGS) \$(KDE_CXXFLAGS)$stuff_after";
+            next if ($stuff_before =~ /\$\(KDE_CXXFLAGS\)/ or $stuff_after =~ /\$\(KDE_CXXFLAGS\)/);
+            substituteLine($lookup, $replacement);
+        } else {
+            $found = 0;
+        }
+    }
+
+    if($foreign_libtool == 0) {
+        $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=link) (\$\(CXXLD\).*\$\(KCXXFLAGS\))';
+
+        if ($MakefileData =~ m/$lookup/ ) {
+            $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
+        }
+
+        $lookup = '(\n[^#].*\$\(LIBTOOL\) --mode=compile)\s+(\$\(CXX\)\s+)';
+        if ($MakefileData =~ m/$lookup/ ) {
+            $MakefileData =~ s/$lookup/$1 --tag=CXX $2/;
+        }
+    }
+
+    $MakefileData =~ s/\$\(KCXXFLAGS\)/\$\(CXXFLAGS\)/g;
+
+    $lookup = '(.*)cp -pr \$\$/\$\$file \$\(distdir\)/\$\$file(.*)';
+    if ($MakefileData =~ m/\n$lookup\n/) {
+        substituteLine($lookup, "$1cp -pr \$\$d/\$\$file \$(distdir)/\$\$file$2");
+    }
+
+    # Always update the Makefile.in
+    updateMakefile ();
+    return;
+}
+
+#-----------------------------------------------------------------------------
+
+# Beware: This procedure is not complete.  E.g. it also parses lines
+# containing a '=' in rules (for instance setting shell vars).  For our
+# usage this us enough, though.
+sub read_variables ()
+{
+    while ($MakefileData =~ /\n\s*(\S+)\s*=([^\n]*)/g) {
+        $varcontent{$1} = $2;
+    }
+}
+
+# Check to see whether we should process this make file.
+# This is where we look for tags that we need to process.
+# A small amount of initialising on the tags is also done here.
+# And of course we open and/or create the needed make files.
+sub initialise ()
+{
+    if (! -r "Makefile.am") {
+	print STDOUT "found Makefile.in without Makefile.am\n" if ($verbose);
+	return 0;
+    }
+
+    # Checking for files to process...
+
+    open (FILEIN, $makefile) || die "Can't open $makefileDir/$makefile: $!\n";
+    # perl bug in 5.8.0: in utf8 mode it badly screws up
+    binmode(FILEIN, ":bytes") if ($] >= 5.008);
+    # Read the file
+    # stat(FILEIN)[7] might look more elegant, but is slower as it 
+    # requires stat'ing the file
+    seek(FILEIN, 0, 2);
+    my $fsize = tell(FILEIN);
+    seek(FILEIN, 0, 0);
+    read FILEIN, $MakefileData, $fsize;
+    close FILEIN;
+    print "DOS CRLF within $makefileDir/$makefile!\n" if($MakefileData =~ y/\r//d);
+
+    # Remove the line continuations, but keep them marked
+    # Note: we lose the trailing spaces but that's ok.
+    # Don't mangle line-leading spaces (usually tabs)
+    # since they're important.
+    $MakefileData =~ s/\\\s*\n/\034/g;
+
+    # If we've processed the file before...
+    restoreMakefile ()      if ($MakefileData =~ /$progId/);
+
+    foreach $dir (@foreignfiles) {
+      if (substr($makefileDir,0,length($dir)) eq $dir) {
+	return 0;
+      }
+    }
+
+    %kdeopts = ();
+    $kdeopts{"foreign"} = 0;
+    $kdeopts{"qtonly"} = 0;
+    $kdeopts{"noautodist"} = 0;
+    $kdeopts{"foreign-libtool"} = $foreign_libtool;
+    $kdeopts{"nofinal"} = !$use_final; # default
+
+    read_variables();
+
+    if ($MakefileData =~ /\nKDE_OPTIONS\s*=[ \t]*([^\n]*)\n/) {
+	my $kde_options_str = $1;
+        local @kde_options = split(/[\034\s]+/, $kde_options_str);
+        if (grep(/^foreign$/, @kde_options)) {
+            push(@foreignfiles, $makefileDir . "/");
+            return 0; # don't touch me
+        }
+        for $opt (@kde_options) {
+            if (!defined $kdeopts{$opt}) {
+                print STDERR "Warning: unknown option $opt in $printname\n";
+            } else {
+                $kdeopts{$opt} = 1;
+            }
+        }
+    }
+
+    # Look for the tags that mean we should process this file.
+    $metasourceTags = 0;
+    $metasourceTags++    while ($MakefileData =~ /\n[^=\#]*METASOURCES\s*=/g);
+
+    my $pofileTag = 0;
+    $pofileTag++    while ($MakefileData =~ /\nPOFILES\s*=/g);
+    if ($pofileTag > 1)
+      {
+          print STDERR "Error: Only one POFILES tag allowed\n";
+          $errorflag = 1;
+      }
+
+    while ($MakefileData =~ /\n\.SUFFIXES:([^\n]+)\n/g) {
+	my $suffixes_str = $1;
+	my @list=split(' ', $suffixes_str);
+	foreach $ext (@list) {
+	    if ($ext =~ /^\.$cppExt$/) {
+		$cxxsuffix = $ext;
+		$cxxsuffix =~ s/\.//g;
+		print STDOUT "will use suffix $cxxsuffix\n" if ($verbose);
+		last;
+	    }
+	}
+    }
+
+    tag_KDEINIT();
+
+    while ($MakefileData =~ /\n(\S*)_OBJECTS\s*=[\034 \t]*([^\n]*)\n/g) {
+
+        my $program = $1;
+        my $objs = $2; # safe them
+
+        my $ocv = 0;
+
+        my @objlist = split(/[\034\s]+/, $objs);
+        foreach $obj (@objlist) {
+            if ($obj =~ /(\S*)\$\((\S+)\)/ ) {
+		my $pre = $1;
+                my $variable = $2;
+		if ($pre eq '' && exists($varcontent{$variable})) {
+		    my @addlist = split(/[\034\s]+/, $varcontent{$variable});
+		    push(@objlist, @addlist);
+                } elsif ($variable !~ 'OBJEXT' && $variable !~ /am__objects_\d+/ ) {
+                    $ocv = 1;
+		}
+            }
+        }
+
+        next if ($ocv);
+        next if ($program =~ /^am_libkdeinit_/);
+
+        $program =~ s/^am_// if ($program =~ /^am_/);
+
+        my $sourceprogram = $program;
+        $sourceprogram =~ s/\@am_/\@/ if($sourceprogram =~ /^.*\@am_.+/);
+
+        print STDOUT "found program $program\n" if ($verbose);
+        push(@programs, $program);
+
+        $realObjs{$program} = $objs;
+
+        if ($MakefileData =~ /\n$sourceprogram\_SOURCES\s*=[ \t]*(.*)\n/) {
+            $sources{$program} = $1;
+        } 
+        else {
+            $sources{$program} = "";
+            print STDERR "found program with no _SOURCES: $program\n";
+        }
+        
+        my $realprogram = $program;
+        $realprogram =~ s/_/./g; # unmask to regexp
+        if ($MakefileData =~ /\n($realprogram)(\$\(EXEEXT\)?)?:.*\$\($program\_OBJECTS\)/) {
+            $realname{$program} = $1;
+        } else {
+            # not standard Makefile - nothing to worry about
+            $realname{$program} = "";
+        }
+    }
+
+    my $lookup = 'DEPDIR\s*=.*';
+    if ($MakefileData !~ /\n$lookup/) {
+        $lookup = 'bindir\s*=[ \t]*.*';
+        substituteLine($lookup, "DEPDIR = .deps\n$1") if ($MakefileData =~ /\n($lookup)/);
+    }
+
+    my @marks = ('MAINTAINERCLEANFILES', 'CLEANFILES', 'DISTCLEANFILES');
+    foreach $mark (@marks) {
+        while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
+	    my $clean_str = $2; 
+            foreach $file (split('[\034\s]+', $clean_str)) {
+                $file =~ s/\.\///;
+                push(@cleanfiles, $file);
+            }
+        }
+    }
+
+    my $localTag = 0;
+    $localTag++ if ($MakefileData =~ /\ninstall-\S+-local:/);
+    
+    return (!$errorflag);
+}
+
+#-----------------------------------------------------------------------------
+
+# Gets the list of user defined directories - relative to $srcdir - where
+# header files could be located.
+sub tag_META_INCLUDES ()
+{
+    my $lookup = '[^=\n]*META_INCLUDES\s*=[ \t]*(.*)';
+    return 1    if ($MakefileData !~ /($lookup)\n/);
+    print STDOUT "META_INCLUDE processing <$1>\n"       if ($verbose);
+
+    my $headerStr = $2;
+    removeLine ($lookup, $1);
+
+    my @headerlist = split(/[\034\s]+/, $headerStr);
+
+    foreach $dir (@headerlist)
+    {
+        $dir =~ s#\$\(srcdir\)#.#;
+        if (! -d $dir)
+        {
+            print STDERR "Warning: $dir can't be found. ",
+                            "Must be a relative path to \$(srcdir)\n";
+        }
+        else
+        {
+            push (@headerdirs, $dir);
+        }
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_FINAL()
+{
+    my @final_names = ();
+    
+    foreach $program (@programs) {
+        
+        if ($sources{$program} =~ /\(/) {
+            print STDOUT "found ( in $program\_SOURCES. skipping\n" if ($verbose);
+            next;
+        }
+
+        my $mocs = "";       # Moc files (in this program)
+	my $moc_cpp_added = 0;  # If we added some .moc.cpp files, due to
+				# no other .cpp file including the .moc one.
+        
+        my @progsources = split(/[\034\s]+/, $sources{$program});
+        my %shash = ();
+        @shash{@progsources} = 1;  # we are only interested in the existence
+        my %sourcelist = ();
+        my %extradeps = ();
+        
+        foreach $source (@progsources) {
+            my $suffix = $source;
+            $suffix =~ s/^.*\.([^\.]+)$/$1/;
+            
+            $sourcelist{$suffix} .= "$source ";
+        }
+        foreach my $mocFile (keys (%globalmocs))
+        {
+            my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
+            if (defined ($cppFile)) {
+                $mocs .= " $mocFile.moc" if exists $shash{$cppFile};
+            } else {
+		$sourcelist{$cxxsuffix} .= "$mocFile.moc.$cxxsuffix ";
+		$moc_cpp_added = 1;
+	    }
+        }
+
+        # scan for extra given dependencies and add them to our target
+        while ($MakefileData =~ /\n\s*(\S+)\.(?:lo|o)\s*:([^\n]*)/g) {
+            $extradeps{$1} = $2;
+        }
+
+        foreach $suffix (keys %sourcelist) {
+            # See if this file contains c++ code. (i.e., just check the file's suffix against c++ extensions)
+            my $suffix_is_cxx = 0;
+            if($suffix =~ /($cppExt)$/) {
+              $cxxsuffix = $1;
+              $suffix_is_cxx = 1;
+            }
+            
+            my $mocfiles_in = ($suffix eq $cxxsuffix) && $moc_cpp_added;
+            
+            my @sourcelist = split(/[\034\s]+/, $sourcelist{$suffix});
+            
+            if ((@sourcelist == 1 && !$mocfiles_in) || $suffix_is_cxx != 1 ) {
+                
+                # we support IDL on our own
+                if ($suffix eq "skel" || $suffix =~ /^stub/
+		    || $suffix =~ /^signals/ # obsolete, remove in KDE-4
+                    || $suffix eq "h" || $suffix eq "ui" 
+                    || $suffix eq "kcfgc" ) {
+                    next;
+                }
+                
+                foreach $file (@sourcelist) {
+                    $file =~ s/\Q$suffix\E$//;
+                    
+                    $finalObjs{$program} .= $file;
+                    if ($program =~ /_la$/) {
+                        $finalObjs{$program} .= "lo ";
+                    } else {
+                        $finalObjs{$program} .= "o ";
+                    }
+                }
+                next; # suffix
+            }
+            
+            my $source_deps = "";
+            foreach $source (@sourcelist) {
+                if (-f $source) {
+                    $source_deps .= " \$(srcdir)/$source";
+                } else {
+                    $source_deps .= " $source";
+                }
+                my $plainsource = $source;
+                $plainsource =~ s/\.$cppExt$//;
+                $source_deps .= " " . $extradeps{$plainsource} if (exists($extradeps{$plainsource}));
+            }
+
+            $handling = "$program.all_$suffix.$suffix: \$(srcdir)/Makefile.in" . $source_deps . " " . join(' ', $mocs)  . "\n";
+            $handling .= "\t\@echo 'creating $program.all_$suffix.$suffix ...'; \\\n";
+            $handling .= "\trm -f $program.all_$suffix.files $program.all_$suffix.final; \\\n";
+            $handling .= "\techo \"#define KDE_USE_FINAL 1\" >> $program.all_$suffix.final; \\\n";
+            $handling .= "\tfor file in " . $sourcelist{$suffix} . "; do \\\n";
+            $handling .= "\t  echo \"#include \\\"\$\$file\\\"\" >> $program.all_$suffix.files; \\\n";
+            $handling .= "\t  test ! -f \$\(srcdir\)/\$\$file || egrep '^#pragma +implementation' \$\(srcdir\)/\$\$file >> $program.all_$suffix.final; \\\n";
+            $handling .= "\tdone; \\\n";
+            $handling .= "\tcat $program.all_$suffix.final $program.all_$suffix.files > $program.all_$suffix.$suffix; \\\n";
+            $handling .= "\trm -f $program.all_$suffix.final $program.all_$suffix.files\n";
+
+            appendLines($handling);
+
+            push(@final_names, "$program.all_$suffix.$suffix");
+            my $finalObj = "$program.all_$suffix.";
+            if ($program =~ /_la$/) {
+                $finalObj .= "lo";
+            } else {
+                $finalObj .= "o";
+            }
+	    $finalObjs{$program} .= $finalObj . " ";
+        }
+    }
+    
+    if (!$kdeopts{"nofinal"} && @final_names >= 1) {
+        # add clean-final target
+        my $lines = "$cleantarget-final:\n";
+        $lines .= "\t-rm -f " . join(' ', @final_names) . "\n" if (@final_names);
+        appendLines($lines);
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-final ";
+        
+        foreach $finalfile (@final_names) {
+            $finalfile =~ s/\.[^.]*$/.P/;
+            $dep_finals .= " \$(DEPDIR)/$finalfile";
+        }
+    }
+}
+
+sub tag_KDEINIT()
+{
+    my @progs = ();
+    my $ltlibs = "";
+    my $lookup = 'kdeinit_LTLIBRARIES\s*=[ \t]*(.*)';
+
+    if ($MakefileData =~ m/\n$lookup/) {
+	@kdeinits = split(/[\034\s]+/, $1);
+	my $lines = "";
+	foreach my $kdeinit (@kdeinits) {
+	    if ($kdeinit =~ m/\.la$/) {
+		$kdeinit =~ s/\.la$//;
+                push(@progs, $kdeinit);
+
+                $lines .= "\n${kdeinit}.la.$cxxsuffix:\n";
+                $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' > ${kdeinit}.la.$cxxsuffix; \\\n";
+                $lines .= "\techo 'int main(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}.la.$cxxsuffix\n";
+
+                $lines .= "\n${kdeinit}_dummy.$cxxsuffix:\n";
+                $lines .= "\techo '#include <kdemacros.h>' > ${kdeinit}_dummy.$cxxsuffix; \\\n";
+                $lines .= "\techo 'extern \"C\" int kdemain(int argc, char* argv[]);' >> ${kdeinit}_dummy.$cxxsuffix; \\\n";
+                $lines .= "\techo 'extern \"C\" KDE_EXPORT int kdeinitmain(int argc, char* argv[]) { return kdemain(argc,argv); }' >> ${kdeinit}_dummy.$cxxsuffix\n";
+
+                push(@cleanfiles, "${kdeinit}.la.$cxxsuffix");
+                push(@cleanfiles, "${kdeinit}_dummy.$cxxsuffix");
+
+                # add dependency
+                $dep_files .= " \$(DEPDIR)/${kdeinit}.la.Po" if($dep_files !~/${kdeinit}.la.Po/ );
+                $dep_files .= " \$(DEPDIR)/${kdeinit}_dummy.Plo" if($dep_files !~/${kdeinit}_dummy.Plo/ );
+
+                # make library
+                $lookup = $kdeinit . '_la_LIBADD\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libadd = $1;
+                    substituteLine($lookup, "${kdeinit}_la_LIBADD = libkdeinit_${kdeinit}.la");
+                    appendLines("libkdeinit_${kdeinit}_la_LIBADD = $libadd\n");
+                }
+                appendLines("libkdeinit_${kdeinit}_la_LDFLAGS = -no-undefined -avoid-version \$(all_libraries)\n");
+
+                # add library dependencies
+                $lookup = $kdeinit . '_la_DEPENDENCIES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libdeps = $1;
+                    substituteLine($lookup, "${kdeinit}_la_DEPENDENCIES = libkdeinit_${kdeinit}.la");
+                    appendLines("libkdeinit_${kdeinit}_la_DEPENDENCIES = $libdeps\n");
+                }
+
+                # make library objects
+                $lookup = "am_${kdeinit}_la_OBJECTS" . '\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $libobjects = $1;
+                    substituteLine($lookup, "am_${kdeinit}_la_OBJECTS = ${kdeinit}_dummy.lo");
+                    appendLines("am_libkdeinit_${kdeinit}_la_OBJECTS = $libobjects\n");
+                    my $prog = "libkdeinit_${kdeinit}_la";
+                    push(@programs, $prog);
+                    $realObjs{$prog} = $libobjects;
+                    $realname{$prog} = "libkdeinit_${kdeinit}.la";
+                }
+                $target_adds{"libkdeinit_${kdeinit}.la"} = "\$(libkdeinit_${kdeinit}_la_OBJECTS) \$(libkdeinit_${kdeinit}_la_DEPENDENCIES)\n" .
+                        "\t\$(CXXLINK) -rpath \$(libdir) \$(libkdeinit_${kdeinit}_la_LDFLAGS) ".
+                           "\$(libkdeinit_${kdeinit}_la_OBJECTS) " .
+                           "\$(libkdeinit_${kdeinit}_la_LIBADD) " .
+                           "\$(LIBS)\n";
+
+                # make libkdeinit sources
+                $lookup = $kdeinit . '_la_SOURCES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    my $srces = $1;
+                    $sources_changed{"libkdeinit_${kdeinit}_la"} = 1;
+                    $sources{"libkdeinit_${kdeinit}_la"} = $srces;
+                }
+
+                # make libkdeinit metasources
+                $lookup = $kdeinit . '_la_METASOURCES\s*=[ \t]*(.*)';
+                substituteLine($lookup, "libkdeinit_${kdeinit}_la_METASOURCES = $1")
+                    if($MakefileData =~ m/\n$lookup/);
+
+=cut
+                # make binary sources
+                $lookup = $kdeinit. '_SOURCES\s*=[ \t]*(.*)';
+                if($MakefileData =~ m/\n$lookup/) {
+                    substituteLine($lookup, "${kdeinit}_SOURCES = ${kdeinit}.la.$cxxsuffix");
+                    $lookup = 'SOURCES\s*=[ \t]*(.*)';
+                    if($MakefileData =~ m/\n$lookup/) {
+                        my $srces = $1;
+                        $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
+                        $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
+                        substituteLine($lookup, "SOURCES = $srces");
+                    }
+                    $lookup = 'DIST_SOURCES\s*=[ \t](.*)';
+                    if($MakefileData =~ m/\n$lookup/) {
+                        my $srces = $1;
+                        $srces =~ s/\b$kdeinit\.c\b/\$(${kdeinit}_SOURCES)/;
+                        $srces =~ s/\$\(${kdeinit}_la_SOURCES\)/\$(libkdeinit_${kdeinit}_la_SOURCES)/;
+                        substituteLine($lookup, "DIST_SOURCES = $srces");
+                    }
+                }
+
+                # make binary objects / libs
+                $lookup = $kdeinit . '_OBJECTS\s*=[ \t]*.*';
+                if($MakefileData =~ m/\n$lookup/) {
+                    $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
+                    substituteLine("${kdeinit}_LDFLAGS\\s*=.*", "${kdeinit}_LDFLAGS = \$(all_libraries)");
+                    substituteLine("${kdeinit}_LDADD\\s*=.*", "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la");
+                    substituteLine("${kdeinit}_DEPENDENCIES\\s*=.*", "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la");
+                }
+=cut
+                # add binary
+                push(@programs, $kdeinit);
+                $realObjs{$kdeinit} = "${kdeinit}.la.\$(OBJEXT)";
+                $realname{$kdeinit} = $kdeinit;
+                $sources{$kdeinit} = "${kdeinit}.la.$cxxsuffix";
+
+                $lines .= "${kdeinit}_LDFLAGS = \$(KDE_RPATH) -no-undefined \$(all_libraries)\n";
+                $lines .= "${kdeinit}_LDADD = libkdeinit_${kdeinit}.la\n";
+                $lines .= "${kdeinit}_DEPENDENCIES = libkdeinit_${kdeinit}.la\n";
+
+                $target_adds{"${kdeinit}\$(EXEEXT)"} =
+                          "\$(${kdeinit}_OBJECTS) \$(${kdeinit}_DEPENDENCIES)\n" .
+                          "\t\@rm -f ${kdeinit}\$(EXEEXT)\n" .
+                          "\t\$(CXXLINK) \$(${kdeinit}_LDFLAGS) \$(${kdeinit}_OBJECTS) \$(${kdeinit}_LDADD) \$(LIBS)\n";
+
+                $ltlibs .= " libkdeinit_${kdeinit}.la";
+	    }
+        }
+        appendLines($lines);
+
+        # add libkdeinit target
+        $lookup = 'lib_LTLIBRARIES\s*=[ \t]*(.*)';
+        if($MakefileData =~ m/\n$lookup/) {
+            substituteLine($lookup, "lib_LTLIBRARIES = $1 $ltlibs");
+        }
+        else {
+            print STDERR
+                "Error: lib_LTLIBRARIES missing in $printname (required for kdeinit_LTLIBRARIES).\n";
+            $errorflag = 1;
+        }
+    }
+
+    if($#progs >= 0) {
+        if($MakefileData !~ m/\nbin_PROGRAMS\s*=/) {
+            print STDERR "Error: bin_PROGRAMS missing in $printname (required for kdeinit_LTLIBRARIES).\n";
+            $errorflag = 1;
+        }
+        else {
+            # add our new progs to SOURCES, DIST_SOURCES and bin_PROGRAMS
+            my $progsources = "";
+            my $progexes = "";
+            foreach my $p (@progs) {
+                $progsources .= "\$(${p}_SOURCES) ";
+                $progexes .= "${p}\$(EXEEXT) ";
+            }
+            $lookup = 'SOURCES\s*=[ \t]*(.*)';
+            if($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "SOURCES = $1 $progsources");
+            }
+            $lookup = 'DIST_SOURCES\s*=[ \t]*(.*)';
+            if($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "DIST_SOURCES = $1 $progsources");
+            }
+            # bin_PROGRAMS is complicated, as it exists twice, so we do a little
+            # magic trick here
+            $lookup = 'PROGRAMS\s*=[ \t]*(.*)';
+            if ($MakefileData =~ /\n$lookup/) {
+                substituteLine($lookup, "bin_PROGRAMS += $progexes\nPROGRAMS = $1");
+            }
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_COMPILE_FIRST()
+{
+  foreach $program (@programs) {
+    my $lookup = "$program" . '_COMPILE_FIRST\s*=[ \t]*(.*)';
+    if ($MakefileData =~ m/\n$lookup\n/) {
+      my $compilefirst_str = $1;
+      my @compilefirst = split(/[\034\s]+/, $compilefirst_str);
+      my @progsources = split(/[\034\s]+/, $sources{$program});
+      my %donesources = ();
+      foreach $source (@progsources) {
+        my @deps  = ();
+        my $sdeps = "";
+        if (-f $source) {
+          $sdeps = "\$(srcdir)/$source";
+        } else {
+          $sdeps = "$source";
+        }
+        foreach $depend (@compilefirst) {
+          next if ($source eq $depend);
+          # avoid cyclic dependencies
+          next if defined($donesources{$depend});
+          push @deps, $depend;
+        }
+        $target_adds{$sdeps} .= join(' ', @deps) . ' ' if (@deps);
+        $donesources{$source} = 1;
+      }
+    }
+  }
+}
+
+#-----------------------------------------------------------------------------
+
+
+# Organises the list of headers that we'll use to produce moc files
+# from.
+sub tag_METASOURCES ()
+{
+    local @newObs           = ();  # here we add to create object files
+    local @depend           = ();  # here we add to create moc files
+    local $mocExt           = ".moc";
+    local %mocFiles         = ();
+
+    my $line = "";
+    my $postEqual = "";
+
+    my $lookup;
+    my $found = "";
+    if ($metasourceTags > 1) {
+	$lookup = $program . '_METASOURCES\s*=\s*(.*)';
+	return 1    if ($MakefileData !~ /\n($lookup)\n/);
+	$found = $1;
+    } else {
+	$lookup = $program . '_METASOURCES\s*=\s*(.*)';
+	if ($MakefileData !~ /\n($lookup)\n/) {
+	    $lookup = 'METASOURCES\s*=\s*(.*)';
+	    return 1    if ($MakefileData !~ /\n($lookup)\n/);
+	    $found = $1;
+	    $metasourceTags = 0; # we can use the general target only once
+	} else {
+            $found = $1;
+        }
+    }
+    print STDOUT "METASOURCE processing <$found>)\n"      if ($verbose);
+    
+    $postEqual = $found;
+    $postEqual =~ s/[^=]*=//;
+    
+    removeLine ($lookup, $found);
+    
+    # Always find the header files that could be used to "moc"
+    return 1    if (findMocCandidates ());
+    
+    if ($postEqual =~ /AUTO\s*(\S*)|USE_AUTOMOC\s*(\S*)/)
+    {
+	print STDERR "$printname: the argument for AUTO|USE_AUTOMOC is obsolete" if ($+);
+	$mocExt = ".moc.$cxxsuffix";
+	$haveAutomocTag = 1;
+    }
+    else
+    {
+        # Not automoc so read the list of files supplied which
+        # should be .moc files.
+
+        $postEqual =~ tr/\034/ /;
+
+        # prune out extra headers - This also checks to make sure that
+        # the list is valid.
+        pruneMocCandidates ($postEqual);
+    }
+
+    checkMocCandidates ();
+    
+    if (@newObs) {
+        my $ext =  ($program =~ /_la$/) ? ".moc.lo " : ".moc.o ";
+        $realObjs{$program} .= "\034" . join ($ext, @newObs) . $ext;
+        $dependmocs{$program} = join (".moc.$cxxsuffix " , @newObs) . ".moc.$cxxsuffix";
+        foreach $file (@newObs) {
+            $dep_files .= " \$(DEPDIR)/$file.moc.P" if($dep_files !~/$file.moc.P/);
+        }
+    }
+    if (@depend) {
+        $dependmocs{$program} .= " ";
+        $dependmocs{$program} .= join('.moc ', @depend) . ".moc";
+        $dependmocs{$program} .= " ";
+    }
+    addMocRules ();
+    @globalmocs{keys %mocFiles}=values %mocFiles;
+}
+
+#-----------------------------------------------------------------------------
+
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_AUTOMAKE ()
+{
+    my $lookup = '.*cd \$\(top_srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\)(.*)';
+    return 1    if ($MakefileData !~ /\n($lookup)\n/);
+    print STDOUT "AUTOMAKE processing <$1>\n"        if ($verbose);
+
+    my $newLine = $1."\n\tcd \$(top_srcdir) && perl $thisProg $printname";
+
+    # automake 1.8.x adds another automake call. *sigh*
+    $newLine =~ s/;([\034\s]+cd\s+\$\(srcdir\)\s+&&[\034\s]+\$\(AUTOMAKE\).*)[\034\s]+\&\&[\034\s]+exit[\034\s]+0;([\034\s]+exit\s+1)/; \034 ( $1 ) || exit 1; echo \' cd \$(top_srcdir) && perl $thisProg \'; cd \$(top_srcdir) && perl $thisProg && exit 0; $2/;
+    substituteLine ($lookup, $newLine);
+    $automkCall = $1;
+
+    $lookup = '.*cd \$\(srcdir\)\s+&&[\034\s]+\$\(AUTOCONF\)(.*)';
+    if ($MakefileData =~ /\n($lookup)\n/) {
+      $newLine  = "\tcd \$(srcdir) && rm -f configure\n";
+      $newLine .= "\tcd \$(top_srcdir) && \$(MAKE) -f admin/Makefile.common configure";
+      substituteLine ($lookup, $newLine);
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub handle_TOPLEVEL()
+{
+    my $pofiles = "";
+    my @restfiles = ();
+    opendir (THISDIR, ".");
+    foreach $entry (readdir(THISDIR)) {
+        next if (-d $entry);
+        
+        next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry =~ /.gmo$/);
+                 
+        if ($entry =~ /\.po$/) {
+             next;
+        }
+        push(@restfiles, $entry);
+    }
+    closedir (THISDIR);
+            
+    if (@restfiles) {
+        $target_adds{"install-data-am"} .= "install-nls-files ";
+        $lines = "install-nls-files:\n";
+        $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$kdelang\n";
+        for $file (@restfiles) {
+            $lines .= "\t\$(INSTALL_DATA) \$\(srcdir\)/$file \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
+        }
+	$target_adds{"uninstall"} .= "uninstall-nls-files ";
+        $lines .= "uninstall-nls-files:\n";
+        for $file (@restfiles) {
+            $lines .= "\t-rm -f \$(DESTDIR)\$(kde_locale)/$kdelang/$file\n";
+        }
+        appendLines($lines);
+    }
+    
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+sub tag_SUBDIRS ()
+{
+  if ($MakefileData !~ /\nSUBDIRS\s*=\s*\$\(AUTODIRS\)\s*\n/) {
+    return 1;
+  }
+
+  my $subdirs = ".";
+
+  opendir (THISDIR, ".");
+  foreach $entry (readdir(THISDIR)) {
+    next if ($entry eq "CVS" || $entry =~ /^\./);
+    if (-d $entry && -f $entry . "/Makefile.am") {
+      $subdirs .= " $entry";
+      next;
+    }
+  }
+  closedir (THISDIR);
+
+  substituteLine('SUBDIRS\s*=.*', "SUBDIRS =$subdirs");
+  return 0;
+}
+
+sub tag_IDLFILES ()
+{
+    my @psources = split(/[\034\s]+/, $sources{$program});
+    my $dep_lines = "";
+    my @cppFiles = ();
+    
+    foreach $source (@psources) {
+        my $skel = ($source =~ m/\.skel$/);
+        my $stub = ($source =~ m/\.stub$/);
+        my $signals = ($source =~ m/\.signals$/); # obsolete, remove in KDE-4
+        
+        if ($stub || $skel || $signals) {
+
+            my $qs = quotemeta($source);
+            $sources{$program} =~ s/$qs//;
+            $sources_changed{$program} = 1;
+
+            $source =~ s/\.(stub|skel|signals)$//;
+            my $sourcename;
+
+            if ($skel) {
+                $sourcename = "$source\_skel";
+            } elsif ($stub) {
+                $sourcename = "$source\_stub";
+            } else {
+                $sourcename = "$source\_signals";
+            }
+            
+            my $sourcedir = '';
+            if (-f "$makefileDir/$source.h") {
+                $sourcedir = '$(srcdir)/';
+            } else {
+                if ($MakefileData =~ /\n$source\_DIR\s*=\s*(\S+)\n/) {
+                    $sourcedir = $1;
+                    $sourcedir .= "/" if ($sourcedir !~ /\/$/);
+                }
+            }
+            
+            if ($allidls !~ /$source\_kidl/) {
+                
+                $use_ng = ($MakefileData =~ /\n$source\_DCOPIDLNG\s*=\s*(\S+)\n/);
+                $dcopidl =  $use_ng ? "KDECONFIG=\"\$(KDECONFIG)\" \$(DCOPIDLNG)" : "\$(DCOPIDL)";
+
+                $dep_lines .= "$source.kidl: $sourcedir$source.h \$(DCOP_DEPENDENCIES)\n";
+                $dep_lines .= "\t$dcopidl $sourcedir$source.h > $source.kidl || ( rm -f $source.kidl ; false )\n";
+                
+                $allidls .= $source . "_kidl ";
+            }
+            
+            if ($allidls !~ /$sourcename/) {
+                
+                $dep_lines_tmp = "";
+
+                if ($skel) {
+                    $dep_lines .= "$sourcename.$cxxsuffix: $source.kidl\n";
+                    $dep_lines .= "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-stub $source.kidl\n";
+                } elsif ($stub) {
+                    $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-signals --no-skel $source.kidl\n";
+                } else { # signals - obsolete, remove in KDE 4
+                    $dep_lines_tmp = "\t\$(DCOPIDL2CPP) --c++-suffix $cxxsuffix --no-stub --no-skel $source.kidl\n";
+                }
+
+                if ($stub || $signals) {
+                    $target_adds{"$sourcename.$cxxsuffix"} .= "$sourcename.h ";
+                    $dep_lines .= "$sourcename.h: $source.kidl\n";
+                    $dep_lines .= $dep_lines_tmp;
+                }
+                
+                $allidls .= $sourcename . " ";
+            }
+            
+            $idlfiles{$program} .= $sourcename . " ";
+            
+            if ($program =~ /_la$/) {
+                $realObjs{$program} .= " $sourcename.lo";
+            } else {
+                $realObjs{$program} .= " $sourcename.\$(OBJEXT)";
+            }
+            $sources{$program} .= " $sourcename.$cxxsuffix";
+            $sources_changed{$program} = 1;
+            $important{$program} .= "$sourcename.h " if (!$skel);
+            $idl_output .= "\\\n\t$sourcename.$cxxsuffix $sourcename.h $source.kidl ";
+            push(@cleanfiles, "$sourcename.$cxxsuffix");
+            push(@cleanfiles, "$sourcename.h");
+            push(@cleanfiles, "$sourcename.kidl");
+            $dep_files .= " \$(DEPDIR)/$sourcename.P" if ($dep_files !~/$sourcename.P/);
+        }
+    }
+    if ($dep_lines) {
+        appendLines($dep_lines);
+    }
+    
+    if (0) {
+        my $lookup = "($program)";
+        $lookup .= '(|\$\(EXEEXT\))';
+        $lookup =~ s/\_/./g;
+        $lookup .= ":(.*..$program\_OBJECTS..*)";
+        #    $lookup = quotemeta($lookup);
+        if ($MakefileData =~ /\n$lookup\n/) {
+            
+            my $line = "$1$2: ";
+            foreach $file (split(' ', $idlfiles{$program})) {
+                $line .= "$file.$cxxsuffix ";
+            }
+            $line .= $3;
+            substituteLine($lookup, $line);
+        } else {
+            print STDERR "no built dependency found $lookup\n";
+        }
+    }
+}
+
+sub tag_UIFILES ()
+{
+    my @psources = split(/[\034\s]+/, $sources{$program});
+    my @depFiles = ();
+    
+    foreach $source (@psources) {
+
+        if ($source =~ m/\.ui$/) {
+
+            print STDERR "adding UI file $source\n" if ($verbose);
+
+            my $qs = quotemeta($source);
+            $sources{$program} =~ s/$qs//;
+            $sources_changed{$program} = 1;
+      
+            $source =~ s/\.ui$//;
+
+            my $sourcedir = '';
+            if (-f "$makefileDir/$source.ui") {
+                $sourcedir = '$(srcdir)/';
+            }
+
+            if (!$uiFiles{$source}) {
+
+                my $dep_lines = "$source.$cxxsuffix: $sourcedir$source.ui $source.h $source.moc\n";
+                $dep_lines .= "\trm -f $source.$cxxsuffix\n";
+                if (!$kdeopts{"qtonly"}) {
+                    $dep_lines .= "\techo '#include <kdialog.h>' > $source.$cxxsuffix\n";
+                    $dep_lines .= "\techo '#include <klocale.h>' >> $source.$cxxsuffix\n";
+                    my ($mangled_source) = $source;
+                    $mangled_source =~ s/[^A-Za-z0-9]/_/g;  # get rid of garbage
+                    $dep_lines .= "\t\$(UIC) -tr \${UIC_TR} -i $source.h $sourcedir$source.ui > $source.$cxxsuffix.temp ; ret=\$\$?; \\\n";
+                    $dep_lines .= "\t\$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\" ),QString::null,g\" $source.$cxxsuffix.temp | \$(PERL) -pe \"s,\${UIC_TR}( \\\"\\\"\\, \\\"\\\" ),QString::null,g\" | \$(PERL) -pe \"s,image([0-9][0-9]*)_data,img\\\$\$1_" . $mangled_source . ",g\" | \$(PERL) -pe \"s,: QWizard\\(,: KWizard(,g\" >> $source.$cxxsuffix ;\\\n";
+		    $dep_lines .= "\trm -f $source.$cxxsuffix.temp ;\\\n";
+                } else {
+                    $dep_lines .= "\t\$(UIC) -i $source.h $sourcedir$source.ui > $source.$cxxsuffix; ret=\$\$?; \\\n";
+                }
+		$dep_lines .= "\tif test \"\$\$ret\" = 0; then echo '#include \"$source.moc\"' >> $source.$cxxsuffix; else rm -f $source.$cxxsuffix ; exit \$\$ret ; fi\n\n";
+                $dep_lines .= "$source.h: $sourcedir$source.ui\n";
+                $dep_lines .= "\trm -rf $source.h;\n";
+                if (!$kdeopts{"qtonly"}) {
+                    $dep_lines .= "\t\$(UIC) $sourcedir$source.ui | \$(PERL) -pi -e \"s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g\" >> $source.h ;\n";
+                } else {
+                    $dep_lines .= "\t\$(UIC) -o $source.h $sourcedir$source.ui\n";
+                }
+                $dep_lines .= "$source.moc: $source.h\n";
+                $dep_lines .= "\t\$(MOC) $source.h -o $source.moc\n";
+
+                $rule_adds{"$source.$cxxsuffix"} = $dep_lines;
+
+		$uiFiles{$source} = 1;
+                $dependmocs{$program} .= " $source.moc";
+                $globalmocs{$source} = "\035$source.h\035$source.cpp";
+            }
+            
+            if ($program =~ /_la$/) {
+                $realObjs{$program} .= " $source.lo";
+            } else {
+                $realObjs{$program} .= " $source.\$(OBJEXT)";
+            }
+            $sources{$program} .= " $source.$cxxsuffix";
+            $sources_changed{$program} = 1;
+            $important{$program} .= "$source.h ";
+            $ui_output .= "\\\n\t$source.$cxxsuffix $source.h $source.moc ";
+            push(@cleanfiles, "$source.$cxxsuffix");
+            push(@cleanfiles, "$source.h");
+            push(@cleanfiles, "$source.moc");
+            $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
+        }
+    }
+}
+
+sub tag_KCFGFILES ()
+{
+    my @psources = split(/[\034\s]+/, $sources{$program});
+    my @depFiles = ();
+    
+    foreach $source (@psources) {
+
+        if ($source =~ m/\.kcfgc$/) {
+
+            print STDERR "adding KCFG file $source\n" if ($verbose);
+
+            my $qs = quotemeta($source);
+            $sources{$program} =~ s/$qs//;
+            $sources_changed{$program} = 1;
+      
+            $source =~ s/\.kcfgc$//;
+
+            my $sourcedir = '';
+            if (-f "$makefileDir/$source.kcfgc") {
+                $sourcedir = '$(srcdir)/';
+            }
+
+            if (!$kcfgFiles{$source}) {
+                $kcfg = "$program.kcfg";
+                findKcfgFile("$source.kcfgc");
+
+                my $fixsuffix = "";
+                $fixsuffix = "else mv $source.cpp $source.$cxxsuffix ; " 
+                    unless "cpp" eq $cxxsuffix;
+
+                my $dep_lines = "$source.$cxxsuffix: $source.h\n";
+                $dep_lines .= "$source.h: $sourcedir$kcfg $sourcedir$source.kcfgc \$(KCFG_DEPENDENCIES)\n";
+                $dep_lines .= "\t\$(KCONFIG_COMPILER) $sourcedir$kcfg $sourcedir$source.kcfgc; ret=\$\$?; \\\n";
+		$dep_lines .= "\tif test \"\$\$ret\" != 0; then rm -f $source.h ; exit \$\$ret ; $fixsuffix fi\n\n";
+
+                $rule_adds{"$source.$cxxsuffix"} = $dep_lines;
+
+		$kcfgFiles{$source} = 1;
+            }
+            
+            if ($program =~ /_la$/) {
+                $realObjs{$program} .= " $source.lo";
+            } else {
+                $realObjs{$program} .= " $source.\$(OBJEXT)";
+            }
+            $sources{$program} .= " $source.$cxxsuffix";
+            $sources_changed{$program} = 1;
+            $important{$program} .= "$source.h ";
+            $kcfg_output .= "\\\n\t$source.$cxxsuffix $source.h ";
+            push(@cleanfiles, "$source.$cxxsuffix");
+            push(@cleanfiles, "$source.h");
+            $dep_files .= " \$(DEPDIR)/$source.P" if($dep_files !~/$source.P/ );
+        }
+    }
+}
+
+sub tag_ICON()
+{
+    my $lookup = '([^\s]*)_ICON\s*=[ \t]*(.*)';
+    my $install = "";
+    my $uninstall = "";
+
+    while ($MakefileData =~ /\n$lookup/g) {
+        my $destdir;
+        if ($1 eq "KDE") {
+            $destdir = "kde_icondir";
+        } else {
+            $destdir = $1 . "dir";
+        }
+        my $iconauto = ($2 =~ /AUTO\s*$/);
+        my @appnames = ();
+        if ( ! $iconauto ) {
+	    my $appicon_str = $2;
+            my @_appnames = split(" ", $appicon_str);
+            print STDOUT "KDE_ICON processing <@_appnames>\n"   if ($verbose);
+            foreach $appname (@_appnames) {
+                push(@appnames, quotemeta($appname));
+            }
+        } else {
+            print STDOUT "KDE_ICON processing <AUTO>\n"   if ($verbose);
+        }
+
+        my @files = ();
+        opendir (THISDIR, ".");
+        foreach $entry (readdir(THISDIR)) {
+            next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
+            next if (! -f $entry);
+            if ( $iconauto )
+              {
+                  push(@files, $entry)
+                    if ($entry =~ /\.xpm/ || $entry =~ /\.png/ || $entry =~ /\.mng/ || $entry =~ /\.svg/);
+              } else {
+                  foreach $appname (@appnames) {
+                      push(@files, $entry)
+                        if ($entry =~ /-$appname\.xpm/ || $entry =~ /-$appname\.png/ || $entry =~ /-$appname\.mng/ || $entry =~ /-$appname\.svg/);
+                  }
+              }
+        }
+        closedir (THISDIR);
+        
+        my %directories = ();
+        
+        foreach $file (@files) {
+            my $newfile = $file;
+            my $prefix = $file;
+            $prefix =~ s/\.(png|xpm|mng|svg|svgz)$//;
+            my $appname = $prefix;
+            $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
+            $appname =~ s/^[^-]+-// if ($appname =~ /-/) ;
+            $appname = quotemeta($appname);
+            $prefix =~ s/$appname$//;
+            $prefix =~ s/-$//;
+            
+            $prefix = 'lo16-app' if ($prefix eq 'mini');
+            $prefix = 'lo32-app' if ($prefix eq 'lo');
+            $prefix = 'hi48-app' if ($prefix eq 'large');
+            $prefix .= '-app' if ($prefix =~ m/^...$/);
+            
+            my $type = $prefix;
+            $type =~ s/^.*-([^-]+)$/$1/;
+            $prefix =~ s/^(.*)-[^-]+$/$1/;
+            
+            my %type_hash =
+              (
+               'action' => 'actions',
+               'app' => 'apps',
+               'device' => 'devices',
+               'filesys' => 'filesystems',
+               'mime' => 'mimetypes'
+              );
+
+            if (! defined $type_hash{$type} ) {
+                print STDERR "unknown icon type $type in $printname ($file)\n";
+                next;
+            }
+
+            my %dir_hash =
+              (
+               'los' => 'locolor/16x16',
+               'lom' => 'locolor/32x32',
+               'him' => 'hicolor/32x32',
+               'hil' => 'hicolor/48x48',
+               'lo16' => 'locolor/16x16',
+               'lo22' => 'locolor/22x22',
+               'lo32' => 'locolor/32x32',
+               'hi16' => 'hicolor/16x16',
+               'hi22' => 'hicolor/22x22',
+               'hi32' => 'hicolor/32x32',
+               'hi48' => 'hicolor/48x48',
+               'hi64' => 'hicolor/64x64',
+               'hi128' => 'hicolor/128x128',
+               'hisc' => 'hicolor/scalable',
+ 	       'cr16' => 'crystalsvg/16x16',
+               'cr22' => 'crystalsvg/22x22',
+               'cr32' => 'crystalsvg/32x32',
+               'cr48' => 'crystalsvg/48x48',
+               'cr64' => 'crystalsvg/64x64',
+               'cr128' => 'crystalsvg/128x128',
+               'crsc' => 'crystalsvg/scalable'
+              );
+            
+            $newfile =~ s at .*-($appname\.(png|xpm|mng|svgz|svg?))@$1@;
+            
+            if (! defined $dir_hash{$prefix}) {
+                print STDERR "unknown icon prefix $prefix in $printname\n";
+                next;
+            }
+            
+            my $dir = $dir_hash{$prefix} . "/" . $type_hash{$type};
+            if ($newfile =~ /-[^\.]/) {
+                my $tmp = $newfile;
+                $tmp =~ s/^([^-]+)-.*$/$1/;
+                $dir = $dir . "/" . $tmp;
+                $newfile =~ s/^[^-]+-//;
+            }
+            
+            if (!defined $directories{$dir}) {
+                $install .= "\t\$(mkinstalldirs) \$(DESTDIR)\$($destdir)/$dir\n";
+                $directories{$dir} = 1;
+            }
+            
+            $install .= "\t\$(INSTALL_DATA) \$(srcdir)/$file \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
+            $uninstall .= "\t-rm -f \$(DESTDIR)\$($destdir)/$dir/$newfile\n";
+            
+        }
+    }
+
+    if (length($install)) {
+        $target_adds{"install-data-am"} .= "install-kde-icons ";
+        $target_adds{"uninstall-am"} .= "uninstall-kde-icons ";
+        appendLines("install-kde-icons:\n" . $install . "\nuninstall-kde-icons:\n" . $uninstall);
+    }
+}
+
+sub handle_POFILES($$)
+{
+  my @pofiles = split(" ", $_[0]);
+  my $lang = $_[1];
+
+  # Build rules for creating the gmo files
+  my $tmp = "";
+  my $allgmofiles     = "";
+  my $pofileLine   = "POFILES =";
+  foreach $pofile (@pofiles)
+    {
+        $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+        $tmp .= "$1.gmo: $pofile\n";
+        $tmp .= "\trm -f $1.gmo; \$(GMSGFMT) -o $1.gmo \$(srcdir)/$pofile\n";
+        $tmp .= "\ttest ! -f $1.gmo || touch $1.gmo\n";
+        $allgmofiles .= " $1.gmo";
+        $pofileLine  .= " $1.po";
+    }
+  appendLines ($tmp);
+  my $lookup = 'POFILES\s*=([^\n]*)';
+  if ($MakefileData !~ /\n$lookup/) {
+    appendLines("$pofileLine\nGMOFILES =$allgmofiles");
+  } else {
+    substituteLine ($lookup, "$pofileLine\nGMOFILES =$allgmofiles");
+  }
+
+    if ($allgmofiles) {
+
+        # Add the "clean" rule so that the maintainer-clean does something
+        appendLines ("clean-nls:\n\t-rm -f $allgmofiles\n");
+
+	$target_adds{"maintainer-clean"} .= "clean-nls ";
+
+	$lookup = 'DISTFILES\s*=[ \t]*(.*)';
+	if ($MakefileData =~ /\n$lookup/) {
+	  $tmp = "DISTFILES = \$(GMOFILES) \$(POFILES) $1";
+	  substituteLine ($lookup, $tmp);
+	}
+    }
+
+  $target_adds{"install-data-am"} .= "install-nls ";
+
+  $tmp = "install-nls:\n";
+  if ($lang) {
+    $tmp  .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES\n";
+  }
+  $tmp .= "\t\@for base in ";
+  foreach $pofile (@pofiles)
+    {
+      $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+      $tmp .= "$1 ";
+    }
+
+  $tmp .= "; do \\\n";
+  if ($lang) {
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/\$\$base.mo ;\\\n";
+    $tmp .= "\t  fi ;\\\n";
+  } else {
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  \$(mkinstalldirs) \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES ; \\\n";
+    $tmp .= "\t  if test -f \$\$base.gmo; then \$(INSTALL_DATA) \$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  elif test -f \$(srcdir)/\$\$base.gmo; then \$(INSTALL_DATA) \$(srcdir)/\$\$base.gmo \$(DESTDIR)\$(kde_locale)/\$\$base/LC_MESSAGES/\$(PACKAGE).mo ;\\\n";
+    $tmp .= "\t  fi ;\\\n";
+  }
+  $tmp .= "\tdone\n\n";
+  appendLines ($tmp);
+
+  $target_adds{"uninstall"} .= "uninstall-nls ";
+
+  $tmp = "uninstall-nls:\n";
+  foreach $pofile (@pofiles)
+    {
+      $pofile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+      if ($lang) {
+	$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$lang/LC_MESSAGES/$1.mo\n";
+      } else {
+	$tmp .= "\trm -f \$(DESTDIR)\$(kde_locale)/$1/LC_MESSAGES/\$(PACKAGE).mo\n";
+      }
+    }
+  appendLines($tmp);
+
+  $target_adds{"all"} .= "all-nls ";
+
+  $tmp = "all-nls: \$(GMOFILES)\n";
+
+  appendLines($tmp);
+
+  $target_adds{"distdir"} .= "distdir-nls ";
+
+  $tmp = "distdir-nls:\$(GMOFILES)\n";
+  $tmp .= "\tfor file in \$(POFILES); do \\\n";
+  $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+  $tmp .= "\tdone\n";
+  $tmp .= "\tfor file in \$(GMOFILES); do \\\n";
+  $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+  $tmp .= "\tdone\n";
+
+  appendLines ($tmp);
+
+  if (!$lang) {
+    appendLines("merge:\n\t\$(MAKE) -f \$(top_srcdir)/admin/Makefile.common package-merge POFILES=\"\${POFILES}\" PACKAGE=\${PACKAGE}\n\n");
+  }
+ 
+}
+
+#-----------------------------------------------------------------------------
+
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_POFILES ()
+{
+    my $lookup = 'POFILES\s*=([^\n]*)';
+    return 1    if ($MakefileData !~ /\n$lookup/);
+    print STDOUT "POFILES processing <$1>\n"   if ($verbose);
+
+    my $tmp = $1;
+
+    # make sure these are all gone.
+    if ($MakefileData =~ /\n\.po\.gmo:\n/)
+    {
+        print STDERR "Warning: Found old .po.gmo rules in $printname. New po rules not added\n";
+        return 1;
+    }
+
+    # Either find the pofiles in the directory (AUTO) or use
+    # only the specified po files.
+    my $pofiles = "";
+    if ($tmp =~ /^\s*AUTO\s*$/)
+    {
+        opendir (THISDIR, ".");
+	$pofiles =  join(" ", grep(/\.po$/, readdir(THISDIR)));
+        closedir (THISDIR);
+        print STDOUT "pofiles found = $pofiles\n"   if ($verbose);
+	if (-f "charset" && -f "kdelibs/kdelibs.po") {
+	    handle_TOPLEVEL();
+	}
+    }
+    else
+    {
+        $tmp =~ s/\034/ /g;
+        $pofiles = $tmp;
+    }
+    return 1    if (!$pofiles);        # Nothing to do
+
+    handle_POFILES($pofiles, $kdelang);
+
+    return 0;
+}
+
+sub helper_LOCALINSTALL($)
+{
+  my $lookup = "\035" . $_[0] . " *:[^\035]*\035\t";
+  my $copy = $MakefileData;
+  $copy =~ s/\n/\035/g;
+  if ($copy =~ /($lookup.*)$/) {
+
+    $install = $1;
+    $install =~ s/\035$_[0] *:[^\035]*\035//;
+    my $emptyline = 0;
+    while (! $emptyline ) {
+      if ($install =~ /([^\035]*)\035(.*)/) {
+	local $line = $1;
+	$install = $2;
+	if ($line !~ /^\s*$/ && $line !~ /^(\@.*\@)*\t/) {
+	  $emptyline = 1;
+	} else {
+	  replaceDestDir($line);
+	}
+      } else {
+	$emptyline = 1;
+      }
+    }
+  }
+
+}
+
+sub tag_LOCALINSTALL ()
+{
+  helper_LOCALINSTALL('install-exec-local');
+  helper_LOCALINSTALL('install-data-local');
+  helper_LOCALINSTALL('uninstall-local');
+
+  return 0;
+}
+
+sub replaceDestDir($) {
+  local $line = $_[0];
+
+  if (   $line =~ /^\s*(\@.*\@)*\s*\$\(mkinstalldirs\)/
+      || $line =~ /^\s*(\@.*\@)*\s*\$\(INSTALL\S*\)/
+      || $line =~ /^\s*(\@.*\@)*\s*(-?rm.*) \S*$/)
+  {
+    $line =~ s/^(.*) ([^\s]+)\s*$/$1 \$(DESTDIR)$2/ if ($line !~ /\$\(DESTDIR\)/);
+  }
+
+  if ($line ne $_[0]) {
+    $_[0] = quotemeta $_[0];
+    substituteLine($_[0], $line);
+  }
+}
+
+#---------------------------------------------------------------------------
+# libtool is very hard to persuade it could use -Wl,--no-undefined for making
+# -no-undefined actually work
+# append $(KDE_NO_UNFINED) after every -no-undefined in LDFLAGS
+# this may go away if libtool ever does this on its own
+sub tag_NO_UNDEFINED () {
+    return if ($program !~ /_la$/);
+
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    return if (!defined($1));
+    return if ($1 !~ /CXXLINK/);
+
+    if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ ) {
+        return;
+    }
+
+    $lookup = $program . '\_LDFLAGS(\s*)=(.*)-no-undefined(.*)';
+    if ($MakefileData =~ /\n$lookup\n/) {
+	my $replace = $program . "\_LDFLAGS$1=$2-no-undefined \$(KDE_NO_UNDEFINED)$3";
+        substituteLine($lookup, $replace);
+    }
+}
+
+sub tag_CLOSURE () {
+    return if ($program !~ /_la$/);
+
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    return if (!defined($1));
+    return if ($1 !~ /CXXLINK/);
+
+    if ($MakefileData !~ /\n$program\_LDFLAGS\s*=.*-no-undefined/ &&
+        $MakefileData !~ /\n$program\_LDFLAGS\s*=.*KDE_PLUGIN/ ) {
+        print STDERR "Report: $program contains undefined in $printname\n" if ($program =~ /^lib/ && $dryrun);
+        return;
+    }
+
+    my $closure = $realname{$program} . ".closure";
+    my $lines = "$closure: \$($program\_OBJECTS) \$($program\_DEPENDENCIES)\n";
+    $lines .= "\t\@echo \"int main() {return 0;}\" > $program\_closure.$cxxsuffix\n";
+    $lines .= "\t\@\$\(LTCXXCOMPILE\) -c $program\_closure.$cxxsuffix\n";
+    $lines .= "\t\$\(CXXLINK\) $program\_closure.lo \$($program\_LDFLAGS) \$($program\_OBJECTS) \$($program\_LIBADD) \$(LIBS)\n";
+    $lines .= "\t\@rm -f $program\_closure.* $closure\n";
+    $lines .= "\t\@echo \"timestamp\" > $closure\n";
+    $lines .= "\n";
+    appendLines($lines);
+    $lookup = $realname{$program} . ": (.*)";
+    if ($MakefileData =~ /\n$lookup\n/) {
+        $lines  = "\@KDE_USE_CLOSURE_TRUE@". $realname{$program} . ": $closure $1";
+        $lines .= "\n\@KDE_USE_CLOSURE_FALSE@" . $realname{$program} . ": $1";
+        substituteLine($lookup, $lines);
+    }
+    $closure_output .= " $closure";
+}
+
+sub tag_NMCHECK () {
+    return if ($program !~ /_la$/);
+    my $lookup = quotemeta($realname{$program}) . ":.*?\n\t.*?\\((.*?)\\) .*\n";
+    $MakefileData =~ m/$lookup/;
+    my $linkcmd = $1;
+    return if (!defined($1));
+    return if ($linkcmd !~ /CXXLINK/ && $linkcmd !~ /LINK/);
+
+    $lookup = $program . '_NMCHECK\s*=([^\n]*)';
+    if( $MakefileData !~ m/\n$lookup\n/ ) {
+	return;
+    }
+    my $allowed = $1;
+    $allowed =~ s/^ *//;
+    $lookup = $program . '_NMCHECKWEAK\s*=([^\n]*)';
+    my $weak = "";
+    my $is_weak = 0;
+    if( $MakefileData =~ m/\n$lookup\n/ ) {
+	$weak = $1;
+	$is_weak = 1;
+    }
+    $weak =~ s/^ *//;
+
+    if( $is_weak )
+    {
+	$weak = '--allowweak=\'' . $weak . '\' ';
+    }
+    my $nmline = "\@KDE_USE_NMCHECK_TRUE@\t\@\$(MAKE) \$(AM_MAKEFLAGS) nmcheck_$realname{$program} || ( rm -f $realname{$program}; exit 1 )";
+    $lookup = '(\t\$\(CXXLINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
+    if( $MakefileData =~ /\n$lookup\n/ ) {
+	my $oldstuff = $1;
+	substituteLine( $lookup, $oldstuff . "\n" . $nmline );
+    }
+    $lookup = '(\t\$\(LINK\)[^\n]*' . $program . '_OBJECTS[^\n]*)';
+    if( $MakefileData =~ /\n$lookup\n/ ) {
+	my $oldstuff = $1;
+	substituteLine( $lookup, $oldstuff . "\n" . $nmline );
+    }
+    $nmline = "\@\$(top_srcdir)/admin/nmcheck $realname{$program} \'$allowed\' $weak";
+    appendLines( "\nnmcheck_$realname{$program}: $realname{$program} \n\t$nmline\n" );
+    $target_adds{ "nmcheck" } .= "nmcheck_$realname{$program} ";
+}
+
+sub tag_DIST () {
+    my %foundfiles = ();
+    opendir (THISDIR, ".");
+    foreach $entry (readdir(THISDIR)) {
+        next if ($entry eq "CVS" || $entry =~ /^\./  || $entry eq "Makefile" || $entry =~ /~$/ || $entry =~ /^\#.*\#$/);
+        next if (! -f $entry);
+        next if ($entry =~ /\.moc/ || $entry =~ /\.moc.$cppExt$/ || $entry =~ /\.lo$/ || $entry =~ /\.la$/ || $entry =~ /\.o/);
+        next if ($entry =~ /\.all_$cppExt\.$cppExt$/);
+        $foundfiles{$entry} = 1;
+    }
+    closedir (THISDIR);
+
+    # doing this for MAINTAINERCLEANFILES would be wrong
+    my @marks = ("EXTRA_DIST", "DIST_COMMON", '\S*_SOURCES', '\S*_HEADERS', 'CLEANFILES', 'DISTCLEANFILES', '\S*_OBJECTS');
+    foreach $mark (@marks) {
+        while ($MakefileData =~ /\n($mark)\s*=[ \t]*([^\n]*)/g) {
+	    my $cleanfiles_str = $2;
+            foreach $file (split('[\034\s]+', $cleanfiles_str)) {
+                $file =~ s/\.\///;
+                $foundfiles{$file} = 0 if (defined $foundfiles{$file});
+            }
+        }
+    }
+    my @files = ("Makefile", "config.cache", "config.log", "stamp-h",
+                 "stamp-h1", "stamp-h1", "config.h", "Makefile", 
+                 "config.status", "config.h", "libtool", "core" );
+    foreach $file (@files) {
+        $foundfiles{$file} = 0 if (defined $foundfiles{$file});
+    }
+
+    my $KDE_DIST = "";
+    foreach $file (keys %foundfiles) {
+        if ($foundfiles{$file} == 1) {
+            $KDE_DIST .= "$file ";
+        }
+    }
+    if ($KDE_DIST) {
+        print "KDE_DIST $printname $KDE_DIST\n" if ($verbose);
+
+        my $lookup = 'DISTFILES\s*=[ \t]*(.*)';
+        if ($MakefileData =~ /\n$lookup/) {
+            substituteLine($lookup, "DISTFILES = $1 \$(KDE_DIST)");
+            appendLines("KDE_DIST=$KDE_DIST\n");
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+# Returns 0 if the line was processed - 1 otherwise.
+# Errors are logged in the global $errorflags
+sub tag_DOCFILES ()
+{
+    $target_adds{"all"} .= "docs-am ";
+
+    my $lookup = 'KDE_DOCS\s*=[ \t]*([^\n]*)';
+    goto nodocs    if ($MakefileData !~ /\n$lookup/);
+    print STDOUT "KDE_DOCS processing <$1>\n"   if ($verbose);
+
+    my $tmp = $1;
+
+    # Either find the files in the directory (AUTO) or use
+    # only the specified po files.
+    my $files = "";
+    my $appname = $tmp;
+    $appname =~ s/^(\S*)\s*.*$/$1/;
+    if ($appname =~ /AUTO/) {
+      $appname = basename($makefileDir);
+      if ("$appname" eq "en") {
+      	  print STDERR "Error: KDE_DOCS = AUTO relies on the directory name. Yours is 'en' - you most likely want something else, e.g. KDE_DOCS = myapp\n";
+          exit(1);
+      }
+    }
+
+    if ($tmp !~ / - /)
+    {
+        opendir (THISDIR, ".");
+	foreach $entry (readdir(THISDIR)) {
+	  next if ($entry eq "CVS" || $entry =~ /^\./  || $entry =~ /^Makefile/ || $entry =~ /~$/ || $entry =~ /^\#.*\#$/ || $entry eq "core" || $entry eq "index.cache.bz2");
+	  next if (! -f $entry);
+	  $files .= "$entry ";
+	}
+        closedir (THISDIR);
+        print STDOUT "docfiles found = $files\n"   if ($verbose);
+    }
+    else
+    {
+        $tmp =~ s/\034/ /g;
+	$tmp =~ s/^\S*\s*-\s*//;
+        $files = $tmp;
+    }
+    goto nodocs if (!$files);        # Nothing to do
+
+    if ($files =~ /(^| )index\.docbook($| )/) {
+
+      my $lines = "";
+      my $lookup = 'MEINPROC\s*=';
+      if ($MakefileData !~ /\n($lookup)/) {
+	$lines = "MEINPROC=/\$(kde_bindir)/meinproc\n";
+      }
+      $lookup = 'KDE_XSL_STYLESHEET\s*=';
+      if ($MakefileData !~ /\n($lookup)/) {
+        $lines .= "KDE_XSL_STYLESHEET=/\$(kde_datadir)/ksgmltools2/customization/kde-chunk.xsl\n";
+      }
+      $lookup = '\nindex.cache.bz2:';
+      if ($MakefileData !~ /\n($lookup)/) {
+         $lines .= "index.cache.bz2: \$(srcdir)/index.docbook \$(KDE_XSL_STYLESHEET) $files\n";
+         $lines .= "\t\@if test -n \"\$(MEINPROC)\"; then echo \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; \$(MEINPROC) --check --cache index.cache.bz2 \$(srcdir)/index.docbook; fi\n";
+         $lines .= "\n";
+      }
+
+      $lines .= "docs-am: index.cache.bz2\n";
+      $lines .= "\n";
+      $lines .= "install-docs: docs-am install-nls\n";
+      $lines .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
+      $lines .= "\t\@if test -f index.cache.bz2; then \\\n";
+      $lines .= "\techo \$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\t\$(INSTALL_DATA) index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\telif test -f  \$(srcdir)/index.cache.bz2; then \\\n";
+      $lines .= "\techo \$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\t\$(INSTALL_DATA) \$(srcdir)/index.cache.bz2 \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/; \\\n";
+      $lines .= "\tfi\n";
+      $lines .= "\t-rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
+      $lines .= "\t\$(LN_S) \$(kde_libs_htmldir)/$kdelang/common \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/common\n";
+
+      $lines .= "\n";
+      $lines .= "uninstall-docs:\n";
+      $lines .= "\t-rm -rf \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
+      $lines .= "\n";
+      $lines .= "clean-docs:\n";
+      $lines .= "\t-rm -f index.cache.bz2\n";
+      $lines .= "\n";
+      $target_adds{"install-data-am"} .= "install-docs ";
+      $target_adds{"uninstall"} .= "uninstall-docs ";
+      $target_adds{"clean-am"} .= "clean-docs ";
+      appendLines ($lines);
+    } else {
+      appendLines("docs-am: $files\n");
+    }
+
+    $target_adds{"install-data-am"} .= "install-nls ";
+    $target_adds{"uninstall"} .= "uninstall-nls ";
+
+    $tmp = "install-nls:\n";
+    $tmp .= "\t\$(mkinstalldirs) \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname\n";
+    $tmp .= "\t\@for base in $files; do \\\n";
+    $tmp .= "\t  echo \$(INSTALL_DATA) \$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\t  \$(INSTALL_DATA) \$(srcdir)/\$\$base \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\tdone\n";
+    if ($appname eq 'common') {
+      $tmp .= "\t\@echo \"merging common and language specific dir\" ;\\\n";
+      $tmp .= "\tif test ! -f \$(kde_htmldir)/en/common/kde-common.css; then echo 'no english docs found in \$(kde_htmldir)/en/common/'; exit 1; fi \n";
+      $tmp .= "\t\@com_files=`cd \$(kde_htmldir)/en/common && echo *` ;\\\n";
+      $tmp .= "\tcd \$(DESTDIR)\$(kde_htmldir)/$kdelang/common ;\\\n";
+      $tmp .= "\tif test -n \"\$\$com_files\"; then for p in \$\$com_files ; do \\\n";
+      $tmp .= "\t  case \" $files \" in \\\n";
+      $tmp .= "\t    *\" \$\$p \"*) ;; \\\n";
+      $tmp .= "\t    *) test ! -f \$\$p && echo \$(LN_S) ../../en/common/\$\$p \$(DESTDIR)\$(kde_htmldir)/$kdelang/common/\$\$p && \$(LN_S) ../../en/common/\$\$p \$\$p ;; \\\n";
+      $tmp .= "\t  esac ; \\\n";
+      $tmp .= "\tdone ; fi ; true\n";
+    }
+    $tmp .= "\n";
+    $tmp .= "uninstall-nls:\n";
+    $tmp .= "\tfor base in $files; do \\\n";
+    $tmp .= "\t  rm -f \$(DESTDIR)\$(kde_htmldir)/$kdelang/$appname/\$\$base ;\\\n";
+    $tmp .= "\tdone\n\n";
+    appendLines ($tmp);
+
+    $target_adds{"distdir"} .= "distdir-nls ";
+
+    $tmp = "distdir-nls:\n";
+    $tmp .= "\tfor file in $files; do \\\n";
+    $tmp .= "\t  cp \$(srcdir)/\$\$file \$(distdir); \\\n";
+    $tmp .= "\tdone\n";
+
+    appendLines ($tmp);
+
+    return 0;
+
+  nodocs:
+    appendLines("docs-am:\n");
+    return 1;
+}
+
+#-----------------------------------------------------------------------------
+# Find headers in any of the source directories specified previously, that
+# are candidates for "moc-ing".
+sub findMocCandidates ()
+{
+    foreach $dir (@headerdirs)
+    {
+        my @list = ();
+        opendir (SRCDIR, "$dir");
+        @hFiles = grep { /.+\.$hExt$/o && !/^\./ } readdir(SRCDIR);
+        closedir SRCDIR;
+        foreach $hf (@hFiles)
+        {
+            next if ($hf =~ /^\.\#/);
+	    $hf =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+	    next if ($uiFiles{$1});
+            open (HFIN, "$dir/$hf") || die "Could not open $dir/$hf: $!\n";
+            my $hfsize = 0;
+            seek(HFIN, 0, 2);
+            $hfsize = tell(HFIN);
+            seek(HFIN, 0, 0);
+            read HFIN, $hfData, $hfsize;
+            close HFIN;
+            # push (@list, $hf) if(index($hfData, "Q_OBJECT") >= 0); ### fast but doesn't handle //Q_OBJECT
+	    # handle " { friend class blah; Q_OBJECT ", but don't match antlarr_Q_OBJECT (\b).
+            if ( $hfData =~ /{([^}]*)\bQ_OBJECT/s ) {
+                push (@list, $hf) unless $1 =~ m://[^\n]*Q_OBJECT[^\n]*$:s;  ## reject "// Q_OBJECT"
+            }
+        }
+        # The assoc array of root of headerfile and header filename
+        foreach $hFile (@list)
+        {
+            $hFile =~ /(.*)\.[^\.]*$/;          # Find name minus extension
+            if ($mocFiles{$1})
+            {
+              print STDERR "Warning: Multiple header files found for $1\n";
+              next;                           # Use the first one
+            }
+            $mocFiles{$1} = "$dir\035$hFile";   # Add relative dir
+        }
+    }
+
+    return 0;
+}
+
+#-----------------------------------------------------------------------------
+
+# The programmer has specified a moc list. Prune out the moc candidates
+# list that we found based on looking at the header files. This generates
+# a warning if the programmer gets the list wrong, but this doesn't have
+# to be fatal here.
+sub pruneMocCandidates ($)
+{
+    my %prunedMoc = ();
+    local @mocList = split(' ', $_[0]);
+
+    foreach $mocname (@mocList)
+    {
+        $mocname =~ s/\.moc$//;
+        if ($mocFiles{$mocname})
+        {
+            $prunedMoc{$mocname} = $mocFiles{$mocname};
+        }
+        else
+        {
+            my $print = $makefileDir;
+            $print =~ s/^\Q$topdir\E\\//;
+            # They specified a moc file but we can't find a header that
+            # will generate this moc file. That's possible fatal!
+            print STDERR "Warning: No moc-able header file for $print/$mocname\n";
+        }
+    }
+
+    undef %mocFiles;
+    %mocFiles = %prunedMoc;
+}
+
+#-----------------------------------------------------------------------------
+
+# Finds the cpp files (If they exist).
+# The cpp files get appended to the header file separated by \035
+sub checkMocCandidates ()
+{
+    my @cppFiles;
+    my $cpp2moc;  # which c++ file includes which .moc files
+    my $moc2cpp;  # which moc file is included by which c++ files
+
+    return unless (keys %mocFiles);
+    opendir(THISDIR, ".") || return;
+    @cppFiles = grep { /.+\.$cppExt$/o  && !/.+\.moc\.$cppExt$/o
+                         && !/.+\.all_$cppExt\.$cppExt$/o
+			 && !/^\./  } readdir(THISDIR);
+    closedir THISDIR;
+    return unless (@cppFiles);
+    my $files = join (" ", @cppFiles);
+    $cpp2moc = {};
+    $moc2cpp = {};
+    foreach $cxxf (@cppFiles)
+    {
+      open (CXXFIN, $cxxf) || die "Could not open $cxxf: $!\n";
+      seek(CXXFIN, 0, 2);
+      my $cxxfsize = tell(CXXFIN);
+      seek(CXXFIN, 0, 0);
+      read CXXFIN, $cxxfData, $cxxfsize;
+      close CXXFIN;
+      while(($cxxfData =~ m/^[ \t]*\#include\s*[<\"](.*\.moc)[>\"]/gm)) {
+	$cpp2moc->{$cxxf}->{$1} = 1;
+	$moc2cpp->{$1}->{$cxxf} = 1;
+      }
+    }
+    foreach my $mocFile (keys (%mocFiles))
+    {
+	@cppFiles = keys %{$moc2cpp->{"$mocFile.moc"}};
+        if (@cppFiles == 1) {
+            $mocFiles{$mocFile} .= "\035" . $cppFiles[0];
+	    push(@depend, $mocFile);
+        } elsif (@cppFiles == 0) {
+            push (@newObs, $mocFile);           # Produce new object file
+            next    if ($haveAutomocTag);       # This is expected...
+            # But this is an error we can deal with - let them know
+            print STDERR
+                "Warning: No c++ file that includes $mocFile.moc\n";
+        } else {
+            # We can't decide which file to use, so it's fatal. Although as a
+            # guess we could use the mocFile.cpp file if it's in the list???
+            print STDERR
+                "Error: Multiple c++ files that include $mocFile.moc\n";
+            print STDERR "\t",join ("\t", @cppFiles),"\n";
+            $errorflag = 1;
+            delete $mocFiles{$mocFile};
+            # Let's continue and see what happens - They have been told!
+        }
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+# Add the rules for generating moc source from header files
+# For Automoc output *.moc.cpp but normally we'll output *.moc
+# (We must compile *.moc.cpp separately. *.moc files are included
+# in the appropriate *.cpp file by the programmer)
+sub addMocRules ()
+{
+    my $cppFile;
+    my $hFile;
+
+    foreach $mocFile (keys (%mocFiles))
+    {
+        undef $cppFile;
+        ($dir, $hFile, $cppFile) =  split ("\035", $mocFiles{$mocFile}, 3);
+        $dir =~ s#^\.#\$(srcdir)#;
+        if (defined ($cppFile))
+        {
+	  $cppFile =~ s,\.[^.]*$,,;
+	  $target_adds{"$cppFile.o"} .= "$mocFile.moc ";
+	  $target_adds{"$cppFile.lo"} .= "$mocFile.moc ";
+	  appendLines ("$mocFile.moc: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile.moc\n");
+	  $cleanMoc .= " $mocFile.moc";
+	  appendLines ("mocs: $mocFile.moc\n");
+        }
+        else
+        {
+            appendLines ("$mocFile$mocExt: $dir/$hFile\n\t\$(MOC) $dir/$hFile -o $mocFile$mocExt\n");
+            $cleanMoc .= " $mocFile$mocExt";
+	    appendLines ("mocs: $mocFile$mocExt\n");
+        }
+    }
+}
+
+sub make_bcheck_target()
+{
+    my $lookup = 'RECURSIVE_TARGETS\s*=[ \t]*(.*)';
+    my $bcheckdep = "bcheck-am";
+    $bcheckdep = "bcheck-recursive" if ($MakefileData =~ /\n$lookup/);
+
+    my $headers= "";
+    $headers = $1 if($MakefileData =~ /\nHEADERS\s*=[ \t]*(.+)/);
+    $headers =~ s/\$\((?:noinst|EXTRA)_HEADERS\)//g;
+
+    $target_adds{"clean-am"} .= "clean-bcheck ";
+
+    my $t = "clean-bcheck: \n" .
+            "\trm -f *.bchecktest.cc *.bchecktest.cc.class a.out\n\n" .
+            "bcheck: $bcheckdep\n\n" .
+            "bcheck-am:\n" .
+           "\t\@for i in $headers; do \\\n" .
+           "\t    if test \$(srcdir)/\$\$i -nt \$\$i.bchecktest.cc; then \\\n" . 
+           "\t        echo \"int main() {return 0;}\" > \$\$i.bchecktest.cc ; \\\n" .
+           "\t        echo \"#include \\\"\$\$i\\\"\" >> \$\$i.bchecktest.cc ; \\\n" .
+           "\t        echo \"\$\$i\"; \\\n" . 
+           "\t        if ! ";
+    $t .=  $cxxsuffix eq "KKK" ?
+           "\$(CXX) \$(DEFS) -I. -I\$(srcdir) -I\$(top_builddir) \$(INCLUDES) \$(AM_CPPFLAGS) \$(CPPFLAGS) \$(CXXFLAGS) \$(KDE_CXXFLAGS) " :
+           "\$(CXXCOMPILE) ";
+    $t .=  " --dump-class-hierarchy -c \$\$i.bchecktest.cc; then \\\n" .
+           "\t            rm -f \$\$i.bchecktest.cc; exit 1; \\\n" .
+           "\t        fi ; \\\n" .
+           "\t        echo \"\" >> \$\$i.bchecktest.cc.class; \\\n" .
+           "\t        perl \$(top_srcdir)/admin/bcheck.pl \$\$i.bchecktest.cc.class || { rm -f \$\$i.bchecktest.cc; exit 1; }; \\\n" .
+           "\t        rm -f a.out; \\\n" .
+           "\t    fi ; \\\n" .
+           "\tdone\n";
+    appendLines("$t\n");
+}
+
+sub make_meta_classes ()
+{
+    return if ($kdeopts{"qtonly"});
+
+    my $cppFile;
+    my $hFile;
+    my $moc_class_headers = "";
+    foreach $program (@programs) {
+	my $mocs = "";
+	my @progsources = split(/[\034\s]+/, $sources{$program});
+	my @depmocs = split(' ', $dependmocs{$program});
+	my %shash = (), %mhash = ();
+	@shash{@progsources} = 1;  # we are only interested in the existence
+	@mhash{@depmocs} = 1;
+
+	print STDOUT "program=$program\n" if ($verbose);
+	print STDOUT "psources=[".join(' ', keys %shash)."]\n" if ($verbose);
+	print STDOUT "depmocs=[".join(' ', keys %mhash)."]\n" if ($verbose);
+	print STDOUT "globalmocs=[".join(' ', keys(%globalmocs))."]\n" if ($verbose);
+	foreach my $mocFile (keys (%globalmocs))
+	{
+	    my ($dir, $hFile, $cppFile) = split ("\035", $globalmocs{$mocFile}, 3);
+	    if (defined ($cppFile))
+	    {
+		$mocs .= " $mocFile.moc" if exists $shash{$cppFile};
+	    }
+	    else
+	    {
+		# Bah. This is the case, if no C++ file includes the .moc
+		# file. We make a .moc.cpp file for that. Unfortunately this
+		# is not included in the %sources hash, but rather is mentioned
+		# in %dependmocs. If the user wants to use AUTO he can't just
+		# use an unspecific METAINCLUDES. Instead he must use
+		# program_METAINCLUDES. Anyway, it's not working real nicely.
+		# E.g. Its not clear what happens if user specifies two
+		# METAINCLUDES=AUTO in the same Makefile.am.
+		$mocs .= " $mocFile.moc.$cxxsuffix"
+		    if exists $mhash{$mocFile.".moc.$cxxsuffix"};
+	    }
+	}
+	if ($mocs) {
+	    print STDOUT "==> mocs=[".$mocs."]\n" if ($verbose);
+	}
+	print STDOUT "\n" if $verbose;
+    }
+    if ($moc_class_headers) {
+        appendLines ("$cleantarget-moc-classes:\n\t-rm -f $moc_class_headers\n");
+        $target_adds{"$cleantarget-am"} .= "$cleantarget-moc-classes ";
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+sub updateMakefile ()
+{
+    return if ($dryrun);
+
+    open (FILEOUT, "> $makefile")
+                        || die "Could not create $makefile: $!\n";
+
+    $MakefileData =~ s/\034/\\\n/g;    # Restore continuation lines
+    # Append our $progId line, _below_ the "generated by automake" line
+    # because automake-1.6 relies on the first line to be his own.
+    my $progIdLine = "\# $progId - " . '$Revision: 1.8 $ '."\n";
+    if ( !( $MakefileData =~ s/^(.*generated .*by automake.*\n)/$1$progIdLine/ ) ) {
+        warn "automake line not found in $makefile\n";
+	# Fallback: first line
+        print FILEOUT $progIdLine;
+    };
+    print FILEOUT $MakefileData;
+    close FILEOUT;
+}
+
+#-----------------------------------------------------------------------------
+
+# The given line needs to be removed from the makefile
+# Do this by adding the special "removed line" comment at the line start.
+sub removeLine ($$)
+{
+    my ($lookup, $old) = @_;
+
+    $old =~ s/\034/\\\n#>- /g;          # Fix continuation lines
+    $MakefileData =~ s/\n$lookup/\n#>\- $old/;
+}
+
+#-----------------------------------------------------------------------------
+
+# Replaces the old line with the new line
+# old line(s) are retained but tagged as removed. The new line(s) have the
+# "added" tag placed before it.
+sub substituteLine ($$)
+{
+    my ($lookup, $new) = @_;
+
+    if ($MakefileData =~ /\n($lookup)/) {
+      $old = $1;
+      $old =~ s/\034/\\\n#>\- /g;         # Fix continuation lines
+      my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
+      $new =~ s/\\\n/\034/g;
+      $MakefileData =~ s/\n$lookup/\n#>- $old\n#>\+ $newCount\n$new/;
+    } else {
+        warn "Warning: substitution of \"$lookup\" in $printname failed\n";
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+# Slap new lines on the back of the file.
+sub appendLines ($)
+{
+  my ($new) = @_;
+  my $copynew = $new;
+  my $newCount = ($new =~ tr/\034//) + ($new =~ tr/\n//) + 1;
+  $new =~ s/\\\n/\034/g;        # Fix continuation lines
+  $MakefileData .= "\n#>\+ $newCount\n$new";
+}
+
+#-----------------------------------------------------------------------------
+
+# Restore the Makefile.in to the state it was before we fiddled with it
+sub restoreMakefile ()
+{
+    $MakefileData =~ s/# $progId[^\n\034]*[\n\034]*//g;
+    # Restore removed lines
+    $MakefileData =~ s/([\n\034])#>\- /$1/g;
+    # Remove added lines
+    while ($MakefileData =~ /[\n\034]#>\+ ([^\n\034]*)/)
+    {
+        my $newCount = $1;
+        my $removeLines = "";
+        while ($newCount--) {
+            $removeLines .= "[^\n\034]*([\n\034]|)";
+        }
+        $MakefileData =~ s/[\n\034]#>\+.*[\n\034]$removeLines/\n/;
+    }
+}
+
+#-----------------------------------------------------------------------------
+
+# find the .kcfg file listed in the .kcfgc file
+sub findKcfgFile($)
+{
+  my ($kcfgf) = @_;
+  open (KCFGFIN, $kcfgf) || die "Could not open $kcfgf: $!\n";
+  seek(KCFGFIN, 0, 2);
+  my $kcfgfsize = tell(KCFGFIN);
+  seek(KCFGFIN, 0, 0);
+  read KCFGFIN, $kcfgfData, $kcfgfsize;
+  close KCFGFIN;
+  if(($kcfgfData =~ m/^File=(.*\.kcfg)/gm)) {
+    $kcfg = $1;
+  }
+}

Added: kde-extras/kpogre/branches/upstream/current/admin/bcheck.pl
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/bcheck.pl	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/bcheck.pl	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,157 @@
+#!/usr/bin/perl -w
+
+use DB_File;
+use Fcntl ':flock';
+
+if (!defined($ARGV[0])) {
+    print "usage: requires .class dump as parameter!\n";
+    exit;
+}
+
+sub bailout
+{
+    untie %bcheckdb if(defined(%bcheckdb));
+
+    if(defined(MYLOCK)) {
+        flock MYLOCK, LOCK_UN;
+        close(MYLOCK);
+    }
+
+    print @_;
+    exit 5;
+}
+
+sub ask_user
+{
+    my ($dbkey, $dbchunk) = @_;
+
+    if (defined($ENV{"BCHECK_UPDATE"})) {
+        $bcheckdb{$dbkey} = $dbchunk;
+        return;
+    }
+
+    &bailout("BC problem detected") if (! -t STDIN);
+
+    print "(I)gnore / (Q)uit / (U)pdate: ";
+
+    my $key;
+    while(defined(read STDIN, $key, 1)) {
+        $key = lc($key);
+
+        print "got: >$key<\n";
+
+        return if ($key eq 'i');
+
+        &bailout("BC problem. aborted") if ($key eq 'q');
+
+        if ($key eq 'u') {
+            $bcheckdb{$dbkey} = $dbchunk;
+            return;
+        }
+        print "\n(I)gnore / (Q)uit / (U)pdate: ";
+    }
+}
+
+sub diff_chunk($$)
+{
+    my ($oldl, $newl) = @_;
+    my @old = split /^/m, $oldl;
+    my @new = split /^/m, $newl;
+    my $haschanges = 0;
+    my $max = $#old > $#new ? $#old : $#new;
+
+    die "whoops. key different" if ($old[0] ne $new[0]);
+
+    if ($#old != $#new) {
+        warn ("Structural difference.\n");
+        print @old;
+        print "-----------------------------------------------\n";
+        print @new;
+        $haschanges = 1;
+        return $haschanges;
+    }
+
+    print $old[0];
+
+    my ($class) = ($old[0] =~ /^(?:Class |Vtable for )(\S+)/);
+
+    my $c = 1;
+    while ($c < $max) {
+        my ($o, $n) = ($old[$c], $new[$c]);
+        chomp $o;
+        chomp $n;
+        $c++;
+        next if ($o eq $n);
+
+        if(defined($class) and $n =~ /^(\d+\s+)\w+(::\S+\s*.*)$/) {
+            next if ($n eq "$1$class$2");
+        }
+
+        $haschanges = 1;
+
+        print "-$o\n+$n\n\n";
+    }
+
+    return $haschanges;
+}
+
+local $dblock = $ENV{"HOME"} . "/bcheck.lock";
+my $dbfile = $ENV{"HOME"} . "/bcheck.db";
+my $cdump  = $ARGV[0];
+
+die "file $cdump is not readable: $!" if (! -f $cdump);
+
+# make sure the advisory lock exists
+open(MYLOCK, ">$dblock");
+print MYLOCK "";
+
+flock MYLOCK, LOCK_EX;
+
+tie %bcheckdb, 'DB_File', $dbfile;
+
+my $chunk = "";
+
+open (IN, "<$cdump") or die "cannot open $cdump: $!";
+while (<IN>) {
+
+    chop;
+
+    s/0x[0-9a-fA-F]+/0x......../g;
+    s/base size=/size=/g;
+    s/\(\)\s*$//g;
+    s/base align=/align=/g;
+
+    $chunk .= $_ . "\n";
+
+    if(/^\s*$/) {
+        my @lines = split /^/m, $chunk;
+        my $key = $lines[0];
+        chomp $key;
+
+        if($key !~ /<anonymous struct>/ &&
+           $key !~ /<anonymous union>/) {
+            if(defined($bcheckdb{$key})) {
+                my $dbversion = $bcheckdb{$key};
+
+                if($dbversion ne $chunk) {
+                     &ask_user($key, $chunk) if(&diff_chunk($dbversion, $chunk));
+                }
+            }
+            else {
+                $bcheckdb{$key} = $chunk;
+                print "NEW: $key\n";
+            }
+        }
+
+        $chunk = "";
+        next;
+    }
+
+}
+close(IN);
+
+untie %bcheckdb;
+flock MYLOCK, LOCK_UN;
+close(MYLOCK);
+
+exit 0;

Added: kde-extras/kpogre/branches/upstream/current/admin/compile
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/compile	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/compile	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,142 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as `compile cc -o foo foo.c'.
+	# So we strip `-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no `-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # `.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use `[/.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/compile
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/conf.change.pl
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/conf.change.pl	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/conf.change.pl	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,191 @@
+#!/usr/bin/env perl
+
+# this script patches a config.status file, to use our own perl script
+# in the main loop
+# we do it this way to circumvent hacking (and thereby including)
+# autoconf function (which are GPL) into our LGPL acinclude.m4.in
+# written by Michael Matz <matz at kde.org>
+# adapted by Dirk Mueller <mueller at kde.org>
+#
+#   This file is free software; you can redistribute it and/or
+#   modify it under the terms of the GNU Library General Public
+#   License as published by the Free Software Foundation; either
+#   version 2 of the License, or (at your option) any later version.
+
+#   This library is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   Library General Public License for more details.
+
+#   You should have received a copy of the GNU Library General Public License
+#   along with this library; see the file COPYING.LIB.  If not, write to
+#   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+#   Boston, MA 02110-1301, USA.
+
+# we have to change two places
+# 1. the splitting of the substitutions into chunks of 90 (or even 48 in
+#    later autoconf's
+# 2. the big main loop which patches all Makefile.in's
+
+use strict;
+use File::Basename;
+
+my $ac_aux_dir = dirname($0);
+my ($flag);
+my $ac_version = 0;
+my $vpath_seen = 0;
+$flag = 0;
+
+while (<>) {
+# usage of $flag: 0 -- we have seen nothing yet
+#   1 -- we are in (1)
+#   2 -- we have ended (1)
+#   3 -- we are in (2)
+#   4 -- we ended (2)
+
+    if ($flag == 4) {
+        print;
+    } elsif ($flag == 0) {
+# 1. begins with (including): "ac_max_sed_\S+\s*=\s*[0-9]+..."
+#    ends with (excluding) "CONFIG_FILE=..."
+#    in later autoconf (2.14.1) there is no CONFIG_FILES= line,
+#    but instead the (2) directly follow (1)
+        if (/^\s*ac_max_sed_([a-z]+).*=\s*([0-9]+)/ ) {
+	    $flag = 1;
+	    if ($1 eq 'lines') {
+                # lets hope its different with 2141, 
+                # wasn't able to verify that
+              if ($2 eq '48') {
+                $ac_version = 250;
+              }
+              else {
+	        $ac_version = 2141;
+              }
+	    } elsif ($1 eq 'cmds') {
+	        $ac_version = 213;
+	    }
+	    # hmm, we don't know the autoconf version, but we try anyway
+	} else {
+	    print;
+	}
+    } elsif ($flag == 1) {
+        if (/^\s*CONFIG_FILES=/ && ($ac_version != 250)) {
+	     print;
+	     $flag = 2;
+	} elsif (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
+	     $flag = 3;
+	}
+    } elsif ($flag == 2) {
+# 2. begins with: "for ac_file in.*CONFIG_FILES"  (the next 'for' after (1))
+#    end with: "rm -f conftest.s\*"
+# on autoconf 250, it ends with '# CONFIG_HEADER section'
+#
+# gg: if a post-processing commands section is found first, 
+#    stop there and insert a new loop to honor the case/esac.
+# (pattern: /^\s+#\sRun the commands associated with the file./)
+
+	if (/^\s*for\s+ac_file\s+in\s+.*CONFIG_FILES/ ) {
+	    $flag = 3;
+	} else {
+	    print;
+	}
+    } elsif ($flag == 3) {
+        if (/^\s*rm\s+-f\s+conftest/ ) {
+	    $flag = 4;
+	    &insert_main_loop();
+	} elsif (/^\s*rm\s+-f\s+.*ac_cs_root/ ) {
+	    $flag = 4;
+	    &insert_main_loop();
+	    #die "hhhhhhh";
+	    if ($ac_version != 2141) {
+	        print STDERR "hmm, don't know autoconf version\n";
+	    }
+        } elsif (/^\#\s*CONFIG_(HEADER|COMMANDS) section.*|^\s+#\s(Run) the commands associated/) {
+          $flag = 4;
+          my $commands = defined $2;
+          &insert_main_loop();
+          $commands && insert_command_loop();
+          if($ac_version != 250) {
+            print STDERR "hmm, something went wrong :-(\n";
+          }
+	} elsif (/VPATH/ ) {
+	    $vpath_seen = 1;
+	}
+    }
+}
+
+die "wrong input (flag != 4)" unless $flag == 4;
+print STDERR "hmm, don't know autoconf version\n" unless $ac_version;
+
+sub insert_main_loop {
+
+  if ($ac_version == 250) {
+    &insert_main_loop_250();
+  }
+  else {
+    &insert_main_loop_213();
+  }
+}
+
+sub insert_main_loop_250 {
+
+  print <<EOF;
+  #echo Doing the fast build of Makefiles -- autoconf $ac_version
+EOF
+    if ($vpath_seen) {
+        print <<EOF;
+        # VPATH subst was seen in original config.status main loop
+  echo '/^[ 	]*VPATH[ 	]*=[^:]*\$/d' >>\$tmp/subs.sed
+EOF
+      }
+  print <<EOF;
+  rm -f \$tmp/subs.files
+  for ac_file in .. \$CONFIG_FILES ; do
+      if test "x\$ac_file" != x..; then
+          echo \$ac_file >> \$tmp/subs.files
+      fi
+  done
+  if test -f \$tmp/subs.files ; then
+      perl $ac_aux_dir/config.pl "\$tmp/subs.sed" "\$tmp/subs.files" "\$srcdir" "\$INSTALL"
+  fi
+  rm -f \$tmp/subs.files
+
+fi
+EOF
+  return;
+}
+
+sub insert_main_loop_213 {
+    print <<EOF;
+#echo Doing the fast build of Makefiles -- autoconf $ac_version
+if test "x\$ac_cs_root" = "x" ; then
+    ac_cs_root=conftest
+fi
+EOF
+    if ($vpath_seen) {
+      print <<EOF;
+# VPATH subst was seen in original config.status main loop
+echo '/^[ 	]*VPATH[ 	]*=[^:]*\$/d' >> \$ac_cs_root.subs
+EOF
+    }
+    print <<EOF;
+rm -f \$ac_cs_root.sacfiles
+for ac_file in .. \$CONFIG_FILES ; do
+    if test "x\$ac_file" != x..; then
+        echo \$ac_file >> \$ac_cs_root.sacfiles
+    fi
+done
+if test -f \$ac_cs_root.sacfiles ; then
+    perl $ac_aux_dir/config.pl "\$ac_cs_root.subs" "\$ac_cs_root.sacfiles" "\$ac_given_srcdir" "\$ac_given_INSTALL"
+fi
+rm -f \$ac_cs_root.s*
+
+EOF
+    return;
+}
+
+sub insert_command_loop {
+    print <<EOF;
+  for ac_file in .. \$CONFIG_FILES ; do
+EOF
+}

Added: kde-extras/kpogre/branches/upstream/current/admin/config.guess
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/config.guess	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/config.guess	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1464 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-06-30'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Originally written by Per Bothner <per at bothner.com>.
+# Please send patches to <config-patches at gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub.  If it succeeds, it prints the system name on stdout, and
+# exits with 0.  Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help" >&2
+       exit 1 ;;
+    * )
+       break ;;
+  esac
+done
+
+if test $# != 0; then
+  echo "$me: too many arguments$help" >&2
+  exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,)    echo "int x;" > $dummy.c ;
+	for c in cc gcc c89 c99 ; do
+	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+	     CC_FOR_BUILD="$c"; break ;
+	  fi ;
+	done ;
+	if test x"$CC_FOR_BUILD" = x ; then
+	  CC_FOR_BUILD=no_compiler_found ;
+	fi
+	;;
+ ,,*)   CC_FOR_BUILD=$CC ;;
+ ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi at noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+	PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+    *:NetBSD:*:*)
+	# NetBSD (nbsd) targets should (where applicable) match one or
+	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
+	# switched to ELF, *-*-netbsd* would select the old
+	# object file format.  This provides both forward
+	# compatibility and a consistent mechanism for selecting the
+	# object file format.
+	#
+	# Note: NetBSD doesn't particularly care about the vendor
+	# portion of the name.  We always set it to "unknown".
+	sysctl="sysctl -n hw.machine_arch"
+	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+	case "${UNAME_MACHINE_ARCH}" in
+	    armeb) machine=armeb-unknown ;;
+	    arm*) machine=arm-unknown ;;
+	    sh3el) machine=shl-unknown ;;
+	    sh3eb) machine=sh-unknown ;;
+	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+	esac
+	# The Operating System including object format, if it has switched
+	# to ELF recently, or will in the future.
+	case "${UNAME_MACHINE_ARCH}" in
+	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+		eval $set_cc_for_build
+		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+			| grep __ELF__ >/dev/null
+		then
+		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+		    # Return netbsd for either.  FIX?
+		    os=netbsd
+		else
+		    os=netbsdelf
+		fi
+		;;
+	    *)
+	        os=netbsd
+		;;
+	esac
+	# The OS release
+	# Debian GNU/NetBSD machines have a different userland, and
+	# thus, need a distinct triplet. However, they do not need
+	# kernel version information, so it can be replaced with a
+	# suitable tag, in the style of linux-gnu.
+	case "${UNAME_VERSION}" in
+	    Debian*)
+		release='-gnu'
+		;;
+	    *)
+		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+		;;
+	esac
+	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+	# contains redundant information, the shorter form:
+	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+	echo "${machine}-${os}${release}"
+	exit ;;
+    *:OpenBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
+    *:ekkoBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+	exit ;;
+    macppc:MirBSD:*:*)
+	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    *:MirBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
+    alpha:OSF1:*:*)
+	case $UNAME_RELEASE in
+	*4.0)
+		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+		;;
+	*5.*)
+	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+		;;
+	esac
+	# According to Compaq, /usr/sbin/psrinfo has been available on
+	# OSF/1 and Tru64 systems produced since 1995.  I hope that
+	# covers most systems running today.  This code pipes the CPU
+	# types through head -n 1, so we only detect the type of CPU 0.
+	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+	case "$ALPHA_CPU_TYPE" in
+	    "EV4 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV4.5 (21064)")
+		UNAME_MACHINE="alpha" ;;
+	    "LCA4 (21066/21068)")
+		UNAME_MACHINE="alpha" ;;
+	    "EV5 (21164)")
+		UNAME_MACHINE="alphaev5" ;;
+	    "EV5.6 (21164A)")
+		UNAME_MACHINE="alphaev56" ;;
+	    "EV5.6 (21164PC)")
+		UNAME_MACHINE="alphapca56" ;;
+	    "EV5.7 (21164PC)")
+		UNAME_MACHINE="alphapca57" ;;
+	    "EV6 (21264)")
+		UNAME_MACHINE="alphaev6" ;;
+	    "EV6.7 (21264A)")
+		UNAME_MACHINE="alphaev67" ;;
+	    "EV6.8CB (21264C)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8AL (21264B)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.8CX (21264D)")
+		UNAME_MACHINE="alphaev68" ;;
+	    "EV6.9A (21264/EV69A)")
+		UNAME_MACHINE="alphaev69" ;;
+	    "EV7 (21364)")
+		UNAME_MACHINE="alphaev7" ;;
+	    "EV7.9 (21364A)")
+		UNAME_MACHINE="alphaev79" ;;
+	esac
+	# A Pn.n version is a patched version.
+	# A Vn.n version is a released version.
+	# A Tn.n version is a released field test version.
+	# A Xn.n version is an unreleased experimental baselevel.
+	# 1.2 uses "1.2" for uname -r.
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	exit ;;
+    Alpha\ *:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# Should we change UNAME_MACHINE based on the output of uname instead
+	# of the specific Alpha model?
+	echo alpha-pc-interix
+	exit ;;
+    21064:Windows_NT:50:3)
+	echo alpha-dec-winnt3.5
+	exit ;;
+    Amiga*:UNIX_System_V:4.0:*)
+	echo m68k-unknown-sysv4
+	exit ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-amigaos
+	exit ;;
+    *:[Mm]orph[Oo][Ss]:*:*)
+	echo ${UNAME_MACHINE}-unknown-morphos
+	exit ;;
+    *:OS/390:*:*)
+	echo i370-ibm-openedition
+	exit ;;
+    *:z/VM:*:*)
+	echo s390-ibm-zvmoe
+	exit ;;
+    *:OS400:*:*)
+        echo powerpc-ibm-os400
+	exit ;;
+    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+	echo arm-acorn-riscix${UNAME_RELEASE}
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
+    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+	echo hppa1.1-hitachi-hiuxmpp
+	exit ;;
+    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+	if test "`(/bin/universe) 2>/dev/null`" = att ; then
+		echo pyramid-pyramid-sysv3
+	else
+		echo pyramid-pyramid-bsd
+	fi
+	exit ;;
+    NILE*:*:*:dcosx)
+	echo pyramid-pyramid-svr4
+	exit ;;
+    DRS?6000:unix:4.0:6*)
+	echo sparc-icl-nx6
+	exit ;;
+    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+	case `/usr/bin/uname -p` in
+	    sparc) echo sparc-icl-nx7; exit ;;
+	esac ;;
+    sun4H:SunOS:5.*:*)
+	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    i86pc:SunOS:5.*:*)
+	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:6*:*)
+	# According to config.sub, this is the proper way to canonicalize
+	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
+	# it's likely to be more like Solaris than SunOS4.
+	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    sun4*:SunOS:*:*)
+	case "`/usr/bin/arch -k`" in
+	    Series*|S4*)
+		UNAME_RELEASE=`uname -v`
+		;;
+	esac
+	# Japanese Language versions have a version number like `4.1.3-JL'.
+	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+	exit ;;
+    sun3*:SunOS:*:*)
+	echo m68k-sun-sunos${UNAME_RELEASE}
+	exit ;;
+    sun*:*:4.2BSD:*)
+	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	case "`/bin/arch`" in
+	    sun3)
+		echo m68k-sun-sunos${UNAME_RELEASE}
+		;;
+	    sun4)
+		echo sparc-sun-sunos${UNAME_RELEASE}
+		;;
+	esac
+	exit ;;
+    aushp:SunOS:*:*)
+	echo sparc-auspex-sunos${UNAME_RELEASE}
+	exit ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+	echo m68k-atari-mint${UNAME_RELEASE}
+        exit ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+	exit ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit ;;
+    m68k:machten:*:*)
+	echo m68k-apple-machten${UNAME_RELEASE}
+	exit ;;
+    powerpc:machten:*:*)
+	echo powerpc-apple-machten${UNAME_RELEASE}
+	exit ;;
+    RISC*:Mach:*:*)
+	echo mips-dec-mach_bsd4.3
+	exit ;;
+    RISC*:ULTRIX:*:*)
+	echo mips-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    VAX*:ULTRIX*:*:*)
+	echo vax-dec-ultrix${UNAME_RELEASE}
+	exit ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+	echo clipper-intergraph-clix${UNAME_RELEASE}
+	exit ;;
+    mips:*:*:UMIPS | mips:*:*:RISCos)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h>  /* for printf() prototype */
+	int main (int argc, char *argv[]) {
+#else
+	int main (argc, argv) int argc; char *argv[]; {
+#endif
+	#if defined (host_mips) && defined (MIPSEB)
+	#if defined (SYSTYPE_SYSV)
+	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_SVR4)
+	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+	#endif
+	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+	#endif
+	#endif
+	  exit (-1);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
+	echo mips-mips-riscos${UNAME_RELEASE}
+	exit ;;
+    Motorola:PowerMAX_OS:*:*)
+	echo powerpc-motorola-powermax
+	exit ;;
+    Motorola:*:4.3:PL8-*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+	echo powerpc-harris-powermax
+	exit ;;
+    Night_Hawk:Power_UNIX:*:*)
+	echo powerpc-harris-powerunix
+	exit ;;
+    m88k:CX/UX:7*:*)
+	echo m88k-harris-cxux7
+	exit ;;
+    m88k:*:4*:R4*)
+	echo m88k-motorola-sysv4
+	exit ;;
+    m88k:*:3*:R3*)
+	echo m88k-motorola-sysv3
+	exit ;;
+    AViiON:dgux:*:*)
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+	then
+	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+	       [ ${TARGET_BINARY_INTERFACE}x = x ]
+	    then
+		echo m88k-dg-dgux${UNAME_RELEASE}
+	    else
+		echo m88k-dg-dguxbcs${UNAME_RELEASE}
+	    fi
+	else
+	    echo i586-dg-dgux${UNAME_RELEASE}
+	fi
+ 	exit ;;
+    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
+	echo m88k-dolphin-sysv3
+	exit ;;
+    M88*:*:R3*:*)
+	# Delta 88k system running SVR3
+	echo m88k-motorola-sysv3
+	exit ;;
+    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+	echo m88k-tektronix-sysv3
+	exit ;;
+    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+	echo m68k-tektronix-bsd
+	exit ;;
+    *:IRIX*:*:*)
+	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+	exit ;;
+    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+    i*86:AIX:*:*)
+	echo i386-ibm-aix
+	exit ;;
+    ia64:AIX:*:*)
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:2:3)
+	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+		eval $set_cc_for_build
+		sed 's/^		//' << EOF >$dummy.c
+		#include <sys/systemcfg.h>
+
+		main()
+			{
+			if (!__power_pc())
+				exit(1);
+			puts("powerpc-ibm-aix3.2.5");
+			exit(0);
+			}
+EOF
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
+	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+		echo rs6000-ibm-aix3.2.4
+	else
+		echo rs6000-ibm-aix3.2
+	fi
+	exit ;;
+    *:AIX:*:[45])
+	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+		IBM_ARCH=rs6000
+	else
+		IBM_ARCH=powerpc
+	fi
+	if [ -x /usr/bin/oslevel ] ; then
+		IBM_REV=`/usr/bin/oslevel`
+	else
+		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+	fi
+	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+	exit ;;
+    *:AIX:*:*)
+	echo rs6000-ibm-aix
+	exit ;;
+    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+	echo romp-ibm-bsd4.4
+	exit ;;
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
+	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
+	exit ;;                             # report: romp-ibm BSD 4.3
+    *:BOSX:*:*)
+	echo rs6000-bull-bosx
+	exit ;;
+    DPX/2?00:B.O.S.:*:*)
+	echo m68k-bull-sysv3
+	exit ;;
+    9000/[34]??:4.3bsd:1.*:*)
+	echo m68k-hp-bsd
+	exit ;;
+    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+	echo m68k-hp-bsd4.4
+	exit ;;
+    9000/[34678]??:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	case "${UNAME_MACHINE}" in
+	    9000/31? )            HP_ARCH=m68000 ;;
+	    9000/[34]?? )         HP_ARCH=m68k ;;
+	    9000/[678][0-9][0-9])
+		if [ -x /usr/bin/getconf ]; then
+		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+                    case "${sc_cpu_version}" in
+                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                      532)                      # CPU_PA_RISC2_0
+                        case "${sc_kernel_bits}" in
+                          32) HP_ARCH="hppa2.0n" ;;
+                          64) HP_ARCH="hppa2.0w" ;;
+			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                        esac ;;
+                    esac
+		fi
+		if [ "${HP_ARCH}" = "" ]; then
+		    eval $set_cc_for_build
+		    sed 's/^              //' << EOF >$dummy.c
+
+              #define _HPUX_SOURCE
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+              	{
+              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+              	case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+              	    switch (bits)
+              		{
+              		case 64: puts ("hppa2.0w"); break;
+              		case 32: puts ("hppa2.0n"); break;
+              		default: puts ("hppa2.0"); break;
+              		} break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+              	    puts ("hppa2.0"); break;
+              #endif
+              	default: puts ("hppa1.0"); break;
+              	}
+                  exit (0);
+              }
+EOF
+		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    test -z "$HP_ARCH" && HP_ARCH=hppa
+		fi ;;
+	esac
+	if [ ${HP_ARCH} = "hppa2.0w" ]
+	then
+	    # avoid double evaluation of $set_cc_for_build
+	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
+	    then
+		HP_ARCH="hppa2.0w"
+	    else
+		HP_ARCH="hppa64"
+	    fi
+	fi
+	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+	exit ;;
+    ia64:HP-UX:*:*)
+	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+	echo ia64-hp-hpux${HPUX_REV}
+	exit ;;
+    3050*:HI-UX:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <unistd.h>
+	int
+	main ()
+	{
+	  long cpu = sysconf (_SC_CPU_VERSION);
+	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
+	     results, however.  */
+	  if (CPU_IS_PA_RISC (cpu))
+	    {
+	      switch (cpu)
+		{
+		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+		  default: puts ("hppa-hitachi-hiuxwe2"); break;
+		}
+	    }
+	  else if (CPU_IS_HP_MC68K (cpu))
+	    puts ("m68k-hitachi-hiuxwe2");
+	  else puts ("unknown-hitachi-hiuxwe2");
+	  exit (0);
+	}
+EOF
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
+	echo unknown-hitachi-hiuxwe2
+	exit ;;
+    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+	echo hppa1.1-hp-bsd
+	exit ;;
+    9000/8??:4.3bsd:*:*)
+	echo hppa1.0-hp-bsd
+	exit ;;
+    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+	echo hppa1.0-hp-mpeix
+	exit ;;
+    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+	echo hppa1.1-hp-osf
+	exit ;;
+    hp8??:OSF1:*:*)
+	echo hppa1.0-hp-osf
+	exit ;;
+    i*86:OSF1:*:*)
+	if [ -x /usr/sbin/sysversion ] ; then
+	    echo ${UNAME_MACHINE}-unknown-osf1mk
+	else
+	    echo ${UNAME_MACHINE}-unknown-osf1
+	fi
+	exit ;;
+    parisc*:Lites*:*:*)
+	echo hppa1.1-hp-lites
+	exit ;;
+    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+	echo c1-convex-bsd
+        exit ;;
+    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+        exit ;;
+    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+	echo c34-convex-bsd
+        exit ;;
+    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+	echo c38-convex-bsd
+        exit ;;
+    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+	echo c4-convex-bsd
+        exit ;;
+    CRAY*Y-MP:*:*:*)
+	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*[A-Z]90:*:*:*)
+	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+	      -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*TS:*:*:*)
+	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*T3E:*:*:*)
+	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    CRAY*SV1:*:*:*)
+	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    *:UNICOS/mp:*:*)
+	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+	exit ;;
+    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit ;;
+    5000:UNIX_System_V:4.*:*)
+        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+	exit ;;
+    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+	exit ;;
+    sparc*:BSD/OS:*:*)
+	echo sparc-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:BSD/OS:*:*)
+	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+	exit ;;
+    *:FreeBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    i*:CYGWIN*:*)
+	echo ${UNAME_MACHINE}-pc-cygwin
+	exit ;;
+    i*:MINGW*:*)
+	echo ${UNAME_MACHINE}-pc-mingw32
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
+    i*:PW*:*)
+	echo ${UNAME_MACHINE}-pc-pw32
+	exit ;;
+    x86:Interix*:[34]*)
+	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+	exit ;;
+    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+	echo i${UNAME_MACHINE}-pc-mks
+	exit ;;
+    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+	# How do we know it's Interix rather than the generic POSIX subsystem?
+	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+	# UNAME_MACHINE based on the output of uname instead of i386?
+	echo i586-pc-interix
+	exit ;;
+    i*:UWIN*:*)
+	echo ${UNAME_MACHINE}-pc-uwin
+	exit ;;
+    amd64:CYGWIN*:*:*)
+	echo x86_64-unknown-cygwin
+	exit ;;
+    p*:CYGWIN*:*)
+	echo powerpcle-unknown-cygwin
+	exit ;;
+    prep*:SunOS:5.*:*)
+	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
+    *:GNU:*:*)
+	# the GNU system
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	exit ;;
+    *:GNU/*:*:*)
+	# other systems with GNU libc and userland
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	exit ;;
+    i*86:Minix:*:*)
+	echo ${UNAME_MACHINE}-pc-minix
+	exit ;;
+    arm*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    cris:Linux:*:*)
+	echo cris-axis-linux-gnu
+	exit ;;
+    crisv32:Linux:*:*)
+	echo crisv32-axis-linux-gnu
+	exit ;;
+    frv:Linux:*:*)
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    ia64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m32r*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    m68*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    mips:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips
+	#undef mipsel
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mipsel
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    mips64:Linux:*:*)
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#undef CPU
+	#undef mips64
+	#undef mips64el
+	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+	CPU=mips64el
+	#else
+	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+	CPU=mips64
+	#else
+	CPU=
+	#endif
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
+	exit ;;
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    parisc:Linux:*:* | hppa:Linux:*:*)
+	# Look for CPU level
+	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
+	esac
+	exit ;;
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
+	exit ;;
+    s390:Linux:*:* | s390x:Linux:*:*)
+	echo ${UNAME_MACHINE}-ibm-linux
+	exit ;;
+    sh64*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sh*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    sparc:Linux:*:* | sparc64:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
+    x86_64:Linux:*:*)
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	# The BFD linker knows what the default object file format is, so
+	# first see if it will tell us. cd to the root directory to prevent
+	# problems with other programs or directories called `ld' in the path.
+	# Set LC_ALL=C to ensure ld outputs messages in English.
+	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+			 | sed -ne '/supported targets:/!d
+				    s/[ 	][ 	]*/ /g
+				    s/.*supported targets: *//
+				    s/ .*//
+				    p'`
+        case "$ld_supported_targets" in
+	  elf32-i386)
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+		;;
+	  a.out-i386-linux)
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+		exit ;;
+	  coff-i386)
+		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+		exit ;;
+	  "")
+		# Either a pre-BFD a.out linker (linux-gnuoldld) or
+		# one that does not give us useful --help.
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+		exit ;;
+	esac
+	# Determine whether the default compiler is a.out or elf
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#include <features.h>
+	#ifdef __ELF__
+	# ifdef __GLIBC__
+	#  if __GLIBC__ >= 2
+	LIBC=gnu
+	#  else
+	LIBC=gnulibc1
+	#  endif
+	# else
+	LIBC=gnulibc1
+	# endif
+	#else
+	#ifdef __INTEL_COMPILER
+	LIBC=gnu
+	#else
+	LIBC=gnuaout
+	#endif
+	#endif
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+	test x"${LIBC}" != x && {
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+		exit
+	}
+	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
+	;;
+    i*86:DYNIX/ptx:4*:*)
+	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+	# earlier versions are messed up and put the nodename in both
+	# sysname and nodename.
+	echo i386-sequent-sysv4
+	exit ;;
+    i*86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+	# I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+	exit ;;
+    i*86:OS/2:*:*)
+	# If we were able to find `uname', then EMX Unix compatibility
+	# is probably installed.
+	echo ${UNAME_MACHINE}-pc-os2-emx
+	exit ;;
+    i*86:XTS-300:*:STOP)
+	echo ${UNAME_MACHINE}-unknown-stop
+	exit ;;
+    i*86:atheos:*:*)
+	echo ${UNAME_MACHINE}-unknown-atheos
+	exit ;;
+    i*86:syllable:*:*)
+	echo ${UNAME_MACHINE}-pc-syllable
+	exit ;;
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+	echo i386-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    i*86:*DOS:*:*)
+	echo ${UNAME_MACHINE}-pc-msdosdjgpp
+	exit ;;
+    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+	else
+		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+	fi
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
+	case `/bin/uname -X | grep "^Machine"` in
+	    *486*)	     UNAME_MACHINE=i486 ;;
+	    *Pentium)	     UNAME_MACHINE=i586 ;;
+	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+	esac
+	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+	exit ;;
+    i*86:*:3.2:*)
+	if test -f /usr/options/cb.name; then
+		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+	elif /bin/uname -X 2>/dev/null >/dev/null ; then
+		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+			&& UNAME_MACHINE=i586
+		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+			&& UNAME_MACHINE=i686
+		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+	else
+		echo ${UNAME_MACHINE}-pc-sysv32
+	fi
+	exit ;;
+    pc:*:*:*)
+	# Left here for compatibility:
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+	echo i386-pc-msdosdjgpp
+        exit ;;
+    Intel:Mach:3*:*)
+	echo i386-pc-mach3
+	exit ;;
+    paragon:*:*:*)
+	echo i860-intel-osf1
+	exit ;;
+    i860:*:4.*:*) # i860-SVR4
+	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+	else # Add other i860-SVR4 vendors below as they are discovered.
+	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
+	fi
+	exit ;;
+    mini*:CTIX:SYS*5:*)
+	# "miniframe"
+	echo m68010-convergent-sysv
+	exit ;;
+    mc68k:UNIX:SYSTEM5:3.51m)
+	echo m68k-convergent-sysv
+	exit ;;
+    M680?0:D-NIX:5.3:*)
+	echo m68k-diab-dnix
+	exit ;;
+    M68*:*:R3V[5678]*:*)
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+	OS_REL=''
+	test -r /etc/.relid \
+	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && { echo i486-ncr-sysv4; exit; } ;;
+    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+	echo m68k-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    mc68030:UNIX_System_V:4.*:*)
+	echo m68k-atari-sysv4
+	exit ;;
+    TSUNAMI:LynxOS:2.*:*)
+	echo sparc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    rs6000:LynxOS:2.*:*)
+	echo rs6000-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+	echo powerpc-unknown-lynxos${UNAME_RELEASE}
+	exit ;;
+    SM[BE]S:UNIX_SV:*:*)
+	echo mips-dde-sysv${UNAME_RELEASE}
+	exit ;;
+    RM*:ReliantUNIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    RM*:SINIX-*:*:*)
+	echo mips-sni-sysv4
+	exit ;;
+    *:SINIX-*:*:*)
+	if uname -p 2>/dev/null >/dev/null ; then
+		UNAME_MACHINE=`(uname -p) 2>/dev/null`
+		echo ${UNAME_MACHINE}-sni-sysv4
+	else
+		echo ns32k-sni-sysv
+	fi
+	exit ;;
+    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+                      # says <Richard.M.Bartel at ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit ;;
+    *:UNIX_System_V:4*:FTX*)
+	# From Gerald Hewes <hewes at openmarket.com>.
+	# How about differentiating between stratus architectures? -djm
+	echo hppa1.1-stratus-sysv4
+	exit ;;
+    *:*:*:FTX*)
+	# From seanf at swdc.stratus.com.
+	echo i860-stratus-sysv4
+	exit ;;
+    i*86:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo ${UNAME_MACHINE}-stratus-vos
+	exit ;;
+    *:VOS:*:*)
+	# From Paul.Green at stratus.com.
+	echo hppa1.1-stratus-vos
+	exit ;;
+    mc68*:A/UX:*:*)
+	echo m68k-apple-aux${UNAME_RELEASE}
+	exit ;;
+    news*:NEWS-OS:6*:*)
+	echo mips-sony-newsos6
+	exit ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+	if [ -d /usr/nec ]; then
+	        echo mips-nec-sysv${UNAME_RELEASE}
+	else
+	        echo mips-unknown-sysv${UNAME_RELEASE}
+	fi
+        exit ;;
+    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
+	echo powerpc-be-beos
+	exit ;;
+    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
+	echo powerpc-apple-beos
+	exit ;;
+    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
+	echo i586-pc-beos
+	exit ;;
+    SX-4:SUPER-UX:*:*)
+	echo sx4-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-5:SUPER-UX:*:*)
+	echo sx5-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-6:SUPER-UX:*:*)
+	echo sx6-nec-superux${UNAME_RELEASE}
+	exit ;;
+    Power*:Rhapsody:*:*)
+	echo powerpc-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Rhapsody:*:*)
+	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+	exit ;;
+    *:Darwin:*:*)
+	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+	case $UNAME_PROCESSOR in
+	    *86) UNAME_PROCESSOR=i686 ;;
+	    unknown) UNAME_PROCESSOR=powerpc ;;
+	esac
+	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+	exit ;;
+    *:procnto*:*:* | *:QNX:[0123456789]*:*)
+	UNAME_PROCESSOR=`uname -p`
+	if test "$UNAME_PROCESSOR" = "x86"; then
+		UNAME_PROCESSOR=i386
+		UNAME_MACHINE=pc
+	fi
+	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+	exit ;;
+    *:QNX:*:4*)
+	echo i386-pc-qnx
+	exit ;;
+    NSE-?:NONSTOP_KERNEL:*:*)
+	echo nse-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    NSR-?:NONSTOP_KERNEL:*:*)
+	echo nsr-tandem-nsk${UNAME_RELEASE}
+	exit ;;
+    *:NonStop-UX:*:*)
+	echo mips-compaq-nonstopux
+	exit ;;
+    BS2000:POSIX*:*:*)
+	echo bs2000-siemens-sysv
+	exit ;;
+    DS/*:UNIX_System_V:*:*)
+	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+	exit ;;
+    *:Plan9:*:*)
+	# "uname -m" is not consistent, so use $cputype instead. 386
+	# is converted to i386 for consistency with other x86
+	# operating systems.
+	if test "$cputype" = "386"; then
+	    UNAME_MACHINE=i386
+	else
+	    UNAME_MACHINE="$cputype"
+	fi
+	echo ${UNAME_MACHINE}-unknown-plan9
+	exit ;;
+    *:TOPS-10:*:*)
+	echo pdp10-unknown-tops10
+	exit ;;
+    *:TENEX:*:*)
+	echo pdp10-unknown-tenex
+	exit ;;
+    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+	echo pdp10-dec-tops20
+	exit ;;
+    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+	echo pdp10-xkl-tops20
+	exit ;;
+    *:TOPS-20:*:*)
+	echo pdp10-unknown-tops20
+	exit ;;
+    *:ITS:*:*)
+	echo pdp10-unknown-its
+	exit ;;
+    SEI:*:*:SEIUX)
+        echo mips-sei-seiux${UNAME_RELEASE}
+	exit ;;
+    *:DragonFly:*:*)
+	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+	exit ;;
+    *:*VMS:*:*)
+    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
+	case "${UNAME_MACHINE}" in
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
+	esac ;;
+    *:XENIX:*:SysV)
+	echo i386-pc-xenix
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+          "4"
+#else
+	  ""
+#endif
+         ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+  printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+  printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+    struct utsname un;
+
+    uname(&un);
+
+    if (strncmp(un.version, "V2", 2) == 0) {
+	printf ("i386-sequent-ptx2\n"); exit (0);
+    }
+    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+	printf ("i386-sequent-ptx1\n"); exit (0);
+    }
+    printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+#  include <sys/param.h>
+#  if defined (BSD)
+#   if BSD == 43
+      printf ("vax-dec-bsd4.3\n"); exit (0);
+#   else
+#    if BSD == 199006
+      printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#    else
+      printf ("vax-dec-bsd\n"); exit (0);
+#    endif
+#   endif
+#  else
+    printf ("vax-dec-bsd\n"); exit (0);
+#  endif
+# else
+    printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+    case `getsysinfo -f cpu_type` in
+    c1*)
+	echo c1-convex-bsd
+	exit ;;
+    c2*)
+	if getsysinfo -f scalar_acc
+	then echo c32-convex-bsd
+	else echo c2-convex-bsd
+	fi
+	exit ;;
+    c34*)
+	echo c34-convex-bsd
+	exit ;;
+    c38*)
+	echo c38-convex-bsd
+	exit ;;
+    c4*)
+	echo c4-convex-bsd
+	exit ;;
+    esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches at gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo               = `(hostinfo) 2>/dev/null`
+/bin/universe          = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch              = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM  = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/config.guess
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/config.pl
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/config.pl	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/config.pl	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,238 @@
+#!/usr/bin/env perl
+# a script for use by autoconf to make the Makefiles
+# from the Makefile.in's
+#
+# the original autoconf mechanism first splits all substitutions into groups
+# of ca. 90, and than invokes sed for _every_ Makefile.in and every group
+# (so around 2-3 times per Makefile.in). So this takes forever, as sed
+# has to recompile the regexps every time.
+#
+# this script does better. It changes all Makefile.ins in one process.
+# in kdelibs the time for building Makefile went down from 2:59 min to 13 sec!
+#
+# written by Michael Matz <matz at kde.org>
+# adapted by Dirk Mueller <mueller at kde.org>
+
+#   This file is free software; you can redistribute it and/or
+#   modify it under the terms of the GNU Library General Public
+#   License as published by the Free Software Foundation; either
+#   version 2 of the License, or (at your option) any later version.
+
+#   This library is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   Library General Public License for more details.
+
+#   You should have received a copy of the GNU Library General Public License
+#   along with this library; see the file COPYING.LIB.  If not, write to
+#   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+#   Boston, MA 02110-1301, USA.
+
+use strict;
+
+use File::Path;
+
+my $ac_subs=$ARGV[0];
+my $ac_sacfiles = $ARGV[1];
+my $ac_given_srcdir=$ARGV[2];
+my $ac_given_INSTALL=$ARGV[3];
+
+my @comp_match;
+my @comp_subs;
+
+#print "ac_subs=$ac_subs\n";
+#print "ac_sacfiles=$ac_sacfiles\n";
+#print "ac_given_srcdir=$ac_given_srcdir\n";
+#print "ac_given_INSTALL=$ac_given_INSTALL\n";
+
+my $configure_input;
+my ($srcdir, $top_srcdir);
+my $INSTALL;
+my $bad_perl = ($] < 5.005);
+my $created_file_count = 0;
+
+open(CF, "< $ac_subs") || die "can't open $ac_subs: $!";
+my @subs = <CF>;
+my $pat;
+close(CF);
+chomp @subs;
+ at comp_match=();
+ at comp_subs=();
+
+if ($bad_perl) {
+    print "Using perl older than version 5.005\n";
+    foreach $pat (@subs) {
+	if (  ($pat =~ m/s%([^%]*)%([^%]*)%g/ )
+	   || ($pat =~ m/s%([^%]*)%([^%]*)%;t/ )
+           || ($pat =~ m/s,([^,]*),(.*),;t/)
+	   || ($pat =~ m%s/([^/]*)/([^/]*)/g% )
+	   || ($pat =~ m%s/([^/]*)/([^/]*)/;t% )
+	   ) {
+            # form : s%bla%blubb%g
+            # or     s%bla%blubb%;t t   (autoconf > 2.13 and < 2.52 ?)
+            # or     s,bla,blubb,;t t   (autoconf 2.52)
+            my $srch = $1;
+            my $repl = $2;
+            $repl =~ s/\\(.)/$1/g;
+	    push @comp_subs, make_closure($srch, $repl);
+
+	} elsif ( ($pat =~ /%([^%]*)%d/ )
+	   || ($pat =~ m%/([^/]*)/d% )
+	   ) {
+	    push @comp_subs, make_closure($1, "");
+	} else {
+	    die "Uhh. Malformed pattern in $ac_subs ($pat)"
+		unless ( $pat =~ /^\s*$/ );   # ignore white lines
+	}
+    }
+} else {
+    foreach $pat (@subs) {
+       if ( ($pat =~ /s%([^%]*)%([^%]*)%g/ ) ||
+            ($pat =~ /s%([^%]*)%([^%]*)%;t/ ) ||
+            ($pat =~ /s,([^,]*),(.*),;t/) ) {
+         # form : s%bla%blubb%g
+         # or     s%bla%blubb%;t t   (autoconf > 2.13 and < 2.52 ?)
+         # or     s,bla,blubb,;t t   (autoconf 2.52)
+         my $srch = $1;
+         my $repl = $2;
+         push @comp_match, eval "qr/\Q$srch\E/";  # compile match pattern
+         $repl =~ s/\\(.)/$1/g;
+         push @comp_subs, $repl;
+      } elsif ( ($pat =~ /%([^%]*)%d/ )
+                || ($pat =~ m%/([^/]*)/d% )
+              ) {
+        push @comp_match, eval "qr/\Q$1\E/";
+        push @comp_subs, "";
+      } else {
+          die "Uhh. Malformed pattern in $ac_subs ($pat)"
+          unless ( $pat =~ /^\s*$/ );   # ignore white lines
+      }
+    }
+}
+undef @subs;
+
+# read the list of files to be patched, form:
+# ./Makefile arts/Makefile arts/examples/Makefile arts/flow/Makefile
+
+open(CF, "< $ac_sacfiles") || die "can't open $ac_sacfiles: $!";
+my @ac_files = <CF>;
+close(CF);
+chomp @ac_files;
+
+
+my $ac_file;
+foreach $ac_file (@ac_files) {
+    next if $ac_file =~ /\.\./;
+    next if $ac_file =~ /^\s*$/;
+    my $ac_file_in;
+    my ($ac_dir, $ac_dots, $ac_dir_suffix);
+
+    if ($ac_file =~ /.*:.*/ ) {
+	($ac_file_in = $ac_file) =~ s%[^:]*:%%;
+	$ac_file =~ s%:.*%%;
+    } else {
+	$ac_file_in = $ac_file.".in";
+    }
+
+# Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+# Remove last slash and all that follows it.  Not all systems have dirname.
+    ($ac_dir = $ac_file) =~ s%/[^/][^/]*$%%;
+    if ( ($ac_dir ne $ac_file) && ($ac_dir ne ".")) {
+# The file is in a subdirectory.
+	if (! -d "$ac_dir") { mkpath "$ac_dir", 0, 0777; }
+	($ac_dir_suffix = $ac_dir) =~ s%^./%%;
+	$ac_dir_suffix="/".$ac_dir_suffix;
+# A "../" for each directory in $ac_dir_suffix.
+	($ac_dots = $ac_dir_suffix) =~ s%/[^/]*%../%g;
+    } else {
+	$ac_dir_suffix="";
+	$ac_dots="";
+    }
+
+    if ($ac_given_srcdir eq ".") {
+	$srcdir=".";
+	if ($ac_dots) {
+	    ( $top_srcdir = $ac_dots) =~ s%/$%%;
+	} else { $top_srcdir="."; }
+    } elsif ($ac_given_srcdir =~ m%^/%) {
+	$srcdir=$ac_given_srcdir.$ac_dir_suffix;
+	$top_srcdir = $ac_given_srcdir;
+    } else {
+	$srcdir = $ac_dots.$ac_given_srcdir.$ac_dir_suffix;
+	$top_srcdir = $ac_dots.$ac_given_srcdir;
+    }
+
+    if ($ac_given_INSTALL) {
+	if ($ac_given_INSTALL =~ m%^/% ) {
+	    $INSTALL = $ac_given_INSTALL;
+	} else {
+	    $INSTALL = $ac_dots.$ac_given_INSTALL;
+	}
+    }
+
+    print "fast creating $ac_file\n";
+    unlink $ac_file;
+    my $ac_comsub="";
+    my $fname=$ac_file_in;
+    $fname =~ s%.*/%%;
+    $configure_input="$ac_file.  Generated from $fname by config.pl.";
+
+    my $ac_file_inputs;
+    ($ac_file_inputs = $ac_file_in) =~ s%^%$ac_given_srcdir/%;
+    $ac_file_inputs =~ s%:% $ac_given_srcdir/%g;
+
+    patch_file($ac_file, $ac_file_inputs);
+    ++$created_file_count;
+}
+
+print "config.pl: fast created $created_file_count file(s).\n";
+
+sub patch_file {
+    my ($outf, $infiles) = @_;
+    my $filedata;
+    my @infiles=split(' ', $infiles);
+    my $i=0;
+    my $name;
+
+    foreach $name (@infiles) {
+	if (open(CF, "< $name")) {
+	    while (<CF>) {
+		$filedata .= $_;
+	    }
+	    close(CF);
+	} else {
+	    print STDERR "can't open $name: $!"."\n";
+	}
+    }
+
+    $filedata =~ s%\@configure_input\@%$configure_input%g;
+    $filedata =~ s%\@srcdir\@%$srcdir%g;
+    $filedata =~ s%\@top_srcdir\@%$top_srcdir%g;
+    $filedata =~ s%\@INSTALL\@%$INSTALL%g;
+
+    if ($bad_perl) {
+	while ($i <= $#comp_subs) {
+	    my $ref = $comp_subs[$i];
+	    &$ref(\$filedata);
+	    $i++;
+	}
+    } else {
+	while ($i <= $#comp_match) {
+	    $filedata =~ s/$comp_match[$i]/$comp_subs[$i]/g;
+	    $i++;
+	}
+    }
+    open(CF, "> $outf") || die "can't create $outf: $!";
+    print CF $filedata;
+    close(CF);
+}
+
+sub make_closure {
+    my ($pat, $sub) = @_;
+    my $ret = eval "return sub { my \$ref=shift; \$\$ref =~ s%\Q$pat\E%\Q$sub\E%g; }";
+    if ($@) {
+        print "can't create CODE: $@\n";
+    }
+    return $ret;
+}

Added: kde-extras/kpogre/branches/upstream/current/admin/config.sub
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/config.sub	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/config.sub	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1575 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-07-01'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine.  It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches at gnu.org>.  Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support.  The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+       $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+  -h, --help         print this help, then exit
+  -t, --time-stamp   print date of last modification, then exit
+  -v, --version      print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions.  There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+  case $1 in
+    --time-stamp | --time* | -t )
+       echo "$timestamp" ; exit ;;
+    --version | -v )
+       echo "$version" ; exit ;;
+    --help | --h* | -h )
+       echo "$usage"; exit ;;
+    -- )     # Stop option processing
+       shift; break ;;
+    - )	# Use stdin as input.
+       break ;;
+    -* )
+       echo "$me: invalid option $1$help"
+       exit 1 ;;
+
+    *local*)
+       # First pass through any local machine types.
+       echo $1
+       exit ;;
+
+    * )
+       break ;;
+  esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+    exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+    exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  *)
+    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+    if [ $basic_machine != $1 ]
+    then os=`echo $1 | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
+		;;
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray)
+		os=
+		basic_machine=$1
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+ 	-chorusrdb)
+ 		os=-chorusrdb
+		basic_machine=$1
+ 		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-windowsnt*)
+		os=`echo $os | sed -e 's/windowsnt/winnt/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+	# Recognize the basic CPU types without company name.
+	# Some are omitted here because they have special meanings below.
+	1750a | 580 \
+	| a29k \
+	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+	| am33_2.0 \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| bfin \
+	| c4x | clipper \
+	| d10v | d30v | dlx | dsp16xx \
+	| fr30 | frv \
+	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+	| i370 | i860 | i960 | ia64 \
+	| ip2k | iq2000 \
+	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| mips | mipsbe | mipseb | mipsel | mipsle \
+	| mips16 \
+	| mips64 | mips64el \
+	| mips64vr | mips64vrel \
+	| mips64orion | mips64orionel \
+	| mips64vr4100 | mips64vr4100el \
+	| mips64vr4300 | mips64vr4300el \
+	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
+	| mipsisa32 | mipsisa32el \
+	| mipsisa32r2 | mipsisa32r2el \
+	| mipsisa64 | mipsisa64el \
+	| mipsisa64r2 | mipsisa64r2el \
+	| mipsisa64sb1 | mipsisa64sb1el \
+	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipstx39 | mipstx39el \
+	| mn10200 | mn10300 \
+	| ms1 \
+	| msp430 \
+	| ns16k | ns32k \
+	| or32 \
+	| pdp10 | pdp11 | pj | pjl \
+	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| pyramid \
+	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh64 | sh64le \
+	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b \
+	| strongarm \
+	| tahoe | thumb | tic4x | tic80 | tron \
+	| v850 | v850e \
+	| we32k \
+	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k)
+		basic_machine=$basic_machine-unknown
+		;;
+	m32c)
+		basic_machine=$basic_machine-unknown
+		;;
+	m6811 | m68hc11 | m6812 | m68hc12)
+		# Motorola 68HC11/12.
+		basic_machine=$basic_machine-unknown
+		os=-none
+		;;
+	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+		;;
+
+	# We use `pc' rather than `unknown'
+	# because (1) that's what they normally are, and
+	# (2) the word "unknown" tends to confuse beginning users.
+	i*86 | x86_64)
+	  basic_machine=$basic_machine-pc
+	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+	# Recognize the basic CPU types with company name.
+	580-* \
+	| a29k-* \
+	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
+	| avr-* \
+	| bfin-* | bs2000-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+	| clipper-* | craynv-* | cydra-* \
+	| d10v-* | d30v-* | dlx-* \
+	| elxsi-* \
+	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| h8300-* | h8500-* \
+	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+	| i*86-* | i860-* | i960-* | ia64-* \
+	| ip2k-* | iq2000-* \
+	| m32r-* | m32rle-* \
+	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+	| mips16-* \
+	| mips64-* | mips64el-* \
+	| mips64vr-* | mips64vrel-* \
+	| mips64orion-* | mips64orionel-* \
+	| mips64vr4100-* | mips64vr4100el-* \
+	| mips64vr4300-* | mips64vr4300el-* \
+	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
+	| mipsisa32-* | mipsisa32el-* \
+	| mipsisa32r2-* | mipsisa32r2el-* \
+	| mipsisa64-* | mipsisa64el-* \
+	| mipsisa64r2-* | mipsisa64r2el-* \
+	| mipsisa64sb1-* | mipsisa64sb1el-* \
+	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipstx39-* | mipstx39el-* \
+	| mmix-* \
+	| ms1-* \
+	| msp430-* \
+	| none-* | np1-* | ns16k-* | ns32k-* \
+	| orion-* \
+	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| pyramid-* \
+	| romp-* | rs6000-* \
+	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparclite-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| tahoe-* | thumb-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tron-* \
+	| v850-* | v850e-* | vax-* \
+	| we32k-* \
+	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa-* \
+	| ymp-* \
+	| z8k-*)
+		;;
+	m32c-*)
+		;;
+	# Recognize the various machine names and aliases which stand
+	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-unknown
+		os=-bsd
+		;;
+	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+		basic_machine=m68000-att
+		;;
+	3b*)
+		basic_machine=we32k-att
+		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+    	abacus)
+		basic_machine=abacus-unknown
+		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
+	alliant | fx80)
+		basic_machine=fx80-alliant
+		;;
+	altos | altos3068)
+		basic_machine=m68k-altos
+		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
+	amd64)
+		basic_machine=x86_64-pc
+		;;
+	amd64-*)
+		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
+	amiga | amiga-*)
+		basic_machine=m68k-unknown
+		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	c90)
+		basic_machine=c90-cray
+		os=-unicos
+		;;
+	convex-c1)
+		basic_machine=c1-convex
+		os=-bsd
+		;;
+	convex-c2)
+		basic_machine=c2-convex
+		os=-bsd
+		;;
+	convex-c32)
+		basic_machine=c32-convex
+		os=-bsd
+		;;
+	convex-c34)
+		basic_machine=c34-convex
+		os=-bsd
+		;;
+	convex-c38)
+		basic_machine=c38-convex
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
+		;;
+	cr16c)
+		basic_machine=cr16c-unknown
+		os=-elf
+		;;
+	crds | unos)
+		basic_machine=m68k-crds
+		;;
+	crisv32 | crisv32-* | etraxfs*)
+		basic_machine=crisv32-axis
+		;;
+	cris | cris-* | etrax*)
+		basic_machine=cris-axis
+		;;
+	crx)
+		basic_machine=crx-unknown
+		os=-elf
+		;;
+	da30 | da30-*)
+		basic_machine=m68k-da30
+		;;
+	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+		basic_machine=mips-dec
+		;;
+	decsystem10* | dec10*)
+		basic_machine=pdp10-dec
+		os=-tops10
+		;;
+	decsystem20* | dec20*)
+		basic_machine=pdp10-dec
+		os=-tops20
+		;;
+	delta | 3300 | motorola-3300 | motorola-delta \
+	      | 3300-motorola | delta-motorola)
+		basic_machine=m68k-motorola
+		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
+	dpx20 | dpx20-*)
+		basic_machine=rs6000-bull
+		os=-bosx
+		;;
+	dpx2* | dpx2*-bull)
+		basic_machine=m68k-bull
+		os=-sysv3
+		;;
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
+		;;
+	elxsi)
+		basic_machine=elxsi-elxsi
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
+		;;
+	fx2800)
+		basic_machine=i860-alliant
+		;;
+	genix)
+		basic_machine=ns32k-ns
+		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
+	h3050r* | hiux*)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
+		;;
+	hp300-*)
+		basic_machine=m68k-hp
+		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
+	hp3k9[0-9][0-9] | hp9[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k2[0-9][0-9] | hp9k31[0-9])
+		basic_machine=m68000-hp
+		;;
+	hp9k3[2-9][0-9])
+		basic_machine=m68k-hp
+		;;
+	hp9k6[0-9][0-9] | hp6[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hp9k7[0-79][0-9] | hp7[0-79][0-9])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k78[0-9] | hp78[0-9])
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+		# FIXME: really hppa2.0-hp
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][13679] | hp8[0-9][13679])
+		basic_machine=hppa1.1-hp
+		;;
+	hp9k8[0-9][0-9] | hp8[0-9][0-9])
+		basic_machine=hppa1.0-hp
+		;;
+	hppa-next)
+		os=-nextstep3
+		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
+	i370-ibm* | ibm*)
+		basic_machine=i370-ibm
+		;;
+# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
+	i*86v32)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv32
+		;;
+	i*86v4*)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv4
+		;;
+	i*86v)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-sysv
+		;;
+	i*86sol2)
+		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+		os=-solaris2
+		;;
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	i386-vsta | vsta)
+		basic_machine=i386-unknown
+		os=-vsta
+		;;
+	iris | iris4d)
+		basic_machine=mips-sgi
+		case $os in
+		    -irix*)
+			;;
+		    *)
+			os=-irix4
+			;;
+		esac
+		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
+	m88k-omron*)
+		basic_machine=m88k-omron
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
+		;;
+	mingw32)
+		basic_machine=i386-pc
+		os=-mingw32
+		;;
+	miniframe)
+		basic_machine=m68000-convergent
+		;;
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
+		;;
+	mips3*-*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+		;;
+	mips3*)
+		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
+	news-3600 | risc-news)
+		basic_machine=mips-sony
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
+		;;
+	next | m*-next )
+		basic_machine=m68k-next
+		case $os in
+		    -nextstep* )
+			;;
+		    -ns2*)
+		      os=-nextstep2
+			;;
+		    *)
+		      os=-nextstep3
+			;;
+		esac
+		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
+	np1)
+		basic_machine=np1-gould
+		;;
+	nsr-tandem)
+		basic_machine=nsr-tandem
+		;;
+	op50n-* | op60c-*)
+		basic_machine=hppa1.1-oki
+		os=-proelf
+		;;
+	openrisc | openrisc-*)
+		basic_machine=or32-unknown
+		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
+	pa-hitachi)
+		basic_machine=hppa1.1-hitachi
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	pbd)
+		basic_machine=sparc-tti
+		;;
+	pbb)
+		basic_machine=m68k-tti
+		;;
+	pc532 | pc532-*)
+		basic_machine=ns32k-pc532
+		;;
+	pentium | p5 | k5 | k6 | nexgen | viac3)
+		basic_machine=i586-pc
+		;;
+	pentiumpro | p6 | 6x86 | athlon | athlon_*)
+		basic_machine=i686-pc
+		;;
+	pentiumii | pentium2 | pentiumiii | pentium3)
+		basic_machine=i686-pc
+		;;
+	pentium4)
+		basic_machine=i786-pc
+		;;
+	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumpro-* | p6-* | 6x86-* | athlon-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pentium4-*)
+		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	pn)
+		basic_machine=pn-gould
+		;;
+	power)	basic_machine=power-ibm
+		;;
+	ppc)	basic_machine=powerpc-unknown
+		;;
+	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppcle | powerpclittle | ppc-le | powerpc-little)
+		basic_machine=powerpcle-unknown
+		;;
+	ppcle-* | powerpclittle-*)
+		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64)	basic_machine=powerpc64-unknown
+		;;
+	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+		basic_machine=powerpc64le-unknown
+		;;
+	ppc64le-* | powerpc64little-*)
+		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	ps2)
+		basic_machine=i386-ibm
+		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	rm[46]00)
+		basic_machine=mips-siemens
+		;;
+	rtpc | rtpc-*)
+		basic_machine=romp-ibm
+		;;
+	s390 | s390-*)
+		basic_machine=s390-ibm
+		;;
+	s390x | s390x-*)
+		basic_machine=s390x-ibm
+		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	sb1)
+		basic_machine=mipsisa64sb1-unknown
+		;;
+	sb1el)
+		basic_machine=mipsisa64sb1el-unknown
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
+		;;
+	sequent)
+		basic_machine=i386-sequent
+		;;
+	sh)
+		basic_machine=sh-hitachi
+		os=-hms
+		;;
+	sh64)
+		basic_machine=sh64-unknown
+		;;
+	sparclite-wrs | simso-wrs)
+		basic_machine=sparclite-wrs
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
+		;;
+	spur)
+		basic_machine=spur-unknown
+		;;
+	st2000)
+		basic_machine=m68k-tandem
+		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
+	sun2)
+		basic_machine=m68000-sun
+		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
+	sun3 | sun3-*)
+		basic_machine=m68k-sun
+		;;
+	sun4)
+		basic_machine=sparc-sun
+		;;
+	sun386 | sun386i | roadrunner)
+		basic_machine=i386-sun
+		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
+	tic54x | c54x*)
+		basic_machine=tic54x-unknown
+		os=-coff
+		;;
+	tic55x | c55x*)
+		basic_machine=tic55x-unknown
+		os=-coff
+		;;
+	tic6x | c6x*)
+		basic_machine=tic6x-unknown
+		os=-coff
+		;;
+	tx39)
+		basic_machine=mipstx39-unknown
+		;;
+	tx39el)
+		basic_machine=mipstx39el-unknown
+		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
+	tower | tower-32)
+		basic_machine=m68k-ncr
+		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
+	vpp*|vx|vx-*)
+		basic_machine=f301-fujitsu
+		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
+	w65*)
+		basic_machine=w65-wdc
+		os=-none
+		;;
+	w89k-*)
+		basic_machine=hppa1.1-winbond
+		os=-proelf
+		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	xps | xps100)
+		basic_machine=xps100-honeywell
+		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
+	z8k-*-coff)
+		basic_machine=z8k-unknown
+		os=-sim
+		;;
+	none)
+		basic_machine=none-none
+		os=-none
+		;;
+
+# Here we handle the default manufacturer of certain CPU types.  It is in
+# some cases the only manufacturer, in others, it is the most popular.
+	w89k)
+		basic_machine=hppa1.1-winbond
+		;;
+	op50n)
+		basic_machine=hppa1.1-oki
+		;;
+	op60c)
+		basic_machine=hppa1.1-oki
+		;;
+	romp)
+		basic_machine=romp-ibm
+		;;
+	mmix)
+		basic_machine=mmix-knuth
+		;;
+	rs6000)
+		basic_machine=rs6000-ibm
+		;;
+	vax)
+		basic_machine=vax-dec
+		;;
+	pdp10)
+		# there are many clones, so DEC is not a safe bet
+		basic_machine=pdp10-unknown
+		;;
+	pdp11)
+		basic_machine=pdp11-dec
+		;;
+	we32k)
+		basic_machine=we32k-att
+		;;
+	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+		basic_machine=sh-unknown
+		;;
+	sparc | sparcv8 | sparcv9 | sparcv9b)
+		basic_machine=sparc-sun
+		;;
+	cydra)
+		basic_machine=cydra-cydrome
+		;;
+	orion)
+		basic_machine=orion-highlevel
+		;;
+	orion105)
+		basic_machine=clipper-highlevel
+		;;
+	mac | mpw | mac-mpw)
+		basic_machine=m68k-apple
+		;;
+	pmac | pmac-mpw)
+		basic_machine=powerpc-apple
+		;;
+	*-unknown)
+		# Make sure to match an already-canonicalized machine name.
+		;;
+	*)
+		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+		exit 1
+		;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+	*-digital*)
+		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+		;;
+	*-commodore*)
+		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+		;;
+	*)
+		;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+        # First match some system type aliases
+        # that might get confused with valid system types.
+	# -solaris* is a basic system type, with this one exception.
+	-solaris1 | -solaris1.*)
+		os=`echo $os | sed -e 's|solaris1|sunos4|'`
+		;;
+	-solaris)
+		os=-solaris2
+		;;
+	-svr4*)
+		os=-sysv4
+		;;
+	-unixware*)
+		os=-sysv4.2uw
+		;;
+	-gnu/linux*)
+		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+		;;
+	# First accept the basic system types.
+	# The portable systems comes first.
+	# Each alternative MUST END IN A *, to match a version number.
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* \
+	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* | -skyos*)
+	# Remember, each alternative MUST END IN *, to match a version number.
+		;;
+	-qnx*)
+		case $basic_machine in
+		    x86-* | i*86-*)
+			;;
+		    *)
+			os=-nto$os
+			;;
+		esac
+		;;
+	-nto-qnx*)
+		;;
+	-nto*)
+		os=`echo $os | sed -e 's|nto|nto-qnx|'`
+		;;
+	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+		;;
+	-mac*)
+		os=`echo $os | sed -e 's|mac|macos|'`
+		;;
+	-linux-dietlibc)
+		os=-linux-dietlibc
+		;;
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
+		;;
+	-sunos5*)
+		os=`echo $os | sed -e 's|sunos5|solaris2|'`
+		;;
+	-sunos6*)
+		os=`echo $os | sed -e 's|sunos6|solaris3|'`
+		;;
+	-opened*)
+		os=-openedition
+		;;
+        -os400*)
+		os=-os400
+		;;
+	-wince*)
+		os=-wince
+		;;
+	-osfrose*)
+		os=-osfrose
+		;;
+	-osf*)
+		os=-osf
+		;;
+	-utek*)
+		os=-bsd
+		;;
+	-dynix*)
+		os=-bsd
+		;;
+	-acis*)
+		os=-aos
+		;;
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
+		;;
+	-ctix* | -uts*)
+		os=-sysv
+		;;
+	-nova*)
+		os=-rtmk-nova
+		;;
+	-ns2 )
+		os=-nextstep2
+		;;
+	-nsk*)
+		os=-nsk
+		;;
+	# Preserve the version number of sinix5.
+	-sinix5.*)
+		os=`echo $os | sed -e 's|sinix|sysv|'`
+		;;
+	-sinix*)
+		os=-sysv4
+		;;
+        -tpf*)
+		os=-tpf
+		;;
+	-triton*)
+		os=-sysv3
+		;;
+	-oss*)
+		os=-sysv3
+		;;
+	-svr4)
+		os=-sysv4
+		;;
+	-svr3)
+		os=-sysv3
+		;;
+	-sysvr4)
+		os=-sysv4
+		;;
+	# This must come after -sysvr4.
+	-sysv*)
+		;;
+	-ose*)
+		os=-ose
+		;;
+	-es1800*)
+		os=-ose
+		;;
+	-xenix)
+		os=-xenix
+		;;
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
+		;;
+	-aros*)
+		os=-aros
+		;;
+	-kaos*)
+		os=-kaos
+		;;
+	-zvmoe)
+		os=-zvmoe
+		;;
+	-none)
+		;;
+	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
+		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+		exit 1
+		;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system.  Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+	*-acorn)
+		os=-riscix1.2
+		;;
+	arm*-rebel)
+		os=-linux
+		;;
+	arm*-semi)
+		os=-aout
+		;;
+    c4x-* | tic4x-*)
+        os=-coff
+        ;;
+	# This must come before the *-dec entry.
+	pdp10-*)
+		os=-tops20
+		;;
+	pdp11-*)
+		os=-none
+		;;
+	*-dec | vax-*)
+		os=-ultrix4.2
+		;;
+	m68*-apollo)
+		os=-domain
+		;;
+	i386-sun)
+		os=-sunos4.0.2
+		;;
+	m68000-sun)
+		os=-sunos3
+		# This also exists in the configure program, but was not the
+		# default.
+		# os=-sunos4
+		;;
+	m68*-cisco)
+		os=-aout
+		;;
+	mips*-cisco)
+		os=-elf
+		;;
+	mips*-*)
+		os=-elf
+		;;
+	or32-*)
+		os=-coff
+		;;
+	*-tti)	# must be before sparc entry or we get the wrong os.
+		os=-sysv3
+		;;
+	sparc-* | *-sun)
+		os=-sunos4.1.1
+		;;
+	*-be)
+		os=-beos
+		;;
+	*-ibm)
+		os=-aix
+		;;
+    	*-knuth)
+		os=-mmixware
+		;;
+	*-wec)
+		os=-proelf
+		;;
+	*-winbond)
+		os=-proelf
+		;;
+	*-oki)
+		os=-proelf
+		;;
+	*-hp)
+		os=-hpux
+		;;
+	*-hitachi)
+		os=-hiux
+		;;
+	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+		os=-sysv
+		;;
+	*-cbm)
+		os=-amigaos
+		;;
+	*-dg)
+		os=-dgux
+		;;
+	*-dolphin)
+		os=-sysv3
+		;;
+	m68k-ccur)
+		os=-rtu
+		;;
+	m88k-omron*)
+		os=-luna
+		;;
+	*-next )
+		os=-nextstep
+		;;
+	*-sequent)
+		os=-ptx
+		;;
+	*-crds)
+		os=-unos
+		;;
+	*-ns)
+		os=-genix
+		;;
+	i370-*)
+		os=-mvs
+		;;
+	*-next)
+		os=-nextstep3
+		;;
+	*-gould)
+		os=-sysv
+		;;
+	*-highlevel)
+		os=-bsd
+		;;
+	*-encore)
+		os=-bsd
+		;;
+	*-sgi)
+		os=-irix
+		;;
+	*-siemens)
+		os=-sysv4
+		;;
+	*-masscomp)
+		os=-rtu
+		;;
+	f30[01]-fujitsu | f700-fujitsu)
+		os=-uxpv
+		;;
+	*-rom68k)
+		os=-coff
+		;;
+	*-*bug)
+		os=-coff
+		;;
+	*-apple)
+		os=-macos
+		;;
+	*-atari*)
+		os=-mint
+		;;
+	*)
+		os=-none
+		;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer.  We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+	*-unknown)
+		case $os in
+			-riscix*)
+				vendor=acorn
+				;;
+			-sunos*)
+				vendor=sun
+				;;
+			-aix*)
+				vendor=ibm
+				;;
+			-beos*)
+				vendor=be
+				;;
+			-hpux*)
+				vendor=hp
+				;;
+			-mpeix*)
+				vendor=hp
+				;;
+			-hiux*)
+				vendor=hitachi
+				;;
+			-unos*)
+				vendor=crds
+				;;
+			-dgux*)
+				vendor=dg
+				;;
+			-luna*)
+				vendor=omron
+				;;
+			-genix*)
+				vendor=ns
+				;;
+			-mvs* | -opened*)
+				vendor=ibm
+				;;
+			-os400*)
+				vendor=ibm
+				;;
+			-ptx*)
+				vendor=sequent
+				;;
+			-tpf*)
+				vendor=ibm
+				;;
+			-vxsim* | -vxworks* | -windiss*)
+				vendor=wrs
+				;;
+			-aux*)
+				vendor=apple
+				;;
+			-hms*)
+				vendor=hitachi
+				;;
+			-mpw* | -macos*)
+				vendor=apple
+				;;
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+				vendor=atari
+				;;
+			-vos*)
+				vendor=stratus
+				;;
+		esac
+		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+		;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/config.sub
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/configure.in.bot.end
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/configure.in.bot.end	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/configure.in.bot.end	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
+if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
+  # And if so, warn when they don't match
+  if test "$kde_libs_prefix" != "$given_prefix"; then
+    # And if kde doesn't know about the prefix yet
+    echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
+    if test $? -ne 0; then
+      echo ""
+      echo "Warning: you chose to install this package in $given_prefix,"
+      echo "but KDE was found in $kde_libs_prefix."
+      echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
+      echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
+      echo "Then restart KDE."
+      echo ""
+    fi
+  fi
+fi
+
+if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
+  echo ""
+  echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
+  echo "was not included. Therefore, GCC symbol visibility support remains disabled."
+  echo ""
+  echo "For better performance, consider including the Qt visibility supporting patch"
+  echo "located at:"
+  echo ""
+  echo "http://bugs.kde.org/show_bug.cgi?id=109386"
+  echo ""
+  echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
+  echo "everything will continue to work just fine without it."
+  echo ""
+fi
+
+if test "$all_tests" = "bad"; then
+  if test ! "$cache_file" = "/dev/null"; then
+    echo ""
+    echo "Please remove the file $cache_file after changing your setup"
+    echo "so that configure will find the changes next time."
+    echo ""
+  fi
+else
+  echo ""
+  echo "Good - your configure finished. Start make now"
+  echo ""
+fi

Added: kde-extras/kpogre/branches/upstream/current/admin/configure.in.min
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/configure.in.min	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/configure.in.min	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 2001 Stephan Kulow (coolo at kde.org)
+ 
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+ 
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+ 
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl    Boston, MA 02110-1301, USA.
+
+# Original Author was Kalle at kde.org
+# I lifted it in some mater. (Stephan Kulow)
+# I used much code from Janos Farkas
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(acinclude.m4) dnl a source file from your sub dir
+
+dnl This is so we can use kde-common
+AC_CONFIG_AUX_DIR(admin)
+
+dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
+unset CDPATH
+
+dnl Checking host/target/build systems, for make, install etc.
+AC_CANONICAL_SYSTEM 
+dnl Perform program name transformation
+AC_ARG_PROGRAM
+
+dnl Automake doc recommends to do this only here. (Janos)
+AM_INIT_AUTOMAKE(@MODULENAME@, @VERSION@) dnl searches for some needed programs
+
+KDE_SET_PREFIX
+
+dnl generate the config header
+AM_CONFIG_HEADER(config.h) dnl at the distribution this done
+
+dnl Checks for programs.
+AC_CHECK_COMPILERS
+AC_ENABLE_SHARED(yes)
+AC_ENABLE_STATIC(no)
+KDE_PROG_LIBTOOL
+
+dnl for NLS support. Call them in this order!
+dnl WITH_NLS is for the po files
+AM_KDE_WITH_NLS
+
+dnl KDE_USE_QT
+AC_PATH_KDE

Added: kde-extras/kpogre/branches/upstream/current/admin/cvs-clean.pl
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/cvs-clean.pl	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/cvs-clean.pl	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+#! /usr/bin/perl
+
+#
+# This script recursively (beginning with the current directory)
+# wipes out everything not registered in CVS.
+#
+# written by Oswald Buddenhagen <ossi at kde.org>
+#  inspired by the "old" cvs-clean target from Makefile.common
+#
+# This file is free software in terms of the BSD license. That means
+# that you can do anything with it except removing this license or
+# the above copyright notice. There is NO WARRANTY of any kind.
+#
+
+sub rmrf()
+{
+  my $fn = shift;
+  lstat ($fn);
+  if (-d _) {
+    if (opendir (DIR, $fn)) {
+      for my $efn (grep (!/^\.\.?$/, readdir (DIR))) {
+	&rmrf ($fn."/".$efn);
+      }
+      closedir (DIR);
+      rmdir ($fn);
+    }
+  } else {
+    unlink ($fn);
+  }
+}
+
+sub newfiles()
+{
+  my ($indir, $incvs) = @_;
+  for my $n (keys (%$incvs)) { delete $$indir{$n} }
+  return sort (keys (%$indir));
+}
+
+sub cvsclean()
+{
+  my $dir = shift;
+  my (%dirsdir, %filesdir, %dirscvs, %filescvs);
+  my $dnam = $dir ? $dir : ".";
+  if (!opendir (DIR, $dnam)) {
+    print STDERR "Cannot enter \"".$dnam."\".\n";
+    return;
+  }
+  for my $fn (grep (!/^\.\.?$/, readdir (DIR))) {
+    if (-d $dir.$fn) {
+      $fn eq "CVS" or $dirsdir{$fn} = 1;
+    } else {
+      $filesdir{$fn} = 1;
+    }
+  }
+  closedir (DIR);
+  if (!open (FILE, "<".$dir."CVS/Entries")) {
+    print STDERR "No CVS information in \"".$dnam."\".\n";
+    return;
+  }
+  while (<FILE>) {
+    m%^D/([^/]+)/.*$% and $dirscvs{$1} = 1;
+    m%^/([^/]+)/.*$% and $filescvs{$1} = 1;
+  }
+  close (FILE);
+  if (open (FILE, "<".$dir."CVS/Entries.Log")) {
+    while (<FILE>) {
+      m%^A D/([^/]+)/.*$% and $dirscvs{$1} = 1;
+      m%^A /([^/]+)/.*$% and $filescvs{$1} = 1;
+      m%^R D/([^/]+)/.*$% and delete $dirscvs{$1};
+      m%^R /([^/]+)/.*$% and delete $filescvs{$1};
+    }
+    close (FILE);
+  }
+  for my $fn (&newfiles (\%filesdir, \%filescvs)) {
+    print ("F ".$dir.$fn."\n");
+    &rmrf ($dir.$fn);
+  }
+  for my $fn (&newfiles (\%dirsdir, \%dirscvs)) {
+    print ("D ".$dir.$fn."\n");
+    &rmrf ($dir.$fn);
+  }
+  for my $fn (sort (keys (%dirscvs))) {
+    &cvsclean ($dir.$fn."/");
+  }
+}
+
+&cvsclean ("");

Added: kde-extras/kpogre/branches/upstream/current/admin/cvs.sh
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/cvs.sh	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/cvs.sh	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,661 @@
+#! /bin/sh
+#
+# cvs.sh
+#
+# This file contains support code from Makefile.common
+# It defines a shell function for each known target
+# and then does a case to call the correct function.
+
+unset MAKEFLAGS
+
+call_and_fix_autoconf()
+{
+  $AUTOCONF || exit 1
+  if test -r configure.in.in ; then
+    perl -pi -e "print \"if test \\\"x\\\$with_fast_perl\\\" = \\\"xyes\\\"; then\
+    \\n  perl -i.bak \\\$ac_aux_dir/conf.change.pl \\\$CONFIG_STATUS\
+    \\\\\\n    || mv \\\$CONFIG_STATUS.bak \\\$CONFIG_STATUS\
+    \\n  rm -f \\\$CONFIG_STATUS.bak\\nfi\
+    \\n\" if /^\\s*chmod\\s+.*\\+x\\s+.*CONFIG_STATUS/; s,^#line.*LINENO.*\$,/* \$& */, ;" configure
+  fi
+}
+
+strip_makefile()
+{
+  if test ! -f $makefile_wo; then
+    perl -e '$in=0; while ( <> ) { $in = 1 if ($_ =~ m/^if / ); print $_ unless ($in || $_ =~ m/^include /); $in = 0 if ($_ =~ m/^endif/); }' < $makefile_am > $makefile_wo
+  fi
+}
+
+check_autotool_versions()
+{
+required_autoconf_version="2.53 or newer"
+AUTOCONF_VERSION=`$AUTOCONF --version | head -n 1`
+case $AUTOCONF_VERSION in
+  Autoconf*2.5* | autoconf*2.5* | autoconf*2.6* ) : ;;
+  "" )
+    echo "*** AUTOCONF NOT FOUND!."
+    echo "*** KDE requires autoconf $required_autoconf_version"
+    exit 1
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOCONF_VERSION."
+    echo "*** KDE requires autoconf $required_autoconf_version"
+    exit 1
+    ;;
+esac
+
+AUTOHEADER_VERSION=`$AUTOHEADER --version | head -n 1`
+case $AUTOHEADER_VERSION in
+  Autoconf*2.5* | autoheader*2.5* | autoheader*2.6* ) : ;;
+  "" )
+    echo "*** AUTOHEADER NOT FOUND!."
+    echo "*** KDE requires autoheader $required_autoconf_version"
+    exit 1
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOHEADER_VERSION."
+    echo "*** KDE requires autoheader $required_autoconf_version"
+    exit 1
+    ;;
+esac
+
+AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
+required_automake_version="1.6.1 or newer"
+case $AUTOMAKE_STRING in
+  automake*1.5d* | automake*1.5* | automake*1.5-* )
+    echo "*** YOU'RE USING $AUTOMAKE_STRING."
+    echo "*** KDE requires automake $required_automake_version"
+    exit 1
+    ;;
+  automake*1.6.* | automake*1.7* | automake*1.8* | automake*1.9* | automake*1.10*)
+    echo "*** $AUTOMAKE_STRING found."
+    UNSERMAKE=no
+    ;;
+  "" )
+    echo "*** AUTOMAKE NOT FOUND!."
+    echo "*** KDE requires automake $required_automake_version"
+    exit 1
+    ;;
+  *unsermake* ) :
+    echo "*** YOU'RE USING UNSERMAKE."
+    echo "*** GOOD LUCK!! :)"
+    UNSERMAKE=unsermake
+    ;;
+  * )
+    echo "*** YOU'RE USING $AUTOMAKE_STRING."
+    echo "*** KDE requires automake $required_automake_version"
+    exit 1
+    ;;
+esac
+unset required_automake_version
+}
+
+cvs()
+{
+check_autotool_versions
+acinclude_m4 
+
+### Make new subdirs and configure.in.
+### The make calls could be optimized away here,
+### with a little thought.
+if test -r configure.in.in; then
+    rm -f configure.in
+    echo "*** Creating list of subdirectories"
+    create_subdirs
+
+    if test -r Makefile.am.in; then
+        echo "*** Creating Makefile.am"
+        if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then 
+            strip_makefile
+            $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
+        else
+            Makefile_am
+        fi
+     fi
+     configure_files
+     echo "*** Creating configure.in"
+     if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then 
+       strip_makefile
+       $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
+     else
+       configure_in
+     fi
+fi
+
+echo "*** Creating aclocal.m4"
+$ACLOCAL $ACLOCALFLAGS || exit 1
+echo "*** Creating configure"
+call_and_fix_autoconf
+
+if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
+  echo "*** Creating config.h template"
+  $AUTOHEADER || exit 1
+  touch config.h.in
+fi
+
+echo "*** Creating Makefile templates"
+$AUTOMAKE || exit 1
+
+if test "$UNSERMAKE" = no; then
+  echo "*** Postprocessing Makefile templates"
+  perl -w admin/am_edit || exit 1
+fi
+
+if egrep "^cvs-local:" $makefile_am >/dev/null; then \
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-local top_srcdir=. || exit 1
+fi
+
+echo "*** Creating date/time stamp"
+touch stamp-h.in
+
+echo "*** Finished"
+echo "    Don't forget to run ./configure"
+echo "    If you haven't done so in a while, run ./configure --help"
+}
+
+dist()
+{
+check_autotool_versions
+
+###
+### First build all of the files necessary to do just "make"
+###
+acinclude_m4
+if test -r configure.in.in; then
+  rm -f configure.in
+  create_subdirs
+
+  if test -r Makefile.am.in; then
+    if grep '\$(top_srcdir)/Makefile.am:' $makefile_am >/dev/null; then 
+      strip_makefile
+      $MAKE -f $makefile_wo top_srcdir=. ./Makefile.am || exit 1
+    else
+      Makefile_am
+    fi
+  fi
+  configure_files
+  if grep '\$(top_srcdir)/configure.in:' $makefile_am >/dev/null; then 
+    strip_makefile
+    $MAKE -f $makefile_wo top_srcdir=. ./configure.in || exit 1
+  else
+    configure_in
+  fi
+fi
+$ACLOCAL $ACLOCALFLAGS
+if egrep "^AM_CONFIG_HEADER" configure.in >/dev/null 2>&1; then
+  echo "*** Creating config.h template"
+  $AUTOHEADER || exit 1
+  touch config.h.in
+fi
+$AUTOMAKE --foreign || exit 1
+if test "$UNSERMAKE" = no; then
+  echo "*** Postprocessing Makefile templates"
+  perl -w admin/am_edit || exit 1
+fi
+call_and_fix_autoconf
+touch stamp-h.in
+if grep "^cvs-local:" $makefile_am >/dev/null; then
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-local top_srcdir=.
+fi
+
+###
+### Then make messages
+###
+if test -d po; then
+ LIST=`find ./po -name "*.po"`
+ for i in $LIST; do
+  file2=`echo $i | sed -e "s#\.po#\.gmo#"`
+  msgfmt -o $file2 $i || touch $file2
+ done
+fi
+if grep "^cvs-dist-local:" $makefile_am >/dev/null; then
+  strip_makefile
+  $MAKE -f $makefile_wo cvs-dist-local top_srcdir=.
+fi
+}
+
+subdir_dist()
+{
+$ACLOCAL $ACLOCALFLAGS
+$AUTOHEADER
+touch config.h.in
+$AUTOMAKE
+AUTOMAKE_STRING=`$AUTOMAKE --version | head -n 1`
+case $AUTOMAKE_STRING in
+  *unsermake* ) :
+    ;;
+  *)
+     perl -w ../admin/am_edit --path=../admin
+esac
+call_and_fix_autoconf
+touch stamp-h.in
+}
+
+configure_in()
+{
+rm -f configure.in configure.in.new
+kde_use_qt_param=
+test -f configure.files || { echo "need configure.files for configure.in"; exit 1; }
+list=`fgrep -v "configure.in.bot" < configure.files | fgrep -v "configure.in.mid"`
+: > configure.in.new
+for file in $list; do 
+  echo "dnl =======================================================" >> configure.in.new
+  echo "dnl FILE: $file" >> configure.in.new
+  echo "dnl =======================================================" >> configure.in.new
+  echo "" >> configure.in.new
+  cat $file >> configure.in.new
+done
+echo "KDE_CREATE_SUBDIRSLIST" >> configure.in.new
+if test -f Makefile.am.in; then
+  subdirs=`cat subdirs`
+  for dir in $subdirs; do
+    vdir=`echo $dir | sed -e 's,[-+.@],_,g'`
+    echo "AM_CONDITIONAL($vdir""_SUBDIR_included, test \"x\$$vdir""_SUBDIR_included\" = xyes)" >> configure.in.new
+    if test -f "$dir/configure.in"; then
+        echo "if test \"x\$$vdir""_SUBDIR_included\" = xyes; then " >> configure.in.new
+        echo "  AC_CONFIG_SUBDIRS($dir)" >> configure.in.new
+        echo "fi" >> configure.in.new
+    fi
+  done
+fi
+
+echo "AC_CONFIG_FILES([ Makefile ])" >> configure.in.new
+
+if test -f inst-apps; then
+    topleveldirs=`cat inst-apps`
+else
+    topleveldirs=
+    for dir in `ls -1d * | sort`; do
+	if test "$dir" != "debian" && test -d $dir; then
+	    topleveldirs="$topleveldirs $dir"
+	fi
+    done
+fi
+
+for topleveldir in $topleveldirs; do 
+  if test -f $topleveldir/configure.in; then
+	continue
+  fi
+  if test -f $topleveldir/Makefile.am; then :; else
+	continue
+  fi
+
+  mfs=`find $topleveldir -follow -name Makefile.am -print | fgrep -v "/." | \
+       sed -e 's#\./##; s#/Makefile.am$##' | sort | sed -e 's#$#/Makefile#'`
+  for i in $mfs; do
+     echo "AC_CONFIG_FILES([ $i ])" >> configure.in.new
+  done
+done
+
+files=`cat configure.files`
+list=`egrep '^dnl AC_OUTPUT\(.*\)' $files | sed -e "s#^.*dnl AC_OUTPUT(\(.*\))#\1#"`
+for file in $list; do 
+    echo "AC_CONFIG_FILES([ $file ])" >>  configure.in.new
+done
+
+midfiles=`cat configure.files | fgrep "configure.in.mid"`
+test -n "$midfiles" && cat $midfiles >> configure.in.new
+
+echo "AC_OUTPUT" >> configure.in.new
+modulename=
+if test -f configure.in.in; then
+   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG\(.*\)$" > /dev/null; then
+      kde_use_qt_param=`cat configure.in.in | sed -n -e "s/#MIN_CONFIG(\(.*\))/\1/p"`
+   fi
+   if head -n 2 configure.in.in | egrep "^#MIN_CONFIG" > /dev/null; then
+      line=`grep "^AM_INIT_AUTOMAKE(" configure.in.in`
+      if test -n "$line"; then
+	  modulename=`echo $line | sed -e "s#AM_INIT_AUTOMAKE(\([^,]*\),.*#\1#"`
+	  VERSION=`echo $line | sed -e "s#AM_INIT_AUTOMAKE([^,]*, *\([^)]*\)).*#\1#"`
+      fi
+      sed -e "s#AM_INIT_AUTOMAKE([^@].*#dnl PACKAGE set before#" \
+          configure.in.new > configure.in && mv configure.in configure.in.new
+   fi
+fi
+if test -z "$VERSION" || test "$VERSION" = "@VERSION@"; then
+     VERSION="\"3.5.7\""
+fi
+if test -z "$modulename" || test "$modulename" = "@MODULENAME@"; then
+   modulename=`pwd`; 
+   modulename=`basename $modulename`
+   esc_VERSION=`echo $VERSION | sed -e "s#[^.0-9a-zA-Z]##g"`
+   modulename=`echo $modulename | sed -e "s#-$esc_VERSION##"`   
+
+fi
+if test -n "$kde_use_qt_param"; then
+      sed -e "s#^dnl KDE_USE_QT#KDE_USE_QT($kde_use_qt_param)#" \
+      	configure.in.new > configure.in && mv configure.in configure.in.new
+fi
+sed -e "s#@MODULENAME@#$modulename#" configure.in.new |
+	sed -e "s#@VERSION@#$VERSION#" > configure.in
+botfiles=`cat configure.files | egrep "configure.in.bot"`
+test -n "$botfiles" && cat $botfiles >> configure.in
+cat $admindir/configure.in.bot.end >> configure.in
+rm -f configure.in.new
+}
+
+configure_files()
+{
+echo "*** Creating configure.files"
+admindir=NO
+for i in . .. ../.. ../../..; do
+  if test -x $i/admin; then admindir=$i/admin; break; fi
+done
+rm -f configure.files
+touch configure.files
+if test -f configure.in.in && head -n 2 configure.in.in | grep "^#MIN_CONFIG" > /dev/null; then
+	echo $admindir/configure.in.min >> configure.files
+fi
+test -f configure.in.in && echo configure.in.in >> configure.files
+# we collect files in the subdirs and do some sorting tricks, so subsubdirs come after subdirs
+if test -f inst-apps; then
+   inst=`cat inst-apps`
+   list=""
+   for i in $inst; do
+      list="$list `find $i/ -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
+		sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`"
+   done
+else
+   list=`find . -follow -name "configure.in.in" -o -name "configure.in.bot" -o -name "configure.in.mid" | \
+		sed -e "s,/configure,/aaaconfigure," | sort | sed -e "s,/aaaconfigure,/configure,"`
+fi
+for i in $list; do if test -f $i && test `dirname $i` != "." ; then
+  echo $i >> configure.files
+fi; done
+test -f configure.in.mid && echo configure.in.mid >> configure.files
+test -f configure.in.bot && echo configure.in.bot >> configure.files
+if test ! -s configure.files; then
+   echo "There are no files to build a configure. Please check your checkout."
+   exit 1
+fi
+}
+
+create_subdirs()
+{
+if grep '\$(top_srcdir)/subdirs:' $makefile_am >/dev/null; then 
+    # as many modules contain rules to create subdirs without any
+    # dependencies make won't create it unless there is no file.
+    # so we check if that's a dummy rule or one that works
+    rm -f subdirs.cvs.sh.$$
+    if test -f subdirs; then
+	mv subdirs subdirs.cvs.sh.$$
+    fi
+    strip_makefile
+    $MAKE -f $makefile_wo top_srcdir=. ./subdirs || exit 1
+    if test -f subdirs.cvs.sh.$$; then
+	if test -s subdirs; then
+	    rm subdirs.cvs.sh.$$ 
+	else
+	    mv subdirs.cvs.sh.$$ subdirs
+	fi
+    fi
+else
+    subdirs
+fi
+}
+
+subdirs()
+{
+dirs=
+idirs=
+if test -f inst-apps; then
+   idirs=`cat inst-apps`
+else
+   idirs=`ls -1 | sort`
+fi
+
+compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+for i in $idirs; do
+    if test -f $i/Makefile.am; then
+       case " $compilefirst $compilelast " in
+         *" $i "*) ;;
+         *) dirs="$dirs $i"
+       esac
+    fi
+done
+
+: > ./_SUBDIRS
+
+for d in $compilefirst; do
+   echo $d >> ./_SUBDIRS
+done
+
+(for d in $dirs; do 
+   list=`sed -ne "s#^COMPILE_BEFORE_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
+   for s in $list; do
+      echo $s $d
+   done
+   list=`sed -ne "s#^COMPILE_AFTER_$d""[ ]*=[ ]*##p" $makefile_am | head -n 1`
+   for s in $list; do
+      echo $d $s
+   done
+   echo $d $d
+done ) | tsort >> ./_SUBDIRS
+
+for d in $compilelast; do
+   echo $d >> ./_SUBDIRS
+done
+
+if test -r subdirs && cmp -s subdirs _SUBDIRS; then
+    rm -f _SUBDIRS
+fi
+test -r _SUBDIRS && mv _SUBDIRS subdirs || true
+}
+
+Makefile_am()
+{
+if test -f Makefile.am.in; then
+  compilefirst=`sed -ne 's#^COMPILE_FIRST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+  compilelast=`sed -ne 's#^COMPILE_LAST[ ]*=[ ]*##p' $makefile_am | head -n 1`
+
+  idirs=
+  dirs=
+  if test -f inst-apps; then
+     idirs=`cat inst-apps`
+  else
+     idirs=`cat subdirs`
+  fi
+  for i in $idirs; do
+    case " $compilefirst $compilelast " in
+      *" $i "*) ;;
+      *) dirs="$dirs $i"
+    esac
+  done
+
+  adds=`fgrep '$(top_srcdir)/acinclude.m4:' Makefile.am.in | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir)/,,g'`
+  if echo "$adds" | fgrep "*" >/dev/null ; then
+    adds=`ls -d -1 $adds 2>/dev/null`
+    fgrep -v  '$(top_srcdir)/acinclude.m4:' Makefile.am.in > Makefile.am.in.adds
+    str='$(top_srcdir)/acinclude.m4:'
+    for add in $adds; do 
+	str="$str \$(top_srcdir)/$add"
+    done
+    echo $str >> Makefile.am.in.adds
+  else
+    cat Makefile.am.in > Makefile.am.in.adds
+  fi
+
+  cat Makefile.am.in.adds | \
+      sed -e 's,^\s*\(COMPILE_BEFORE.*\),# \1,' | \
+      sed -e 's,^\s*\(COMPILE_AFTER.*\),# \1,' > Makefile.am
+    echo "SUBDIRS="'$(TOPSUBDIRS)' >> Makefile.am
+  rm Makefile.am.in.adds
+fi
+}
+
+acinclude_m4()
+{
+  echo "*** Creating acinclude.m4"
+  adds=
+  if grep '\$(top_srcdir)/acinclude.m4:' $makefile_am >/dev/null; then 
+    strip_makefile
+    rm -f acinclude.m4
+    adds=`grep '\$(top_srcdir)/acinclude.m4:' $makefile_wo | sed -e 's,^[^:]*: *,,; s,\$(top_srcdir),.,g'`
+    if echo $adds | fgrep "*" >/dev/null ; then
+      adds=`ls -d -1 $adds 2>/dev/null`
+    else
+      $MAKE -f $makefile_wo top_srcdir=. ./acinclude.m4 || exit 1
+    fi
+  else
+    rm -f acinclude.m4
+  fi
+  # if it wasn't created up to now, then we do it better
+  if test ! -f acinclude.m4; then
+     cat admin/acinclude.m4.in admin/libtool.m4.in admin/pkg.m4.in $adds > acinclude.m4
+  fi
+}
+
+package_merge()
+{
+catalogs=$POFILES
+for cat in $catalogs; do
+  msgmerge -o $cat.new $cat $PACKAGE.pot
+  if test -s $cat.new; then
+    grep -v "\"POT-Creation" $cat.new > $cat.new.2
+    grep -v "\"POT-Creation" $cat >> $cat.new.1
+    if diff $cat.new.1 $cat.new.2; then
+	rm $cat.new
+    else
+	mv $cat.new $cat
+    fi
+    rm -f $cat.new.1 $cat.new.2
+  fi
+done
+}
+
+extract_messages()
+{
+podir=${podir:-$PWD/po}
+files=`find . -name Makefile.am | xargs egrep -l '^messages:' `
+dirs=`for i in $files; do echo \`dirname $i\`; done`
+tmpname="$PWD/messages.log"
+if test -z "$EXTRACTRC"; then EXTRACTRC=extractrc ; fi
+if test -z "$PREPARETIPS"; then PREPARETIPS=preparetips ; fi
+export EXTRACTRC PREPARETIPS
+
+for subdir in $dirs; do
+  test -z "$VERBOSE" || echo "Making messages in $subdir"
+  (cd $subdir
+   if test -n "`grep -e '^messages:.*rc.cpp' Makefile.am`"; then
+	$EXTRACTRC *.rc *.ui *.kcfg > rc.cpp
+   else
+	candidates=`ls -1 *.rc *.ui *.kcfg 2>/dev/null`
+	if test -n "$candidates"; then
+	    echo "$subdir has *.rc, *.ui or *.kcfg files, but not correct messages line"
+	fi
+   fi
+   if find . -name \*.c\* -o -name \*.h\* | fgrep -v ".svn" | xargs fgrep -s -q KAboutData ; then
+	echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > _translatorinfo.cpp
+   else echo " " > _translatorinfo.cpp
+   fi
+   perl -e '$mes=0; while (<STDIN>) { next if (/^(if\s|else\s|endif)/); if (/^messages:/) { $mes=1; print $_; next; } if ($mes) { if (/$\\(XGETTEXT\)/ && / -o/) { s/ -o \$\(podir\)/ _translatorinfo.cpp -o \$\(podir\)/ } print $_; } else { print $_; } }' < Makefile.am | egrep -v '^include ' > _transMakefile
+
+   kdepotpath=${includedir:-`kde-config --expandvars --install include`}/kde.pot
+   if ! test -f $kdepotpath; then
+	kdepotpath=`kde-config --expandvars --prefix`/include/kde.pot
+   fi
+
+   $MAKE -s -f _transMakefile podir=$podir EXTRACTRC="$EXTRACTRC" PREPARETIPS="$PREPARETIPS" srcdir=. \
+	XGETTEXT="${XGETTEXT:-xgettext} --foreign-user -C -ci18n -ki18n -ktr2i18n -kI18N_NOOP -kI18N_NOOP2 -kaliasLocale -x $kdepotpath" messages
+   exit_code=$?
+   if test "$exit_code" != 0; then
+       echo "make exit code: $exit_code"
+   fi
+   ) 2>&1 | grep -v '^make\[1\]' > $tmpname
+   test -s $tmpname && { echo $subdir ; cat "$tmpname"; }
+   test -f $subdir/rc.cpp && rm -f $subdir/rc.cpp
+   rm -f $subdir/_translatorinfo.cpp
+   rm -f $subdir/_transMakefile
+done
+rm -f $tmpname
+}
+
+package_messages()
+{
+rm -rf po.backup
+mkdir po.backup
+
+for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
+  egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > po.backup/$i
+  cat po/$i > po.backup/backup_$i
+  touch -r po/$i po.backup/backup_$i
+  rm po/$i
+done
+
+extract_messages
+
+for i in `ls -1 po.backup/*.pot 2>/dev/null | sed -e "s#po.backup/##" | egrep -v '^backup_'`; do
+  test -f po/$i || echo "disappeared: $i"
+done
+for i in `ls -1 po/*.pot 2>/dev/null | sed -e "s#po/##"`; do
+  sed -e 's,^"Content-Type: text/plain; charset=CHARSET\\n"$,"Content-Type: text/plain; charset=UTF-8\\n",' po/$i > po/$i.new && mv po/$i.new po/$i
+  #msgmerge -q -o po/$i po/$i po/$i
+  egrep -v '^#[^,]' po/$i | egrep '^.*[^ ]+.*$' | grep -v "\"POT-Creation" > temp.pot
+  if test -f po.backup/$i && ! cmp -s temp.pot po.backup/$i; then
+    echo "will update $i"
+  else
+    if test -f po.backup/backup_$i; then
+      test -z "$VERBOSE" || echo "I'm restoring $i"
+      mv po.backup/backup_$i po/$i
+      rm po.backup/$i
+    else
+      echo "will add $i"
+    fi
+  fi
+done
+rm -f temp.pot
+rm -rf po.backup
+}
+
+# Make sure that sorting is always done the same way
+LC_ALL=C
+export LC_ALL
+unset LANG || :
+unset LC_CTYPE || :
+unset LANGUAGE || :
+
+unset CDPATH || :
+admindir=`echo "$0" | sed 's%[\\/][^\\/][^\\/]*$%%'`
+test "x$admindir" = "x$0" && admindir=.
+
+test "x$MAKE" = x && MAKE=make
+makefile_am=Makefile.am
+makefile_wo=Makefile.am.wo
+if test -f Makefile.am.in; then
+  makefile_am=Makefile.am.in
+  makefile_wo=Makefile.am.in.wo
+  rm -f $makefile_wo
+fi
+
+# Call script to find autoconf and friends.  Uses eval since the script outputs
+# sh-compatible code.
+eval `$admindir/detect-autoconf.pl`
+
+###
+### Main
+###
+
+arg=`echo $1 | tr .- __`
+case $arg in
+  cvs | dist | subdir_dist | configure_in | configure_files | subdirs | \
+  cvs_clean | package_merge | package_messages | Makefile_am | acinclude_m4 | extract_messages ) $arg ;;
+  configure ) call_and_fix_autoconf ;;
+  * ) echo "Usage: cvs.sh <target>"
+      echo "Target can be one of:"
+      echo "    cvs svn dist"
+      echo "    configure.in configure.files"
+      echo "    package-merge package-messages"
+      echo ""
+      echo "Usage: anything but $1"
+      exit 1 ;;
+esac
+
+if test -f $makefile_wo; then
+  rm $makefile_wo
+fi
+
+exit 0

Added: kde-extras/kpogre/branches/upstream/current/admin/debianrules
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/debianrules	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/debianrules	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+#!/usr/bin/perl -w
+
+use Shell qw(mv cp mkdir rm) ;
+use File::Find;
+use Cwd;
+
+$origPwd = `pwd`;
+chomp $origPwd;
+
+$kde_prefix	=	"/usr";
+$sysconfdir	=	"/etc";
+$kde_includedir	=	"$kde_prefix/include/kde";
+$infodir	=	"$kde_prefix/share/info";
+$mandir		=	"$kde_prefix/share/man";
+$qtdir		=	"/usr/share/qt3";
+
+$kde_cgidir	=	"$kde_prefix/lib/cgi-bin";
+$kde_confdir	=	"$sysconfdir/kde3";
+$kde_htmldir	=	"$kde_prefix/share/doc/kde/HTML";
+
+if (defined $ENV{DEB_BUILD_OPTIONS} &&
+    $ENV{DEB_BUILD_OPTIONS} =~ /\bnostrip\b/) {
+	$enable_debug="--enable-debug=full";
+} else {
+	$enable_debug="--disable-debug";
+}
+
+if (@ARGV && $ARGV[0] eq 'echodirs') {
+  print STDOUT "export kde_prefix=$kde_prefix\n";
+  print STDOUT "export sysconfdir=$sysconfdir\n";
+  print STDOUT "export kde_includedir=$kde_includedir\n";
+  print STDOUT "export infodir=$infodir\n";
+  print STDOUT "export mandir=$mandir\n";
+  print STDOUT "export qtdir=$qtdir\n";
+
+  print STDOUT "export kde_cgidir=$kde_cgidir\n";
+  print STDOUT "export kde_confdir=$kde_confdir\n";
+  print STDOUT "export kde_htmldir=$kde_htmldir\n";
+
+  print STDOUT "configkde=$enable_debug --disable-rpath --prefix=\$(kde_prefix) --sysconfdir=\$(sysconfdir) --includedir=\$(kde_includedir) --infodir=\$(infodir) --mandir=\$(mandir) --with-qt-dir=\$(qtdir)\n";
+
+  exit
+}


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/debianrules
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/depcomp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/depcomp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/depcomp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,530 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2005-07-09.11
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+  stat=$?
+
+  if test -f "$tmpdepfile"; then :
+  else
+    stripped=`echo "$stripped" | sed 's,^.*/,,'`
+    tmpdepfile="$stripped.u"
+  fi
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    outname="$stripped.o"
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # With Tru64 cc, shared objects can also be used to make a
+      # static library.  This mecanism is used in libtool 1.4 series to
+      # handle both shared and static libraries in a single compilation.
+      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+      #
+      # With libtool 1.5 this exception was removed, and libtool now
+      # generates 2 separate objects for the 2 libraries.  These two
+      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # in $dir$base.o.d.  We have to check for both files, because
+      # one of the two compilations can be disabled.  We should prefer
+      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+      # automatically cleaned when .libs/ is deleted, while ignoring
+      # the former would cause a distcleancheck panic.
+      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
+      tmpdepfile2=$dir$base.o.d          # libtool 1.5
+      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
+      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1=$dir$base.o.d
+      tmpdepfile2=$dir$base.d
+      tmpdepfile3=$dir$base.d
+      tmpdepfile4=$dir$base.d
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+      exit $stat
+   fi
+
+   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+   do
+     test -f "$tmpdepfile" && break
+   done
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/depcomp
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/deps.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/deps.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/deps.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,19 @@
+$(top_srcdir)/acinclude.m4: $(top_srcdir)/admin/acinclude.m4.in $(top_srcdir)/admin/libtool.m4.in $(top_srcdir)/admin/cvs.sh $(top_srcdir)/admin/pkg.m4.in
+	@cd $(top_srcdir) && $(SHELL) admin/cvs.sh acinclude_m4
+
+$(top_srcdir)/configure.in: $(top_srcdir)/subdirs $(top_srcdir)/configure.files $(top_srcdir)/admin/cvs.sh
+	@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure_in
+
+$(top_srcdir)/configure.files: $(top_srcdir)/subdirs $(CONF_FILES)
+	@cd $(top_srcdir) && $(SHELL) admin/cvs.sh configure.files $(top_srcdir)/admin/cvs.sh
+
+$(top_srcdir)/Makefile.am: $(top_srcdir)/Makefile.am.in $(top_srcdir)/subdirs $(top_srcdir)/admin/cvs.sh
+	@cd $(top_srcdir) && $(SHELL) admin/cvs.sh Makefile_am
+
+$(top_srcdir)/subdirs: $(top_srcdir)/Makefile.am.in $(top_srcdir)/admin/cvs.sh
+	@cd $(top_srcdir) && $(SHELL) admin/cvs.sh subdirs
+
+# defining default rules for files that may not be present
+$(top_srcdir)/Makefile.am.in:
+$(CONF_FILES):
+

Added: kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.pl
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.pl	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.pl	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,173 @@
+#!/usr/bin/env perl
+
+# Try to locate best version of auto*
+# By Michael Pyne <michael.pyne at kdemail.net>
+#
+# Copyright (c) 2005.
+# This code is public domain.  You may use it however you like (including
+# relicensing).
+
+# Emulate the 'which' program.
+sub which
+{
+    my $prog = shift;
+    my @paths = split(/:/, $ENV{'PATH'});
+
+    for $path (@paths)
+    {
+	return "$path/$prog" if -x "$path/$prog";
+    }
+
+    return "";
+}
+
+# Subroutine to determine the highest installed version of the given program,
+# searching from the given paths.
+sub findBest
+{
+    my ($program, @paths) = @_;
+    my $best_version_found = '0'; # Deliberately a string.
+    my %versions;
+    my %minimumVersions = (
+ 	'autoconf' => '2.5',
+	'automake' => '1.6',
+    );
+
+    # Allow user to use environment variable to override search.
+    return $ENV{uc $program} if $ENV{uc $program};
+
+    for $prefix (@paths)
+    {
+	@files = glob "$prefix/$program*";
+	for $file (@files)
+	{
+	    # Don't check non-executable scripts.
+	    next unless -x $file;
+
+	    ($version) = $file =~ /$prefix\/$program-?(.*)$/;
+	    $version =~ s/-|\.//g;
+
+	    # Special case some programs to make sure it has a minimum version.
+	    if (not $version and exists $minimumVersions{$program})
+	    {
+		my $min_version = $minimumVersions{$program};
+		my $versionOutput = `$program --version 2>/dev/null | head -n 1`;
+
+		# If we can't run the script to get the version it likely won't work later.
+		next unless $versionOutput; 
+
+		# Use number.number for version (we don't need the excess in general).
+		($versionOutput) = ($versionOutput =~ /(\d\.\d)/);
+
+		# Use lt to do lexicographical comparison of strings (which should be
+		# equivalent and doesn't involve issues with floating point conversions).
+		if (not $versionOutput or $versionOutput lt $min_version)
+		{
+		    next;
+		}
+	    }
+
+	    # If no version suffix then use it in favor of a versioned autotool
+	    # since the ever-popular WANT_AUTOFOO should then work (in theory).
+	    return $file unless $version;
+
+	    # Emulate 'which', and abort if we've already seen this version.
+	    next if exists $versions{$version};
+
+	    # Save filename of program.
+	    $versions{$version} = $file;
+
+	    # Use string comparison so that e.g. 253a will be > 253 but < 254.
+	    if ($version gt $best_version_found)
+	    {
+		$best_version_found = $version;
+	    }
+	}
+    }
+
+    return $versions{$best_version_found};
+}
+
+# Find an appropriate "which" program for later use by the shell script calling
+# us.
+sub findWhich
+{
+    for $candidate ('type -p', 'which', 'type')
+    {
+	$test = `$candidate sh 2>/dev/null`;
+	chomp $test;
+
+	return $candidate if -x $test;
+    }
+}
+
+# Uses which() to find a program unless the user provided its path in the
+# environment (the upper case program name is searched).
+sub findProgram
+{
+    $suffix = ""; # For use if @_ has only one param.
+    my ($program, $suffix) = @_;
+
+    return $ENV{uc $program} if $ENV{uc $program};
+    return which("$program$suffix");
+}
+
+# SCRIPT STARTS.
+
+# Search in path.
+ at paths = split(/:/, $ENV{'PATH'});
+
+# Make sure at least /usr/bin and /usr/local/bin are in this search.
+unshift @paths, '/usr/local/bin' unless grep $_ eq '/usr/local/bin', @paths;
+unshift @paths, '/usr/bin' unless grep $_ eq '/usr/bin', @paths;
+
+$autoconf = findBest('autoconf', @paths);
+($autoconf_suffix) = $autoconf =~ /.*autoconf(.*)$/;
+
+# Find matching autoconf companions.
+$autoheader = findProgram('autoheader', $autoconf_suffix);
+$autom4te = findProgram('autom4te', $autoconf_suffix);
+
+# Get best automake, and look for unsermake to possibly override it.
+$automake = findBest('automake', @paths);
+$unsermake = "";
+# backward compatible: if $UNSERMAKE points to a path, use it
+$unsermake = findProgram('unsermake') if (defined($ENV{'UNSERMAKE'}) and $ENV{'UNSERMAKE'} =~ /\//);
+# new compatible: if it says 'yes', use the one from path
+$unsermake = which('unsermake') if ($ENV{'UNSERMAKE'} eq 'yes');
+
+($automake_suffix) = $automake =~ /.*automake(.*)$/;
+
+# Use unsermake if we found it.
+$automake = "$unsermake -c" if $unsermake;
+
+# Find matching automake companions.
+$aclocal = findProgram('aclocal', $automake_suffix);
+
+$which = findWhich();
+
+# Make sure we have all of the needed programs.
+for $i (qw'autoconf autoheader autom4te automake aclocal')
+{
+    unless(${$i})
+    {
+	print "# Unable to find $i!!\n";
+	exit 1;
+    }
+}
+
+# Print results in eval-able form.
+print <<EOF;
+AUTOCONF="$autoconf"
+AUTOHEADER="$autoheader"
+AUTOM4TE="$autom4te"
+
+AUTOMAKE="$automake"
+ACLOCAL="$aclocal"
+
+WHICH="$which"
+
+export AUTOCONF AUTOHEADER AUTOM4TE AUTOMAKE ACLOCAL WHICH
+EOF
+
+exit 0;


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.pl
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.sh
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.sh	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/detect-autoconf.sh	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+#! /bin/sh
+
+# Global variables...
+AUTOCONF="autoconf"
+AUTOHEADER="autoheader"
+AUTOM4TE="autom4te"
+AUTOMAKE="automake"
+ACLOCAL="aclocal"
+
+# Please add higher versions first. The last version number is the minimum
+# needed to compile KDE. Do not forget to include the name/version #
+# separator if one is present, e.g. -1.2 where - is the separator.
+KDE_AUTOCONF_VERS="-2.58 -2.57 257 -2.54 -2.53a -2.53 -2.52 -2.5x"
+KDE_AUTOMAKE_VERS="-1.7 17 -1.6"
+
+# We don't use variable here for remembering the type ... strings. Local 
+# variables are not that portable, but we fear namespace issues with our
+# includer.
+checkAutoconf()
+{
+  for kde_autoconf_version in $KDE_AUTOCONF_VERS; do
+    if test -x "`$WHICH $AUTOCONF$kde_autoconf_version 2>/dev/null`"; then
+      AUTOCONF="`$WHICH $AUTOCONF$kde_autoconf_version`"
+      AUTOHEADER="`$WHICH $AUTOHEADER$kde_autoconf_version`"
+      AUTOM4TE="`$WHICH $AUTOM4TE$kde_autoconf_version`"
+      break
+    fi
+  done
+}
+
+checkAutomake ()
+{
+  for kde_automake_version in $KDE_AUTOMAKE_VERS; do
+    if test -x "`$WHICH $AUTOMAKE$kde_automake_version 2>/dev/null`"; then
+      AUTOMAKE="`$WHICH $AUTOMAKE$kde_automake_version`"
+      ACLOCAL="`$WHICH $ACLOCAL$kde_automake_version`"
+      break
+    fi
+  done
+
+  if test "$UNSERMAKE" != no && test -x "`$WHICH unsermake 2>/dev/null`"; then
+      AUTOMAKE="`$WHICH unsermake` -c"
+  fi
+}
+
+checkWhich ()
+{
+  WHICH=""
+  for i in "type -p" "which" "type" ; do
+    T=`$i sh 2> /dev/null`
+    test -x "$T" && WHICH="$i" && break
+  done
+}
+
+checkWhich
+checkAutoconf
+checkAutomake
+
+export WHICH AUTOHEADER AUTOCONF AUTOM4TE AUTOMAKE ACLOCAL

Added: kde-extras/kpogre/branches/upstream/current/admin/install-sh
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/install-sh	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/install-sh	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,401 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2005-11-07.23
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+posix_glob=
+posix_mkdir=
+
+# Symbolic mode for testing mkdir with directories.
+# It is the same as 755, but also tests that "u+" works.
+test_mode=u=rwx,g=rx,o=rx,u+wx
+
+# Desired mode of installed file.
+mode=0755
+
+# Desired mode of newly created intermediate directories.
+# It is empty if not known yet.
+intermediate_mode=
+
+chmodcmd=$chmodprog
+chowncmd=
+chgrpcmd=
+stripcmd=
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c         (ignored)
+-d         create directories instead of installing files.
+-g GROUP   $chgrpprog installed files to GROUP.
+-m MODE    $chmodprog installed files to MODE.
+-o USER    $chownprog installed files to USER.
+-s         $stripprog installed files.
+-t DIRECTORY  install into DIRECTORY.
+-T         report an error if DSTFILE is a directory.
+--help     display this help and exit.
+--version  display version info and exit.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+  case $1 in
+    -c) shift
+        continue;;
+
+    -d) dir_arg=true
+        shift
+        continue;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+        shift
+        shift
+        continue;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+        shift
+        shift
+        continue;;
+
+    -o) chowncmd="$chownprog $2"
+        shift
+        shift
+        continue;;
+
+    -s) stripcmd=$stripprog
+        shift
+        continue;;
+
+    -t) dstarg=$2
+	shift
+	shift
+	continue;;
+
+    -T) no_target_directory=true
+	shift
+	continue;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    *)  # When -d is used, all remaining arguments are directories to create.
+	# When -t is used, the destination is already specified.
+	test -n "$dir_arg$dstarg" && break
+        # Otherwise, the last argument is the destination.  Remove it from $@.
+	for arg
+	do
+          if test -n "$dstarg"; then
+	    # $@ is not empty: it contains at least $arg.
+	    set fnord "$@" "$dstarg"
+	    shift # fnord
+	  fi
+	  shift # arg
+	  dstarg=$arg
+	done
+	break;;
+  esac
+done
+
+if test -z "$1"; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call `install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+test -n "$dir_arg" || trap '(exit $?); exit' 1 2 13 15
+
+for src
+do
+  # Protect names starting with `-'.
+  case $src in
+    -*) src=./$src ;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dstarg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+
+    dst=$dstarg
+    # Protect names starting with `-'.
+    case $dst in
+      -*) dst=./$dst ;;
+    esac
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dstarg: Is a directory" >&2
+	exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| \
+	     .       : '\(.\)' 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+		  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+		  /^X\(\/\/\)$/{ s//\1/; q; }
+		  /^X\(\/\).*/{ s//\1/; q; }
+		  s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	posix_mkdir=false
+	if $mkdirprog -m $test_mode -p -- / >/dev/null 2>&1; then
+	  posix_mkdir=true
+	else
+	  # Remove any dirs left behind by ancient mkdir implementations.
+	  rmdir ./-m "$test_mode" ./-p ./-- 2>/dev/null
+	fi ;;
+    esac
+
+    if
+      $posix_mkdir && {
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, create it using the same intermediate mode that
+	# mkdir -p would use when creating intermediate directories.
+	# POSIX says that this mode is "$(umask -S),u+wx", so use that
+	# if umask -S works.
+
+	if test -n "$dir_arg"; then
+	  mkdir_mode=$mode
+	else
+	  case $intermediate_mode in
+	    '')
+	      if umask_S=`(umask -S) 2>/dev/null`; then
+		intermediate_mode=$umask_S,u+wx
+	      else
+		intermediate_mode=$test_mode
+	      fi ;;
+	  esac
+	  mkdir_mode=$intermediate_mode
+	fi
+
+	$mkdirprog -m "$mkdir_mode" -p -- "$dstdir"
+      }
+    then :
+    else
+
+      # mkdir does not conform to POSIX, or it failed possibly due to
+      # a race condition.  Create the directory the slow way, step by
+      # step, checking for races as we go.
+
+      case $dstdir in
+	/*) pathcomp=/ ;;
+	-*) pathcomp=./ ;;
+	*)  pathcomp= ;;
+      esac
+
+      case $posix_glob in
+        '')
+	  if (set -f) 2>/dev/null; then
+	    posix_glob=true
+	  else
+	    posix_glob=false
+	  fi ;;
+      esac
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob && set -f
+      set fnord $dstdir
+      shift
+      $posix_glob && set +f
+      IFS=$oIFS
+
+      for d
+      do
+	test "x$d" = x && continue
+
+	pathcomp=$pathcomp$d
+	if test ! -d "$pathcomp"; then
+	  $mkdirprog "$pathcomp"
+	  # Don't fail if two instances are running concurrently.
+	  test -d "$pathcomp" || exit 1
+	fi
+	pathcomp=$pathcomp/
+      done
+      obsolete_mkdir_used=true
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    $doit $cpprog "$src" "$dsttmp" &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$mode" "$dsttmp"; } &&
+
+    # Now rename the file to the real destination.
+    { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
+      || {
+	   # The rename failed, perhaps because mv can't rename something else
+	   # to itself, or perhaps because mv is so ancient that it does not
+	   # support -f.
+
+	   # Now remove or move aside any old file at destination location.
+	   # We try this two ways since rm can't unlink itself on some
+	   # systems and the destination file might be busy for other
+	   # reasons.  In this case, the final cleanup might fail but the new
+	   # file should still install successfully.
+	   {
+	     if test -f "$dst"; then
+	       $doit $rmcmd -f "$dst" 2>/dev/null \
+	       || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
+		     && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
+	       || {
+		 echo "$0: cannot unlink or rename $dst" >&2
+		 (exit 1); exit 1
+	       }
+	     else
+	       :
+	     fi
+	   } &&
+
+	   # Now rename the file to the real destination.
+	   $doit $mvcmd "$dsttmp" "$dst"
+	 }
+    } || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/install-sh
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/libtool.m4.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/libtool.m4.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/libtool.m4.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,5891 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+## Copyright 1996, 1997, 1998, 1999, 2000, 2001
+## Free Software Foundation, Inc.
+## Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+##
+## This program is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or
+## (at your option) any later version.
+##
+## This program is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with this program; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+##
+## As a special exception to the GNU General Public License, if you
+## distribute this file as part of a program that contains a
+## configuration script generated by Autoconf, you may include it under
+## the same distribution terms that you use for the rest of that program.
+
+# serial 47 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+         [],
+         [m4_define([AC_PROVIDE_IFELSE],
+	         [m4_ifdef([AC_PROVIDE_$1],
+		           [$2], [$3])])])
+
+
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+  AC_PROVIDE_IFELSE([AC_PROG_CXX],
+    [AC_LIBTOOL_CXX],
+    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+  ])])
+dnl And a similar setup for Fortran 77 support
+  AC_PROVIDE_IFELSE([AC_PROG_F77],
+    [AC_LIBTOOL_F77],
+    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+    [AC_LIBTOOL_GCJ],
+    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+      [AC_LIBTOOL_GCJ],
+      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+	[AC_LIBTOOL_GCJ],
+      [ifdef([AC_PROG_GCJ],
+	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([A][M_PROG_GCJ],
+	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+       ifdef([LT_AC_PROG_GCJ],
+	     [define([LT_AC_PROG_GCJ],
+		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+AC_SUBST(LIBTOOL)dnl
+
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
+
+
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
+
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
+
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
+
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
+
+# Same as above, but do not quote variable references.
+[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+AC_CHECK_TOOL(AR, ar, false)
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
+AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+enable_win32_dll=yes, enable_win32_dll=no)
+
+AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+AC_ARG_WITH([pic],
+    [AC_HELP_STRING([--with-pic],
+	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+    [pic_mode="$withval"],
+    [pic_mode=default])
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+AC_LIBTOOL_LANG_C_CONFIG
+_LT_AC_TAGCONFIG
+])# AC_LIBTOOL_SETUP
+
+
+# _LT_AC_SYS_COMPILER
+# -------------------
+AC_DEFUN([_LT_AC_SYS_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_AC_SYS_COMPILER
+
+
+# _LT_AC_SYS_LIBPATH_AIX
+# ----------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
+[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi],[])
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+])# _LT_AC_SYS_LIBPATH_AIX
+
+
+# _LT_AC_SHELL_INIT(ARG)
+# ----------------------
+AC_DEFUN([_LT_AC_SHELL_INIT],
+[ifdef([AC_DIVERSION_NOTICE],
+	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
+	 [AC_DIVERT_PUSH(NOTICE)])
+$1
+AC_DIVERT_POP
+])# _LT_AC_SHELL_INIT
+
+
+# _LT_AC_PROG_ECHO_BACKSLASH
+# --------------------------
+# Add some code to the start of the generated configure script which
+# will find an echo command which doesn't interpret backslashes.
+AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
+[_LT_AC_SHELL_INIT([
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X[$]1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X[$]1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
+fi
+
+if test "X[$]1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+[$]*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL [$]0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "[$]0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
+fi
+
+AC_SUBST(ECHO)
+])])# _LT_AC_PROG_ECHO_BACKSLASH
+
+
+# _LT_AC_LOCK
+# -----------
+AC_DEFUN([_LT_AC_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+    [AC_HELP_STRING([--disable-libtool-lock],
+	[avoid locking (might break parallel builds)])])
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if AC_TRY_EVAL(ac_compile); then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LINUX_64_MODE="32"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      LINUX_64_MODE="64"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+    [AC_LANG_PUSH(C)
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_POP])
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
+[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
+  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+  AC_CHECK_TOOL(AS, as, false)
+  AC_CHECK_TOOL(OBJDUMP, objdump, false)
+  ;;
+  ])
+esac
+
+need_locks="$enable_libtool_lock"
+
+])# _LT_AC_LOCK
+
+
+# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
+[AC_REQUIRE([LT_AC_PROG_SED])
+AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$3"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$5], , :, [$5])
+else
+    ifelse([$6], , :, [$6])
+fi
+])# AC_LIBTOOL_COMPILER_OPTION
+
+
+# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+#                          [ACTION-SUCCESS], [ACTION-FAILURE])
+# ------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
+[AC_CACHE_CHECK([$1], [$2],
+  [$2=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $3"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&AS_MESSAGE_LOG_FD
+     else
+       $2=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+])
+
+if test x"[$]$2" = xyes; then
+    ifelse([$4], , :, [$4])
+else
+    ifelse([$5], , :, [$5])
+fi
+])# AC_LIBTOOL_LINKER_OPTION
+
+
+# AC_LIBTOOL_SYS_MAX_CMD_LEN
+# --------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
+[# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+  i=0
+  testring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+ *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
+	       = "XX$testring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$testring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      testring=$testring$testring
+    done
+    testring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+])
+if test -n $lt_cv_sys_max_cmd_len ; then
+  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+  AC_MSG_RESULT(none)
+fi
+])# AC_LIBTOOL_SYS_MAX_CMD_LEN
+
+
+# _LT_AC_CHECK_DLFCN
+# --------------------
+AC_DEFUN([_LT_AC_CHECK_DLFCN],
+[AC_CHECK_HEADERS(dlfcn.h)dnl
+])# _LT_AC_CHECK_DLFCN
+
+
+# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ------------------------------------------------------------------
+AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "$cross_compiling" = yes; then :
+  [$4]
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+[#line __oline__ "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}]
+EOF
+  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) $1 ;;
+      x$lt_dlneed_uscore) $2 ;;
+      x$lt_unknown|x*) $3 ;;
+    esac
+  else :
+    # compilation failed
+    $3
+  fi
+fi
+rm -fr conftest*
+])# _LT_AC_TRY_DLOPEN_SELF
+
+
+# AC_LIBTOOL_DLOPEN_SELF
+# -------------------
+AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
+[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ])
+   ;;
+    
+  *)
+    AC_CHECK_FUNC([shl_load],
+	  [lt_cv_dlopen="shl_load"],
+      [AC_CHECK_LIB([dld], [shl_load],
+	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+	[AC_CHECK_FUNC([dlopen],
+	      [lt_cv_dlopen="dlopen"],
+	  [AC_CHECK_LIB([dl], [dlopen],
+		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
+	    [AC_CHECK_LIB([svld], [dlopen],
+		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
+	      [AC_CHECK_LIB([dld], [dld_link],
+		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+	      ])
+	    ])
+	  ])
+	])
+      ])
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    AC_CACHE_CHECK([whether a program can dlopen itself],
+	  lt_cv_dlopen_self, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+    ])
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+    	  lt_cv_dlopen_self_static, [dnl
+	  _LT_AC_TRY_DLOPEN_SELF(
+	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
+      ])
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+])# AC_LIBTOOL_DLOPEN_SELF
+
+
+# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
+# ---------------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler
+AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&AS_MESSAGE_LOG_FD
+   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+])
+])# AC_LIBTOOL_PROG_CC_C_O
+
+
+# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
+# -----------------------------------------
+# Check to see if we can do hard links to lock some files if needed
+AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
+[AC_REQUIRE([_LT_AC_LOCK])dnl
+
+hard_links="nottested"
+if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  AC_MSG_CHECKING([if we can lock with hard links])
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  AC_MSG_RESULT([$hard_links])
+  if test "$hard_links" = no; then
+    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
+
+
+# AC_LIBTOOL_OBJDIR
+# -----------------
+AC_DEFUN([AC_LIBTOOL_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+])# AC_LIBTOOL_OBJDIR
+
+
+# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
+# ----------------------------------------------
+# Check hardcoding attributes.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_AC_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
+   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
+   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
+     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
+    # Linking always hardcodes the temporary library directory.
+    _LT_AC_TAGVAR(hardcode_action, $1)=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
+
+if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
+
+
+# AC_LIBTOOL_SYS_LIB_STRIP
+# ------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
+[striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  AC_MSG_RESULT([yes])
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         AC_MSG_RESULT([yes])
+       else
+  AC_MSG_RESULT([no])
+fi
+       ;;
+   *)
+  AC_MSG_RESULT([no])
+    ;;
+  esac  
+fi
+])# AC_LIBTOOL_SYS_LIB_STRIP
+
+
+# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
+[AC_MSG_CHECKING([dynamic linker characteristics])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[[01]] | aix4.[[01]].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.[01]* | freebsdelf3.[01]*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[[89]] | openbsd2.[[89]].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test "$dynamic_linker" = no && can_build_shared=no
+])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
+
+
+# _LT_AC_TAGCONFIG
+# ----------------
+AC_DEFUN([_LT_AC_TAGCONFIG],
+[AC_ARG_WITH([tags],
+    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
+        [include additional configurations @<:@automatic@:>@])],
+    [tagnames="$withval"])
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    AC_MSG_WARN([output file `$ofile' does not exist])
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
+    else
+      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
+    "") ;;
+    *)  AC_MSG_ERROR([invalid tag name: $tagname])
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      AC_MSG_ERROR([tag name \"$tagname\" already exists])
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && test "X$CXX" != "Xno"; then
+	  AC_LIBTOOL_LANG_CXX_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+	  AC_LIBTOOL_LANG_F77_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+	  AC_LIBTOOL_LANG_GCJ_CONFIG
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+	AC_LIBTOOL_LANG_RC_CONFIG
+	;;
+
+      *)
+	AC_MSG_ERROR([Unsupported tag name: $tagname])
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    AC_MSG_ERROR([unable to update list of available tagged configurations.])
+  fi
+fi
+])# _LT_AC_TAGCONFIG
+
+
+# AC_LIBTOOL_DLOPEN
+# -----------------
+# enable checks for dlopen support
+AC_DEFUN([AC_LIBTOOL_DLOPEN],
+ [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_DLOPEN
+
+
+# AC_LIBTOOL_WIN32_DLL
+# --------------------
+# declare package support for building win32 dll's
+AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
+])# AC_LIBTOOL_WIN32_DLL
+
+
+# AC_ENABLE_SHARED([DEFAULT])
+# ---------------------------
+# implement the --enable-shared flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_SHARED],
+[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([shared],
+    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
+])# AC_ENABLE_SHARED
+
+
+# AC_DISABLE_SHARED
+# -----------------
+#- set the default shared flag to --disable-shared
+AC_DEFUN([AC_DISABLE_SHARED],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_SHARED(no)
+])# AC_DISABLE_SHARED
+
+
+# AC_ENABLE_STATIC([DEFAULT])
+# ---------------------------
+# implement the --enable-static flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_STATIC],
+[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([static],
+    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
+])# AC_ENABLE_STATIC
+
+
+# AC_DISABLE_STATIC
+# -----------------
+# set the default static flag to --disable-static
+AC_DEFUN([AC_DISABLE_STATIC],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_STATIC(no)
+])# AC_DISABLE_STATIC
+
+
+# AC_ENABLE_FAST_INSTALL([DEFAULT])
+# ---------------------------------
+# implement the --enable-fast-install flag
+# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
+AC_DEFUN([AC_ENABLE_FAST_INSTALL],
+[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
+AC_ARG_ENABLE([fast-install],
+    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+    [p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac],
+    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
+])# AC_ENABLE_FAST_INSTALL
+
+
+# AC_DISABLE_FAST_INSTALL
+# -----------------------
+# set the default to --disable-fast-install
+AC_DEFUN([AC_DISABLE_FAST_INSTALL],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+AC_ENABLE_FAST_INSTALL(no)
+])# AC_DISABLE_FAST_INSTALL
+
+
+# AC_LIBTOOL_PICMODE([MODE])
+# --------------------------
+# implement the --with-pic flag
+# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
+AC_DEFUN([AC_LIBTOOL_PICMODE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+pic_mode=ifelse($#,1,$1,default)
+])# AC_LIBTOOL_PICMODE
+
+
+# AC_PROG_EGREP
+# -------------
+# This is predefined starting with Autoconf 2.54, so this conditional
+# definition can be removed once we require Autoconf 2.54 or later.
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
+[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
+   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi])
+ EGREP=$ac_cv_prog_egrep
+ AC_SUBST([EGREP])
+])])
+
+
+# AC_PATH_TOOL_PREFIX
+# -------------------
+# find a file program which can recognise shared library
+AC_DEFUN([AC_PATH_TOOL_PREFIX],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] |  ?:[\\/]*])
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac])
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  AC_MSG_RESULT($MAGIC_CMD)
+else
+  AC_MSG_RESULT(no)
+fi
+])# AC_PATH_TOOL_PREFIX
+
+
+# AC_PATH_MAGIC
+# -------------
+# find a file program which can recognise a shared library
+AC_DEFUN([AC_PATH_MAGIC],
+[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+  else
+    MAGIC_CMD=:
+  fi
+fi
+])# AC_PATH_MAGIC
+
+
+# AC_PROG_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([AC_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+    [AC_HELP_STRING([--with-gnu-ld],
+	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
+    [test "$withval" = no || with_gnu_ld=yes],
+    [with_gnu_ld=no])
+AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  AC_MSG_CHECKING([for ld used by $CC])
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [[\\/]]* | ?:[[\\/]]*)
+      re_direlt='/[[^/]][[^/]]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  AC_MSG_CHECKING([for GNU ld])
+else
+  AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  AC_MSG_RESULT($LD)
+else
+  AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_PROG_LD_GNU
+])# AC_PROG_LD
+
+
+# AC_PROG_LD_GNU
+# --------------
+AC_DEFUN([AC_PROG_LD_GNU],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# AC_PROG_LD_GNU
+
+
+# AC_PROG_LD_RELOAD_FLAG
+# ----------------------
+# find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+  lt_cv_ld_reload_flag,
+  [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+])# AC_PROG_LD_RELOAD_FLAG
+
+
+# AC_DEPLIBS_CHECK_METHOD
+# -----------------------
+# how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
+[AC_CACHE_CHECK([how to recognise dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+  
+mingw* | pw32*)
+  # win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='win32_libid'
+  ;;
+
+darwin* | rhapsody*)
+  # this will be overwritten by pass_all, but leave it in just in case
+  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  case "$host_os" in
+  rhapsody* | darwin1.[[012]])
+    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+    ;;
+  *) # Darwin 1.3 on
+    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+    ;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+  irix5* | nonstopux*)
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case $LD in
+    *-32|*"-32 ") libmagic=32-bit;;
+    *-n32|*"-n32 ") libmagic=N32;;
+    *-64|*"-64 ") libmagic=64-bit;;
+    *) libmagic=never-match;;
+    esac
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
+    ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  case $host_cpu in
+  alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+  arm* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
+  else
+    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  # this will be overridden with pass_all, but let us keep it just in case
+  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=/lib/libc.so
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+])# AC_DEPLIBS_CHECK_METHOD
+
+
+# AC_PROG_NM
+# ----------
+# find the pathname to a BSD-compatible name lister
+AC_DEFUN([AC_PROG_NM],
+[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
+[if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi])
+NM="$lt_cv_path_NM"
+])# AC_PROG_NM
+
+
+# AC_CHECK_LIBM
+# -------------
+# check for math library
+AC_DEFUN([AC_CHECK_LIBM],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
+  # These system don't have libm, or don't need it
+  ;;
+*-ncr-sysv4.3*)
+  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
+  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+  ;;
+*)
+  AC_CHECK_LIB(m, cos, LIBM="-lm")
+  ;;
+esac
+])# AC_CHECK_LIBM
+
+
+# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl convenience library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
+# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
+# '${top_srcdir}/' (note the single quotes!).  If your package is not
+# flat and you're not using automake, define top_builddir and
+# top_srcdir appropriately in the Makefiles.
+AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  case $enable_ltdl_convenience in
+  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
+  "") enable_ltdl_convenience=yes
+      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
+  esac
+  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
+  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_CONVENIENCE
+
+
+# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
+# -----------------------------------
+# sets LIBLTDL to the link flags for the libltdl installable library and
+# LTDLINCL to the include flags for the libltdl header and adds
+# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
+# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
+# DIRECTORY is not provided and an installed libltdl is not found, it is
+# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
+# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
+# quotes!).  If your package is not flat and you're not using automake,
+# define top_builddir and top_srcdir appropriately in the Makefiles.
+# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
+AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
+[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
+  AC_CHECK_LIB(ltdl, lt_dlinit,
+  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
+  [if test x"$enable_ltdl_install" = xno; then
+     AC_MSG_WARN([libltdl not installed, but installation disabled])
+   else
+     enable_ltdl_install=yes
+   fi
+  ])
+  if test x"$enable_ltdl_install" = x"yes"; then
+    ac_configure_args="$ac_configure_args --enable-ltdl-install"
+    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
+    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
+  else
+    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
+    LIBLTDL="-lltdl"
+    LTDLINCL=
+  fi
+  # For backwards non-gettext consistent compatibility...
+  INCLTDL="$LTDLINCL"
+])# AC_LIBLTDL_INSTALLABLE
+
+
+# AC_LIBTOOL_CXX
+# --------------
+# enable support for C++ libraries
+AC_DEFUN([AC_LIBTOOL_CXX],
+[AC_REQUIRE([_LT_AC_LANG_CXX])
+])# AC_LIBTOOL_CXX
+
+
+# _LT_AC_LANG_CXX
+# ---------------
+AC_DEFUN([_LT_AC_LANG_CXX],
+[AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX])
+])# _LT_AC_LANG_CXX
+
+
+# AC_LIBTOOL_F77
+# --------------
+# enable support for Fortran 77 libraries
+AC_DEFUN([AC_LIBTOOL_F77],
+[AC_REQUIRE([_LT_AC_LANG_F77])
+])# AC_LIBTOOL_F77
+
+
+# _LT_AC_LANG_F77
+# ---------------
+AC_DEFUN([_LT_AC_LANG_F77],
+[AC_REQUIRE([AC_PROG_F77])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77])
+])# _LT_AC_LANG_F77
+
+
+# AC_LIBTOOL_GCJ
+# --------------
+# enable support for GCJ libraries
+AC_DEFUN([AC_LIBTOOL_GCJ],
+[AC_REQUIRE([_LT_AC_LANG_GCJ])
+])# AC_LIBTOOL_GCJ
+
+
+# _LT_AC_LANG_GCJ
+# ---------------
+AC_DEFUN([_LT_AC_LANG_GCJ],
+[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
+  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
+    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
+      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
+	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
+	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ])
+])# _LT_AC_LANG_GCJ
+
+
+# AC_LIBTOOL_RC
+# --------------
+# enable support for Windows resource files
+AC_DEFUN([AC_LIBTOOL_RC],
+[AC_REQUIRE([LT_AC_PROG_RC])
+_LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC])
+])# AC_LIBTOOL_RC
+
+
+# AC_LIBTOOL_LANG_C_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
+AC_DEFUN([_LT_AC_LANG_C_CONFIG],
+[lt_save_CC="$CC"
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+_LT_AC_SYS_COMPILER
+
+#
+# Check for any special shared library compilation flags.
+#
+_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
+    ;;
+  esac
+fi
+if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
+  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
+  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
+  else
+    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
+    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
+  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
+  [],
+  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+# Report which librarie types wil actually be built
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+  darwin* | rhapsody*)
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.[012])
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    output_verbose_link_cmd='echo'
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi  
+    ;;  
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_C_CONFIG
+
+
+# AC_LIBTOOL_LANG_CXX_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
+AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
+[AC_LANG_PUSH(C++)
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Dependencies to place before and after the object being linked:
+_LT_AC_TAGVAR(predep_objects, $1)=
+_LT_AC_TAGVAR(postdep_objects, $1)=
+_LT_AC_TAGVAR(predeps, $1)=
+_LT_AC_TAGVAR(postdeps, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+else
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+  AC_PROG_LD
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      # KDE requires run time linking.  Make it the default.
+      aix_use_runtimelinking=yes
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    _LT_AC_TAGVAR(archive_cmds, $1)=''
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.[012]|aix4.[012].*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	else
+	  # We have old collect2
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	fi
+      esac
+      shared_flag='-shared'
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='-qmkshrobj ${wl}-G'
+	else
+	  shared_flag='-qmkshrobj'
+	fi
+      fi
+    fi
+
+    # Let the compiler handle the export list.
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      _LT_AC_SYS_LIBPATH_AIX
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      _LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	# Exported symbols can be pulled into shared objects from archives
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+    # as there is no search path for DLLs.
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+    _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+    _LT_AC_TAGVAR(always_export_symbols, $1)=no
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi
+  ;;
+
+  darwin* | rhapsody*)
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case "$host_os" in
+    rhapsody* | darwin1.[[012]])
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.[012])
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    lt_int_apple_cc_single_mod=no
+    output_verbose_link_cmd='echo'
+    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+      lt_int_apple_cc_single_mod=yes
+    fi
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    else
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+    fi
+    _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=no
+    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+  else
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+  fi
+    ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      ghcx)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  freebsd[12]*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  freebsd-elf*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  freebsd* | kfreebsd*-gnu)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC)
+      # FIXME: insert proper C++ library support
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    aCC)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+        ;;
+      ia64*)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+        ;;
+      *)
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+    ia64*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      aCC)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC)
+	# SGI C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+	  else
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+	;;
+    esac
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc)
+	# Intel C++
+	with_gnu_ld=yes
+	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      cxx)
+	# Compaq C++
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      cxx)
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  sco*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      lcc)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	case $host_os in
+	  solaris2.[0-5] | solaris2.[0-5].*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx)
+	# Green Hills C++ Compiler
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
+    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    ;;
+esac
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$GXX"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_POSTDEP_PREDEP($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+])# AC_LIBTOOL_LANG_CXX_CONFIG
+
+# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
+# ------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library.  It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
+int a;
+void foo (void) { a = 0; }
+EOF
+],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+],[$1],[F77],[cat > conftest.$ac_ext <<EOF
+      subroutine foo
+      implicit none
+      integer*4 a
+      a=0
+      return
+      end
+EOF
+],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
+public class foo {
+  private int a;
+  public void bar (void) {
+    a = 0;
+  }
+};
+EOF
+])
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
+	   else
+	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
+	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
+	 else
+	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext|*.$libext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
+	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
+	 fi
+       else
+	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
+	 else
+	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$rm -f confest.$objext
+
+case " $_LT_AC_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+])# AC_LIBTOOL_POSTDEP_PREDEP
+
+# AC_LIBTOOL_LANG_F77_CONFIG
+# ------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
+AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
+[AC_REQUIRE([AC_PROG_F77])
+AC_LANG_PUSH(Fortran 77)
+
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_AC_TAGVAR(allow_undefined_flag, $1)=
+_LT_AC_TAGVAR(always_export_symbols, $1)=no
+_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_direct, $1)=no
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+_LT_AC_TAGVAR(hardcode_automatic, $1)=no
+_LT_AC_TAGVAR(module_cmds, $1)=
+_LT_AC_TAGVAR(module_expsym_cmds, $1)=
+_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_AC_TAGVAR(no_undefined_flag, $1)=
+_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+AC_MSG_CHECKING([if libtool supports shared libraries])
+AC_MSG_RESULT([$can_build_shared])
+
+AC_MSG_CHECKING([whether to build shared libraries])
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+AC_MSG_RESULT([$enable_shared])
+
+AC_MSG_CHECKING([whether to build static libraries])
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+AC_MSG_RESULT([$enable_static])
+
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+_LT_AC_TAGVAR(GCC, $1)="$G77"
+_LT_AC_TAGVAR(LD, $1)="$LD"
+
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_POP
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_F77_CONFIG
+
+
+# AC_LIBTOOL_LANG_GCJ_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the C compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
+AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
+AC_LIBTOOL_PROG_COMPILER_PIC($1)
+AC_LIBTOOL_PROG_CC_C_O($1)
+AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
+AC_LIBTOOL_PROG_LD_SHLIBS($1)
+AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
+AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
+AC_LIBTOOL_SYS_LIB_STRIP
+AC_LIBTOOL_DLOPEN_SELF($1)
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_GCJ_CONFIG
+
+
+# AC_LIBTOOL_LANG_RC_CONFIG
+# --------------------------
+# Ensure that the configuration vars for the Windows resource compiler are
+# suitably defined.  Those variables are subsequently used by
+# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
+AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
+AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
+[AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_AC_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_AC_SYS_COMPILER
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+_LT_AC_TAGVAR(compiler, $1)=$CC
+_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+AC_LIBTOOL_CONFIG($1)
+
+AC_LANG_RESTORE
+CC="$lt_save_CC"
+])# AC_LIBTOOL_LANG_RC_CONFIG
+
+
+# AC_LIBTOOL_CONFIG([TAGNAME])
+# ----------------------------
+# If TAGNAME is not passed, then create an initial libtool script
+# with a default configuration from the untagged config vars.  Otherwise
+# add code to config.status for appending the configuration named by
+# TAGNAME from the matching tagged config vars.
+AC_DEFUN([AC_LIBTOOL_CONFIG],
+[# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi  
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    _LT_AC_TAGVAR(compiler, $1) \
+    _LT_AC_TAGVAR(CC, $1) \
+    _LT_AC_TAGVAR(LD, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
+    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
+    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
+    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
+    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
+    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
+    _LT_AC_TAGVAR(old_archive_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
+    _LT_AC_TAGVAR(predep_objects, $1) \
+    _LT_AC_TAGVAR(postdep_objects, $1) \
+    _LT_AC_TAGVAR(predeps, $1) \
+    _LT_AC_TAGVAR(postdeps, $1) \
+    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+    _LT_AC_TAGVAR(archive_cmds, $1) \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(postinstall_cmds, $1) \
+    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
+    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
+    _LT_AC_TAGVAR(no_undefined_flag, $1) \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
+    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
+    _LT_AC_TAGVAR(hardcode_automatic, $1) \
+    _LT_AC_TAGVAR(module_cmds, $1) \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
+    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+    _LT_AC_TAGVAR(exclude_expsyms, $1) \
+    _LT_AC_TAGVAR(include_expsyms, $1); do
+
+    case $var in
+    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
+    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_cmds, $1) | \
+    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
+    _LT_AC_TAGVAR(module_cmds, $1) | \
+    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
+    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
+    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\[$]0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
+    ;;
+  esac
+
+ifelse([$1], [],
+  [cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  AC_MSG_NOTICE([creating $ofile])],
+  [cfgfile="$ofile"])
+
+  cat <<__EOF__ >> "$cfgfile"
+ifelse([$1], [],
+[#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG],
+[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
+
+# Is the compiler the GNU C compiler?
+with_gcc=$_LT_AC_TAGVAR(GCC, $1)
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
+archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
+module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
+
+# Symbols that must always be exported.
+include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
+
+ifelse([$1],[],
+[# ### END LIBTOOL CONFIG],
+[# ### END LIBTOOL TAG CONFIG: $tagname])
+
+__EOF__
+
+ifelse([$1],[], [
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+])
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+])# AC_LIBTOOL_CONFIG
+
+
+# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
+[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+
+_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test "$GCC" = yes; then
+  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+    lt_cv_prog_compiler_rtti_exceptions,
+    [-fno-rtti -fno-exceptions], [],
+    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
+
+
+# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+# ---------------------------------
+AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
+[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_NM])
+AC_REQUIRE([AC_OBJEXT])
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[[BCDT]]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[[ABCDGISTW]]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[[ABCDEGRST]]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+irix* | nonstopux*)
+  symcode='[[BCDEGRST]]'
+  ;;
+osf*)
+  symcode='[[BCDEGQRST]]'
+  ;;
+solaris* | sysv5*)
+  symcode='[[BDT]]'
+  ;;
+sysv4)
+  symcode='[[DFNSTU]]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[[ABCDGISTW]]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if AC_TRY_EVAL(ac_compile); then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[[]] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+    fi
+  else
+    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  AC_MSG_RESULT(failed)
+else
+  AC_MSG_RESULT(ok)
+fi
+]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+
+
+# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
+# ---------------------------------------
+AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
+[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
+
+AC_MSG_CHECKING([for $compiler option to produce PIC])
+ ifelse([$1],[CXX],[
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	else
+	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  ghcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	    fi
+	    ;;
+	  aCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC)
+	    # KAI C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  icpc)
+	    # Intel C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+	    ;; 
+	  cxx)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+	    ;;
+	  RCC)
+	    # Rational C++ 2.4.1
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  cxx)
+	    # Digital/Compaq C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC)
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+	    ;;
+	  gcx)
+	    # Green Hills C++ Compiler
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.x
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+	    ;;
+	  lcc)
+	    # Lucid
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC)
+	    # NonStop-UX NCC 3.20
+	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+	;;
+    esac
+  fi
+],
+[
+  if test "$GCC" = yes; then
+    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      else
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # PIC (with -KPIC) is the default.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
+      ccc*)
+        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+        # All Alpha code is PIC.
+        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      # All OSF/1 code is PIC.
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
+  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
+    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
+    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
+     "" | " "*) ;;
+     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+     esac],
+    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
+    ;;
+  *)
+    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
+    ;;
+esac
+])
+
+
+# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
+# ------------------------------------
+# See if the linker supports building shared libraries.
+AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
+[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ifelse([$1],[CXX],[
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    else
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+],[
+  runpath_var=
+  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+  _LT_AC_TAGVAR(archive_cmds, $1)=
+  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
+  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
+  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
+  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
+  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
+  _LT_AC_TAGVAR(module_cmds, $1)=
+  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
+  _LT_AC_TAGVAR(always_export_symbols, $1)=no
+  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  _LT_AC_TAGVAR(include_expsyms, $1)=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+      # as there is no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+
+    sunos4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	_LT_AC_TAGVAR(ld_shlibs, $1)=no
+      fi
+      ;;
+    esac
+
+    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
+      runpath_var=LD_RUN_PATH
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	else
+	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      _LT_AC_TAGVAR(archive_cmds, $1)=''
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.[012]|aix4.[012].*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  else
+  	  # We have old collect2
+  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      _LT_AC_TAGVAR(always_export_symbols, $1)=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	_LT_AC_SYS_LIBPATH_AIX
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	_LT_AC_TAGVAR(archive_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 _LT_AC_SYS_LIBPATH_AIX
+	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      # see comment about different semantics on the GNU ld section
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    bsdi4*)
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=no
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
+      # FIXME: Should let the user specify the lib program.
+      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+      case "$host_os" in
+      rhapsody* | darwin1.[[012]])
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,suppress'
+	;;
+      *) # Darwin 1.3 on
+	if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	  _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	else
+	  case ${MACOSX_DEPLOYMENT_TARGET} in
+	    10.[012])
+	      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	      ;;
+	    10.*)
+	      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-Wl,-undefined -Wl,dynamic_lookup'
+	      ;;
+	  esac
+	fi
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    	else
+        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+      fi
+      _LT_AC_TAGVAR(module_cmds, $1)='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=no
+      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+    else  
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+    fi  
+      ;;
+
+    dgux*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    freebsd1*)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	  ;;
+	ia64*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	*)
+	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
+	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    newsos6)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    openbsd*)
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+	   ;;
+	 *)
+	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
+      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
+      else
+	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
+      ;;
+
+    sco3.2v5*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      case $host_os in
+      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
+      esac
+      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
+        ;;
+	motorola)
+	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv4.3*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      fi
+      runpath_var='LD_RUN_PATH'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    sysv5*)
+      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+      ;;
+
+    *)
+      _LT_AC_TAGVAR(ld_shlibs, $1)=no
+      ;;
+    esac
+  fi
+])
+AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
+test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+  # Assume -lc should be added
+  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $_LT_AC_TAGVAR(archive_cmds, $1) in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+  
+      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
+        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
+        then
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
+        else
+	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
+        fi
+        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
+      ;;
+    esac
+  fi
+  ;;
+esac
+])# AC_LIBTOOL_PROG_LD_SHLIBS
+
+
+# _LT_AC_FILE_LTDLL_C
+# -------------------
+# Be careful that the start marker always follows a newline.
+AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
+# /* ltdll.c starts here */
+# #define WIN32_LEAN_AND_MEAN
+# #include <windows.h>
+# #undef WIN32_LEAN_AND_MEAN
+# #include <stdio.h>
+#
+# #ifndef __CYGWIN__
+# #  ifdef __CYGWIN32__
+# #    define __CYGWIN__ __CYGWIN32__
+# #  endif
+# #endif
+#
+# #ifdef __cplusplus
+# extern "C" {
+# #endif
+# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
+# #ifdef __cplusplus
+# }
+# #endif
+#
+# #ifdef __CYGWIN__
+# #include <cygwin/cygwin_dll.h>
+# DECLARE_CYGWIN_DLL( DllMain );
+# #endif
+# HINSTANCE __hDllInstance_base;
+#
+# BOOL APIENTRY
+# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
+# {
+#   __hDllInstance_base = hInst;
+#   return TRUE;
+# }
+# /* ltdll.c ends here */
+])# _LT_AC_FILE_LTDLL_C
+
+
+# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
+# ---------------------------------
+AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
+
+
+# old names
+AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
+AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
+AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
+AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
+AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
+
+# This is just to silence aclocal about the macro not being used
+ifelse([AC_DISABLE_FAST_INSTALL])
+
+AC_DEFUN([LT_AC_PROG_GCJ],
+[AC_CHECK_TOOL(GCJ, gcj, no)
+  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
+  AC_SUBST(GCJFLAGS)
+])
+
+AC_DEFUN([LT_AC_PROG_RC],
+[AC_CHECK_TOOL(RC, windres, no)
+])
+
+############################################################
+# NOTE: This macro has been submitted for inclusion into   #
+#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
+#  a released version of Autoconf we should remove this    #
+#  macro and use it instead.                               #
+############################################################
+# LT_AC_PROG_SED
+# --------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible.  Prefer GNU sed if found.
+AC_DEFUN([LT_AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && break
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+])
+SED=$lt_cv_path_SED
+AC_MSG_RESULT([$SED])
+])

Added: kde-extras/kpogre/branches/upstream/current/admin/ltmain.sh
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/ltmain.sh	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/ltmain.sh	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,6389 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell, and then maybe $echo will work.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The name of this program.
+progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+modename="$progname"
+
+# Constants.
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5a
+TIMESTAMP=" (1.1240 2003/06/26 06:55:19)"
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+  SP2NL="tr '\100' '\n'"
+  NL2SP="tr '\r\n' '\100\100'"
+  ;;
+ *) # Assume ASCII based system
+  SP2NL="tr '\040' '\012'"
+  NL2SP="tr '\015\012' '\040\040'"
+  ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+  save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+: ${IFS=" 	"}
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+  $echo "$modename: not configured to build any kind of library" 1>&2
+  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+  exit 1
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+win32_libid () {
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+      grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 | \
+	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+      if test "X$win32_nmres" = "Ximport" ; then
+        win32_libid_type="x86 archive import"
+      else
+        win32_libid_type="x86 archive static"
+      fi
+    fi
+    ;;
+  *DLL*) 
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $echo $win32_libid_type
+}
+
+# End of Shell function definitions
+#####################################
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+  arg="$1"
+  shift
+
+  case $arg in
+  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) optarg= ;;
+  esac
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$prev"; then
+    case $prev in
+    execute_dlfiles)
+      execute_dlfiles="$execute_dlfiles $arg"
+      ;;
+    tag)
+      tagname="$arg"
+
+      # Check whether tagname contains only valid characters
+      case $tagname in
+      *[!-_A-Za-z0-9,/]*)
+	$echo "$progname: invalid tag name: $tagname" 1>&2
+	exit 1
+	;;
+      esac
+
+      case $tagname in
+      CC)
+	# Don't test for the "default" C tag, as we know, it's there, but
+	# not specially marked.
+	;;
+      *)
+	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
+	  taglist="$taglist $tagname"
+	  # Evaluate the configuration.
+	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
+	else
+	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
+	fi
+	;;
+      esac
+      ;;
+    *)
+      eval "$prev=\$arg"
+      ;;
+    esac
+
+    prev=
+    prevopt=
+    continue
+  fi
+
+  # Have we seen a non-optional argument yet?
+  case $arg in
+  --help)
+    show_help=yes
+    ;;
+
+  --version)
+    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+    $echo
+    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
+    $echo "This is free software; see the source for copying conditions.  There is NO"
+    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+    exit 0
+    ;;
+
+  --config)
+    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
+    # Now print the configurations for the tags.
+    for tagname in $taglist; do
+      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
+    done
+    exit 0
+    ;;
+
+  --debug)
+    $echo "$progname: enabling shell trace mode"
+    set -x
+    ;;
+
+  --dry-run | -n)
+    run=:
+    ;;
+
+  --features)
+    $echo "host: $host"
+    if test "$build_libtool_libs" = yes; then
+      $echo "enable shared libraries"
+    else
+      $echo "disable shared libraries"
+    fi
+    if test "$build_old_libs" = yes; then
+      $echo "enable static libraries"
+    else
+      $echo "disable static libraries"
+    fi
+    exit 0
+    ;;
+
+  --finish) mode="finish" ;;
+
+  --mode) prevopt="--mode" prev=mode ;;
+  --mode=*) mode="$optarg" ;;
+
+  --preserve-dup-deps) duplicate_deps="yes" ;;
+
+  --quiet | --silent)
+    show=:
+    ;;
+
+  --tag) prevopt="--tag" prev=tag ;;
+  --tag=*)
+    set tag "$optarg" ${1+"$@"}
+    shift
+    prev=tag
+    ;;
+
+  -dlopen)
+    prevopt="-dlopen"
+    prev=execute_dlfiles
+    ;;
+
+  -*)
+    $echo "$modename: unrecognized option \`$arg'" 1>&2
+    $echo "$help" 1>&2
+    exit 1
+    ;;
+
+  *)
+    nonopt="$arg"
+    break
+    ;;
+  esac
+done
+
+if test -n "$prevopt"; then
+  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+  $echo "$help" 1>&2
+  exit 1
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+  # Infer the operation mode.
+  if test -z "$mode"; then
+    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
+    case $nonopt in
+    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+      mode=link
+      for arg
+      do
+	case $arg in
+	-c)
+	   mode=compile
+	   break
+	   ;;
+	esac
+      done
+      ;;
+    *db | *dbx | *strace | *truss)
+      mode=execute
+      ;;
+    *install*|cp|mv)
+      mode=install
+      ;;
+    *rm)
+      mode=uninstall
+      ;;
+    *)
+      # If we have no mode, but dlfiles were specified, then do execute mode.
+      test -n "$execute_dlfiles" && mode=execute
+
+      # Just use the default operation mode.
+      if test -z "$mode"; then
+	if test -n "$nonopt"; then
+	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+	else
+	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+	fi
+      fi
+      ;;
+    esac
+  fi
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+    $echo "$help" 1>&2
+    exit 1
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$modename --help --mode=$mode' for more information."
+
+  # These modes are in order of execution frequency so that they run quickly.
+  case $mode in
+  # libtool compile mode
+  compile)
+    modename="$modename: compile"
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_output=
+    arg_mode=normal
+    libobj=
+
+    for arg
+    do
+      case "$arg_mode" in
+      arg  )
+	# do not "continue".  Instead, add this to base_compile
+	lastarg="$arg"
+	arg_mode=normal
+	;;
+
+      target )
+	libobj="$arg"
+	arg_mode=normal
+	continue
+	;;
+
+      normal )
+	# Accept any command-line options.
+	case $arg in
+	-o)
+	  if test -n "$libobj" ; then
+	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+	    exit 1
+	  fi
+	  arg_mode=target
+	  continue
+	  ;;
+
+	-static)
+	  build_old_libs=yes
+	  continue
+	  ;;
+
+	-prefer-pic)
+	  pic_mode=yes
+	  continue
+	  ;;
+
+	-prefer-non-pic)
+	  pic_mode=no
+	  continue
+	  ;;
+
+	-Xcompiler)
+	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
+	  continue      #  The current "srcfile" will either be retained or
+	  ;;            #  replaced later.  I would guess that would be a bug.
+
+	-Wc,*)
+	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+	  lastarg=
+	  save_ifs="$IFS"; IFS=','
+	  for arg in $args; do
+	    IFS="$save_ifs"
+
+	    # Double-quote args containing other shell metacharacters.
+	    # Many Bourne shells cannot handle close brackets correctly
+	    # in scan sets, so we specify it separately.
+	    case $arg in
+	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	      arg="\"$arg\""
+	      ;;
+	    esac
+	    lastarg="$lastarg $arg"
+	  done
+	  IFS="$save_ifs"
+	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+	  # Add the arguments to base_compile.
+	  base_compile="$base_compile $lastarg"
+	  continue
+	  ;;
+
+	* )
+	  # Accept the current argument as the source file.
+	  # The previous "srcfile" becomes the current argument.
+	  #
+	  lastarg="$srcfile"
+	  srcfile="$arg"
+	  ;;
+	esac  #  case $arg
+	;;
+      esac    #  case $arg_mode
+
+      # Aesthetically quote the previous argument.
+      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+      case $lastarg in
+      # Double-quote args containing other shell metacharacters.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	lastarg="\"$lastarg\""
+	;;
+      esac
+
+      base_compile="$base_compile $lastarg"
+    done # for arg
+
+    case $arg_mode in
+    arg)
+      $echo "$modename: you must specify an argument for -Xcompile"
+      exit 1
+      ;;
+    target)
+      $echo "$modename: you must specify a target with \`-o'" 1>&2
+      exit 1
+      ;;
+    *)
+      # Get the name of the library object.
+      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+      ;;
+    esac
+
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.f90) xform=f90 ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    esac
+
+    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+    case $libobj in
+    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+    *)
+      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+      exit 1
+      ;;
+    esac
+
+    # Infer tagged configuration to use if any are available and
+    # if one wasn't chosen via the "--tag" command line option.
+    # Only attempt this if the compiler in the base compile
+    # command doesn't match the default compiler.
+    if test -n "$available_tags" && test -z "$tagname"; then
+      case $base_compile in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+	    case "$base_compile " in
+	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+	      # The compiler in the base compile command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit 1
+#        else
+#          $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+
+    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$xdir" = "X$obj"; then
+      xdir=
+    else
+      xdir=$xdir/
+    fi
+    lobj=${xdir}$objdir/$objname
+
+    if test -z "$base_compile"; then
+      $echo "$modename: you must specify a compilation command" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
+
+    $run $rm $removelist
+    trap "$run $rm $removelist; exit 1" 1 2 15
+
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
+
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$run $rm $removelist; exit 1" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
+
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $run ln "$0" "$lockfile" 2>/dev/null; do
+	$show "Waiting for $lockfile to be removed"
+	sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+	$echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+      $echo $srcfile > "$lockfile"
+    fi
+
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+
+    $run $rm "$libobj" "${libobj}T"
+
+    # Create a libtool object file (analogous to a ".la" file),
+    # but don't create it if we're doing a dry run.
+    test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
+
+      if test "$pic_mode" != no; then
+	command="$base_compile $srcfile $pic_flag"
+      else
+	# Don't build PIC code
+	command="$base_compile $srcfile"
+      fi
+
+      if test ! -d "${xdir}$objdir"; then
+	$show "$mkdir ${xdir}$objdir"
+	$run $mkdir ${xdir}$objdir
+	status=$?
+	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+	  exit $status
+	fi
+      fi
+
+      if test -z "$output_obj"; then
+	# Place PIC objects in $objdir
+	command="$command -o $lobj"
+      fi
+
+      $run $rm "$lobj" "$output_obj"
+
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	test -n "$output_obj" && $run $rm $removelist
+	exit 1
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+	$show "$mv $output_obj $lobj"
+	if $run $mv $output_obj $lobj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the PIC object to the libtool object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+      # Allow error messages only from the first compilation.
+      suppress_output=' >/dev/null 2>&1'
+    else
+      # No PIC object so indicate it doesn't exist in the libtool
+      # object file.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+    fi
+
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+	# Don't build PIC code
+	command="$base_compile $srcfile"
+      else
+	command="$base_compile $srcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+	command="$command -o $obj"
+      fi
+
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $run $rm "$obj" "$output_obj"
+      $show "$command"
+      if $run eval "$command"; then :
+      else
+	$run $rm $removelist
+	exit 1
+      fi
+
+      if test "$need_locks" = warn &&
+	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+	$echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+	$run $rm $removelist
+	exit 1
+      fi
+
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+	$show "$mv $output_obj $obj"
+	if $run $mv $output_obj $obj; then :
+	else
+	  error=$?
+	  $run $rm $removelist
+	  exit $error
+	fi
+      fi
+
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+    else
+      # Append the name of the non-PIC object the libtool object file.
+      # Only append if the libtool object file exists.
+      test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+    fi
+
+    $run $mv "${libobj}T" "${libobj}"
+
+    # Unlock the critical section if it was locked
+    if test "$need_locks" != no; then
+      $run $rm "$lockfile"
+    fi
+
+    exit 0
+    ;;
+
+  # libtool link mode
+  link | relink)
+    modename="$modename: link"
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
+
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args="$nonopt"
+    base_compile="$nonopt"
+    compile_command="$nonopt"
+    finalize_command="$nonopt"
+
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    add_flags=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -all-static | -static)
+	if test "X$arg" = "X-all-static"; then
+	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+	  fi
+	  if test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	else
+	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
+	    dlopen_self=$dlopen_self_static
+	  fi
+	fi
+	build_libtool_libs=no
+	build_old_libs=yes
+	prefer_static_libs=yes
+	break
+	;;
+      esac
+    done
+
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      base_compile="$base_compile $arg"
+      shift
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+	;;
+      *) qarg=$arg ;;
+      esac
+      libtool_args="$libtool_args $qarg"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+	case $prev in
+	output)
+	  compile_command="$compile_command @OUTPUT@"
+	  finalize_command="$finalize_command @OUTPUT@"
+	  ;;
+	esac
+
+	case $prev in
+	dlfiles|dlprefiles)
+	  if test "$preload" = no; then
+	    # Add the symbol object into the linking commands.
+	    compile_command="$compile_command @SYMFILE@"
+	    finalize_command="$finalize_command @SYMFILE@"
+	    preload=yes
+	  fi
+	  case $arg in
+	  *.la | *.lo) ;;  # We handle these cases below.
+	  force)
+	    if test "$dlself" = no; then
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  self)
+	    if test "$prev" = dlprefiles; then
+	      dlself=yes
+	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+	      dlself=yes
+	    else
+	      dlself=needless
+	      export_dynamic=yes
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  *)
+	    if test "$prev" = dlfiles; then
+	      dlfiles="$dlfiles $arg"
+	    else
+	      dlprefiles="$dlprefiles $arg"
+	    fi
+	    prev=
+	    continue
+	    ;;
+	  esac
+	  ;;
+	expsyms)
+	  export_symbols="$arg"
+	  if test ! -f "$arg"; then
+	    $echo "$modename: symbol file \`$arg' does not exist"
+	    exit 1
+	  fi
+	  prev=
+	  continue
+	  ;;
+	expsyms_regex)
+	  export_symbols_regex="$arg"
+	  prev=
+	  continue
+	  ;;
+	inst_prefix)
+	  inst_prefix_dir="$arg"
+	  prev=
+	  continue
+	  ;;
+	release)
+	  release="-$arg"
+	  prev=
+	  continue
+	  ;;
+	objectlist)
+	  if test -f "$arg"; then
+	    save_arg=$arg
+	    moreargs=
+	    for fil in `cat $save_arg`
+	    do
+#	      moreargs="$moreargs $fil"
+	      arg=$fil
+	      # A libtool-controlled object.
+
+	      # Check to see that this really is a libtool object.
+	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		pic_object=
+		non_pic_object=
+
+		# Read the .lo file
+		# If there is no directory component, then add one.
+		case $arg in
+		*/* | *\\*) . $arg ;;
+		*) . ./$arg ;;
+		esac
+
+		if test -z "$pic_object" || \
+		   test -z "$non_pic_object" ||
+		   test "$pic_object" = none && \
+		   test "$non_pic_object" = none; then
+		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+		  exit 1
+		fi
+
+		# Extract subdirectory from the argument.
+		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		if test "X$xdir" = "X$arg"; then
+		  xdir=
+		else
+		  xdir="$xdir/"
+		fi
+
+		if test "$pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  pic_object="$xdir$pic_object"
+
+		  if test "$prev" = dlfiles; then
+		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		      dlfiles="$dlfiles $pic_object"
+		      prev=
+		      continue
+		    else
+		      # If libtool objects are unsupported, then we need to preload.
+		      prev=dlprefiles
+		    fi
+		  fi
+
+		  # CHECK ME:  I think I busted this.  -Ossama
+		  if test "$prev" = dlprefiles; then
+		    # Preload the old-style object.
+		    dlprefiles="$dlprefiles $pic_object"
+		    prev=
+		  fi
+
+		  # A PIC object.
+		  libobjs="$libobjs $pic_object"
+		  arg="$pic_object"
+		fi
+
+		# Non-PIC object.
+		if test "$non_pic_object" != none; then
+		  # Prepend the subdirectory the object is found in.
+		  non_pic_object="$xdir$non_pic_object"
+
+		  # A standard non-PIC object
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		  if test -z "$pic_object" || test "$pic_object" = none ; then
+		    arg="$non_pic_object"
+		  fi
+		fi
+	      else
+		# Only an error if not doing a dry-run.
+		if test -z "$run"; then
+		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+		  exit 1
+		else
+		  # Dry-run case.
+
+		  # Extract subdirectory from the argument.
+		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+		  if test "X$xdir" = "X$arg"; then
+		    xdir=
+		  else
+		    xdir="$xdir/"
+		  fi
+
+		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+		  libobjs="$libobjs $pic_object"
+		  non_pic_objects="$non_pic_objects $non_pic_object"
+		fi
+	      fi
+	    done
+	  else
+	    $echo "$modename: link input file \`$save_arg' does not exist"
+	    exit 1
+	  fi
+	  arg=$save_arg
+	  prev=
+	  continue
+	  ;;
+	rpath | xrpath)
+	  # We need an absolute path.
+	  case $arg in
+	  [\\/]* | [A-Za-z]:[\\/]*) ;;
+	  *)
+	    $echo "$modename: only absolute run-paths are allowed" 1>&2
+	    exit 1
+	    ;;
+	  esac
+	  if test "$prev" = rpath; then
+	    case "$rpath " in
+	    *" $arg "*) ;;
+	    *) rpath="$rpath $arg" ;;
+	    esac
+	  else
+	    case "$xrpath " in
+	    *" $arg "*) ;;
+	    *) xrpath="$xrpath $arg" ;;
+	    esac
+	  fi
+	  prev=
+	  continue
+	  ;;
+	xcompiler)
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	xlinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $wl$qarg"
+	  prev=
+	  compile_command="$compile_command $wl$qarg"
+	  finalize_command="$finalize_command $wl$qarg"
+	  continue
+	  ;;
+	xcclinker)
+	  linker_flags="$linker_flags $qarg"
+	  compiler_flags="$compiler_flags $qarg"
+	  prev=
+	  compile_command="$compile_command $qarg"
+	  finalize_command="$finalize_command $qarg"
+	  continue
+	  ;;
+	framework)
+	  case $host in
+	    *-*-darwin*)
+	      case "$deplibs " in
+	        *" $qarg.ltframework "*) ;;
+		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+		   ;;
+              esac
+              ;;
+   	  esac
+	  prev=
+	  continue
+	  ;;
+	*)
+	  eval "$prev=\"\$arg\""
+	  prev=
+	  continue
+	  ;;
+	esac
+      fi # test -n "$prev"
+
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+	if test -n "$link_static_flag"; then
+	  compile_command="$compile_command $link_static_flag"
+	  finalize_command="$finalize_command $link_static_flag"
+	fi
+	continue
+	;;
+
+      -allow-undefined)
+	# FIXME: remove this flag sometime in the future.
+	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+	continue
+	;;
+
+      -avoid-version)
+	avoid_version=yes
+	continue
+	;;
+
+      -dlopen)
+	prev=dlfiles
+	continue
+	;;
+
+      -dlpreopen)
+	prev=dlprefiles
+	continue
+	;;
+
+      -export-dynamic)
+	export_dynamic=yes
+	continue
+	;;
+
+      -export-symbols | -export-symbols-regex)
+	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	  $echo "$modename: more than one -exported-symbols argument is not allowed"
+	  exit 1
+	fi
+	if test "X$arg" = "X-export-symbols"; then
+	  prev=expsyms
+	else
+	  prev=expsyms_regex
+	fi
+	continue
+	;;
+
+      -inst-prefix-dir)
+	prev=inst_prefix
+	continue
+	;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+	case $with_gcc/$host in
+	no/*-*-irix* | /*-*-irix*)
+	  compile_command="$compile_command $arg"
+	  finalize_command="$finalize_command $arg"
+	  ;;
+	esac
+	continue
+	;;
+
+      -L*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  absdir=`cd "$dir" && pwd`
+	  if test -z "$absdir"; then
+	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+	    exit 1
+	  fi
+	  dir="$absdir"
+	  ;;
+	esac
+	case "$deplibs " in
+	*" -L$dir "*) ;;
+	*)
+	  deplibs="$deplibs -L$dir"
+	  lib_search_path="$lib_search_path $dir"
+	  ;;
+	esac
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$dir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$dir";;
+	  esac
+	  ;;
+	esac
+	continue
+	;;
+
+      -l*)
+	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+	  case $host in
+	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
+	    # These systems don't actually have a C or math library (as such)
+	    continue
+	    ;;
+	  *-*-mingw* | *-*-os2*)
+	    # These systems don't actually have a C library (as such)
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-openbsd* | *-*-freebsd*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C and math libraries are in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    continue
+	  esac
+	elif test "X$arg" = "X-lc_r"; then
+	 case $host in
+	 *-*-openbsd*)
+	   # Do not include libc_r directly, use -pthread flag.
+	   continue
+	   ;;
+	 esac
+	fi
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
+      -module)
+	module=yes
+	continue
+	;;
+
+      # gcc -m* arguments should be passed to the linker via $compiler_flags
+      # in order to pass architecture information to the linker
+      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
+      # but this is not reliable with gcc because gcc may use -mfoo to
+      # select a different linker, different libraries, etc, while
+      # -Wl,-mfoo simply passes -mfoo to the linker.
+      -m*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+        compile_command="$compile_command $arg"
+        finalize_command="$finalize_command $arg"
+        if test "$with_gcc" = "yes" ; then
+          compiler_flags="$compiler_flags $arg"
+        fi
+        continue
+        ;;
+
+      -shrext)
+	prev=shrext
+	continue
+	;;
+
+      -no-fast-install)
+	fast_install=no
+	continue
+	;;
+
+      -no-install)
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  # The PATH hackery in wrapper scripts is required on Windows
+	  # in order for the loader to find any dlls it needs.
+	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+	  fast_install=no
+	  ;;
+	*) no_install=yes ;;
+	esac
+	continue
+	;;
+
+      -no-undefined)
+	allow_undefined=no
+	continue
+	;;
+
+      -objectlist)
+	prev=objectlist
+	continue
+	;;
+
+      -o) prev=output ;;
+
+      -release)
+	prev=release
+	continue
+	;;
+
+      -rpath)
+	prev=rpath
+	continue
+	;;
+
+      -R)
+	prev=xrpath
+	continue
+	;;
+
+      -R*)
+	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+	# We need an absolute path.
+	case $dir in
+	[\\/]* | [A-Za-z]:[\\/]*) ;;
+	*)
+	  $echo "$modename: only absolute run-paths are allowed" 1>&2
+	  exit 1
+	  ;;
+	esac
+	case "$xrpath " in
+	*" $dir "*) ;;
+	*) xrpath="$xrpath $dir" ;;
+	esac
+	continue
+	;;
+
+      -static)
+	# The effects of -static are defined in a previous loop.
+	# We used to do the same as -all-static on platforms that
+	# didn't have a PIC flag, but the assumption that the effects
+	# would be equivalent was wrong.  It would break on at least
+	# Digital Unix and AIX.
+	continue
+	;;
+
+      -thread-safe)
+	thread_safe=yes
+	continue
+	;;
+
+      -version-info)
+	prev=vinfo
+	continue
+	;;
+      -version-number)
+	prev=vinfo
+	vinfo_number=yes
+	continue
+	;;
+
+      -Wc,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Wl,*)
+	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+	arg=
+	save_ifs="$IFS"; IFS=','
+	for flag in $args; do
+	  IFS="$save_ifs"
+	  case $flag in
+	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	    flag="\"$flag\""
+	    ;;
+	  esac
+	  arg="$arg $wl$flag"
+	  compiler_flags="$compiler_flags $wl$flag"
+	  linker_flags="$linker_flags $flag"
+	done
+	IFS="$save_ifs"
+	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+	;;
+
+      -Xcompiler)
+	prev=xcompiler
+	continue
+	;;
+
+      -Xlinker)
+	prev=xlinker
+	continue
+	;;
+
+      -XCClinker)
+	prev=xcclinker
+	continue
+	;;
+
+      -framework)
+        prev=framework
+	continue
+	;;
+
+      # Some other compiler flag.
+      -* | +*)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	add_flags="$add_flags $arg"
+	;;
+
+      *.$objext)
+	# A standard object.
+	objs="$objs $arg"
+	;;
+
+      *.lo)
+	# A libtool-controlled object.
+
+	# Check to see that this really is a libtool object.
+	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  pic_object=
+	  non_pic_object=
+
+	  # Read the .lo file
+	  # If there is no directory component, then add one.
+	  case $arg in
+	  */* | *\\*) . $arg ;;
+	  *) . ./$arg ;;
+	  esac
+
+	  if test -z "$pic_object" || \
+	     test -z "$non_pic_object" ||
+	     test "$pic_object" = none && \
+	     test "$non_pic_object" = none; then
+	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+	    exit 1
+	  fi
+
+	  # Extract subdirectory from the argument.
+	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	  if test "X$xdir" = "X$arg"; then
+	    xdir=
+ 	  else
+	    xdir="$xdir/"
+	  fi
+
+	  if test "$pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    pic_object="$xdir$pic_object"
+
+	    if test "$prev" = dlfiles; then
+	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+		dlfiles="$dlfiles $pic_object"
+		prev=
+		continue
+	      else
+		# If libtool objects are unsupported, then we need to preload.
+		prev=dlprefiles
+	      fi
+	    fi
+
+	    # CHECK ME:  I think I busted this.  -Ossama
+	    if test "$prev" = dlprefiles; then
+	      # Preload the old-style object.
+	      dlprefiles="$dlprefiles $pic_object"
+	      prev=
+	    fi
+
+	    # A PIC object.
+	    libobjs="$libobjs $pic_object"
+	    arg="$pic_object"
+	  fi
+
+	  # Non-PIC object.
+	  if test "$non_pic_object" != none; then
+	    # Prepend the subdirectory the object is found in.
+	    non_pic_object="$xdir$non_pic_object"
+
+	    # A standard non-PIC object
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	    if test -z "$pic_object" || test "$pic_object" = none ; then
+	      arg="$non_pic_object"
+	    fi
+	  fi
+	else
+	  # Only an error if not doing a dry-run.
+	  if test -z "$run"; then
+	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+	    exit 1
+	  else
+	    # Dry-run case.
+
+	    # Extract subdirectory from the argument.
+	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+	    if test "X$xdir" = "X$arg"; then
+	      xdir=
+	    else
+	      xdir="$xdir/"
+	    fi
+
+	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+	    libobjs="$libobjs $pic_object"
+	    non_pic_objects="$non_pic_objects $non_pic_object"
+	  fi
+	fi
+	;;
+
+      *.$libext)
+	# An archive.
+	deplibs="$deplibs $arg"
+	old_deplibs="$old_deplibs $arg"
+	continue
+	;;
+
+      *.la)
+	# A libtool-controlled library.
+
+	if test "$prev" = dlfiles; then
+	  # This library was specified with -dlopen.
+	  dlfiles="$dlfiles $arg"
+	  prev=
+	elif test "$prev" = dlprefiles; then
+	  # The library was specified with -dlpreopen.
+	  dlprefiles="$dlprefiles $arg"
+	  prev=
+	else
+	  deplibs="$deplibs $arg"
+	fi
+	continue
+	;;
+
+      # Some other compiler argument.
+      *)
+	# Unknown arguments in both finalize_command and compile_command need
+	# to be aesthetically quoted because they are evaled later.
+	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+	case $arg in
+	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
+	  arg="\"$arg\""
+	  ;;
+	esac
+	add_flags="$add_flags $arg"
+	;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+	compile_command="$compile_command $arg"
+	finalize_command="$finalize_command $arg"
+      fi
+    done # argument parsing loop
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Infer tagged configuration to use if any are available and
+    # if one wasn't chosen via the "--tag" command line option.
+    # Only attempt this if the compiler in the base link
+    # command doesn't match the default compiler.
+    if test -n "$available_tags" && test -z "$tagname"; then
+      case $base_compile in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+	for z in $available_tags; do
+	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
+	    # Evaluate the configuration.
+	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+	    case $base_compile in
+	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+	      # The compiler in $compile_command matches
+	      # the one in the tagged configuration.
+	      # Assume this is the tagged configuration we want.
+	      tagname=$z
+	      break
+	      ;;
+	    esac
+	  fi
+	done
+	# If $tagname still isn't set, then no tagged configuration
+	# was found and let the user know that the "--tag" command
+	# line option must be used.
+	if test -z "$tagname"; then
+	  $echo "$modename: unable to infer tagged configuration"
+	  $echo "$modename: specify a tag with \`--tag'" 1>&2
+	  exit 1
+#       else
+#         $echo "$modename: using $tagname tagged configuration"
+	fi
+	;;
+      esac
+    fi
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      compile_command="$compile_command $arg"
+      finalize_command="$finalize_command $arg"
+    fi
+
+    oldlibs=
+    # calculate the name of the file, without its directory
+    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+    libobjs_save="$libobjs"
+
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+    if test "X$output_objdir" = "X$output"; then
+      output_objdir="$objdir"
+    else
+      output_objdir="$output_objdir/$objdir"
+    fi
+    # Create the object directory.
+    if test ! -d "$output_objdir"; then
+      $show "$mkdir $output_objdir"
+      $run $mkdir $output_objdir
+      status=$?
+      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+	exit $status
+      fi
+    fi
+
+    # Determine the type of output
+    case $output in
+    "")
+      $echo "$modename: you must specify an output file" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplcations in $postdeps and $predeps
+      duplicate_compiler_generated_deps=yes
+      ;;
+    *)
+      duplicate_compiler_generated_deps=$duplicate_deps
+      ;;
+    esac
+    specialdeplibs=
+
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if test "X$duplicate_deps" = "Xyes" ; then
+	case "$libs " in
+	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	esac
+      fi
+      libs="$libs $deplib"
+    done
+
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+	for pre_post_dep in $predeps $postdeps; do
+	  case "$pre_post_deps " in
+	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+	  esac
+	  pre_post_deps="$pre_post_deps $pre_post_dep"
+	done
+      fi
+      pre_post_deps=
+    fi
+
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
+    case $linkmode in
+    lib)
+	passes="conv link"
+	for file in $dlfiles $dlprefiles; do
+	  case $file in
+	  *.la) ;;
+	  *)
+	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+	    exit 1
+	    ;;
+	  esac
+	done
+	;;
+    prog)
+	compile_deplibs=
+	finalize_deplibs=
+	alldeplibs=no
+	newdlfiles=
+	newdlprefiles=
+	passes="conv scan dlopen dlpreopen link"
+	;;
+    *)  passes="conv"
+	;;
+    esac
+    for pass in $passes; do
+      if test "$linkmode,$pass" = "lib,link" ||
+	 test "$linkmode,$pass" = "prog,scan"; then
+	libs="$deplibs"
+	deplibs=
+      fi
+      if test "$linkmode" = prog; then
+	case $pass in
+	dlopen) libs="$dlfiles" ;;
+	dlpreopen) libs="$dlprefiles" ;;
+	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	esac
+      fi
+      if test "$pass" = dlopen; then
+	# Collect dlpreopened libraries
+	save_deplibs="$deplibs"
+	deplibs=
+      fi
+      for deplib in $libs; do
+	lib=
+	found=no
+	case $deplib in
+	-l*)
+	  if test "$linkmode" != lib && test "$linkmode" != prog; then
+	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+	    continue
+	  fi
+	  if test "$pass" = conv && test "$allow_undefined" = yes; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	    for search_ext in .la $shrext .so .a; do
+	      # Search the libtool library
+	      lib="$searchdir/lib${name}${search_ext}"
+	      if test -f "$lib"; then
+		if test "$search_ext" = ".la"; then
+		  found=yes
+		else
+		  found=no
+		fi
+		break 2
+	      fi
+	    done
+	  done
+	  if test "$found" != yes; then
+	    # deplib doesn't seem to be a libtool library
+	    if test "$linkmode,$pass" = "prog,link"; then
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      deplibs="$deplib $deplibs"
+	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    continue
+	  else # deplib is a libtool library
+	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+	    # We need to do some special things here, and not later.
+	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	      case " $predeps $postdeps " in
+	      *" $deplib "*)
+		if (${SED} -e '2q' $lib |
+                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+		  library_names=
+		  old_library=
+		  case $lib in
+		  */* | *\\*) . $lib ;;
+		  *) . ./$lib ;;
+		  esac
+		  for l in $old_library $library_names; do
+		    ll="$l"
+		  done
+		  if test "X$ll" = "X$old_library" ; then # only static version available
+		    found=no
+		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+		    test "X$ladir" = "X$lib" && ladir="."
+		    lib=$ladir/$old_library
+		    if test "$linkmode,$pass" = "prog,link"; then
+		      compile_deplibs="$deplib $compile_deplibs"
+		      finalize_deplibs="$deplib $finalize_deplibs"
+		    else
+		      deplibs="$deplib $deplibs"
+		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+		    fi
+		    continue
+		  fi
+		fi
+	        ;;
+	      *) ;;
+	      esac
+	    fi
+	  fi
+	  ;; # -l
+	*.ltframework)
+	  if test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$deplib $compile_deplibs"
+	    finalize_deplibs="$deplib $finalize_deplibs"
+	  else
+	    deplibs="$deplib $deplibs"
+	    if test "$linkmode" = lib ; then
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	  fi
+	  continue
+	  ;;
+	-L*)
+	  case $linkmode in
+	  lib)
+	    deplibs="$deplib $deplibs"
+	    test "$pass" = conv && continue
+	    newdependency_libs="$deplib $newdependency_libs"
+	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    ;;
+	  prog)
+	    if test "$pass" = conv; then
+	      deplibs="$deplib $deplibs"
+	      continue
+	    fi
+	    if test "$pass" = scan; then
+	      deplibs="$deplib $deplibs"
+	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    ;;
+	  *)
+	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+	    ;;
+	  esac # linkmode
+	  continue
+	  ;; # -L
+	-R*)
+	  if test "$pass" = link; then
+	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+	    # Make sure the xrpath contains only unique directories.
+	    case "$xrpath " in
+	    *" $dir "*) ;;
+	    *) xrpath="$xrpath $dir" ;;
+	    esac
+	  fi
+	  deplibs="$deplib $deplibs"
+	  continue
+	  ;;
+	*.la) lib="$deplib" ;;
+	*.$libext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	    continue
+	  fi
+	  case $linkmode in
+	  lib)
+	    if test "$deplibs_check_method" != pass_all; then
+	      $echo
+	      $echo "*** Warning: Trying to link with static lib archive $deplib."
+	      $echo "*** I have the capability to make that library automatically link in when"
+	      $echo "*** you link to this library.  But I can only do this if you have a"
+	      $echo "*** shared version of the library, which you do not appear to have"
+	      $echo "*** because the file extensions .$libext of this argument makes me believe"
+	      $echo "*** that it is just a static archive that I should not used here."
+	    else
+	      $echo
+	      $echo "*** Warning: Linking the shared library $output against the"
+	      $echo "*** static library $deplib is not portable!"
+	      deplibs="$deplib $deplibs"
+	    fi
+	    continue
+	    ;;
+	  prog)
+	    if test "$pass" != link; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    fi
+	    continue
+	    ;;
+	  esac # linkmode
+	  ;; # *.$libext
+	*.lo | *.$objext)
+	  if test "$pass" = conv; then
+	    deplibs="$deplib $deplibs"
+	  elif test "$linkmode" = prog; then
+	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	      # If there is no dlopen support or we're linking statically,
+	      # we need to preload.
+	      newdlprefiles="$newdlprefiles $deplib"
+	      compile_deplibs="$deplib $compile_deplibs"
+	      finalize_deplibs="$deplib $finalize_deplibs"
+	    else
+	      newdlfiles="$newdlfiles $deplib"
+	    fi
+	  fi
+	  continue
+	  ;;
+	%DEPLIBS%)
+	  alldeplibs=yes
+	  continue
+	  ;;
+	esac # case $deplib
+	if test "$found" = yes || test -f "$lib"; then :
+	else
+	  $echo "$modename: cannot find the library \`$lib'" 1>&2
+	  exit 1
+	fi
+
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  exit 1
+	fi
+
+	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$ladir" = "X$lib" && ladir="."
+
+	dlname=
+	dlopen=
+	dlpreopen=
+	libdir=
+	library_names=
+	old_library=
+	# If the library was installed with an old release of libtool,
+	# it will not redefine variables installed, or shouldnotlink
+	installed=yes
+	shouldnotlink=no
+
+	# Read the .la file
+	case $lib in
+	*/* | *\\*) . $lib ;;
+	*) . ./$lib ;;
+	esac
+
+	case $host in
+	*-*-darwin*)
+	  # Convert "-framework foo" to "foo.ltframework" in dependency_libs
+	  test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+	  ;;
+	esac
+
+	if test "$linkmode,$pass" = "lib,link" ||
+	   test "$linkmode,$pass" = "prog,scan" ||
+	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+	fi
+
+	if test "$pass" = conv; then
+	  # Only check for convenience libraries
+	  deplibs="$lib $deplibs"
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    #echo "Adding $deplib to \$deplibs"
+	    deplibs="$deplib $deplibs"
+            if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+            fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+	  if test -z "$libdir"; then
+	    if test -z "$old_library"; then
+	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	      exit 1
+	    fi
+	    # It is a libtool convenience library, so add in its objects.
+	    convenience="$convenience $ladir/$objdir/$old_library"
+	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
+	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
+	    exit 1
+	  fi
+	  continue
+	fi # $pass = conv
+
+    
+	# Get the name of the library we link against.
+	linklib=
+	for l in $old_library $library_names; do
+	  linklib="$l"
+	done
+	if test -z "$linklib"; then
+	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+	  exit 1
+	fi
+
+	# This library was specified with -dlopen.
+	if test "$pass" = dlopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+	    exit 1
+	  fi
+	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+	    # If there is no dlname, no dlopen support or we're linking
+	    # statically, we need to preload.  We also need to preload any
+	    # dependent libraries so libltdl's deplib preloader doesn't
+	    # bomb out in the load deplibs phase.
+	    dlprefiles="$dlprefiles $lib $dependency_libs"
+	  else
+	    newdlfiles="$newdlfiles $lib"
+	  fi
+	  continue
+	fi # $pass = dlopen
+
+	# We need an absolute path.
+	case $ladir in
+	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+	*)
+	  abs_ladir=`cd "$ladir" && pwd`
+	  if test -z "$abs_ladir"; then
+	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+	    abs_ladir="$ladir"
+	  fi
+	  ;;
+	esac
+	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+	# Find the relevant object directory and library name.
+	if test "X$installed" = Xyes; then
+	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
+	    dir="$ladir"
+	    absdir="$abs_ladir"
+	    libdir="$abs_ladir"
+	  else
+	    dir="$libdir"
+	    absdir="$libdir"
+	  fi
+	else
+	  dir="$ladir/$objdir"
+	  absdir="$abs_ladir/$objdir"
+	  # Remove this search path later
+	  notinst_path="$notinst_path $abs_ladir"
+	fi # $installed = yes
+	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+	# This library was specified with -dlpreopen.
+	if test "$pass" = dlpreopen; then
+	  if test -z "$libdir"; then
+	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+	    exit 1
+	  fi
+	  # Prefer using a static library (so that no silly _DYNAMIC symbols
+	  # are required to link).
+	  if test -n "$old_library"; then
+	    newdlprefiles="$newdlprefiles $dir/$old_library"
+	  # Otherwise, use the dlname, so that lt_dlopen finds it.
+	  elif test -n "$dlname"; then
+	    newdlprefiles="$newdlprefiles $dir/$dlname"
+	  else
+	    newdlprefiles="$newdlprefiles $dir/$linklib"
+	  fi
+	fi # $pass = dlpreopen
+
+	if test -z "$libdir"; then
+	  # Link the convenience library
+	  if test "$linkmode" = lib; then
+	    deplibs="$dir/$old_library $deplibs"
+	  elif test "$linkmode,$pass" = "prog,link"; then
+	    compile_deplibs="$dir/$old_library $compile_deplibs"
+	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
+	  else
+	    deplibs="$lib $deplibs" # used for prog,scan pass
+	  fi
+	  continue
+	fi
+
+    
+	if test "$linkmode" = prog && test "$pass" != link; then
+	  newlib_search_path="$newlib_search_path $ladir"
+	  deplibs="$lib $deplibs"
+
+	  linkalldeplibs=no
+	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
+	     test "$build_libtool_libs" = no; then
+	    linkalldeplibs=yes
+	  fi
+
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    case $deplib in
+	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+	    esac
+	    # Need to link against all dependency_libs?
+	    if test "$linkalldeplibs" = yes; then
+	      deplibs="$deplib $deplibs"
+	    else
+	      # Need to hardcode shared library paths
+	      # or/and link against static libraries
+	      newdependency_libs="$deplib $newdependency_libs"
+	    fi
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done # for deplib
+	  continue
+	fi # $linkmode = prog...
+
+	if test "$linkmode,$pass" = "prog,link"; then
+	  if test -n "$library_names" &&
+	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	    # We need to hardcode the library path
+	    if test -n "$shlibpath_var"; then
+	      # Make sure the rpath contains only unique directories.
+	      case "$temp_rpath " in
+	      *" $dir "*) ;;
+	      *" $absdir "*) ;;
+	      *) temp_rpath="$temp_rpath $dir" ;;
+	      esac
+	    fi
+
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi # $linkmode,$pass = prog,link...
+
+	  if test "$alldeplibs" = yes &&
+	     { test "$deplibs_check_method" = pass_all ||
+	       { test "$build_libtool_libs" = yes &&
+		 test -n "$library_names"; }; }; then
+	    # We only need to search for static libraries
+	    continue
+	  fi
+	fi
+
+	link_static=no # Whether the deplib will be linked statically
+	if test -n "$library_names" &&
+	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+	  if test "$installed" = no; then
+	    notinst_deplibs="$notinst_deplibs $lib"
+	    need_relink=yes
+	  fi
+	  # This is a shared library
+	
+      # Warn about portability, can't link against -module's on some systems (darwin)
+      if test "$shouldnotlink" = yes && test "$pass" = link ; then
+	    $echo
+	    if test "$linkmode" = prog; then
+	      $echo "*** Warning: Linking the executable $output against the loadable module"
+	    else
+	      $echo "*** Warning: Linking the shared library $output against the loadable module"
+	    fi
+	    $echo "*** $linklib is not portable!"    
+      fi	  
+	  if test "$linkmode" = lib &&
+	     test "$hardcode_into_libs" = yes; then
+	    # Hardcode the library path.
+	    # Skip directories that are in the system default run-time
+	    # search path.
+	    case " $sys_lib_dlsearch_path " in
+	    *" $absdir "*) ;;
+	    *)
+	      case "$compile_rpath " in
+	      *" $absdir "*) ;;
+	      *) compile_rpath="$compile_rpath $absdir"
+	      esac
+	      ;;
+	    esac
+	    case " $sys_lib_dlsearch_path " in
+	    *" $libdir "*) ;;
+	    *)
+	      case "$finalize_rpath " in
+	      *" $libdir "*) ;;
+	      *) finalize_rpath="$finalize_rpath $libdir"
+	      esac
+	      ;;
+	    esac
+	  fi
+
+	  if test -n "$old_archive_from_expsyms_cmds"; then
+	    # figure out the soname
+	    set dummy $library_names
+	    realname="$2"
+	    shift; shift
+	    libname=`eval \\$echo \"$libname_spec\"`
+	    # use dlname if we got it. it's perfectly good, no?
+	    if test -n "$dlname"; then
+	      soname="$dlname"
+	    elif test -n "$soname_spec"; then
+	      # bleh windows
+	      case $host in
+	      *cygwin* | mingw*)
+		major=`expr $current - $age`
+		versuffix="-$major"
+		;;
+	      esac
+	      eval soname=\"$soname_spec\"
+	    else
+	      soname="$realname"
+	    fi
+
+	    # Make a new name for the extract_expsyms_cmds to use
+	    soroot="$soname"
+	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+	    # If the library has no export list, then create one now
+	    if test -f "$output_objdir/$soname-def"; then :
+	    else
+	      $show "extracting exported symbol list from \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      eval cmds=\"$extract_expsyms_cmds\"
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    # Create $newlib
+	    if test -f "$output_objdir/$newlib"; then :; else
+	      $show "generating import library for \`$soname'"
+	      save_ifs="$IFS"; IFS='~'
+	      eval cmds=\"$old_archive_from_expsyms_cmds\"
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd" || exit $?
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # make sure the library variables are pointing to the new library
+	    dir=$output_objdir
+	    linklib=$newlib
+	  fi # test -n "$old_archive_from_expsyms_cmds"
+
+	  if test "$linkmode" = prog || test "$mode" != relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    lib_linked=yes
+	    case $hardcode_action in
+	    immediate | unsupported)
+	      if test "$hardcode_direct" = no; then
+		add="$dir/$linklib"
+		case $host in
+		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+		  *-*-darwin* )
+		    # if the lib is a module then we can not link against it, someone
+		    # is ignoring the new warnings I added
+		    if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
+		      $echo "** Warning, lib $linklib is a module, not a shared library"
+		      if test -z "$old_library" ; then
+		        $echo
+		        $echo "** And there doesn't seem to be a static archive available"
+		        $echo "** The link will probably fail, sorry"
+		      else
+		        add="$dir/$old_library"
+		      fi 
+		    fi
+		esac
+	      elif test "$hardcode_minus_L" = no; then
+		case $host in
+		*-*-sunos*) add_shlibpath="$dir" ;;
+		esac
+		add_dir="-L$dir"
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = no; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    relink)
+	      if test "$hardcode_direct" = yes; then
+		add="$dir/$linklib"
+	      elif test "$hardcode_minus_L" = yes; then
+		add_dir="-L$dir"
+		# Try looking first in the location we're being installed to.
+		if test -n "$inst_prefix_dir"; then
+		  case "$libdir" in
+		    [\\/]*)
+		      add_dir="-L$inst_prefix_dir$libdir $add_dir"
+		      ;;
+		  esac
+		fi
+		add="-l$name"
+	      elif test "$hardcode_shlibpath_var" = yes; then
+		add_shlibpath="$dir"
+		add="-l$name"
+	      else
+		lib_linked=no
+	      fi
+	      ;;
+	    *) lib_linked=no ;;
+	    esac
+
+	    if test "$lib_linked" != yes; then
+	      $echo "$modename: configuration error: unsupported hardcode properties"
+	      exit 1
+	    fi
+
+	    if test -n "$add_shlibpath"; then
+	      case :$compile_shlibpath: in
+	      *":$add_shlibpath:"*) ;;
+	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+	      esac
+	    fi
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	      if test "$hardcode_direct" != yes && \
+		 test "$hardcode_minus_L" != yes && \
+		 test "$hardcode_shlibpath_var" = yes; then
+		case :$finalize_shlibpath: in
+		*":$libdir:"*) ;;
+		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+		esac
+	      fi
+	    fi
+	  fi
+
+	  if test "$linkmode" = prog || test "$mode" = relink; then
+	    add_shlibpath=
+	    add_dir=
+	    add=
+	    # Finalize command for both is simple: just hardcode it.
+	    if test "$hardcode_direct" = yes; then
+	      add="$libdir/$linklib"
+	    elif test "$hardcode_minus_L" = yes; then
+	      add_dir="-L$libdir"
+	      add="-l$name"
+	    elif test "$hardcode_shlibpath_var" = yes; then
+	      case :$finalize_shlibpath: in
+	      *":$libdir:"*) ;;
+	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+	      esac
+	      add="-l$name"
+	    elif test "$hardcode_automatic" = yes; then
+	      if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
+	        add="$inst_prefix_dir$libdir/$linklib"
+	      else
+	        add="$libdir/$linklib"
+	      fi
+	    else
+	      # We cannot seem to hardcode it, guess we'll fake it.
+	      add_dir="-L$libdir"
+	      # Try looking first in the location we're being installed to.
+	      if test -n "$inst_prefix_dir"; then
+		case "$libdir" in
+		  [\\/]*)
+		    add_dir="-L$inst_prefix_dir$libdir $add_dir"
+		    ;;
+		esac
+	      fi
+	      add="-l$name"
+	    fi
+
+	    if test "$linkmode" = prog; then
+	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+	    else
+	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
+	      test -n "$add" && deplibs="$add $deplibs"
+	    fi
+	  fi
+	elif test "$linkmode" = prog; then
+	  # Here we assume that one of hardcode_direct or hardcode_minus_L
+	  # is not unsupported.  This is valid on all known static and
+	  # shared platforms.
+	  if test "$hardcode_direct" != unsupported; then
+	    test -n "$old_library" && linklib="$old_library"
+	    compile_deplibs="$dir/$linklib $compile_deplibs"
+	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
+	  else
+	    compile_deplibs="-l$name -L$dir $compile_deplibs"
+	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+	  fi
+	elif test "$build_libtool_libs" = yes; then
+	  # Not a shared library
+	  if test "$deplibs_check_method" != pass_all; then
+	    # We're trying link a shared library against a static one
+	    # but the system doesn't support it.
+
+	    # Just print a warning and add the library to dependency_libs so
+	    # that the program can be linked against the static library.
+	    $echo
+	    $echo "*** Warning: This system can not link to static lib archive $lib."
+	    $echo "*** I have the capability to make that library automatically link in when"
+	    $echo "*** you link to this library.  But I can only do this if you have a"
+	    $echo "*** shared version of the library, which you do not appear to have."
+	    if test "$module" = yes; then
+	      $echo "*** But as you try to build a module library, libtool will still create "
+	      $echo "*** a static module, that should work as long as the dlopening application"
+	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+	      if test -z "$global_symbol_pipe"; then
+		$echo
+		$echo "*** However, this would only work if libtool was able to extract symbol"
+		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+		$echo "*** not find such a program.  So, this module is probably useless."
+		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	      fi
+	      if test "$build_old_libs" = no; then
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  else
+	    convenience="$convenience $dir/$old_library"
+	    old_convenience="$old_convenience $dir/$old_library"
+	    deplibs="$dir/$old_library $deplibs"
+	    link_static=yes
+	  fi
+	fi # link shared/static library?
+
+	if test "$linkmode" = lib; then
+	  #if test -n "$dependency_libs" &&
+	  #   { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
+	  #     test "$link_static" = yes; }; then
+	    # Extract -R from dependency_libs
+	    temp_deplibs=
+	    for libdir in $dependency_libs; do
+	      case $libdir in
+	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+		   case " $xrpath " in
+		   *" $temp_xrpath "*) ;;
+		   *) xrpath="$xrpath $temp_xrpath";;
+		   esac;;
+	      *) temp_deplibs="$temp_deplibs $libdir";;
+	      esac
+	    done
+	    dependency_libs="$temp_deplibs"
+	  #fi
+
+	  newlib_search_path="$newlib_search_path $absdir"
+	  # Link against this library
+	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+	  # ... and its dependency_libs
+	  tmp_libs=
+	  for deplib in $dependency_libs; do
+	    newdependency_libs="$deplib $newdependency_libs"
+	    if test "X$duplicate_deps" = "Xyes" ; then
+	      case "$tmp_libs " in
+	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+	      esac
+	    fi
+	    tmp_libs="$tmp_libs $deplib"
+	  done
+
+	  if test "$link_all_deplibs" != no; then
+	    # Add the search paths of all dependency libraries
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      -L*) path="$deplib" ;;
+	      *.la)
+		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+		test "X$dir" = "X$deplib" && dir="."
+		# We need an absolute path.
+		case $dir in
+		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+		*)
+		  absdir=`cd "$dir" && pwd`
+		  if test -z "$absdir"; then
+		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+		    absdir="$dir"
+		  fi
+		  ;;
+		esac
+		if grep "^installed=no" $deplib > /dev/null; then
+		  path="$absdir/$objdir"
+		else
+		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		  if test -z "$libdir"; then
+		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		    exit 1
+		  fi
+		  if test "$absdir" != "$libdir"; then
+		    # Sure, some shells/systems don't implement the -ef.
+		    # Those will have to live with the warning.
+		    test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
+		      $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+		  fi
+		  path="$absdir"
+		fi
+		depdepl=
+		case $host in
+		*-*-darwin*)
+		  # we do not want to link against static libs, but need to link against shared
+		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  if test -n "$deplibrary_names" ; then
+		    for tmp in $deplibrary_names ; do
+		      depdepl=$tmp
+		    done
+		    if test -f "$path/$depdepl" ; then
+		      depdepl="$path/$depdepl"
+		   fi
+		    # do not add paths which are already there
+		    case " $newlib_search_path " in
+		    *" $path "*) ;;
+		    *) newlib_search_path="$newlib_search_path $path";;
+		    esac
+		    path=""
+		  fi
+		  ;;
+		*)
+		path="-L$path"
+		;;
+		esac 
+		
+		;;
+		  -l*)
+		case $host in
+		*-*-darwin*)
+		 # Again, we only want to link against shared libraries
+		 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+		 for tmp in $newlib_search_path ; do
+		     if test -f "$tmp/lib$tmp_libs.dylib" ; then
+		       eval depdepl="$tmp/lib$tmp_libs.dylib"
+		       break
+		     fi  
+         done
+         path=""
+		  ;;
+		*) continue ;;
+		esac  		  
+		;;
+
+	      *.ltframework)
+		case $host in
+		  *-*-darwin*)
+		    depdepl="$deplib"
+		    ;;
+		esac
+		;;
+
+	      *) continue ;;
+	      esac
+	      case " $deplibs " in
+	      *" $depdepl "*) ;;
+	      *) deplibs="$deplibs $depdepl" ;;
+	      esac	      
+	      case " $deplibs " in
+	      *" $path "*) ;;
+	      *) deplibs="$deplibs $path" ;;
+	      esac
+	    done
+	  fi # link_all_deplibs != no
+	fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+	# Link the dlpreopened libraries before other libraries
+	for deplib in $save_deplibs; do
+	  deplibs="$deplib $deplibs"
+	done
+      fi
+      if test "$pass" != dlopen; then
+	if test "$pass" != conv; then
+	  # Make sure lib_search_path contains only unique directories.
+	  lib_search_path=
+	  for dir in $newlib_search_path; do
+	    case "$lib_search_path " in
+	    *" $dir "*) ;;
+	    *) lib_search_path="$lib_search_path $dir" ;;
+	    esac
+	  done
+	  newlib_search_path=
+	fi
+
+	if test "$linkmode,$pass" != "prog,link"; then
+	  vars="deplibs"
+	else
+	  vars="compile_deplibs finalize_deplibs"
+	fi
+	for var in $vars dependency_libs; do
+	  # Add libraries to $var in reverse order
+	  eval tmp_libs=\"\$$var\"
+	  new_libs=
+	  for deplib in $tmp_libs; do
+	    # FIXME: Pedantically, this is the right thing to do, so
+	    #        that some nasty dependency loop isn't accidentally
+	    #        broken:
+	    #new_libs="$deplib $new_libs"
+	    # Pragmatically, this seems to cause very few problems in
+	    # practice:
+	    case $deplib in
+	    -L*) new_libs="$deplib $new_libs" ;;
+	    -R*) ;;
+	    *)
+	      # And here is the reason: when a library appears more
+	      # than once as an explicit dependence of a library, or
+	      # is implicitly linked in more than once by the
+	      # compiler, it is considered special, and multiple
+	      # occurrences thereof are not removed.  Compare this
+	      # with having the same library being listed as a
+	      # dependency of multiple other libraries: in this case,
+	      # we know (pedantically, we assume) the library does not
+	      # need to be listed more than once, so we keep only the
+	      # last copy.  This is not always right, but it is rare
+	      # enough that we require users that really mean to play
+	      # such unportable linking tricks to link the library
+	      # using -Wl,-lname, so that libtool does not consider it
+	      # for duplicate removal.
+	      case " $specialdeplibs " in
+	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
+	      *)
+		case " $new_libs " in
+		*" $deplib "*) ;;
+		*) new_libs="$deplib $new_libs" ;;
+		esac
+		;;
+	      esac
+	      ;;
+	    esac
+	  done
+	  tmp_libs=
+	  for deplib in $new_libs; do
+	    case $deplib in
+	    -L*)
+	      case " $tmp_libs " in
+	      *" $deplib "*) ;;
+	      *) tmp_libs="$tmp_libs $deplib" ;;
+	      esac
+	      ;;
+	    *) tmp_libs="$tmp_libs $deplib" ;;
+	    esac
+	  done
+	  eval $var=\"$tmp_libs\"
+	done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+	case " $predeps $postdeps $compiler_lib_search_path " in
+	*" $i "*)
+	  i=""
+	  ;;
+	esac
+	if test -n "$i" ; then
+	  tmp_libs="$tmp_libs $i"
+	fi
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+      dlprefiles="$newdlprefiles"
+    fi
+
+    case $linkmode in
+    oldlib)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+      fi
+
+      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+      fi
+
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+	eval shared_ext=\"$shrext\"
+	eval libname=\"$libname_spec\"
+	;;
+      *)
+	if test "$module" = no; then
+	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+	if test "$need_lib_prefix" != no; then
+	  # Add the "lib" prefix for modules if required
+	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	  eval shared_ext=\"$shrext\"
+	  eval libname=\"$libname_spec\"
+	else
+	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+	fi
+	;;
+      esac
+
+      if test -n "$objs"; then
+	if test "$deplibs_check_method" != pass_all; then
+	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+	  exit 1
+	else
+	  $echo
+	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
+	  $echo "*** objects $objs is not portable!"
+	  libobjs="$libobjs $objs"
+	fi
+      fi
+
+      if test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+      fi
+
+      set dummy $rpath
+      if test "$#" -gt 2; then
+	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      fi
+      install_libdir="$2"
+
+      oldlibs=
+      if test -z "$rpath"; then
+	if test "$build_libtool_libs" = yes; then
+	  # Building a libtool convenience library.
+	  # Some compilers have problems with a `.al' extension so
+	  # convenience libraries should have the same extension an
+	  # archive normally would.
+	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
+	  build_libtool_libs=convenience
+	  build_old_libs=yes
+	fi
+
+	if test -n "$vinfo"; then
+	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+	fi
+
+	if test -n "$release"; then
+	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+	fi
+      else
+
+	# Parse the version information argument.
+	save_ifs="$IFS"; IFS=':'
+	set dummy $vinfo 0 0 0
+	IFS="$save_ifs"
+
+	if test -n "$8"; then
+	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	# convert absolute version numbers to libtool ages
+	# this retains compatibility with .la files and attempts
+	# to make the code below a bit more comprehensible
+	
+	case $vinfo_number in
+	yes)
+	  number_major="$2"
+	  number_minor="$3"
+	  number_revision="$4"
+	  #
+	  # There are really only two kinds -- those that
+	  # use the current revision as the major version
+	  # and those that subtract age and use age as
+	  # a minor version.  But, then there is irix
+	  # which has an extra 1 added just for fun
+	  #
+	  case $version_type in
+	  darwin|linux|osf|windows)
+	    current=`expr $number_major + $number_minor`
+	    age="$number_minor"
+	    revision="$number_revision"
+	    ;;
+	  freebsd-aout|freebsd-elf|sunos)
+	    current="$number_major"
+	    revision="$number_minor"
+	    age="0"
+	    ;;
+	  irix|nonstopux)
+	    current=`expr $number_major + $number_minor - 1`
+	    age="$number_minor"
+	    revision="$number_minor"
+	    ;;
+	  esac
+	  ;;
+	no)
+	  current="$2"
+	  revision="$3"
+	  age="$4"
+	  ;;
+	esac
+
+	# Check that each of the things are valid numbers.
+	case $current in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	case $revision in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	case $age in
+	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
+	*)
+	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	if test "$age" -gt "$current"; then
+	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+	  exit 1
+	fi
+
+	# Calculate the version variables.
+	major=
+	versuffix=
+	verstring=
+	case $version_type in
+	none) ;;
+
+	darwin)
+	  # Like Linux, but with the current version available in
+	  # verstring for coding it into the library header
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  # Darwin ld doesn't like 0 for these options...
+	  minor_current=`expr $current + 1`
+	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+	  ;;
+
+	freebsd-aout)
+	  major=".$current"
+	  versuffix=".$current.$revision";
+	  ;;
+
+	freebsd-elf)
+	  major=".$current"
+	  versuffix=".$current";
+	  ;;
+
+	irix | nonstopux)
+	  major=`expr $current - $age + 1`
+
+	  case $version_type in
+	    nonstopux) verstring_prefix=nonstopux ;;
+	    *)         verstring_prefix=sgi ;;
+	  esac
+	  verstring="$verstring_prefix$major.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$revision
+	  while test "$loop" -ne 0; do
+	    iface=`expr $revision - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring_prefix$major.$iface:$verstring"
+	  done
+
+	  # Before this point, $major must not contain `.'.
+	  major=.$major
+	  versuffix="$major.$revision"
+	  ;;
+
+	linux)
+	  major=.`expr $current - $age`
+	  versuffix="$major.$age.$revision"
+	  ;;
+
+	osf)
+	  major=.`expr $current - $age`
+	  versuffix=".$current.$age.$revision"
+	  verstring="$current.$age.$revision"
+
+	  # Add in all the interfaces that we are compatible with.
+	  loop=$age
+	  while test "$loop" -ne 0; do
+	    iface=`expr $current - $loop`
+	    loop=`expr $loop - 1`
+	    verstring="$verstring:${iface}.0"
+	  done
+
+	  # Make executables depend on our current version.
+	  verstring="$verstring:${current}.0"
+	  ;;
+
+	sunos)
+	  major=".$current"
+	  versuffix=".$current.$revision"
+	  ;;
+
+	windows)
+	  # Use '-' rather than '.', since we only want one
+	  # extension on DOS 8.3 filesystems.
+	  major=`expr $current - $age`
+	  versuffix="-$major"
+	  ;;
+
+	*)
+	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
+	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	# Clear the version info if we defaulted, and they specified a release.
+	if test -z "$vinfo" && test -n "$release"; then
+	  major=
+	  case $version_type in
+	  darwin)
+	    # we can't check for "0.0" in archive_cmds due to quoting
+	    # problems, so we reset it completely
+	    verstring=
+	    ;;
+	  *)
+	    verstring="0.0"
+	    ;;
+	  esac
+	  if test "$need_version" = no; then
+	    versuffix=
+	  else
+	    versuffix=".0.0"
+	  fi
+	fi
+
+	# Remove version info from name if versioning should be avoided
+	if test "$avoid_version" = yes && test "$need_version" = no; then
+	  major=
+	  versuffix=
+	  verstring=""
+	fi
+
+	# Check to see if the archive will have undefined symbols.
+	if test "$allow_undefined" = yes; then
+	  if test "$allow_undefined_flag" = unsupported; then
+	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+	    build_libtool_libs=no
+	    build_old_libs=yes
+	  fi
+	else
+	  # Don't allow undefined symbols.
+	  allow_undefined_flag="$no_undefined_flag"
+	fi
+      fi
+
+      if test "$mode" != relink; then
+	# Remove our outputs, but don't remove object files since they
+	# may have been created when compiling PIC objects.
+	removelist=
+	tempremovelist=`$echo "$output_objdir/*"`
+	for p in $tempremovelist; do
+	  case $p in
+	    *.$objext | *$exeext)
+	       ;;
+	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+	       removelist="$removelist $p"
+	       ;;
+	    *) ;;
+	  esac
+	done
+	if test -n "$removelist"; then
+	  $show "${rm}r $removelist"
+	  $run ${rm}r $removelist
+	fi
+      fi
+
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+	oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+	# Transform .lo files to .o files.
+	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+      fi
+
+      # Eliminate all temporary directories.
+      for path in $notinst_path; do
+	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+      done
+
+      if test -n "$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	temp_xrpath=
+	for libdir in $xrpath; do
+	  temp_xrpath="$temp_xrpath -R$libdir"
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+	if true || test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+	  dependency_libs="$temp_xrpath $dependency_libs"
+	fi
+      fi
+
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+	case " $dlprefiles $dlfiles " in
+	*" $lib "*) ;;
+	*) dlfiles="$dlfiles $lib" ;;
+	esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+	case "$dlprefiles " in
+	*" $lib "*) ;;
+	*) dlprefiles="$dlprefiles $lib" ;;
+	esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+	if test -n "$rpath"; then
+	  case $host in
+	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+	    # these systems don't actually have a c library (as such)!
+	    ;;
+	  *-*-rhapsody* | *-*-darwin1.[012])
+	    # Rhapsody C library is in the System framework
+	    deplibs="$deplibs System.ltframework"
+	    ;;
+	  *-*-netbsd*)
+	    # Don't link with libc until the a.out ld.so is fixed.
+	    ;;
+	  *-*-openbsd* | *-*-freebsd*)
+	    # Do not include libc due to us having libc/libc_r.
+	    test "X$arg" = "X-lc" && continue
+	    ;;
+ 	  *)
+	    # Add libc to deplibs on all other systems if necessary.
+	    if test "$build_libtool_need_lc" = "yes"; then
+	      deplibs="$deplibs -lc"
+	    fi
+	    ;;
+	  esac
+	fi
+
+	# Transform deplibs into only deplibs that can be linked in shared.
+	name_save=$name
+	libname_save=$libname
+	release_save=$release
+	versuffix_save=$versuffix
+	major_save=$major
+	# I'm not sure if I'm treating the release correctly.  I think
+	# release should show up in the -l (ie -lgmp5) so we don't want to
+	# add it in twice.  Is that correct?
+	release=""
+	versuffix=""
+	major=""
+	newdeplibs=
+	droppeddeps=no
+	case $deplibs_check_method in
+	pass_all)
+	  # Don't check for shared/static.  Everything works.
+	  # This might be a little naive.  We might want to check
+	  # whether the library exists or not.  But this is on
+	  # osf3 & osf4 and I'm not really sure... Just
+	  # implementing what was already the behavior.
+	  newdeplibs=$deplibs
+	  ;;
+	test_compile)
+	  # This code stresses the "libraries are programs" paradigm to its
+	  # limits. Maybe even breaks it.  We compile a program, linking it
+	  # against the deplibs as a proxy for the library.  Then we can check
+	  # whether they linked in statically or dynamically with ldd.
+	  $rm conftest.c
+	  cat > conftest.c <<EOF
+	  int main() { return 0; }
+EOF
+	  $rm conftest
+	  $LTCC -o conftest conftest.c $deplibs
+	  if test "$?" -eq 0 ; then
+	    ldd_output=`ldd conftest`
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" -ne "0"; then
+		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		  case " $predeps $postdeps " in
+		  *" $i "*)
+		    newdeplibs="$newdeplibs $i"
+		    i=""
+		    ;;
+		  esac
+	        fi
+		if test -n "$i" ; then
+		  libname=`eval \\$echo \"$libname_spec\"`
+		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		  set dummy $deplib_matches
+		  deplib_match=$2
+		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		    newdeplibs="$newdeplibs $i"
+		  else
+		    droppeddeps=yes
+		    $echo
+		    $echo "*** Warning: dynamic linker does not accept needed library $i."
+		    $echo "*** I have the capability to make that library automatically link in when"
+		    $echo "*** you link to this library.  But I can only do this if you have a"
+		    $echo "*** shared version of the library, which I believe you do not have"
+		    $echo "*** because a test_compile did reveal that the linker did not use it for"
+		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+		  fi
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  else
+	    # Error occurred in the first compile.  Let's try to salvage
+	    # the situation: Compile a separate program for each library.
+	    for i in $deplibs; do
+	      name="`expr $i : '-l\(.*\)'`"
+	      # If $name is empty we are operating on a -L argument.
+              if test "$name" != "" && test "$name" != "0"; then
+		$rm conftest
+		$LTCC -o conftest conftest.c $i
+		# Did it work?
+		if test "$?" -eq 0 ; then
+		  ldd_output=`ldd conftest`
+		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		    case " $predeps $postdeps " in
+		    *" $i "*)
+		      newdeplibs="$newdeplibs $i"
+		      i=""
+		      ;;
+		    esac
+		  fi
+		  if test -n "$i" ; then
+		    libname=`eval \\$echo \"$libname_spec\"`
+		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
+		    set dummy $deplib_matches
+		    deplib_match=$2
+		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+		      newdeplibs="$newdeplibs $i"
+		    else
+		      droppeddeps=yes
+		      $echo
+		      $echo "*** Warning: dynamic linker does not accept needed library $i."
+		      $echo "*** I have the capability to make that library automatically link in when"
+		      $echo "*** you link to this library.  But I can only do this if you have a"
+		      $echo "*** shared version of the library, which you do not appear to have"
+		      $echo "*** because a test_compile did reveal that the linker did not use this one"
+		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+		    fi
+		  fi
+		else
+		  droppeddeps=yes
+		  $echo
+		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
+		  $echo "***  make it link in!  You will probably need to install it or some"
+		  $echo "*** library that it depends on before this library will be fully"
+		  $echo "*** functional.  Installing it before continuing would be even better."
+		fi
+	      else
+		newdeplibs="$newdeplibs $i"
+	      fi
+	    done
+	  fi
+	  ;;
+	file_magic*)
+	  set dummy $deplibs_check_method
+	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+            if test "$name" != "" && test  "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		      # Follow soft links.
+		      if ls -lLd "$potent_lib" 2>/dev/null \
+			 | grep " -> " >/dev/null; then
+			continue
+		      fi
+		      # The statement above tries to avoid entering an
+		      # endless loop below, in case of cyclic links.
+		      # We might still enter an endless loop, since a link
+		      # loop can be closed while we follow links,
+		      # but so what?
+		      potlib="$potent_lib"
+		      while test -h "$potlib" 2>/dev/null; do
+			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+			case $potliblink in
+			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+			esac
+		      done
+		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+			 | ${SED} 10q \
+			 | $EGREP "$file_magic_regex" > /dev/null; then
+			newdeplibs="$newdeplibs $a_deplib"
+			a_deplib=""
+			break 2
+		      fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a file magic. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	match_pattern*)
+	  set dummy $deplibs_check_method
+	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+	  for a_deplib in $deplibs; do
+	    name="`expr $a_deplib : '-l\(.*\)'`"
+	    # If $name is empty we are operating on a -L argument.
+	    if test -n "$name" && test "$name" != "0"; then
+	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+		case " $predeps $postdeps " in
+		*" $a_deplib "*)
+		  newdeplibs="$newdeplibs $a_deplib"
+		  a_deplib=""
+		  ;;
+		esac
+	      fi
+	      if test -n "$a_deplib" ; then
+		libname=`eval \\$echo \"$libname_spec\"`
+		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+		  for potent_lib in $potential_libs; do
+		    potlib="$potent_lib" # see symlink-check above in file_magic test
+		    if eval $echo \"$potent_lib\" 2>/dev/null \
+		        | ${SED} 10q \
+		        | $EGREP "$match_pattern_regex" > /dev/null; then
+		      newdeplibs="$newdeplibs $a_deplib"
+		      a_deplib=""
+		      break 2
+		    fi
+		  done
+		done
+	      fi
+	      if test -n "$a_deplib" ; then
+		droppeddeps=yes
+		$echo
+		$echo "*** Warning: linker path does not have real file for library $a_deplib."
+		$echo "*** I have the capability to make that library automatically link in when"
+		$echo "*** you link to this library.  But I can only do this if you have a"
+		$echo "*** shared version of the library, which you do not appear to have"
+		$echo "*** because I did check the linker path looking for a file starting"
+		if test -z "$potlib" ; then
+		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+		else
+		  $echo "*** with $libname and none of the candidates passed a file format test"
+		  $echo "*** using a regex pattern. Last file checked: $potlib"
+		fi
+	      fi
+	    else
+	      # Add a -L argument.
+	      newdeplibs="$newdeplibs $a_deplib"
+	    fi
+	  done # Gone through all deplibs.
+	  ;;
+	none | unknown | *)
+	  newdeplibs=""
+	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+	    -e 's/ -[LR][^ ]*//g'`
+	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+	    for i in $predeps $postdeps ; do
+	      # can't use Xsed below, because $i might contain '/'
+	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+	    done
+	  fi
+	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
+	    | grep . >/dev/null; then
+	    $echo
+	    if test "X$deplibs_check_method" = "Xnone"; then
+	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
+	    else
+	      $echo "*** Warning: inter-library dependencies are not known to be supported."
+	    fi
+	    $echo "*** All declared inter-library dependencies are being dropped."
+	    droppeddeps=yes
+	  fi
+	  ;;
+	esac
+	versuffix=$versuffix_save
+	major=$major_save
+	release=$release_save
+	libname=$libname_save
+	name=$name_save
+
+	case $host in
+	*-*-rhapsody* | *-*-darwin1.[012])
+	  # On Rhapsody replace the C library is the System framework
+	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	  ;;
+	esac
+
+	if test "$droppeddeps" = yes; then
+	  if test "$module" = yes; then
+	    $echo
+	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
+	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
+	    $echo "*** a static module, that should work as long as the dlopening"
+	    $echo "*** application is linked with the -dlopen flag."
+	    if test -z "$global_symbol_pipe"; then
+	      $echo
+	      $echo "*** However, this would only work if libtool was able to extract symbol"
+	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+	      $echo "*** not find such a program.  So, this module is probably useless."
+	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+	    fi
+	    if test "$build_old_libs" = no; then
+	      oldlibs="$output_objdir/$libname.$libext"
+	      build_libtool_libs=module
+	      build_old_libs=yes
+	    else
+	      build_libtool_libs=no
+	    fi
+	  else
+	    $echo "*** The inter-library dependencies that have been dropped here will be"
+	    $echo "*** automatically added whenever a program is linked with this library"
+	    $echo "*** or is declared to -dlopen it."
+
+	    if test "$allow_undefined" = no; then
+	      $echo
+	      $echo "*** Since this library must not contain undefined symbols,"
+	      $echo "*** because either the platform does not support them or"
+	      $echo "*** it was explicitly requested with -no-undefined,"
+	      $echo "*** libtool will only create a static version of it."
+	      if test "$build_old_libs" = no; then
+		oldlibs="$output_objdir/$libname.$libext"
+		build_libtool_libs=module
+		build_old_libs=yes
+	      else
+		build_libtool_libs=no
+	      fi
+	    fi
+	  fi
+	fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	case $host in
+	  *-*-darwin*)
+	    newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	    dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	    ;;
+	esac
+	# Done checking deplibs!
+	deplibs=$newdeplibs
+      fi
+
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
+
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+	if test "$hardcode_into_libs" = yes; then
+	  # Hardcode the library paths
+	  hardcode_libdirs=
+	  dep_rpath=
+	  rpath="$finalize_rpath"
+	  test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
+	  for libdir in $rpath; do
+	    if test -n "$hardcode_libdir_flag_spec"; then
+	      if test -n "$hardcode_libdir_separator"; then
+		if test -z "$hardcode_libdirs"; then
+		  hardcode_libdirs="$libdir"
+		else
+		  # Just accumulate the unique libdirs.
+		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		    ;;
+		  *)
+		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		    ;;
+		  esac
+		fi
+	      else
+		eval flag=\"$hardcode_libdir_flag_spec\"
+		dep_rpath="$dep_rpath $flag"
+	      fi
+	    elif test -n "$runpath_var"; then
+	      case "$perm_rpath " in
+	      *" $libdir "*) ;;
+	      *) perm_rpath="$perm_rpath $libdir" ;;
+	      esac
+	    fi
+	  done
+	  # Substitute the hardcoded libdirs into the rpath.
+	  if test -n "$hardcode_libdir_separator" &&
+	     test -n "$hardcode_libdirs"; then
+	    libdir="$hardcode_libdirs"
+	    if test -n "$hardcode_libdir_flag_spec_ld"; then
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+	    else
+	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+	    fi
+	  fi
+	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
+	    # We should set the runpath_var.
+	    rpath=
+	    for dir in $perm_rpath; do
+	      rpath="$rpath$dir:"
+	    done
+	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+	  fi
+	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+	fi
+
+	shlibpath="$finalize_shlibpath"
+	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+	if test -n "$shlibpath"; then
+	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+	fi
+
+	# Get the real and link names of the library.
+	eval shared_ext=\"$shrext\"
+	eval library_names=\"$library_names_spec\"
+	set dummy $library_names
+	realname="$2"
+	shift; shift
+
+	if test -n "$soname_spec"; then
+	  eval soname=\"$soname_spec\"
+	else
+	  soname="$realname"
+	fi
+	if test -z "$dlname"; then
+	  dlname=$soname
+	fi
+
+	lib="$output_objdir/$realname"
+	for link
+	do
+	  linknames="$linknames $link"
+	done
+
+	# Use standard objects if they are pic
+	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+	# Prepare the list of exported symbols
+	if test -z "$export_symbols"; then
+	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    eval cmds=\"$export_symbols_cmds\"
+	    save_ifs="$IFS"; IFS='~'
+	    for cmd in $cmds; do
+	      IFS="$save_ifs"
+	      if len=`expr "X$cmd" : ".*"` &&
+	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	        $show "$cmd"
+	        $run eval "$cmd" || exit $?
+	        skipped_export=false
+	      else
+	        # The command line is too long to execute in one step.
+	        $show "using reloadable object file for export list..."
+	        skipped_export=:
+	      fi
+	    done
+	    IFS="$save_ifs"
+	    if test -n "$export_symbols_regex"; then
+	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
+	    fi
+	  fi
+	fi
+
+	if test -n "$export_symbols" && test -n "$include_expsyms"; then
+	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+	fi
+
+	tmp_deplibs=
+	for test_deplib in $deplibs; do
+		case " $convenience " in
+		*" $test_deplib "*) ;;
+		*) 
+			tmp_deplibs="$tmp_deplibs $test_deplib"
+			;;
+		esac
+	done
+	deplibs="$tmp_deplibs" 
+
+	if test -n "$convenience"; then
+	  if test -n "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  else
+	    gentop="$output_objdir/${outputname}x"
+	    $show "${rm}r $gentop"
+	    $run ${rm}r "$gentop"
+	    $show "$mkdir $gentop"
+	    $run $mkdir "$gentop"
+	    status=$?
+	    if test "$status" -ne 0 && test ! -d "$gentop"; then
+	      exit $status
+	    fi
+	    generated="$generated $gentop"
+
+	    for xlib in $convenience; do
+	      # Extract the objects.
+	      case $xlib in
+	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	      *) xabs=`pwd`"/$xlib" ;;
+	      esac
+	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	      xdir="$gentop/$xlib"
+
+	      $show "${rm}r $xdir"
+	      $run ${rm}r "$xdir"
+	      $show "$mkdir $xdir"
+	      $run $mkdir "$xdir"
+	      status=$?
+	      if test "$status" -ne 0 && test ! -d "$xdir"; then
+		exit $status
+	      fi
+	      # We will extract separately just the conflicting names and we will no
+	      # longer touch any unique names. It is faster to leave these extract
+	      # automatically by $AR in one run.
+	      $show "(cd $xdir && $AR x $xabs)"
+	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+		:
+	      else
+		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+		$AR t "$xabs" | sort | uniq -cd | while read -r count name
+		do
+		  i=1
+		  while test "$i" -le "$count"
+		  do
+		   # Put our $i before any first dot (extension)
+		   # Never overwrite any file
+		   name_to="$name"
+		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+		   do
+		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+		   done
+		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+		   i=`expr $i + 1`
+		  done
+		done
+	      fi
+
+	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+	    done
+	  fi
+	fi
+
+	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+	  eval flag=\"$thread_safe_flag_spec\"
+	  linker_flags="$linker_flags $flag"
+	fi
+
+	# Make a backup of the uninstalled library when relinking
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+	fi
+
+	# Add all flags from the command line.  We here create a library,
+	# but those flags were only added to compile_command and
+	# finalize_command, which are only used when creating executables.
+	# So do it by hand here.
+	compiler_flags="$compiler_flags $add_flags"
+	# Only add it to commands which use CC, instead of LD, i.e.
+	# only to $compiler_flags
+	#linker_flags="$linker_flags $add_flags"
+
+	# Do each of the archive commands.
+	if test "$module" = yes && test -n "$module_cmds" ; then
+	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+	    eval cmds=\"$module_expsym_cmds\"
+	  else
+	    eval cmds=\"$module_cmds\"
+	  fi
+	else
+	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	  eval cmds=\"$archive_expsym_cmds\"
+	else
+	  eval cmds=\"$archive_cmds\"
+	  fi
+	fi
+
+	if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
+	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # The command line is too long to link in one step, link piecewise.
+	  $echo "creating reloadable object files..."
+
+	  # Save the value of $output and $libobjs because we want to
+	  # use them later.  If we have whole_archive_flag_spec, we
+	  # want to use save_libobjs as it was before
+	  # whole_archive_flag_spec was expanded, because we can't
+	  # assume the linker understands whole_archive_flag_spec.
+	  # This may have to be revisited, in case too many
+	  # convenience libraries get linked in and end up exceeding
+	  # the spec.
+	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+	    save_libobjs=$libobjs
+	  fi
+	  save_output=$output
+
+	  # Clear the reloadable object creation command queue and
+	  # initialize k to one.
+	  test_cmds=
+	  concat_cmds=
+	  objlist=
+	  delfiles=
+	  last_robj=
+	  k=1
+	  output=$output_objdir/$save_output-${k}.$objext
+	  # Loop over the list of objects to be linked.
+	  for obj in $save_libobjs
+	  do
+	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+	    if test "X$objlist" = X ||
+	       { len=`expr "X$test_cmds" : ".*"` &&
+		 test "$len" -le "$max_cmd_len"; }; then
+	      objlist="$objlist $obj"
+	    else
+	      # The command $test_cmds is almost too long, add a
+	      # command to the queue.
+	      if test "$k" -eq 1 ; then
+		# The first file doesn't have a previous command to add.
+		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+	      else
+		# All subsequent reloadable object files will link in
+		# the last one created.
+		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+	      fi
+	      last_robj=$output_objdir/$save_output-${k}.$objext
+	      k=`expr $k + 1`
+	      output=$output_objdir/$save_output-${k}.$objext
+	      objlist=$obj
+	      len=1
+	    fi
+	  done
+	  # Handle the remaining objects by creating one last
+	  # reloadable object file.  All subsequent reloadable object
+	  # files will link in the last one created.
+	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+	  if ${skipped_export-false}; then
+	    $show "generating symbol list for \`$libname.la'"
+	    export_symbols="$output_objdir/$libname.exp"
+	    $run $rm $export_symbols
+	    libobjs=$output
+	    # Append the command to create the export file.
+	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+          fi
+
+	  # Set up a command to remove the reloadale object files
+	  # after they are used.
+	  i=0
+	  while test "$i" -lt "$k"
+	  do
+	    i=`expr $i + 1`
+	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
+	  done
+
+	  $echo "creating a temporary reloadable object file: $output"
+
+	  # Loop through the commands generated above and execute them.
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $concat_cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+
+	  libobjs=$output
+	  # Restore the value of output.
+	  output=$save_output
+
+	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+	  fi
+	  # Expand the library linking commands again to reset the
+	  # value of $libobjs for piecewise linking.
+
+	  # Do each of the archive commands.
+	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+	    eval cmds=\"$archive_expsym_cmds\"
+	  else
+	    eval cmds=\"$archive_cmds\"
+	  fi
+
+	  # Append the command to remove the reloadable object files
+	  # to the just-reset $cmds.
+	  eval cmds=\"\$cmds~$rm $delfiles\"
+	fi
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+
+	# Restore the uninstalled library and exit
+	if test "$mode" = relink; then
+	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+	  exit 0
+	fi
+
+	# Create links to the real library.
+	for linkname in $linknames; do
+	  if test "$realname" != "$linkname"; then
+	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+	  fi
+	done
+
+	# If -module or -export-dynamic was specified, set the dlname.
+	if test "$module" = yes || test "$export_dynamic" = yes; then
+	  # On all known operating systems, these are identical.
+	  dlname="$soname"
+	fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$deplibs"; then
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+      fi
+
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$rpath"; then
+	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$xrpath"; then
+	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+      fi
+
+      case $output in
+      *.lo)
+	if test -n "$objs$old_deplibs"; then
+	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+	  exit 1
+	fi
+	libobj="$output"
+	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+	;;
+      *)
+	libobj=
+	obj="$output"
+	;;
+      esac
+
+      # Delete the old objects.
+      $run $rm $obj $libobj
+
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec
+      wl=
+
+      if test -n "$convenience"; then
+	if test -n "$whole_archive_flag_spec"; then
+	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+	else
+	  gentop="$output_objdir/${obj}x"
+	  $show "${rm}r $gentop"
+	  $run ${rm}r "$gentop"
+	  $show "$mkdir $gentop"
+	  $run $mkdir "$gentop"
+	  status=$?
+	  if test "$status" -ne 0 && test ! -d "$gentop"; then
+	    exit $status
+	  fi
+	  generated="$generated $gentop"
+
+	  for xlib in $convenience; do
+	    # Extract the objects.
+	    case $xlib in
+	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	    *) xabs=`pwd`"/$xlib" ;;
+	    esac
+	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	    xdir="$gentop/$xlib"
+
+	    $show "${rm}r $xdir"
+	    $run ${rm}r "$xdir"
+	    $show "$mkdir $xdir"
+	    $run $mkdir "$xdir"
+	    status=$?
+	    if test "$status" -ne 0 && test ! -d "$xdir"; then
+	      exit $status
+	    fi
+	    # We will extract separately just the conflicting names and we will no
+	    # longer touch any unique names. It is faster to leave these extract
+	    # automatically by $AR in one run.
+	    $show "(cd $xdir && $AR x $xabs)"
+	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+	      :
+	    else
+	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
+	      do
+		i=1
+		while test "$i" -le "$count"
+		do
+		 # Put our $i before any first dot (extension)
+		 # Never overwrite any file
+		 name_to="$name"
+		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+		 do
+		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+		 done
+		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+		 i=`expr $i + 1`
+		done
+	      done
+	    fi
+
+	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+	  done
+	fi
+      fi
+
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+      output="$obj"
+      eval cmds=\"$reload_cmds\"
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	exit 0
+      fi
+
+      if test "$build_libtool_libs" != yes; then
+	if test -n "$gentop"; then
+	  $show "${rm}r $gentop"
+	  $run ${rm}r $gentop
+	fi
+
+	# Create an invalid libtool object if no PIC, so that we don't
+	# accidentally link it into a program.
+	# $show "echo timestamp > $libobj"
+	# $run eval "echo timestamp > $libobj" || exit $?
+	exit 0
+      fi
+
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+	# Only do commands if we really have different PIC objects.
+	reload_objs="$libobjs $reload_conv_objs"
+	output="$libobj"
+	eval cmds=\"$reload_cmds\"
+	save_ifs="$IFS"; IFS='~'
+	for cmd in $cmds; do
+	  IFS="$save_ifs"
+	  $show "$cmd"
+	  $run eval "$cmd" || exit $?
+	done
+	IFS="$save_ifs"
+      fi
+
+      if test -n "$gentop"; then
+	$show "${rm}r $gentop"
+	$run ${rm}r $gentop
+      fi
+
+      exit 0
+      ;;
+
+    prog)
+      case $host in
+	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+      esac
+      if test -n "$vinfo"; then
+	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      fi
+
+      if test -n "$release"; then
+	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+      fi
+
+      if test "$preload" = yes; then
+	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+	   test "$dlopen_self_static" = unknown; then
+	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+	fi
+      fi
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+	# On Rhapsody replace the C library is the System framework
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+	;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+        # Don't allow lazy linking, it breaks C++ global constructors
+        if test "$tagname" = CXX ; then
+        compile_command="$compile_command ${wl}-bind_at_load"
+        finalize_command="$finalize_command ${wl}-bind_at_load"
+        fi
+	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
+	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+        ;;
+      esac
+
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
+
+      if test -n "$rpath$xrpath"; then
+	# If the user specified any rpath flags, then add them.
+	for libdir in $rpath $xrpath; do
+	  # This is the magic to use -rpath.
+	  case "$finalize_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_rpath="$finalize_rpath $libdir" ;;
+	  esac
+	done
+      fi
+
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) perm_rpath="$perm_rpath $libdir" ;;
+	  esac
+	fi
+	case $host in
+	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+	  case :$dllsearchpath: in
+	  *":$libdir:"*) ;;
+	  *) dllsearchpath="$dllsearchpath:$libdir";;
+	  esac
+	  ;;
+	esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+	if test -n "$hardcode_libdir_flag_spec"; then
+	  if test -n "$hardcode_libdir_separator"; then
+	    if test -z "$hardcode_libdirs"; then
+	      hardcode_libdirs="$libdir"
+	    else
+	      # Just accumulate the unique libdirs.
+	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+		;;
+	      *)
+		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+		;;
+	      esac
+	    fi
+	  else
+	    eval flag=\"$hardcode_libdir_flag_spec\"
+	    rpath="$rpath $flag"
+	  fi
+	elif test -n "$runpath_var"; then
+	  case "$finalize_perm_rpath " in
+	  *" $libdir "*) ;;
+	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+	  esac
+	fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+	 test -n "$hardcode_libdirs"; then
+	libdir="$hardcode_libdirs"
+	eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
+
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+	# Transform all the library objects into standard objects.
+	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
+
+      dlsyms=
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+	if test -n "$NM" && test -n "$global_symbol_pipe"; then
+	  dlsyms="${outputname}S.c"
+	else
+	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+	fi
+      fi
+
+      if test -n "$dlsyms"; then
+	case $dlsyms in
+	"") ;;
+	*.c)
+	  # Discover the nlist of each of the dlfiles.
+	  nlist="$output_objdir/${outputname}.nm"
+
+	  $show "$rm $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Parse the name list into a source file.
+	  $show "creating $output_objdir/$dlsyms"
+
+	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+	  if test "$dlself" = yes; then
+	    $show "generating symbol list for \`$output'"
+
+	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+	    # Add our own program objects to the symbol list.
+	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+	    for arg in $progfiles; do
+	      $show "extracting global C symbols from \`$arg'"
+	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	    done
+
+	    if test -n "$exclude_expsyms"; then
+	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    if test -n "$export_symbols_regex"; then
+	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+	      $run eval '$mv "$nlist"T "$nlist"'
+	    fi
+
+	    # Prepare the list of exported symbols
+	    if test -z "$export_symbols"; then
+	      export_symbols="$output_objdir/$output.exp"
+	      $run $rm $export_symbols
+	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+	    else
+	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
+	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
+	      $run eval 'mv "$nlist"T "$nlist"'
+	    fi
+	  fi
+
+	  for arg in $dlprefiles; do
+	    $show "extracting global C symbols from \`$arg'"
+	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+	    $run eval '$echo ": $name " >> "$nlist"'
+	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+	  done
+
+	  if test -z "$run"; then
+	    # Make sure we have at least an empty file.
+	    test -f "$nlist" || : > "$nlist"
+
+	    if test -n "$exclude_expsyms"; then
+	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+	      $mv "$nlist"T "$nlist"
+	    fi
+
+	    # Try sorting and uniquifying the output.
+	    if grep -v "^: " < "$nlist" |
+		if sort -k 3 </dev/null >/dev/null 2>&1; then
+		  sort -k 3
+		else
+		  sort +2
+		fi |
+		uniq > "$nlist"S; then
+	      :
+	    else
+	      grep -v "^: " < "$nlist" > "$nlist"S
+	    fi
+
+	    if test -f "$nlist"S; then
+	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+	    else
+	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+	    fi
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+	    $echo >> "$output_objdir/$dlsyms" "\
+  {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+	  fi
+
+	  pic_flag_for_symtable=
+	  case $host in
+	  # compiling the symbol table file with pic_flag works around
+	  # a FreeBSD bug that causes programs to crash when -lm is
+	  # linked before any other PIC object.  But we must not use
+	  # pic_flag when linking with -static.  The problem exists in
+	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+	    esac;;
+	  *-*-hpux*)
+	    case "$compile_command " in
+	    *" -static "*) ;;
+	    *) pic_flag_for_symtable=" $pic_flag";;
+	    esac
+	  esac
+
+	  # Now compile the dynamic symbol file.
+	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+	  # Clean up the generated files.
+	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+	  # Transform the symbol file into the correct name.
+	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+	  ;;
+	*)
+	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+	  exit 1
+	  ;;
+	esac
+      else
+	# We keep going just in case the user didn't refer to
+	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+	# really was required.
+
+	# Nullify the symbol file.
+	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+      fi
+
+      # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
+      # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
+      # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
+      # This does not apply on AIX for ia64, which uses a SysV linker.
+      case "$host" in
+        ia64-*-aix5*) ;;
+        *-*-aix4* | *-*-aix5*)
+                   compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
+                   finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
+      esac
+
+      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+	# Replace the output file specification.
+	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	link_command="$compile_command$compile_rpath"
+
+	# We have no uninstalled library dependencies, so finalize right now.
+	$show "$link_command"
+	$run eval "$link_command"
+	status=$?
+
+	# Delete the generated files.
+	if test -n "$dlsyms"; then
+	  $show "$rm $output_objdir/${outputname}S.${objext}"
+	  $run $rm "$output_objdir/${outputname}S.${objext}"
+	fi
+
+	exit $status
+      fi
+
+      if test -n "$shlibpath_var"; then
+	# We should set the shlibpath_var
+	rpath=
+	for dir in $temp_rpath; do
+	  case $dir in
+	  [\\/]* | [A-Za-z]:[\\/]*)
+	    # Absolute path.
+	    rpath="$rpath$dir:"
+	    ;;
+	  *)
+	    # Relative path: add a thisdir entry.
+	    rpath="$rpath\$thisdir/$dir:"
+	    ;;
+	  esac
+	done
+	temp_rpath="$rpath"
+      fi
+
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
+
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+	if test -n "$perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+	if test -n "$finalize_perm_rpath"; then
+	  # We should set the runpath_var.
+	  rpath=
+	  for dir in $finalize_perm_rpath; do
+	    rpath="$rpath$dir:"
+	  done
+	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+	fi
+      fi
+
+      if test "$no_install" = yes; then
+	# We don't need to create a wrapper script.
+	link_command="$compile_var$compile_command$compile_rpath"
+	# Replace the output file specification.
+	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+	# Delete the old output file.
+	$run $rm $output
+	# Link the executable and exit
+	$show "$link_command"
+	$run eval "$link_command" || exit $?
+	exit 0
+      fi
+
+      if test "$hardcode_action" = relink; then
+	# Fast installation is not supported
+	link_command="$compile_var$compile_command$compile_rpath"
+	relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+	$echo "$modename: \`$output' will be relinked during installation" 1>&2
+      else
+	if test "$fast_install" != no; then
+	  link_command="$finalize_var$compile_command$finalize_rpath"
+	  if test "$fast_install" = yes; then
+	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+	  else
+	    # fast_install is set to needless
+	    relink_command=
+	  fi
+	else
+	  link_command="$compile_var$compile_command$compile_rpath"
+	  relink_command="$finalize_var$finalize_command$finalize_rpath"
+	fi
+      fi
+
+      # Replace the output file specification.
+      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+      # Delete the old output files.
+      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+      $show "$link_command"
+      $run eval "$link_command" || exit $?
+
+      # Now create the wrapper script.
+      $show "creating $output"
+
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+	# Preserve any variables that may affect compiler behavior
+	for var in $variables_saved_for_relink; do
+	  if eval test -z \"\${$var+set}\"; then
+	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	  elif eval var_value=\$$var; test -z "$var_value"; then
+	    relink_command="$var=; export $var; $relink_command"
+	  else
+	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	  fi
+	done
+	relink_command="(cd `pwd`; $relink_command)"
+	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Quote $echo for shipping.
+      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
+	case $0 in
+	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
+	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
+	esac
+	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+      fi
+
+      # Only actually do things if our run command is non-null.
+      if test -z "$run"; then
+	# win32 will think the script is a binary if it has
+	# a .exe suffix, so we strip it off here.
+	case $output in
+	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+	esac
+	# test for cygwin because mv fails w/o .exe extensions
+	case $host in
+	  *cygwin*)
+	    exeext=.exe
+	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+	  *) exeext= ;;
+	esac
+	case $host in
+	  *mingw* )
+	    cwrappersource=`$echo ${output_objdir}/lt-${outputname}.c`
+	    cwrapper=`$echo ${output}.exe`
+	    $rm $cwrappersource $cwrapper
+	    trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
+
+	    cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
+   
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
+
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+	    cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2 
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+  
+  program_name = (char *) xstrdup ((char *) basename (argv[0]));
+  newargz = XMALLOC(char *, argc+2);
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  newargz[0] = "$SHELL";
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+  newargz[1] = fnqualify(argv[0]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe"); 
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+EOF
+
+	    cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+
+	    cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
+
+  return p;
+}
+
+char * 
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+  const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha (name[0]) && name[1] == ':') 
+    name += 2;
+#endif
+
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return (char *) base;
+}
+
+char * 
+fnqualify(const char *path)
+{
+  size_t size;
+  char *p;
+  char tmp[LT_PATHMAX + 1];
+
+  assert(path != NULL);
+
+  /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha (path[0]) && path[1] == ':')
+    return xstrdup (path);
+#endif
+  if (IS_DIR_SEPARATOR (path[0]))
+    return xstrdup (path);
+
+  /* prepend the current directory */
+  /* doesn't handle '~' */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+  p = XMALLOC(char, size);
+  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+  return p;
+}
+
+char *
+strendzap(char *str, const char *pat) 
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode, 
+          const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+	  # we should really use a build-platform specific compiler
+	  # here, but OTOH, the wrappers (shell script and this C one)
+	  # are only useful if you want to execute the "real" binary.
+	  # Since the "real" binary is built for $host, then this
+	  # wrapper might as well be built for $host, too.
+	  $run $LTCC -s -o $cwrapper $cwrappersource
+	  ;;
+	esac
+	$rm $output
+	trap "$rm $output; exit 1" 1 2 15
+
+	$echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variable:
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$echo are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    echo=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$echo works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$echo will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+	$echo >> $output "\
+
+  # Find the directory that this script lives in.
+  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
+
+    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
+
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+	if test "$fast_install" = yes; then
+	  $echo >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
+
+  if test ! -f \"\$progdir/\$program\" || \\
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+    file=\"\$\$-\$program\"
+
+    if test ! -d \"\$progdir\"; then
+      $mkdir \"\$progdir\"
+    else
+      $rm \"\$progdir/\$file\"
+    fi"
+
+	  $echo >> $output "\
+
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+	$echo \"\$relink_command_output\" >&2
+	$rm \"\$progdir/\$file\"
+	exit 1
+      fi
+    fi
+
+    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $rm \"\$progdir/\$program\";
+      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $rm \"\$progdir/\$file\"
+  fi"
+	else
+	  $echo >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+	fi
+
+	$echo >> $output "\
+
+  if test -f \"\$progdir/\$program\"; then"
+
+	# Export our shlibpath_var if we have one.
+	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+	  $echo >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+    export $shlibpath_var
+"
+	fi
+
+	# fixup the dll searchpath if we need to.
+	if test -n "$dllsearchpath"; then
+	  $echo >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
+	fi
+
+	$echo >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+	case $host in
+	# Backslashes separate directories on plain windows
+	*-*-mingw | *-*-os2*)
+	  $echo >> $output "\
+      exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+	  ;;
+
+	*)
+	  # Need to set LD_LIBRARY_PATH, to the value already
+	  # computed within libtool.
+	  $echo >> $output "\
+      LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$program \${1+\"\$@\"}
+"
+	  ;;
+	esac
+	$echo >> $output "\
+      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+      exit 1
+    fi
+  else
+    # The program doesn't exist.
+    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+    \$echo \"This script is just a wrapper for \$program.\" 1>&2
+    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+	chmod +x $output
+      fi
+      exit 0
+      ;;
+    esac
+
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
+
+      if test "$build_libtool_libs" = convenience; then
+	oldobjs="$libobjs_save"
+	addlibs="$convenience"
+	build_libtool_libs=no
+      else
+	if test "$build_libtool_libs" = module; then
+	  oldobjs="$libobjs_save"
+	  build_libtool_libs=no
+	else
+	  oldobjs="$old_deplibs $non_pic_objects"
+	fi
+	addlibs="$old_convenience"
+      fi
+
+      if test -n "$addlibs"; then
+	gentop="$output_objdir/${outputname}x"
+	$show "${rm}r $gentop"
+	$run ${rm}r "$gentop"
+	$show "$mkdir $gentop"
+	$run $mkdir "$gentop"
+	status=$?
+	if test "$status" -ne 0 && test ! -d "$gentop"; then
+	  exit $status
+	fi
+	generated="$generated $gentop"
+
+	# Add in members from convenience archives.
+	for xlib in $addlibs; do
+	  # Extract the objects.
+	  case $xlib in
+	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
+	  *) xabs=`pwd`"/$xlib" ;;
+	  esac
+	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
+	  xdir="$gentop/$xlib"
+
+	  $show "${rm}r $xdir"
+	  $run ${rm}r "$xdir"
+	  $show "$mkdir $xdir"
+	  $run $mkdir "$xdir"
+	  status=$?
+	  if test "$status" -ne 0 && test ! -d "$xdir"; then
+	    exit $status
+	  fi
+	  # We will extract separately just the conflicting names and we will no
+	  # longer touch any unique names. It is faster to leave these extract
+	  # automatically by $AR in one run.
+	  $show "(cd $xdir && $AR x $xabs)"
+	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+	    :
+	  else
+	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
+	    do
+	      i=1
+	      while test "$i" -le "$count"
+	      do
+	       # Put our $i before any first dot (extension)
+	       # Never overwrite any file
+	       name_to="$name"
+	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+	       do
+		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+	       done
+	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+	       i=`expr $i + 1`
+	      done
+	    done
+	  fi
+
+	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
+	done
+      fi
+
+      compiler_flags="$compiler_flags $add_flags"
+
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+	eval cmds=\"$old_archive_from_new_cmds\"
+      else
+	eval cmds=\"$old_archive_cmds\"
+
+	if len=`expr "X$cmds" : ".*"` &&
+	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+	  :
+	else
+	  # the command line is too long to link in one step, link in parts
+	  $echo "using piecewise archive linking..."
+	  save_RANLIB=$RANLIB
+	  RANLIB=:
+	  objlist=
+	  concat_cmds=
+	  save_oldobjs=$oldobjs
+	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
+	  # encoded into archives.  This makes 'ar r' malfunction in
+	  # this piecewise linking case whenever conflicting object
+	  # names appear in distinct ar calls; check, warn and compensate.
+	    if (for obj in $save_oldobjs
+	    do
+	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
+	    done | sort | sort -uc >/dev/null 2>&1); then
+	    :
+	  else
+	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
+	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
+	    AR_FLAGS=cq
+	  fi
+	  # Is there a better way of finding the last object in the list?
+	  for obj in $save_oldobjs
+	  do
+	    last_oldobj=$obj
+	  done  
+	  for obj in $save_oldobjs
+	  do
+	    oldobjs="$objlist $obj"
+	    objlist="$objlist $obj"
+	    eval test_cmds=\"$old_archive_cmds\"
+	    if len=`expr "X$test_cmds" : ".*"` &&
+	       test "$len" -le "$max_cmd_len"; then
+	      :
+	    else
+	      # the above command should be used before it gets too long
+	      oldobjs=$objlist
+	      if test "$obj" = "$last_oldobj" ; then
+	        RANLIB=$save_RANLIB
+	      fi  
+	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+	      objlist=
+	    fi
+	  done
+	  RANLIB=$save_RANLIB
+	  oldobjs=$objlist
+	  if test "X$oldobjs" = "X" ; then
+	    eval cmds=\"\$concat_cmds\"
+	  else
+	    eval cmds=\"\$concat_cmds~$old_archive_cmds\"
+	  fi
+	fi
+      fi
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$generated"; then
+      $show "${rm}r$generated"
+      $run ${rm}r$generated
+    fi
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      $show "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+	if eval test -z \"\${$var+set}\"; then
+	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+	elif eval var_value=\$$var; test -z "$var_value"; then
+	  relink_command="$var=; export $var; $relink_command"
+	else
+	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
+	fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+        relink_command=
+      fi  
+      # Only create the output if not a dry run.
+      if test -z "$run"; then
+	for installed in no yes; do
+	  if test "$installed" = yes; then
+	    if test -z "$install_libdir"; then
+	      break
+	    fi
+	    output="$output_objdir/$outputname"i
+	    # Replace all uninstalled libtool libraries with the installed ones
+	    newdependency_libs=
+	    for deplib in $dependency_libs; do
+	      case $deplib in
+	      *.la)
+		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+		if test -z "$libdir"; then
+		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+		  exit 1
+		fi
+		newdependency_libs="$newdependency_libs $libdir/$name"
+		;;
+	      *) newdependency_libs="$newdependency_libs $deplib" ;;
+	      esac
+	    done
+	    dependency_libs="$newdependency_libs"
+	    newdlfiles=
+	    for lib in $dlfiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit 1
+	      fi
+	      newdlfiles="$newdlfiles $libdir/$name"
+	    done
+	    dlfiles="$newdlfiles"
+	    newdlprefiles=
+	    for lib in $dlprefiles; do
+	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+	      if test -z "$libdir"; then
+		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+		exit 1
+	      fi
+	      newdlprefiles="$newdlprefiles $libdir/$name"
+	    done
+	    dlprefiles="$newdlprefiles"
+	  fi
+	  $rm $output
+	  # place dlname in correct position for cygwin
+	  tdlname=$dlname
+	  case $host,$output,$installed,$module,$dlname in
+	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+	  esac
+	  $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+	  if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
+	    $echo >> $output "\
+relink_command=\"$relink_command\""
+	  fi
+	done
+      fi
+
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+      ;;
+    esac
+    exit 0
+    ;;
+
+  # libtool install mode
+  install)
+    modename="$modename: install"
+
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+      # Aesthetically quote it.
+      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$arg "
+      arg="$1"
+      shift
+    else
+      install_prog=
+      arg="$nonopt"
+    fi
+
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+    case $arg in
+    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+      arg="\"$arg\""
+      ;;
+    esac
+    install_prog="$install_prog$arg"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+	files="$files $dest"
+	dest="$arg"
+	continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f) prev="-f" ;;
+      -g) prev="-g" ;;
+      -m) prev="-m" ;;
+      -o) prev="-o" ;;
+      -s)
+	stripme=" -s"
+	continue
+	;;
+      -*) ;;
+
+      *)
+	# If the previous option needed an argument, then skip it.
+	if test -n "$prev"; then
+	  prev=
+	else
+	  dest="$arg"
+	  continue
+	fi
+	;;
+      esac
+
+      # Aesthetically quote the argument.
+      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+      case $arg in
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
+	arg="\"$arg\""
+	;;
+      esac
+      install_prog="$install_prog $arg"
+    done
+
+    if test -z "$install_prog"; then
+      $echo "$modename: you must specify an install program" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    if test -n "$prev"; then
+      $echo "$modename: the \`$prev' option requires an argument" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+	$echo "$modename: no file or destination specified" 1>&2
+      else
+	$echo "$modename: you must specify a destination" 1>&2
+      fi
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    # Strip any trailing slash from the destination.
+    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+      test "X$destdir" = "X$dest" && destdir=.
+      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files
+      if test "$#" -gt 2; then
+	$echo "$modename: \`$dest' is not a directory" 1>&2
+	$echo "$help" 1>&2
+	exit 1
+      fi
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+	case $file in
+	*.lo) ;;
+	*)
+	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	  ;;
+	esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+	# Do the static libraries later.
+	staticlibs="$staticlibs $file"
+	;;
+
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	library_names=
+	old_library=
+	relink_command=
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Add the libdir to current_libdirs if it is the destination.
+	if test "X$destdir" = "X$libdir"; then
+	  case "$current_libdirs " in
+	  *" $libdir "*) ;;
+	  *) current_libdirs="$current_libdirs $libdir" ;;
+	  esac
+	else
+	  # Note the libdir as a future libdir.
+	  case "$future_libdirs " in
+	  *" $libdir "*) ;;
+	  *) future_libdirs="$future_libdirs $libdir" ;;
+	  esac
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+	test "X$dir" = "X$file/" && dir=
+	dir="$dir$objdir"
+
+	if test -n "$relink_command"; then
+	  # Determine the prefix the user has applied to our future dir.
+	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+	  # Don't allow the user to place us outside of our expected
+	  # location b/c this prevents finding dependent libraries that
+	  # are installed to the same prefix.
+	  # At present, this check doesn't affect windows .dll's that
+	  # are installed into $libdir/../bin (currently, that works fine)
+	  # but it's something to keep an eye on.
+	  if test "$inst_prefix_dir" = "$destdir"; then
+	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+	    exit 1
+	  fi
+
+	  if test -n "$inst_prefix_dir"; then
+	    # Stick the inst_prefix_dir data into the link command.
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+	  else
+	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+	  fi
+
+	  $echo "$modename: warning: relinking \`$file'" 1>&2
+	  $show "$relink_command"
+	  if $run eval "$relink_command"; then :
+	  else
+	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+	    exit 1
+	  fi
+	fi
+
+	# See the names of the shared library.
+	set dummy $library_names
+	if test -n "$2"; then
+	  realname="$2"
+	  shift
+	  shift
+
+	  srcname="$realname"
+	  test -n "$relink_command" && srcname="$realname"T
+
+	  # Install the shared library and build the symlinks.
+	  $show "$install_prog $dir/$srcname $destdir/$realname"
+	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+	  if test -n "$stripme" && test -n "$striplib"; then
+	    $show "$striplib $destdir/$realname"
+	    $run eval "$striplib $destdir/$realname" || exit $?
+	  fi
+
+	  if test "$#" -gt 0; then
+	    # Delete the old symlinks, and create new ones.
+	    for linkname
+	    do
+	      if test "$linkname" != "$realname"; then
+		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+	      fi
+	    done
+	  fi
+
+	  # Do each command in the postinstall commands.
+	  lib="$destdir/$realname"
+	  eval cmds=\"$postinstall_cmds\"
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || exit $?
+	  done
+	  IFS="$save_ifs"
+	fi
+
+	# Install the pseudo-library for information purposes.
+	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	instname="$dir/$name"i
+	$show "$install_prog $instname $destdir/$name"
+	$run eval "$install_prog $instname $destdir/$name" || exit $?
+
+	# Maybe install the static library, too.
+	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+	;;
+
+      *.lo)
+	# Install (i.e. copy) a libtool object.
+
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# Deduce the name of the destination old-style object file.
+	case $destfile in
+	*.lo)
+	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+	  ;;
+	*.$objext)
+	  staticdest="$destfile"
+	  destfile=
+	  ;;
+	*)
+	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	  ;;
+	esac
+
+	# Install the libtool object if requested.
+	if test -n "$destfile"; then
+	  $show "$install_prog $file $destfile"
+	  $run eval "$install_prog $file $destfile" || exit $?
+	fi
+
+	# Install the old object if enabled.
+	if test "$build_old_libs" = yes; then
+	  # Deduce the name of the old-style object file.
+	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+	  $show "$install_prog $staticobj $staticdest"
+	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+	fi
+	exit 0
+	;;
+
+      *)
+	# Figure out destination file name, if it wasn't already specified.
+	if test -n "$destname"; then
+	  destfile="$destdir/$destname"
+	else
+	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+	  destfile="$destdir/$destfile"
+	fi
+
+	# If the file is missing, and there is a .exe on the end, strip it
+	# because it is most likely a libtool script we actually want to
+	# install
+	stripped_ext=""
+	case $file in
+	  *.exe)
+	    if test ! -f "$file"; then
+	      file=`$echo $file|${SED} 's,.exe$,,'`
+	      stripped_ext=".exe"
+	    fi
+	    ;;
+	esac
+
+	# Do a test to see if this is really a libtool program.
+	case $host in
+	*cygwin*|*mingw*)
+	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+	    ;;
+	*)
+	    wrapper=$file
+	    ;;
+	esac
+	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+	  notinst_deplibs=
+	  relink_command=
+
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  # Check the variables that should have been set.
+	  if test -z "$notinst_deplibs"; then
+	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+	    exit 1
+	  fi
+
+	  finalize=yes
+	  for lib in $notinst_deplibs; do
+	    # Check to see that each library is installed.
+	    libdir=
+	    if test -f "$lib"; then
+	      # If there is no directory component, then add one.
+	      case $lib in
+	      */* | *\\*) . $lib ;;
+	      *) . ./$lib ;;
+	      esac
+	    fi
+	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+	    if test -n "$libdir" && test ! -f "$libfile"; then
+	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+	      finalize=no
+	    fi
+	  done
+
+	  relink_command=
+	  # To insure that "foo" is sourced, and not "foo.exe",
+	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
+	  # which disallows the automatic-append-.exe behavior.
+	  case $build in
+	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+	  *) wrapperdot=${wrapper} ;;
+	  esac
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . ${wrapperdot} ;;
+	  *) . ./${wrapperdot} ;;
+	  esac
+
+	  outputname=
+	  if test "$fast_install" = no && test -n "$relink_command"; then
+	    if test "$finalize" = yes && test -z "$run"; then
+	      tmpdir="/tmp"
+	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
+	      tmpdir="$tmpdir/libtool-$$"
+	      if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
+	      else
+		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+		continue
+	      fi
+	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+	      outputname="$tmpdir/$file"
+	      # Replace the output file specification.
+	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+	      $show "$relink_command"
+	      if $run eval "$relink_command"; then :
+	      else
+		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+		${rm}r "$tmpdir"
+		continue
+	      fi
+	      file="$outputname"
+	    else
+	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
+	    fi
+	  else
+	    # Install the binary that we compiled earlier.
+	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+	  fi
+	fi
+
+	# remove .exe since cygwin /usr/bin/install will append another
+	# one anyways
+	case $install_prog,$host in
+	*/usr/bin/install*,*cygwin*)
+	  case $file:$destfile in
+	  *.exe:*.exe)
+	    # this is ok
+	    ;;
+	  *.exe:*)
+	    destfile=$destfile.exe
+	    ;;
+	  *:*.exe)
+	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+	    ;;
+	  esac
+	  ;;
+	esac
+	$show "$install_prog$stripme $file $destfile"
+	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+	test -n "$outputname" && ${rm}r "$tmpdir"
+	;;
+      esac
+    done
+
+    for file in $staticlibs; do
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
+
+      $show "$install_prog $file $oldlib"
+      $run eval "$install_prog \$file \$oldlib" || exit $?
+
+      if test -n "$stripme" && test -n "$striplib"; then
+	$show "$old_striplib $oldlib"
+	$run eval "$old_striplib $oldlib" || exit $?
+      fi
+
+      # Do each command in the postinstall commands.
+      eval cmds=\"$old_postinstall_cmds\"
+      save_ifs="$IFS"; IFS='~'
+      for cmd in $cmds; do
+	IFS="$save_ifs"
+	$show "$cmd"
+	$run eval "$cmd" || exit $?
+      done
+      IFS="$save_ifs"
+    done
+
+    if test -n "$future_libdirs"; then
+      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+    fi
+
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      test -n "$run" && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $0 --finish$current_libdirs'
+    else
+      exit 0
+    fi
+    ;;
+
+  # libtool finish mode
+  finish)
+    modename="$modename: finish"
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+	libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+	if test -n "$finish_cmds"; then
+	  # Do each command in the finish commands.
+	  eval cmds=\"$finish_cmds\"
+	  save_ifs="$IFS"; IFS='~'
+	  for cmd in $cmds; do
+	    IFS="$save_ifs"
+	    $show "$cmd"
+	    $run eval "$cmd" || admincmds="$admincmds
+       $cmd"
+	  done
+	  IFS="$save_ifs"
+	fi
+	if test -n "$finish_eval"; then
+	  # Do the single finish_eval.
+	  eval cmds=\"$finish_eval\"
+	  $run eval "$cmds" || admincmds="$admincmds
+       $cmds"
+	fi
+      done
+    fi
+
+    # Exit here if they wanted silent mode.
+    exit 0
+
+    $echo "----------------------------------------------------------------------"
+    $echo "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $echo "   $libdir"
+    done
+    $echo
+    $echo "If you ever happen to want to link against installed libraries"
+    $echo "in a given directory, LIBDIR, you must either use libtool, and"
+    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $echo "flag during linking and do at least one of the following:"
+    if test -n "$shlibpath_var"; then
+      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $echo "     during execution"
+    fi
+    if test -n "$runpath_var"; then
+      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $echo "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
+
+      $echo "   - use the \`$flag' linker flag"
+    fi
+    if test -n "$admincmds"; then
+      $echo "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+    fi
+    $echo
+    $echo "See any operating system documentation about shared libraries for"
+    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+    $echo "----------------------------------------------------------------------"
+    exit 0
+    ;;
+
+  # libtool execute mode
+  execute)
+    modename="$modename: execute"
+
+    # The first argument is the command name.
+    cmd="$nonopt"
+    if test -z "$cmd"; then
+      $echo "$modename: you must specify a COMMAND" 1>&2
+      $echo "$help"
+      exit 1
+    fi
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      if test ! -f "$file"; then
+	$echo "$modename: \`$file' is not a file" 1>&2
+	$echo "$help" 1>&2
+	exit 1
+      fi
+
+      dir=
+      case $file in
+      *.la)
+	# Check to see that this really is a libtool archive.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+	else
+	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+	  $echo "$help" 1>&2
+	  exit 1
+	fi
+
+	# Read the libtool library.
+	dlname=
+	library_names=
+
+	# If there is no directory component, then add one.
+	case $file in
+	*/* | *\\*) . $file ;;
+	*) . ./$file ;;
+	esac
+
+	# Skip this library if it cannot be dlopened.
+	if test -z "$dlname"; then
+	  # Warn if it was a shared library.
+	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+	  continue
+	fi
+
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+
+	if test -f "$dir/$objdir/$dlname"; then
+	  dir="$dir/$objdir"
+	else
+	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+	  exit 1
+	fi
+	;;
+
+      *.lo)
+	# Just add the directory containing the .lo file.
+	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+	test "X$dir" = "X$file" && dir=.
+	;;
+
+      *)
+	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+	continue
+	;;
+      esac
+
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+	eval "$shlibpath_var=\"\$dir\""
+      else
+	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+      fi
+    done
+
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
+
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
+      *)
+	# Do a test to see if this is really a libtool program.
+	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  # If there is no directory component, then add one.
+	  case $file in
+	  */* | *\\*) . $file ;;
+	  *) . ./$file ;;
+	  esac
+
+	  # Transform arg to wrapped name.
+	  file="$progdir/$program"
+	fi
+	;;
+      esac
+      # Quote arguments (to preserve shell metacharacters).
+      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+      args="$args \"$file\""
+    done
+
+    if test -z "$run"; then
+      if test -n "$shlibpath_var"; then
+	# Export the shlibpath_var.
+	eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      if test "${save_LC_ALL+set}" = set; then
+	LC_ALL="$save_LC_ALL"; export LC_ALL
+      fi
+      if test "${save_LANG+set}" = set; then
+	LANG="$save_LANG"; export LANG
+      fi
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+	$echo "export $shlibpath_var"
+      fi
+      $echo "$cmd$args"
+      exit 0
+    fi
+    ;;
+
+  # libtool clean and uninstall mode
+  clean | uninstall)
+    modename="$modename: $mode"
+    rm="$nonopt"
+    files=
+    rmforce=
+    exit_status=0
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    for arg
+    do
+      case $arg in
+      -f) rm="$rm $arg"; rmforce=yes ;;
+      -*) rm="$rm $arg" ;;
+      *) files="$files $arg" ;;
+      esac
+    done
+
+    if test -z "$rm"; then
+      $echo "$modename: you must specify an RM program" 1>&2
+      $echo "$help" 1>&2
+      exit 1
+    fi
+
+    rmdirs=
+
+    origobjdir="$objdir"
+    for file in $files; do
+      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+      if test "X$dir" = "X$file"; then
+	dir=.
+	objdir="$origobjdir"
+      else
+	objdir="$dir/$origobjdir"
+      fi
+      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+      test "$mode" = uninstall && objdir="$dir"
+
+      # Remember objdir for removal later, being careful to avoid duplicates
+      if test "$mode" = clean; then
+	case " $rmdirs " in
+	  *" $objdir "*) ;;
+	  *) rmdirs="$rmdirs $objdir" ;;
+	esac
+      fi
+
+      # Don't error if the file doesn't exist and rm -f was used.
+      if (test -L "$file") >/dev/null 2>&1 \
+	|| (test -h "$file") >/dev/null 2>&1 \
+	|| test -f "$file"; then
+	:
+      elif test -d "$file"; then
+	exit_status=1
+	continue
+      elif test "$rmforce" = yes; then
+	continue
+      fi
+
+      rmfiles="$file"
+
+      case $name in
+      *.la)
+	# Possibly a libtool archive, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	  . $dir/$name
+
+	  # Delete the libtool libraries and symlinks.
+	  for n in $library_names; do
+	    rmfiles="$rmfiles $objdir/$n"
+	  done
+	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+	  if test "$mode" = uninstall; then
+	    if test -n "$library_names"; then
+	      # Do each command in the postuninstall commands.
+	      eval cmds=\"$postuninstall_cmds\"
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+
+	    if test -n "$old_library"; then
+	      # Do each command in the old_postuninstall commands.
+	      eval cmds=\"$old_postuninstall_cmds\"
+	      save_ifs="$IFS"; IFS='~'
+	      for cmd in $cmds; do
+		IFS="$save_ifs"
+		$show "$cmd"
+		$run eval "$cmd"
+		if test "$?" -ne 0 && test "$rmforce" != yes; then
+		  exit_status=1
+		fi
+	      done
+	      IFS="$save_ifs"
+	    fi
+	    # FIXME: should reinstall the best remaining shared library.
+	  fi
+	fi
+	;;
+
+      *.lo)
+	# Possibly a libtool object, so verify it.
+	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+	  # Read the .lo file
+	  . $dir/$name
+
+	  # Add PIC object to the list of files to remove.
+	  if test -n "$pic_object" \
+	     && test "$pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$pic_object"
+	  fi
+
+	  # Add non-PIC object to the list of files to remove.
+	  if test -n "$non_pic_object" \
+	     && test "$non_pic_object" != none; then
+	    rmfiles="$rmfiles $dir/$non_pic_object"
+	  fi
+	fi
+	;;
+
+      *)
+	if test "$mode" = clean ; then
+	  noexename=$name
+	  case $file in
+	  *.exe) 
+	    file=`$echo $file|${SED} 's,.exe$,,'`
+	    noexename=`$echo $name|${SED} 's,.exe$,,'`
+	    # $file with .exe has already been added to rmfiles,
+	    # add $file without .exe
+	    rmfiles="$rmfiles $file"
+	    ;;
+	  esac
+	  # Do a test to see if this is a libtool program.
+	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+	    relink_command=
+	    . $dir/$noexename
+
+	    # note $name still contains .exe if it was in $file originally
+	    # as does the version of $file that was added into $rmfiles
+	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+	    if test "$fast_install" = yes && test -n "$relink_command"; then
+	      rmfiles="$rmfiles $objdir/lt-$name"
+	    fi
+	    if test "X$noexename" != "X$name" ; then
+	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+	    fi
+	  fi
+	fi
+	;;
+      esac
+      $show "$rm $rmfiles"
+      $run $rm $rmfiles || exit_status=1
+    done
+    objdir="$origobjdir"
+
+    # Try to remove the ${objdir}s in the directories where we deleted files
+    for dir in $rmdirs; do
+      if test -d "$dir"; then
+	$show "rmdir $dir"
+	$run rmdir $dir >/dev/null 2>&1
+      fi
+    done
+
+    exit $exit_status
+    ;;
+
+  "")
+    $echo "$modename: you must specify a MODE" 1>&2
+    $echo "$generic_help" 1>&2
+    exit 1
+    ;;
+  esac
+
+  if test -z "$exec_cmd"; then
+    $echo "$modename: invalid operation mode \`$mode'" 1>&2
+    $echo "$generic_help" 1>&2
+    exit 1
+  fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+  eval exec $exec_cmd
+  exit 1
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+    --config          show all configuration variables
+    --debug           enable verbose shell tracing
+-n, --dry-run         display commands without modifying any files
+    --features        display basic configuration information and exit
+    --finish          same as \`--mode=finish'
+    --help            display this help message and exit
+    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
+    --quiet           same as \`--silent'
+    --silent          don't print informational messages
+    --tag=TAG         use configuration variables from tag TAG
+    --version         print version information
+
+MODE must be one of the following:
+
+      clean           remove files from the build directory
+      compile         compile a source file into a libtool object
+      execute         automatically set library path, then run a program
+      finish          complete the installation of libtool libraries
+      install         install libraries or executables
+      link            create a library or an executable
+      uninstall       remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool at gnu.org>."
+  exit 0
+  ;;
+
+clean)
+  $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+compile)
+  $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -static           always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+  ;;
+
+execute)
+  $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+  -dlopen FILE      add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+  ;;
+
+finish)
+  $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+  ;;
+
+install)
+  $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+  ;;
+
+link)
+  $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+		    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+		    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -static           do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+		    specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+  ;;
+
+uninstall)
+  $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+  ;;
+
+*)
+  $echo "$modename: invalid operation mode \`$mode'" 1>&2
+  $echo "$help" 1>&2
+  exit 1
+  ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit 0
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries.  Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them.  This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration.  But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:

Added: kde-extras/kpogre/branches/upstream/current/admin/missing
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/missing	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/missing	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,353 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2004-09-07.08
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004
+#   Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try \`$0 --help' for more information"
+  exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+  configure_ac=configure.ac
+else
+  configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case "$1" in
+--run)
+  # Try to run requested program, and just exit if it succeeds.
+  run=
+  shift
+  "$@" && exit 0
+  # Exit code 63 means version mismatch.  This often happens
+  # when the user try to use an ancient version of a tool on
+  # a file that requires a minimum version.  In this case we
+  # we should proceed has if the program had been absent, or
+  # if --run hadn't been passed.
+  if test $? = 63; then
+    run=:
+    msg="probably too old"
+  fi
+  ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+  --run           try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+  aclocal      touch file \`aclocal.m4'
+  autoconf     touch file \`configure'
+  autoheader   touch file \`config.h.in'
+  automake     touch all \`Makefile.in' files
+  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
+  flex         create \`lex.yy.c', if possible, from existing .c
+  help2man     touch the output file
+  lex          create \`lex.yy.c', if possible, from existing .c
+  makeinfo     touch the output file
+  tar          try tar, gnutar, gtar, then tar without non-portable flags
+  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake at gnu.org>."
+    exit 0
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit 0
+    ;;
+
+  -*)
+    echo 1>&2 "$0: Unknown \`$1' option"
+    echo 1>&2 "Try \`$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Now exit if we have it, but it failed.  Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+  lex|yacc)
+    # Not GNU programs, they don't have --version.
+    ;;
+
+  tar)
+    if test -n "$run"; then
+       echo 1>&2 "ERROR: \`tar' requires --run"
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       exit 1
+    fi
+    ;;
+
+  *)
+    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+       # We have it, but it failed.
+       exit 1
+    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+       # Could not run --version or --help.  This is probably someone
+       # running `$TOOL --version' or `$TOOL --help' to check whether
+       # $TOOL exists and not knowing $TOOL uses missing.
+       exit 1
+    fi
+    ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+  aclocal*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
+         to install the \`Automake' and \`Perl' packages.  Grab them from
+         any GNU archive site."
+    touch aclocal.m4
+    ;;
+
+  autoconf)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`${configure_ac}'.  You might want to install the
+         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
+         archive site."
+    touch configure
+    ;;
+
+  autoheader)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
+         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
+         from any GNU archive site."
+    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+    test -z "$files" && files="config.h"
+    touch_files=
+    for f in $files; do
+      case "$f" in
+      *:*) touch_files="$touch_files "`echo "$f" |
+				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+      *) touch_files="$touch_files $f.in";;
+      esac
+    done
+    touch $touch_files
+    ;;
+
+  automake*)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+         You might want to install the \`Automake' and \`Perl' packages.
+         Grab them from any GNU archive site."
+    find . -type f -name Makefile.am -print |
+	   sed 's/\.am$/.in/' |
+	   while read f; do touch "$f"; done
+    ;;
+
+  autom4te)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.
+         You can get \`$1' as part of \`Autoconf' from any GNU
+         archive site."
+
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    if test -f "$file"; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo "#! /bin/sh"
+	echo "# Created by GNU Automake missing as a replacement of"
+	echo "#  $ $@"
+	echo "exit 0"
+	chmod +x $file
+	exit 1
+    fi
+    ;;
+
+  bison|yacc)
+    echo 1>&2 "\
+WARNING: \`$1' $msg.  You should only need it if
+         you modified a \`.y' file.  You may need the \`Bison' package
+         in order for those modifications to take effect.  You can get
+         \`Bison' from any GNU archive site."
+    rm -f y.tab.c y.tab.h
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.y)
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.c
+	    fi
+	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" y.tab.h
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f y.tab.h ]; then
+	echo >y.tab.h
+    fi
+    if [ ! -f y.tab.c ]; then
+	echo 'main() { return 0; }' >y.tab.c
+    fi
+    ;;
+
+  lex|flex)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.l' file.  You may need the \`Flex' package
+         in order for those modifications to take effect.  You can get
+         \`Flex' from any GNU archive site."
+    rm -f lex.yy.c
+    if [ $# -ne 1 ]; then
+        eval LASTARG="\${$#}"
+	case "$LASTARG" in
+	*.l)
+	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+	    if [ -f "$SRCFILE" ]; then
+	         cp "$SRCFILE" lex.yy.c
+	    fi
+	  ;;
+	esac
+    fi
+    if [ ! -f lex.yy.c ]; then
+	echo 'main() { return 0; }' >lex.yy.c
+    fi
+    ;;
+
+  help2man)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+	 you modified a dependency of a manual page.  You may need the
+	 \`Help2man' package in order for those modifications to take
+	 effect.  You can get \`Help2man' from any GNU archive site."
+
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+    fi
+    if [ -f "$file" ]; then
+	touch $file
+    else
+	test -z "$file" || exec >$file
+	echo ".ab help2man is required to generate this page"
+	exit 1
+    fi
+    ;;
+
+  makeinfo)
+    echo 1>&2 "\
+WARNING: \`$1' is $msg.  You should only need it if
+         you modified a \`.texi' or \`.texinfo' file, or any other file
+         indirectly affecting the aspect of the manual.  The spurious
+         call might also be the consequence of using a buggy \`make' (AIX,
+         DU, IRIX).  You might want to install the \`Texinfo' package or
+         the \`GNU make' package.  Grab either from any GNU archive site."
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    if test -z "$file"; then
+      file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file`
+    fi
+    touch $file
+    ;;
+
+  tar)
+    shift
+
+    # We have already tried tar in the generic part.
+    # Look for gnutar/gtar before invocation to avoid ugly error
+    # messages.
+    if (gnutar --version > /dev/null 2>&1); then
+       gnutar "$@" && exit 0
+    fi
+    if (gtar --version > /dev/null 2>&1); then
+       gtar "$@" && exit 0
+    fi
+    firstarg="$1"
+    if shift; then
+	case "$firstarg" in
+	*o*)
+	    firstarg=`echo "$firstarg" | sed s/o//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+	case "$firstarg" in
+	*h*)
+	    firstarg=`echo "$firstarg" | sed s/h//`
+	    tar "$firstarg" "$@" && exit 0
+	    ;;
+	esac
+    fi
+
+    echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+         You may want to install GNU tar or Free paxutils, or check the
+         command line arguments."
+    exit 1
+    ;;
+
+  *)
+    echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+         You might have modified some files without having the
+         proper tools for further handling them.  Check the \`README' file,
+         it often tells you about the needed prerequisites for installing
+         this package.  You may also peek at any GNU archive site, in case
+         some other package would contain this missing \`$1' program."
+    exit 1
+    ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/missing
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/mkinstalldirs
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/mkinstalldirs	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/mkinstalldirs	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,158 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+
+scriptversion=2005-06-29.22
+
+# Original author: Noah Friedman <friedman at prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain.
+#
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+errstatus=0
+dirmode=
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
+
+Create each directory DIR (with mode MODE, if specified), including all
+leading file name components.
+
+Report bugs to <bug-automake at gnu.org>."
+
+# process command line arguments
+while test $# -gt 0 ; do
+  case $1 in
+    -h | --help | --h*)         # -h for help
+      echo "$usage"
+      exit $?
+      ;;
+    -m)                         # -m PERM arg
+      shift
+      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+      dirmode=$1
+      shift
+      ;;
+    --version)
+      echo "$0 $scriptversion"
+      exit $?
+      ;;
+    --)                         # stop option processing
+      shift
+      break
+      ;;
+    -*)                         # unknown option
+      echo "$usage" 1>&2
+      exit 1
+      ;;
+    *)                          # first non-opt arg
+      break
+      ;;
+  esac
+done
+
+for file
+do
+  if test -d "$file"; then
+    shift
+  else
+    break
+  fi
+done
+
+case $# in
+  0) exit 0 ;;
+esac
+
+# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
+# mkdir -p a/c at the same time, both will detect that a is missing,
+# one will create a, then the other will try to create a and die with
+# a "File exists" error.  This is a problem when calling mkinstalldirs
+# from a parallel make.  We use --version in the probe to restrict
+# ourselves to GNU mkdir, which is thread-safe.
+case $dirmode in
+  '')
+    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+      echo "mkdir -p -- $*"
+      exec mkdir -p -- "$@"
+    else
+      # On NextStep and OpenStep, the `mkdir' command does not
+      # recognize any option.  It will interpret all options as
+      # directories to create, and then abort because `.' already
+      # exists.
+      test -d ./-p && rmdir ./-p
+      test -d ./--version && rmdir ./--version
+    fi
+    ;;
+  *)
+    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
+       test ! -d ./--version; then
+      echo "mkdir -m $dirmode -p -- $*"
+      exec mkdir -m "$dirmode" -p -- "$@"
+    else
+      # Clean up after NextStep and OpenStep mkdir.
+      for d in ./-m ./-p ./--version "./$dirmode";
+      do
+        test -d $d && rmdir $d
+      done
+    fi
+    ;;
+esac
+
+for file
+do
+  case $file in
+    /*) pathcomp=/ ;;
+    *)  pathcomp= ;;
+  esac
+  oIFS=$IFS
+  IFS=/
+  set fnord $file
+  shift
+  IFS=$oIFS
+
+  for d
+  do
+    test "x$d" = x && continue
+
+    pathcomp=$pathcomp$d
+    case $pathcomp in
+      -*) pathcomp=./$pathcomp ;;
+    esac
+
+    if test ! -d "$pathcomp"; then
+      echo "mkdir $pathcomp"
+
+      mkdir "$pathcomp" || lasterr=$?
+
+      if test ! -d "$pathcomp"; then
+	errstatus=$lasterr
+      else
+	if test ! -z "$dirmode"; then
+	  echo "chmod $dirmode $pathcomp"
+	  lasterr=
+	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+	  if test ! -z "$lasterr"; then
+	    errstatus=$lasterr
+	  fi
+	fi
+      fi
+    fi
+
+    pathcomp=$pathcomp/
+  done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/mkinstalldirs
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/nmcheck
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/nmcheck	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/nmcheck	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,371 @@
+#!/usr/bin/perl -w
+
+# Check namespace cleanness of a library.
+# Allowed symbols are passed as arguments.
+# They may have trailing * = wildcard.
+# Wildcards may be also specified as *::* (e.g. K*::* for all KDE classes)
+# Symbols are listed as full function unmangled names without arguments,
+# e.g. 'foo bar* nspace::*' allows foo(), foo(int), bar(), barbar()
+# and all symbols in namespace/class nspace.
+# If an argument has comma in it, it's a filename of a file containing
+# allowed symbols, one per line.
+
+
+$thisProg   = "$0";     # This programs name
+
+$library = "";
+$allowed_symbols = "";
+$debug = 0;
+$allowed_weak = "";
+$weak_specified = 0;
+
+while( defined( $ARGV[ 0 ] ))
+{
+    $_ = shift;
+    if( /^--verbose$|^-v$/ )
+    {
+	$debug = 1;
+    }
+    elsif( /^--help$|^-h$/ )
+    {
+        print STDOUT "Usage $thisProg [OPTION] ... library [allowed symbols] ...\n",
+                "\n",
+		"Check if the given library has only allowed public symbols.\n",
+                "\n",
+		"  --allowweak=[symbol] allow only these weak symbols\n",
+                "  -v, --verbose        verbosely list files processed\n",
+                "  -h, --help           print this help, then exit\n";
+        exit 0;
+    }
+    elsif( /^--allowweak=(.*)$/ )
+    {
+	$allowed_weak .= " " . $1;
+	$weak_specified = 1;
+    }
+    elsif( /^--allowweak$/ ) # simply list all weak
+    {
+	$allowed_weak .= " ";
+	$weak_specified = 1;
+    }
+    elsif( /^--*/ )
+    {
+	die "Invalid argument!\n";
+    }
+    else
+    {
+	if( ! $library )
+	{
+	    $library = $_;
+	}
+	else
+	{
+	    $allowed_symbols .= " " . $_;
+	}
+    }
+}
+
+if( ! $weak_specified )
+{
+    $allowed_weak = "*"; 
+    # allow all weak symbols by default
+    # instances of templates and similar stuff - unfortunately includes also things from other libraries,
+    # so it cannot be on by default
+}
+
+print STDERR "library:" . $library . "\n" if $debug;
+print STDERR "allowed_symbols:" . $allowed_symbols . "\n" if $debug;
+print STDERR "allowed_weak:" . $allowed_weak . "\n" if $debug;
+
+$default_symbols = "_fini _init";  # system symbols
+# on my system, every .so has :
+# A _DYNAMIC
+# A _GLOBAL_OFFSET_TABLE_
+# A __bss_start
+# A _edata
+# A _end
+# T _fini
+# T _init
+# no need to list A symbols in $default_symbols
+
+print STDERR "default_symbols: " . $default_symbols . "\n" if $debug;
+
+print STDOUT "Namespace cleanness check for " . $library . " :\n";
+
+$lib_file = "";
+if( $library =~ /\.la$/ )
+{
+    # get the real library file from .la
+    open( FILEIN, $library ) || die "Couldn't open $! !\n";
+    while( $line = <FILEIN> )
+    {
+	if( $line =~ /library_names=\'([^ ]*).*/o )
+	{
+	    $lib_file = $1;
+	}
+    }
+    close( FILEIN );
+    if( ! $lib_file )
+    {
+	print STDERR "Library file not found in .la file!\n";
+	exit 1;
+    }
+    my $libpath = $library;
+    $libpath =~ s%[^/]*$%%;
+    if(  -e $libpath . ".libs/" . $lib_file )
+    {
+	$lib_file = $libpath . ".libs/" . $lib_file;
+    }
+    else
+    {
+	$lib_file = $libpath . $lib_file;
+    }
+}
+else
+{
+    $lib_file = $library;
+}
+
+print STDERR "libfile: ". $lib_file . "\n" if $debug;
+
+$allowed_symbols .= " " . $default_symbols;
+
+sub process_symbols($\@\%\@);
+
+ at wildcards = ();
+%exacts = ();
+ at regwildcards = ();
+process_symbols( $allowed_symbols, @wildcards, %exacts, @regwildcards );
+ at weak_wildcards = ();
+%weak_exacts = ();
+ at weak_regwildcards = ();
+process_symbols( $allowed_weak, @weak_wildcards, %weak_exacts, @weak_regwildcards );
+
+# grep is for stripping not exported symbols, which don't have address (=first column)
+$nm_command = "nm -BDCg " . $lib_file . " | grep -v '^ ' |";
+
+# TODO how portable is this nmcheck stuff?
+
+print STDERR "nm command:" . $nm_command . "\n" if $debug;
+
+open( FILEIN, $nm_command ) || die "nm command failed\n";
+
+my $exit_code = 0;
+
+while( $line = <FILEIN> )
+{
+    my $type;
+    my $symbol;
+    if( $line =~ /^[^ ]* (.) (.*)$/o )
+    {
+	$type = $1;
+	$symbol = $2;
+    }
+    else
+    {
+	die "Invalid line: " . $line . "\n";
+    }
+    
+    print STDERR "Type: " . $type . " , symbol: " . $symbol . "\n" if $debug;
+    if( $type eq "A" )
+    { # these should be system symbols, so ignore them
+	next;
+    }
+
+    my $orig_symbol = $symbol;
+
+    if( $symbol =~ /\(anonymous namespace\)/o )
+    { # TODO tell to prefer named namespaces? (shorter symbols)
+	next;
+    }
+
+    # strip prefixes
+    # the :: appending is to make "CLASS::*" work also for "vtable for CLASS"
+    $symbol =~ s/^typeinfo for (.*)$/$1::/o;
+    $symbol =~ s/^typeinfo fn for (.*)$/$1::/o;
+    $symbol =~ s/^typeinfo name for (.*)$/$1::/o;
+    $symbol =~ s/^vtable for (.*)$/$1::/o;
+    $symbol =~ s/^guard variable for (.*)$/$1::/o;
+    $symbol =~ s/^reference temporary for (.*)$/$1::/o;
+    $symbol =~ s/^VTT for (.*)$/$1::/o;
+    $symbol =~ s/^virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^non-virtual thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^covariant return thunk \[[^\]]*\] to (.*)$/$1::/o;
+    $symbol =~ s/^construction vtable thunk for (.*)$/$1::/o;
+    $symbol =~ s/^construction vtable for .*-in-(.*) [0-9]*$/$1::/o;
+
+    # templates seem to have also return types mangled in their name, and nm prints it too
+    # they have also template arguments in the symbol
+    # get rid of both of those
+    while( $symbol =~ /<.*>/o )
+    {
+        $symbol =~ s/<[^<>]*>//o; # strip innermost <>
+    }
+    if( $symbol !~ /operator\(\)/o )
+    {
+	$symbol =~ s/ ?\(.*\).*$//o;  # strip () and all after it
+    }
+    else
+    {
+	$symbol =~ s/(^|:| )operator\(\) ?\(.*\).*$//o;  # strip () and all after it
+    }
+    $symbol =~ s/\[.*\] *$//o;   # strip [in-charge] etc.
+    if( $symbol =~ /(^|:| )operator /o )
+    {
+	$symbol =~ s/.* ([^\s]*)operator /$1/o; # strip everything before 'X::operator blah'
+    }
+    else
+    {
+	$symbol =~ s/.* ([^\s]+) *$/$1/o;  # get last word (strip return type)
+    }
+
+    # print STDERR "Processed symbol: " . $symbol . "\n" if $debug;
+    
+    my $found = 0;
+    if( $exacts{ $symbol } )
+    {
+	$found = 1;
+    }
+    if( ! $found )
+    {
+	for my $wild ( @wildcards )
+	{
+	    if( index( $symbol, $wild ) == 0 )
+	    {
+		$found = 1;
+		last;
+	    }
+	}
+    }
+    if( ! $found )
+    {
+	for my $wild ( @regwildcards )
+	{
+	    if( $symbol =~ /^$wild$/ )
+	    {
+		$found = 1;
+		last;
+	    }
+	}
+    }
+    if( ( ! $found ) && ( $type eq "W" || $type eq "V" ))
+    {
+	if( $weak_exacts{ $symbol } )
+	{
+	    $found = 1;
+	}
+	if( ! $found )
+	{
+	    for my $wild ( @weak_wildcards )
+	    {
+	        if( index( $symbol, $wild ) == 0 )
+	        {
+	    	    $found = 1;
+		    last;
+		}
+	    }
+	}
+	if( ! $found )
+	{
+	    for my $wild ( @weak_regwildcards )
+	    {
+	        if( $symbol =~ /^$wild$/ )
+	        {
+		    $found = 1;
+		    last;
+	        }
+	    }
+	}
+    }
+
+    if( ! $found )
+    {
+	print STDERR "Public symbol " . $orig_symbol . " is not allowed!\n";
+	$exit_code = 1;
+    }
+}
+
+close( FILEIN );
+
+print STDOUT $exit_code == 0 ? "OK\n" : "FAILED\n";
+
+exit $exit_code;
+
+sub process_symbols($\@\%\@)
+{
+    my $allowed_symbols = $_[ 0 ];
+    my $wildcards_ref = $_[ 1 ];
+    my $exacts_ref = $_[ 2 ];
+    my $regwildcards_ref = $_[ 3 ];
+    
+    $allowed_symbols =~ s/^ *//o;  # strip whitespace
+    $allowed_symbols =~ s/ *$//o;
+
+    if( $allowed_symbols eq "NONE" )
+    {
+	$allowed_symbols = "";
+    }
+
+    my @symbols1 = split( ' ', $allowed_symbols );
+    my $i = 0;
+    my @symbols2 = ();
+    while( defined( $symbols1[ $i ] ))
+    {
+	my $symbol = $symbols1[ $i ];
+	if( $symbol =~ /\./ )  # dot in name -> file
+	{
+	    open( SYMIN, $symbol ) || die ( "Cannot open file " . $symbol . "!" );
+	    while( $line = <SYMIN> )
+	    {
+		$line =~ s/^\s*//o;  # strip whitespace
+		$line =~ s/\s*$//o;
+		if( $line !~ /^$/o  # empty line
+		    &&  $line !~ /^\s*#/ ) # comment line starting with #
+		{
+		    $symbols2[ $#symbols2 + 1 ] = $line;
+		}
+	    }
+	    close( SYMIN );
+	}
+	else
+	{
+	    $symbols2[ $#symbols2 + 1 ] = $symbol;
+	}
+	$i++;
+    }
+    $i = 0;
+    while( defined( $symbols2[ $i ] ))
+    {
+	my $symbol = $symbols2[ $i ];
+	if( $symbol =~ /__/
+	    || $symbol =~ /^_[A-Z]/ )
+	{ # ISO C++ 2.10.2
+	    die "Symbols containing a double underscore or beginning with an underscore and an upper-case letter are reserved!\n";
+	}
+	elsif( $symbol eq "main"
+	    || $symbol eq "main*" )
+	{
+	    die "Symbol main is not allowed!\n";
+	}
+	if( $symbol =~ /^([^\*]*)\*$/o   # trailing * without any * before it
+	    && $symbol !~ /operator\*$/o )
+        {
+	    print STDERR "wildcard:" . $symbol . "\n" if $debug;
+    	    $wildcards_ref->[ $#{$wildcards_ref} + 1 ] = $1;
+	}
+	elsif( $symbol =~ /\*$/o
+	    && ( $symbol =~ /\*::/o || $symbol =~ /::\*/o )
+	    && $symbol !~ /^\*/o
+	    && $symbol !~ /operator\*$/o )
+	{
+	    print STDERR "regwildcard:" . $symbol . "\n" if $debug;
+	    $symbol =~ s/\*/\.\*/go;  # change * to .* (regexp)
+	    $regwildcards_ref->[ $#{$regwildcards_ref} + 1 ] = $symbol;
+	}
+	else
+	{
+	    print STDERR "exact:" . $symbol . "\n" if $debug;
+	    $exacts_ref->{ $symbol } = 1;
+	}
+	$i++;
+    }
+}


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/nmcheck
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/admin/oldinclude.m4.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/oldinclude.m4.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/oldinclude.m4.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,192 @@
+###   -*- autoconf -*-
+
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 1997 Janos Farkas (chexum at shadow.banki.hu)
+dnl              (C) 1997,98,99 Stephan Kulow (coolo at kde.org)
+
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl    Boston, MA 02110-1301, USA.
+
+AC_DEFUN([KDE_CHECK_MICO],
+[
+AC_REQUIRE([KDE_CHECK_LIBDL])
+AC_REQUIRE([KDE_MISC_TESTS])
+AC_MSG_CHECKING(for MICO)
+
+if test -z "$MICODIR"; then
+    kde_micodir=/usr/local
+ else
+    kde_micodir="$MICODIR"
+fi
+
+AC_ARG_WITH(micodir,
+  [  --with-micodir=micodir  where mico is installed ],
+  kde_micodir=$withval,
+  kde_micodir=$kde_micodir
+)
+
+AC_CACHE_VAL(kde_cv_mico_incdir,
+[
+  mico_incdirs="$kde_micodir/include /usr/include /usr/local/include /usr/local/include /opt/local/include $kde_extra_includes"
+AC_FIND_FILE(CORBA.h, $mico_incdirs, kde_cv_mico_incdir)
+
+])
+kde_micodir=`echo $kde_cv_mico_incdir | sed -e 's#/include##'`
+
+if test ! -r  $kde_micodir/include/CORBA.h; then
+  AC_MSG_ERROR([No CORBA.h found, specify another micodir])
+fi
+
+AC_MSG_RESULT($kde_micodir)
+
+MICO_INCLUDES=-I$kde_micodir/include
+AC_SUBST(MICO_INCLUDES)
+MICO_LDFLAGS=-L$kde_micodir/lib
+AC_SUBST(MICO_LDFLAGS)
+micodir=$kde_micodir
+AC_SUBST(micodir)
+
+AC_MSG_CHECKING([for MICO version])
+AC_CACHE_VAL(kde_cv_mico_version,
+[
+AC_LANG_C
+cat >conftest.$ac_ext <<EOF
+#include <stdio.h>
+#include <mico/version.h>
+int main() {
+
+   printf("MICO_VERSION=%s\n",MICO_VERSION);
+   return (0);
+}
+EOF
+ac_compile='${CC-gcc} $CFLAGS $MICO_INCLUDES conftest.$ac_ext -o conftest'
+if AC_TRY_EVAL(ac_compile); then
+  if eval `./conftest 2>&5`; then
+    kde_cv_mico_version=$MICO_VERSION
+  else
+    AC_MSG_ERROR([your system is not able to execute a small application to
+    find MICO version! Check $kde_micodir/include/mico/version.h])
+  fi
+else
+  AC_MSG_ERROR([your system is not able to compile a small application to
+  find MICO version! Check $kde_micodir/include/mico/version.h])
+fi
+])
+
+dnl installed MICO version
+mico_v_maj=`echo $kde_cv_mico_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
+mico_v_mid=`echo $kde_cv_mico_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
+mico_v_min=`echo $kde_cv_mico_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
+
+if test "x$1" = "x"; then
+ req_version="2.3.0"
+else
+ req_version=$1
+fi
+
+dnl required MICO version
+req_v_maj=`echo $req_version | sed -e 's/^\(.*\)\..*\..*$/\1/'`
+req_v_mid=`echo $req_version | sed -e 's/^.*\.\(.*\)\..*$/\1/'`
+req_v_min=`echo $req_version | sed -e 's/^.*\..*\.\(.*\)$/\1/'`
+
+if test "$mico_v_maj" -lt "$req_v_maj" || \
+   ( test "$mico_v_maj" -eq "$req_v_maj" && \
+        test "$mico_v_mid" -lt "$req_v_mid" ) || \
+   ( test "$mico_v_mid" -eq "$req_v_mid" && \
+        test "$mico_v_min" -lt "$req_v_min" )
+
+then
+  AC_MSG_ERROR([found MICO version $kde_cv_mico_version but version $req_version \
+at least is required. You should upgrade MICO.])
+else
+  AC_MSG_RESULT([$kde_cv_mico_version (minimum version $req_version, ok)])
+fi
+
+LIBMICO="-lmico$kde_cv_mico_version $LIBCRYPT $LIBSOCKET $LIBDL"
+AC_SUBST(LIBMICO)
+if test -z "$IDL"; then
+  IDL='$(kde_bindir)/cuteidl'
+fi
+AC_SUBST(IDL)
+IDL_DEPENDENCIES='$(kde_includes)/CUTE.h'
+AC_SUBST(IDL_DEPENDENCIES)
+
+idldir="\$(includedir)/idl"
+AC_SUBST(idldir)
+
+])
+
+AC_DEFUN([KDE_CHECK_MINI_STL],
+[
+AC_REQUIRE([KDE_CHECK_MICO])
+
+AC_MSG_CHECKING(if we use mico's mini-STL)
+AC_CACHE_VAL(kde_cv_have_mini_stl,
+[
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+kde_save_cxxflags="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $MICO_INCLUDES"
+AC_TRY_COMPILE(
+[
+#include <mico/config.h>
+],
+[
+#ifdef HAVE_MINI_STL
+#error "nothing"
+#endif
+],
+kde_cv_have_mini_stl=no,
+kde_cv_have_mini_stl=yes)
+CXXFLAGS="$kde_save_cxxflags"
+AC_LANG_RESTORE
+])
+
+if test "x$kde_cv_have_mini_stl" = "xyes"; then
+   AC_MSG_RESULT(yes)
+   $1
+else
+   AC_MSG_RESULT(no)
+   $2
+fi
+])
+
+])
+
+AC_DEFUN([KDE_CHECK_ANSI],
+[
+])
+
+AC_DEFUN([KDE_CHECK_INSURE],
+[
+  AC_ARG_ENABLE(insure, [  --enable-insure             use insure++ for debugging [default=no]],
+  [
+  if test $enableval = "no"; dnl
+	then ac_use_insure="no"
+	else ac_use_insure="yes"
+   fi
+  ], [ac_use_insure="no"])
+
+  AC_MSG_CHECKING(if we will use Insure++ to debug)
+  AC_MSG_RESULT($ac_use_insure)
+  if test "$ac_use_insure" = "yes"; dnl
+       then CC="insure"; CXX="insure"; dnl CFLAGS="$CLAGS -fno-rtti -fno-exceptions "????
+   fi
+])
+
+AC_DEFUN([KDE_CHECK_NEWLIBS],
+[
+
+])

Added: kde-extras/kpogre/branches/upstream/current/admin/pkg.m4.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/pkg.m4.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/pkg.m4.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+
+dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
+dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
+dnl also defines GSTUFF_PKG_ERRORS on error
+AC_DEFUN([PKG_CHECK_MODULES], [
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        AC_MSG_CHECKING(for $2)
+
+        if $PKG_CONFIG --exists "$2" ; then
+            AC_MSG_RESULT(yes)
+            succeeded=yes
+
+            AC_MSG_CHECKING($1_CFLAGS)
+            $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
+            AC_MSG_RESULT($$1_CFLAGS)
+
+            AC_MSG_CHECKING($1_LIBS)
+            $1_LIBS=`$PKG_CONFIG --libs "$2"`
+            AC_MSG_RESULT($$1_LIBS)
+        else
+            $1_CFLAGS=""
+            $1_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but 
+            ## do set a variable so people can do so.
+            $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+            ifelse([$4], ,echo $$1_PKG_ERRORS,)
+        fi
+
+        AC_SUBST($1_CFLAGS)
+        AC_SUBST($1_LIBS)
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     ifelse([$3], , :, [$3])
+  else
+     ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
+  fi
+])
+
+

Added: kde-extras/kpogre/branches/upstream/current/admin/ylwrap
===================================================================
--- kde-extras/kpogre/branches/upstream/current/admin/ylwrap	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/admin/ylwrap	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,223 @@
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+
+scriptversion=2005-05-14.22
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005
+#   Free Software Foundation, Inc.
+#
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+case "$1" in
+  '')
+    echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
+    exit 1
+    ;;
+  --basedir)
+    basedir=$2
+    shift 2
+    ;;
+  -h|--h*)
+    cat <<\EOF
+Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+
+Wrapper for lex/yacc invocations, renaming files as desired.
+
+  INPUT is the input file
+  OUTPUT is one file PROG generates
+  DESIRED is the file we actually want instead of OUTPUT
+  PROGRAM is program to run
+  ARGS are passed to PROG
+
+Any number of OUTPUT,DESIRED pairs may be used.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v|--v*)
+    echo "ylwrap $scriptversion"
+    exit $?
+    ;;
+esac
+
+
+# The input.
+input="$1"
+shift
+case "$input" in
+  [\\/]* | ?:[\\/]*)
+    # Absolute path; do nothing.
+    ;;
+  *)
+    # Relative path.  Make it absolute.
+    input="`pwd`/$input"
+    ;;
+esac
+
+pairlist=
+while test "$#" -ne 0; do
+  if test "$1" = "--"; then
+    shift
+    break
+  fi
+  pairlist="$pairlist $1"
+  shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+  [\\/]* | ?:[\\/]*) ;;
+  *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines.  But that might take us over the 14-char limit.
+dirname=ylwrap$$
+trap "cd `pwd`; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
+mkdir $dirname || exit 1
+
+cd $dirname
+
+case $# in
+  0) $prog "$input" ;;
+  *) $prog "$@" "$input" ;;
+esac
+ret=$?
+
+if test $ret -eq 0; then
+  set X $pairlist
+  shift
+  first=yes
+  # Since DOS filename conventions don't allow two dots,
+  # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+  # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+  y_tab_nodot="no"
+  if test -f y_tab.c || test -f y_tab.h; then
+    y_tab_nodot="yes"
+  fi
+
+  # The directory holding the input.
+  input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+  # Quote $INPUT_DIR so we can use it in a regexp.
+  # FIXME: really we should care about more than `.' and `\'.
+  input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
+
+  while test "$#" -ne 0; do
+    from="$1"
+    # Handle y_tab.c and y_tab.h output by DOS
+    if test $y_tab_nodot = "yes"; then
+      if test $from = "y.tab.c"; then
+    	from="y_tab.c"
+      else
+    	if test $from = "y.tab.h"; then
+    	  from="y_tab.h"
+    	fi
+      fi
+    fi
+    if test -f "$from"; then
+      # If $2 is an absolute path name, then just use that,
+      # otherwise prepend `../'.
+      case "$2" in
+    	[\\/]* | ?:[\\/]*) target="$2";;
+    	*) target="../$2";;
+      esac
+
+      # We do not want to overwrite a header file if it hasn't
+      # changed.  This avoid useless recompilations.  However the
+      # parser itself (the first file) should always be updated,
+      # because it is the destination of the .y.c rule in the
+      # Makefile.  Divert the output of all other files to a temporary
+      # file so we can compare them to existing versions.
+      if test $first = no; then
+	realtarget="$target"
+	target="tmp-`echo $target | sed s/.*[\\/]//g`"
+      fi
+      # Edit out `#line' or `#' directives.
+      #
+      # We don't want the resulting debug information to point at
+      # an absolute srcdir; it is better for it to just mention the
+      # .y file with no path.
+      #
+      # We want to use the real output file name, not yy.lex.c for
+      # instance.
+      #
+      # We want the include guards to be adjusted too.
+      FROM=`echo "$from" | sed \
+            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+      TARGET=`echo "$2" | sed \
+            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+
+      sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
+          -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
+
+      # Check whether header files must be updated.
+      if test $first = no; then
+	if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+	  echo "$2" is unchanged
+	  rm -f "$target"
+	else
+          echo updating "$2"
+          mv -f "$target" "$realtarget"
+        fi
+      fi
+    else
+      # A missing file is only an error for the first file.  This
+      # is a blatant hack to let us support using "yacc -d".  If -d
+      # is not specified, we don't want an error when the header
+      # file is "missing".
+      if test $first = yes; then
+        ret=1
+      fi
+    fi
+    shift
+    shift
+    first=no
+  done
+else
+  ret=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:


Property changes on: kde-extras/kpogre/branches/upstream/current/admin/ylwrap
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/config.h.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/config.h.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/config.h.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,237 @@
+/* config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define to 1 if you have the <Carbon/Carbon.h> header file. */
+#undef HAVE_CARBON_CARBON_H
+
+/* Define if you have the CoreAudio API */
+#undef HAVE_COREAUDIO
+
+/* Define to 1 if you have the <crt_externs.h> header file. */
+#undef HAVE_CRT_EXTERNS_H
+
+/* Defines if your system has the crypt function */
+#undef HAVE_CRYPT
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if you have libjpeg */
+#undef HAVE_LIBJPEG
+
+/* Define if you have libpng */
+#undef HAVE_LIBPNG
+
+/* Define if you have a working libpthread (will enable threaded code) */
+#undef HAVE_LIBPTHREAD
+
+/* Define if you have libz */
+#undef HAVE_LIBZ
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define if your system needs _NSGetEnviron to set up the environment */
+#undef HAVE_NSGETENVIRON
+
+/* Define if you have res_init */
+#undef HAVE_RES_INIT
+
+/* Define if you have the res_init prototype */
+#undef HAVE_RES_INIT_PROTO
+
+/* Define if you have a STL implementation by SGI */
+#undef HAVE_SGI_STL
+
+/* Define to 1 if you have the `snprintf' function. */
+#undef HAVE_SNPRINTF
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define if you have strlcat */
+#undef HAVE_STRLCAT
+
+/* Define if you have the strlcat prototype */
+#undef HAVE_STRLCAT_PROTO
+
+/* Define if you have strlcpy */
+#undef HAVE_STRLCPY
+
+/* Define if you have the strlcpy prototype */
+#undef HAVE_STRLCPY_PROTO
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+#undef HAVE_SYS_BITYPES_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `vsnprintf' function. */
+#undef HAVE_VSNPRINTF
+
+/* Suffix for lib directories */
+#undef KDELIBSUFF
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The size of a `char *', as computed by sizeof. */
+#undef SIZEOF_CHAR_P
+
+/* The size of a `int', as computed by sizeof. */
+#undef SIZEOF_INT
+
+/* The size of a `long', as computed by sizeof. */
+#undef SIZEOF_LONG
+
+/* The size of a `short', as computed by sizeof. */
+#undef SIZEOF_SHORT
+
+/* The size of a `size_t', as computed by sizeof. */
+#undef SIZEOF_SIZE_T
+
+/* The size of a `unsigned long', as computed by sizeof. */
+#undef SIZEOF_UNSIGNED_LONG
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* Defined if compiling without arts */
+#undef WITHOUT_ARTS
+
+/*
+ * jpeg.h needs HAVE_BOOLEAN, when the system uses boolean in system
+ * headers and I'm too lazy to write a configure test as long as only
+ * unixware is related
+ */
+#ifdef _UNIXWARE
+#define HAVE_BOOLEAN
+#endif
+
+
+
+/*
+ * AIX defines FD_SET in terms of bzero, but fails to include <strings.h>
+ * that defines bzero.
+ */
+
+#if defined(_AIX)
+#include <strings.h>
+#endif
+
+
+
+#if defined(HAVE_NSGETENVIRON) && defined(HAVE_CRT_EXTERNS_H)
+# include <sys/time.h>
+# include <crt_externs.h>
+# define environ (*_NSGetEnviron())
+#endif
+
+
+
+#if !defined(HAVE_RES_INIT_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+int res_init(void);
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+
+#if !defined(HAVE_STRLCAT_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+unsigned long strlcat(char*, const char*, unsigned long);
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+
+#if !defined(HAVE_STRLCPY_PROTO)
+#ifdef __cplusplus
+extern "C" {
+#endif
+unsigned long strlcpy(char*, const char*, unsigned long);
+#ifdef __cplusplus
+}
+#endif
+#endif
+
+
+
+/*
+ * On HP-UX, the declaration of vsnprintf() is needed every time !
+ */
+
+#if !defined(HAVE_VSNPRINTF) || defined(hpux)
+#if __STDC__
+#include <stdarg.h>
+#include <stdlib.h>
+#else
+#include <varargs.h>
+#endif
+#ifdef __cplusplus
+extern "C"
+#endif
+int vsnprintf(char *str, size_t n, char const *fmt, va_list ap);
+#ifdef __cplusplus
+extern "C"
+#endif
+int snprintf(char *str, size_t n, char const *fmt, ...);
+#endif
+
+
+
+#if defined(__SVR4) && !defined(__svr4__)
+#define __svr4__ 1
+#endif
+
+
+/* type to use in place of socklen_t if not defined */
+#undef kde_socklen_t
+
+/* type to use in place of socklen_t if not defined (deprecated, use
+   kde_socklen_t) */
+#undef ksize_t

Added: kde-extras/kpogre/branches/upstream/current/configure
===================================================================
--- kde-extras/kpogre/branches/upstream/current/configure	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/configure	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34319 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.59.
+#
+# Copyright (C) 2003 Free Software Foundation, Inc.
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+
+
+# Check that we are running under the correct shell.
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+case X$ECHO in
+X*--fallback-echo)
+  # Remove one level of quotation (which was required for Make).
+  ECHO=`echo "$ECHO" | sed 's,\\\\\$\\$0,'$0','`
+  ;;
+esac
+
+echo=${ECHO-echo}
+if test "X$1" = X--no-reexec; then
+  # Discard the --no-reexec flag, and continue.
+  shift
+elif test "X$1" = X--fallback-echo; then
+  # Avoid inline document here, it may be left over
+  :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
+  # Yippee, $echo works!
+  :
+else
+  # Restart under the correct shell.
+  exec $SHELL "$0" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+  # used as fallback echo
+  shift
+  cat <<EOF
+$*
+EOF
+  exit 0
+fi
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+if test -z "$ECHO"; then
+if test "X${echo_test_string+set}" != Xset; then
+# find a string as large as possible, as long as the shell can cope with it
+  for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do
+    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
+    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
+       echo_test_string="`eval $cmd`" &&
+       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
+    then
+      break
+    fi
+  done
+fi
+
+if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+   test "X$echo_testing_string" = "X$echo_test_string"; then
+  :
+else
+  # The Solaris, AIX, and Digital Unix default echo programs unquote
+  # backslashes.  This makes it impossible to quote backslashes using
+  #   echo "$something" | sed 's/\\/\\\\/g'
+  #
+  # So, first we look for a working echo in the user's PATH.
+
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for dir in $PATH /usr/ucb; do
+    IFS="$lt_save_ifs"
+    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
+       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      echo="$dir/echo"
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  if test "X$echo" = Xecho; then
+    # We didn't find a better echo, so look for alternatives.
+    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
+       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
+       test "X$echo_testing_string" = "X$echo_test_string"; then
+      # This shell has a builtin print -r that does the trick.
+      echo='print -r'
+    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+      # If we have ksh, try running configure again with it.
+      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
+      export ORIGINAL_CONFIG_SHELL
+      CONFIG_SHELL=/bin/ksh
+      export CONFIG_SHELL
+      exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"}
+    else
+      # Try using printf.
+      echo='printf %s\n'
+      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
+	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
+	 test "X$echo_testing_string" = "X$echo_test_string"; then
+	# Cool, printf works
+	:
+      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
+	export CONFIG_SHELL
+	SHELL="$CONFIG_SHELL"
+	export SHELL
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` &&
+	   test "X$echo_testing_string" = 'X\t' &&
+	   echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
+	   test "X$echo_testing_string" = "X$echo_test_string"; then
+	echo="$CONFIG_SHELL $0 --fallback-echo"
+      else
+	# maybe with a smaller string...
+	prev=:
+
+	for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do
+	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
+	  then
+	    break
+	  fi
+	  prev="$cmd"
+	done
+
+	if test "$prev" != 'sed 50q "$0"'; then
+	  echo_test_string=`eval $prev`
+	  export echo_test_string
+	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
+	else
+	  # Oops.  We lost completely, so just stick with echo.
+	  echo=echo
+	fi
+      fi
+    fi
+  fi
+fi
+fi
+
+# Copy echo and quote the copy suitably for passing to libtool from
+# the Makefile, instead of quoting the original, which is used later.
+ECHO=$echo
+if test "X$ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then
+   ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo"
+fi
+
+
+
+
+tagnames=${tagnames+${tagnames},}CXX
+
+tagnames=${tagnames+${tagnames},}F77
+
+# Name of the host.
+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+exec 6>&1
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_config_libobj_dir=.
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+# Maximum number of lines to put in a shell here document.
+# This variable seems obsolete.  It should probably be removed, and
+# only ac_max_sed_lines should be used.
+: ${ac_max_here_lines=38}
+
+# Identity of this package.
+PACKAGE_NAME=
+PACKAGE_TARNAME=
+PACKAGE_VERSION=
+PACKAGE_STRING=
+PACKAGE_BUGREPORT=
+
+ac_unique_file="acinclude.m4"
+ac_default_prefix=${KDEDIR:-the kde prefix}
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar KDECONFIG kde_libs_prefix kde_libs_htmldir CONF_FILES CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE WOVERLOADED_VIRTUAL HAVE_GCC_VISIBILITY unsermake_enable_pch_TRUE unsermake_enable_pch_FALSE USE_EXCEPTIONS USE_RTTI CXXCPP NOOPT_CXXFLAGS NOOPT_CFLAGS ENABLE_PERMISSIVE_FLAG LDFLAGS_AS_NEEDED LDFLAGS_NEW_DTAGS KDE_USE_FINAL_TRUE KDE_USE_FINAL_FALSE KDE_USE_CLOSURE_TRUE KDE_USE_CLOSURE_FALSE KDE_NO_UNDEFINED KDE_USE_NMCHECK_TRUE KDE_USE_NMCHECK_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB F77 FFLAGS ac_ct_F77 LIBTOOL KDE_PLUGIN KDE_CHECK_PLUGIN MSGFMT GMSGFMT XGETTEXT LIBUTIL LIBCOMPAT LIBCRYPT LIBRESOLV LIB_POLL FRAMEWORK_COREAUDIO LIBSOCKET X_EXTRA_LIBS LIBUCB LIBDL KDE_USE_FPIE KDE_USE_PIE include_x11_TRUE include_x11_FALSE X_PRE_LIBS LIB_X11 LIB_XRENDER LIBSM X_INCLUDES X_LDFLAGS x_includes x_libraries QTE_NORTTI LIB_XEXT LIBPTHREAD USE_THREADS KDE_MT_LDFLAGS KDE_MT_LIBS USER_INCLUDES USER_LDFLAGS LIBZ LIBPNG LIBJPEG qt_libraries qt_includes QT_INCLUDES QT_LDFLAGS PERL MOC UIC UIC_TR LIB_QT LIB_QPE kde_qtver KDE_EXTRA_RPATH KDE_RPATH X_RPATH kde_libraries kde_includes KDE_LDFLAGS KDE_INCLUDES all_includes all_libraries AUTODIRS include_ARTS_TRUE include_ARTS_FALSE MAKEKDEWIDGETS KCONFIG_COMPILER KCFG_DEPENDENCIES DCOPIDLNG DCOPIDL DCOPIDL2CPP DCOP_DEPENDENCIES MCOPIDL ARTSCCONFIG MEINPROC KDE_XSL_STYLESHEET XMLLINT kde_htmldir kde_appsdir kde_icondir kde_sounddir kde_datadir kde_locale kde_confdir kde_kcfgdir kde_mimedir kde_wallpaperdir kde_bindir xdg_appsdir xdg_menudir xdg_directorydir kde_templatesdir kde_servicesdir kde_servicetypesdir kde_moduledir kdeinitdir kde_styledir kde_widgetdir LIB_KDED LIB_KDECORE LIB_KDEUI LIB_KIO LIB_KJS LIB_SMB LIB_KAB LIB_KABC LIB_KHTML LIB_KSPELL LIB_KPARTS LIB_KMDI LIB_KDEPRINT LIB_KUTILS LIB_KDEPIM LIB_KIMPROXY LIB_KNEWSTUFF LIB_KDNSSD LIB_KUNITTEST LIB_KSYCOCA LIB_KFILE LIB_KFM PQXX_LIBS PQXX_CFLAGS TOPSUBDIRS LIBOBJS LTLIBOBJS'
+ac_subst_files=''
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+ac_prev=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_option in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    eval "enable_$ac_feature=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+   { (exit 1); exit 1; }; }
+    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_$ac_feature='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case $ac_option in
+      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_$ac_package='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid package name: $ac_package" >&2
+   { (exit 1); exit 1; }; }
+    ac_package=`echo $ac_package | sed 's/-/_/g'`
+    eval "with_$ac_package=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) { echo "$as_me: error: unrecognized option: $ac_option
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; }
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+   { (exit 1); exit 1; }; }
+    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+    eval "$ac_envvar='$ac_optarg'"
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  { echo "$as_me: error: missing argument to $ac_option" >&2
+   { (exit 1); exit 1; }; }
+fi
+
+# Be sure to have absolute paths.
+for ac_var in exec_prefix prefix
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# Be sure to have absolute paths.
+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+	      localstatedir libdir includedir oldincludedir infodir mandir
+do
+  eval ac_val=$`echo $ac_var`
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* ) ;;
+    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    If a cross compiler is detected then cross compile mode will be used." >&2
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_confdir=`(dirname "$0") 2>/dev/null ||
+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$0" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+   { (exit 1); exit 1; }; }
+  else
+    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+   { (exit 1); exit 1; }; }
+  fi
+fi
+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+   { (exit 1); exit 1; }; }
+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+ac_env_build_alias_set=${build_alias+set}
+ac_env_build_alias_value=$build_alias
+ac_cv_env_build_alias_set=${build_alias+set}
+ac_cv_env_build_alias_value=$build_alias
+ac_env_host_alias_set=${host_alias+set}
+ac_env_host_alias_value=$host_alias
+ac_cv_env_host_alias_set=${host_alias+set}
+ac_cv_env_host_alias_value=$host_alias
+ac_env_target_alias_set=${target_alias+set}
+ac_env_target_alias_value=$target_alias
+ac_cv_env_target_alias_set=${target_alias+set}
+ac_cv_env_target_alias_value=$target_alias
+ac_env_CC_set=${CC+set}
+ac_env_CC_value=$CC
+ac_cv_env_CC_set=${CC+set}
+ac_cv_env_CC_value=$CC
+ac_env_CFLAGS_set=${CFLAGS+set}
+ac_env_CFLAGS_value=$CFLAGS
+ac_cv_env_CFLAGS_set=${CFLAGS+set}
+ac_cv_env_CFLAGS_value=$CFLAGS
+ac_env_LDFLAGS_set=${LDFLAGS+set}
+ac_env_LDFLAGS_value=$LDFLAGS
+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+ac_cv_env_LDFLAGS_value=$LDFLAGS
+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_env_CPPFLAGS_value=$CPPFLAGS
+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+ac_env_CPP_set=${CPP+set}
+ac_env_CPP_value=$CPP
+ac_cv_env_CPP_set=${CPP+set}
+ac_cv_env_CPP_value=$CPP
+ac_env_CXX_set=${CXX+set}
+ac_env_CXX_value=$CXX
+ac_cv_env_CXX_set=${CXX+set}
+ac_cv_env_CXX_value=$CXX
+ac_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_env_CXXFLAGS_value=$CXXFLAGS
+ac_cv_env_CXXFLAGS_set=${CXXFLAGS+set}
+ac_cv_env_CXXFLAGS_value=$CXXFLAGS
+ac_env_CXXCPP_set=${CXXCPP+set}
+ac_env_CXXCPP_value=$CXXCPP
+ac_cv_env_CXXCPP_set=${CXXCPP+set}
+ac_cv_env_CXXCPP_value=$CXXCPP
+ac_env_F77_set=${F77+set}
+ac_env_F77_value=$F77
+ac_cv_env_F77_set=${F77+set}
+ac_cv_env_F77_value=$F77
+ac_env_FFLAGS_set=${FFLAGS+set}
+ac_env_FFLAGS_value=$FFLAGS
+ac_cv_env_FFLAGS_set=${FFLAGS+set}
+ac_cv_env_FFLAGS_value=$FFLAGS
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures this package to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+_ACEOF
+
+  cat <<_ACEOF
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+			  [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+			  [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR           user executables [EPREFIX/bin]
+  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR       program executables [EPREFIX/libexec]
+  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+  --libdir=DIR           object code libraries [EPREFIX/lib]
+  --includedir=DIR       C header files [PREFIX/include]
+  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+  --infodir=DIR          info documentation [PREFIX/info]
+  --mandir=DIR           man documentation [PREFIX/man]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+
+System types:
+  --build=BUILD     configure for building on BUILD [guessed]
+  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+  --target=TARGET   configure for building compilers for TARGET [HOST]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --disable-fast-perl     disable fast Makefile generation (needs perl)
+  --enable-debug=ARG      enables debug symbols (yes|no|full) default=no
+  --disable-debug         disables debug output and debug symbols default=no
+  --enable-strict         compiles with strict compiler options (may not
+                          work!)
+  --disable-warnings      disables compilation with -Wall and similar
+  --enable-profile        creates profiling infos default=no
+  --disable-dependency-tracking  speeds up one-time build
+  --enable-dependency-tracking   do not reject slow dependency extractors
+  --enable-pch            enables precompiled header support (currently only
+                          KCC or gcc >=3.4+unsermake) default=no
+  --enable-coverage       use gcc coverage testing
+  --enable-new-ldflags    enable the new linker flags
+  --enable-final          build size optimized apps (experimental - needs lots
+                          of memory)
+  --enable-closure        delay template instantiation
+  --enable-nmcheck        enable automatic namespace cleanness check
+  --enable-shared[=PKGS]
+                          build shared libraries [default=yes]
+  --enable-static[=PKGS]
+                          build static libraries [default=no]
+  --enable-libsuffix      /lib directory suffix (64,32,none,auto=default)
+  --enable-fast-install[=PKGS]
+                          optimize for fast installation [default=yes]
+  --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-pie            platform supports PIE linking default=detect
+  --enable-embedded       link to Qt-embedded, don't use X
+  --enable-qtopia         link to Qt-embedded, link to the Qtopia Environment
+  --enable-mac            link to Qt/Mac (don't use X)
+  --disable-mt            link to non-threaded Qt (deprecated)
+  --disable-threading     disables threading even if libpthread found
+  --disable-rpath         do not use the rpath feature of ld
+  --disable-path-check    don't try to find out, where to install
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
+  --with-pic              try to use only PIC/non-PIC objects [default=use
+                          both]
+  --with-tags[=TAGS]
+                          include additional configurations [automatic]
+  --with-extra-includes=DIR
+                          adds non standard include paths
+  --with-extra-libs=DIR   adds non standard library paths
+  --with-qt-dir=DIR       where the root of Qt is installed
+  --with-qt-includes=DIR  where the Qt includes are.
+  --with-qt-libraries=DIR where the Qt library is installed.
+  --without-arts          build without aRts default=no
+
+Some influential environment variables:
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+              headers in a nonstandard directory <include dir>
+  CPP         C preprocessor
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CXXCPP      C++ preprocessor
+  F77         Fortran 77 compiler command
+  FFLAGS      Fortran 77 compiler flags
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+_ACEOF
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  ac_popdir=`pwd`
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d $ac_dir || continue
+    ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+    cd $ac_dir
+    # Check for guested configure; otherwise get Cygnus style configure.
+    if test -f $ac_srcdir/configure.gnu; then
+      echo
+      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+    elif test -f $ac_srcdir/configure; then
+      echo
+      $SHELL $ac_srcdir/configure  --help=recursive
+    elif test -f $ac_srcdir/configure.ac ||
+	   test -f $ac_srcdir/configure.in; then
+      echo
+      $ac_configure --help
+    else
+      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi
+    cd $ac_popdir
+  done
+fi
+
+test -n "$ac_init_help" && exit 0
+if $ac_init_version; then
+  cat <<\_ACEOF
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit 0
+fi
+exec 5>config.log
+cat >&5 <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  echo "PATH: $as_dir"
+done
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_sep=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    2)
+      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+      # Get rid of the leading space.
+      ac_sep=" "
+      ;;
+    esac
+  done
+done
+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Be sure not to use single quotes in there, as some shells,
+# such as our DU 5.0 friend, will then `close' the trap.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+{
+  (set) 2>&1 |
+    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      sed -n \
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+      ;;
+    *)
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+}
+    echo
+
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=$`echo $ac_var`
+      echo "$ac_var='"'"'$ac_val'"'"'"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------- ##
+## Output files. ##
+## ------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=$`echo $ac_var`
+	echo "$ac_var='"'"'$ac_val'"'"'"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      sed "/^$/d" confdefs.h | sort
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      echo "$as_me: caught signal $ac_signal"
+    echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core &&
+  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+     ' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -rf conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo >confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . $cache_file;;
+      *)                      . ./$cache_file;;
+    esac
+  fi
+else
+  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in `(set) 2>&1 |
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+  eval ac_new_val="\$ac_env_${ac_var}_value"
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+echo "$as_me:   former value:  $ac_old_val" >&2;}
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+echo "$as_me:   current value: $ac_new_val" >&2;}
+	ac_cache_corrupted=:
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ac_aux_dir=
+for ac_dir in admin $srcdir/admin; do
+  if test -f $ac_dir/install-sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f $ac_dir/install.sh; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f $ac_dir/shtool; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in admin $srcdir/admin" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in admin $srcdir/admin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+
+
+unset CDPATH
+
+# Make sure we can run config.sub.
+$ac_config_sub sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+   { (exit 1); exit 1; }; }
+
+echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6
+if test "${ac_cv_build+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_build_alias=$build_alias
+test -z "$ac_cv_build_alias" &&
+  ac_cv_build_alias=`$ac_config_guess`
+test -z "$ac_cv_build_alias" &&
+  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+   { (exit 1); exit 1; }; }
+ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6
+build=$ac_cv_build
+build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6
+if test "${ac_cv_host+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_host_alias=$host_alias
+test -z "$ac_cv_host_alias" &&
+  ac_cv_host_alias=$ac_cv_build_alias
+ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6
+host=$ac_cv_host
+host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+echo "$as_me:$LINENO: checking target system type" >&5
+echo $ECHO_N "checking target system type... $ECHO_C" >&6
+if test "${ac_cv_target+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_target_alias=$target_alias
+test "x$ac_cv_target_alias" = "x" &&
+  ac_cv_target_alias=$ac_cv_host_alias
+ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
+  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+echo "${ECHO_T}$ac_cv_target" >&6
+target=$ac_cv_target
+target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+target_vendor=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+target_os=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+# Double any \ or $.  echo might interpret backslashes.
+# By default was `s,x,x', remove it if useless.
+cat <<\_ACEOF >conftest.sed
+s/[\\$]/&&/g;s/;s,x,x,$//
+_ACEOF
+program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+rm conftest.sed
+
+
+am__api_version="1.9"
+
+
+          test -n "$INSTALL" && kde_save_INSTALL_given=$INSTALL
+  test -n "$INSTALL_PROGRAM" && kde_save_INSTALL_PROGRAM_given=$INSTALL_PROGRAM
+  test -n "$INSTALL_SCRIPT" && kde_save_INSTALL_SCRIPT_given=$INSTALL_SCRIPT
+  # Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+if test -z "$INSTALL"; then
+if test "${ac_cv_path_install+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in
+  ./ | .// | /cC/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	    break 3
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+done
+
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL=$ac_install_sh
+  fi
+fi
+echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+  if test -z "$kde_save_INSTALL_given" ; then
+    # OK, user hasn't given any INSTALL, autoconf found one for us
+    # now we test, if it supports the -p flag
+    echo "$as_me:$LINENO: checking for -p flag to install" >&5
+echo $ECHO_N "checking for -p flag to install... $ECHO_C" >&6
+    rm -f confinst.$$.* > /dev/null 2>&1
+    echo "Testtest" > confinst.$$.orig
+    ac_res=no
+    if ${INSTALL} -p confinst.$$.orig confinst.$$.new > /dev/null 2>&1 ; then
+      if test -f confinst.$$.new ; then
+        # OK, -p seems to do no harm to install
+	INSTALL="${INSTALL} -p"
+	ac_res=yes
+      fi
+    fi
+    rm -f confinst.$$.*
+    echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6
+  fi
+
+  if test -z "$kde_save_INSTALL_PROGRAM_given" ; then
+    INSTALL_PROGRAM='${INSTALL} $(INSTALL_STRIP_FLAG)'
+  fi
+  if test -z "$kde_save_INSTALL_SCRIPT_given" ; then
+    INSTALL_SCRIPT='${INSTALL}'
+  fi
+
+echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+# Just in case
+sleep 1
+echo timestamp > conftest.file
+# Do `set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t $srcdir/configure conftest.file`
+   fi
+   rm -f conftest.file
+   if test "$*" != "X $srcdir/configure conftest.file" \
+      && test "$*" != "X conftest.file $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&5
+echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+Check your system clock" >&5
+echo "$as_me: error: newly created file is older than distributed files!
+Check your system clock" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+# Use eval to expand $SHELL
+if eval "$MISSING --run true"; then
+  am_missing_run="$MISSING --run "
+else
+  am_missing_run=
+  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+fi
+
+if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+  # We used to keeping the `.' as first argument, in order to
+  # allow $(mkdir_p) to be used without argument.  As in
+  #   $(mkdir_p) $(somedir)
+  # where $(somedir) is conditionally defined.  However this is wrong
+  # for two reasons:
+  #  1. if the package is installed by a user who cannot write `.'
+  #     make install will fail,
+  #  2. the above comment should most certainly read
+  #     $(mkdir_p) $(DESTDIR)$(somedir)
+  #     so it does not work when $(somedir) is undefined and
+  #     $(DESTDIR) is not.
+  #  To support the latter case, we have to write
+  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+  #  so the `.' trick is pointless.
+  mkdir_p='mkdir -p --'
+else
+  # On NextStep and OpenStep, the `mkdir' command does not
+  # recognize any option.  It will interpret all options as
+  # directories to create, and then abort because `.' already
+  # exists.
+  for d in ./-p ./--version;
+  do
+    test -d $d && rmdir $d
+  done
+  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+  if test -f "$ac_aux_dir/mkinstalldirs"; then
+    mkdir_p='$(mkinstalldirs)'
+  else
+    mkdir_p='$(install_sh) -d'
+  fi
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AWK+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$AWK" && break
+done
+
+echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.make <<\_ACEOF
+all:
+	@echo 'ac_maketemp="$(MAKE)"'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftest.make
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  SET_MAKE=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# test to see if srcdir already configured
+if test "`cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
+  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE=kpogre
+ VERSION=1.6.2
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+install_sh=${install_sh-"$am_aux_dir/install-sh"}
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+
+
+
+
+
+
+  unset CDPATH
+
+
+
+    kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+    test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+    if test -n "$KDEDIRS"; then
+       kde_save_IFS=$IFS
+       IFS=:
+       for dir in $KDEDIRS; do
+            kde_default_bindirs="$dir/bin $kde_default_bindirs "
+       done
+       IFS=$kde_save_IFS
+    fi
+
+  if test "x$prefix" = "xNONE"; then
+
+   echo "$as_me:$LINENO: checking for kde-config" >&5
+echo $ECHO_N "checking for kde-config... $ECHO_C" >&6
+   if test -n "$KDECONFIG"; then
+        kde_cv_path="$KDECONFIG";
+   else
+        kde_cache=`echo kde-config | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z "prepend"; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/kde-config"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/kde-config  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/kde-config"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/kde-config"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program kde-config was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program kde-config was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      KDECONFIG=$kde_cv_path
+
+   fi
+
+  else
+        kde_save_PATH="$PATH"
+    PATH="$exec_prefix/bin:$prefix/bin:$PATH"
+
+   echo "$as_me:$LINENO: checking for kde-config" >&5
+echo $ECHO_N "checking for kde-config... $ECHO_C" >&6
+   if test -n "$KDECONFIG"; then
+        kde_cv_path="$KDECONFIG";
+   else
+        kde_cache=`echo kde-config | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z "prepend"; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/kde-config"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/kde-config  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/kde-config"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/kde-config"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program kde-config was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program kde-config was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      KDECONFIG=$kde_cv_path
+
+   fi
+
+    PATH="$kde_save_PATH"
+  fi
+
+  kde_libs_prefix=`$KDECONFIG --prefix`
+  if test -z "$kde_libs_prefix" || test ! -x "$kde_libs_prefix"; then
+       { { echo "$as_me:$LINENO: error: $KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+                    This means it has been moved since you installed it.
+                    This won't work. Please recompile kdelibs for the new prefix.
+                    " >&5
+echo "$as_me: error: $KDECONFIG --prefix outputed the non existant prefix '$kde_libs_prefix' for kdelibs.
+                    This means it has been moved since you installed it.
+                    This won't work. Please recompile kdelibs for the new prefix.
+                    " >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  kde_libs_htmldir=`$KDECONFIG --install html --expandvars`
+
+  echo "$as_me:$LINENO: checking where to install" >&5
+echo $ECHO_N "checking where to install... $ECHO_C" >&6
+  if test "x$prefix" = "xNONE"; then
+    prefix=$kde_libs_prefix
+    echo "$as_me:$LINENO: result: $prefix (as returned by kde-config)" >&5
+echo "${ECHO_T}$prefix (as returned by kde-config)" >&6
+  else
+        given_prefix=$prefix
+    echo "$as_me:$LINENO: result: $prefix (as requested)" >&5
+echo "${ECHO_T}$prefix (as requested)" >&6
+  fi
+
+  # And delete superfluous '/' to make compares easier
+  prefix=`echo "$prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  exec_prefix=`echo "$exec_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+  given_prefix=`echo "$given_prefix" | sed 's,//*,/,g' | sed -e 's,/$,,'`
+
+
+
+
+
+
+    # Check whether --enable-fast-perl or --disable-fast-perl was given.
+if test "${enable_fast_perl+set}" = set; then
+  enableval="$enable_fast_perl"
+  with_fast_perl=$enableval
+else
+  with_fast_perl=yes
+fi;
+
+
+  val=
+  if test -f $srcdir/configure.files ; then
+    val=`sed -e 's%^%\$(top_srcdir)/%' $srcdir/configure.files`
+  fi
+  CONF_FILES=
+  if test -n "$val" ; then
+    for i in $val ; do
+      CONF_FILES="$CONF_FILES $i"
+    done
+  fi
+
+
+
+
+          ac_config_headers="$ac_config_headers config.h"
+
+DEPDIR="${am__leading_dot}deps"
+
+          ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo done
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# We grep out `Entering directory' and `Leaving directory'
+# messages which can occur if `w' ends up in MAKEFLAGS.
+# In particular we don't look at `^make:' because GNU make might
+# be invoked under some other name (usually "gmake"), in which
+# case it prints its new name instead of `make'.
+if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+   am__include=include
+   am__quote=
+   _am_result=GNU
+fi
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+      am__include=.include
+      am__quote="\""
+      _am_result=BSD
+   fi
+fi
+
+
+echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then
+  enableval="$enable_dependency_tracking"
+
+fi;
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+fi
+
+
+if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+
+
+
+  # Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+
+    case $enableval in
+      yes)
+        kde_use_debug_code="yes"
+        kde_use_debug_define=no
+        ;;
+      full)
+        kde_use_debug_code="full"
+        kde_use_debug_define=no
+        ;;
+      *)
+        kde_use_debug_code="no"
+        kde_use_debug_define=yes
+        ;;
+    esac
+
+else
+  kde_use_debug_code="no"
+      kde_use_debug_define=no
+
+fi;
+
+    # Check whether --enable-dummyoption or --disable-dummyoption was given.
+if test "${enable_dummyoption+set}" = set; then
+  enableval="$enable_dummyoption"
+
+fi;
+
+  # Check whether --enable-strict or --disable-strict was given.
+if test "${enable_strict+set}" = set; then
+  enableval="$enable_strict"
+
+    if test $enableval = "no"; then
+         kde_use_strict_options="no"
+       else
+         kde_use_strict_options="yes"
+    fi
+
+else
+  kde_use_strict_options="no"
+fi;
+
+  # Check whether --enable-warnings or --disable-warnings was given.
+if test "${enable_warnings+set}" = set; then
+  enableval="$enable_warnings"
+
+    if test $enableval = "no"; then
+         kde_use_warnings="no"
+       else
+         kde_use_warnings="yes"
+    fi
+
+else
+  kde_use_warnings="yes"
+fi;
+
+    if test "$kde_use_debug_code" != "no"; then
+    kde_use_warnings=yes
+  fi
+
+  # Check whether --enable-profile or --disable-profile was given.
+if test "${enable_profile+set}" = set; then
+  enableval="$enable_profile"
+  kde_use_profiling=$enableval
+else
+  kde_use_profiling="no"
+
+fi;
+
+    CFLAGS=" $CFLAGS"
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  CC=$ac_ct_CC
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CC" && break
+done
+
+  CC=$ac_ct_CC
+fi
+
+fi
+
+
+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&5
+echo "$as_me: error: no acceptable C compiler found in \$PATH
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+  (eval $ac_link_default) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Find the output, starting from the most likely.  This scheme is
+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+# resort.
+
+# Be careful to initialize this variable, since it used to be cached.
+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+ac_cv_exeext=
+# b.out is created by i960 compilers.
+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+	;;
+    conftest.$ac_ext )
+	# This is the source file.
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
+    * )
+	break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+See \`config.log' for more details." >&5
+echo "$as_me: error: C compiler cannot create executables
+See \`config.log' for more details." >&2;}
+   { (exit 77); exit 77; }; }
+fi
+
+ac_exeext=$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6
+
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+  fi
+fi
+echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+rm -f a.out a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+# Check the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6
+
+echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  export ac_cv_exeext
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest$ac_cv_exeext
+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+if test "${ac_cv_objext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+if test "${ac_cv_c_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+GCC=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+CFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cc_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+if test "${ac_cv_prog_cc_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_prog_cc_stdc=no
+ac_save_CC=$CC
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX 10.20 and later	-Ae
+# HP-UX older versions	-Aa -D_HPUX_SOURCE
+# SVR4			-Xc -D__EXTENSIONS__
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_stdc=$ac_arg
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+done
+rm -f conftest.$ac_ext conftest.$ac_objext
+CC=$ac_save_CC
+
+fi
+
+case "x$ac_cv_prog_cc_stdc" in
+  x|xno)
+    echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6 ;;
+  *)
+    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+    CC="$CC $ac_cv_prog_cc_stdc" ;;
+esac
+
+# Some people use a C++ compiler to compile C.  Since we use `exit',
+# in C++ we need to declare it.  In case someone uses the same compiler
+# for both compiling C and C++ we need to have the C++ compiler decide
+# the declaration of exit, since it's the most demanding environment.
+cat >conftest.$ac_ext <<_ACEOF
+#ifndef __cplusplus
+  choke me
+#endif
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CC"   am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+  if test "$GCC" = "yes"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test $kde_use_debug_code = "full"; then
+        CFLAGS="-g3 -fno-inline $CFLAGS"
+      else
+        CFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CFLAGS"
+      fi
+    else
+      CFLAGS="-O2 $CFLAGS"
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CFLAGS="-DNDEBUG $CFLAGS"
+  fi
+
+
+  case "$host" in
+  *-*-sysv4.2uw*) CFLAGS="-D_UNIXWARE $CFLAGS";;
+  *-*-sysv5uw7*) CFLAGS="-D_UNIXWARE7 $CFLAGS";;
+  esac
+
+  if test -z "$LDFLAGS" && test "$kde_use_debug_code" = "no" && test "$GCC" = "yes"; then
+     LDFLAGS=""
+  fi
+
+  CXXFLAGS=" $CXXFLAGS"
+
+  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  echo "$as_me:$LINENO: result: $CXX" >&5
+echo "${ECHO_T}$CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in $CCC g++ c++ gpp aCC CC cxx cc++ cl FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+echo "${ECHO_T}$ac_ct_CXX" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_CXX" && break
+done
+test -n "$ac_ct_CXX" || ac_ct_CXX="g++"
+
+  CXX=$ac_ct_CXX
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:$LINENO:" \
+     "checking for C++ compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+
+echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
+GXX=`test $ac_compiler_gnu = yes && echo yes`
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="-g"
+echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_cxx_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cxx_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_cxx_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+for ac_declaration in \
+   '' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+#include <stdlib.h>
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+continue
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_declaration
+int
+main ()
+{
+exit (42);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+rm -f conftest*
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+depcc="$CXX"  am_compiler_list=
+
+echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    case $depmode in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    none) break ;;
+    esac
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.
+    if depmode=$depmode \
+       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+
+
+if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+
+
+
+  echo "$as_me:$LINENO: checking whether $CC is blacklisted" >&5
+echo $ECHO_N "checking whether $CC is blacklisted... $ECHO_C" >&6
+
+
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __GNUC__
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ == 0
+choke me
+#endif
+#endif
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_bad_compiler=no
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_bad_compiler=yes
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+  echo "$as_me:$LINENO: result: $kde_bad_compiler" >&5
+echo "${ECHO_T}$kde_bad_compiler" >&6
+
+if test "$kde_bad_compiler" = "yes"; then
+  { { echo "$as_me:$LINENO: error:
+
+This particular compiler version is blacklisted because it
+is known to miscompile KDE. Please use a newer version, or
+if that is not yet available, choose an older version.
+
+Please do not report a bug or bother us reporting this
+configure error. We know about it, and we introduced
+it by intention to avoid untraceable bugs or crashes in KDE.
+
+" >&5
+echo "$as_me: error:
+
+This particular compiler version is blacklisted because it
+is known to miscompile KDE. Please use a newer version, or
+if that is not yet available, choose an older version.
+
+Please do not report a bug or bother us reporting this
+configure error. We know about it, and we introduced
+it by intention to avoid untraceable bugs or crashes in KDE.
+
+" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+  if test "$GXX" = "yes" || test "$CXX" = "KCC"; then
+    if test "$kde_use_debug_code" != "no"; then
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K0 -Wall -pedantic -W -Wpointer-arith -Wwrite-strings $CXXFLAGS"
+      else
+        if test "$kde_use_debug_code" = "full"; then
+          CXXFLAGS="-g3 -fno-inline $CXXFLAGS"
+        else
+          CXXFLAGS="-g -O2 -fno-schedule-insns -fno-inline $CXXFLAGS"
+        fi
+      fi
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fno-builtin" >&5
+echo $ECHO_N "checking whether $CXX supports -fno-builtin... $ECHO_C" >&6
+kde_cache=`echo fno-builtin | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fno-builtin"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="-fno-builtin $CXXFLAGS"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Woverloaded-virtual" >&5
+echo $ECHO_N "checking whether $CXX supports -Woverloaded-virtual... $ECHO_C" >&6
+kde_cache=`echo Woverloaded-virtual | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Woverloaded-virtual"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ WOVERLOADED_VIRTUAL="-Woverloaded-virtual"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+ WOVERLOADED_VRITUAL=""
+fi
+
+
+    else
+      if test "$CXX" = "KCC"; then
+        CXXFLAGS="+K3 $CXXFLAGS"
+      else
+        CXXFLAGS="-O2 $CXXFLAGS"
+      fi
+    fi
+  fi
+
+  if test "$kde_use_debug_define" = "yes"; then
+    CXXFLAGS="-DNDEBUG -DNO_DEBUG $CXXFLAGS"
+  fi
+
+  if test "$kde_use_profiling" = "yes"; then
+
+echo "$as_me:$LINENO: checking whether $CXX supports -pg" >&5
+echo $ECHO_N "checking whether $CXX supports -pg... $ECHO_C" >&6
+kde_cache=`echo pg | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -pg"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+
+      CFLAGS="-pg $CFLAGS"
+      CXXFLAGS="-pg $CXXFLAGS"
+
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+  fi
+
+  if test "$kde_use_warnings" = "yes"; then
+      if test "$GCC" = "yes"; then
+        CXXFLAGS="-Wall -W -Wpointer-arith $CXXFLAGS"
+        case $host in
+          *-*-linux-gnu)
+            CFLAGS="-std=iso9899:1990 -W -Wall -Wchar-subscripts -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -D_XOPEN_SOURCE=500 -D_BSD_SOURCE $CFLAGS"
+            CXXFLAGS="-ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts $CXXFLAGS"
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wmissing-format-attribute" >&5
+echo $ECHO_N "checking whether $CXX supports -Wmissing-format-attribute... $ECHO_C" >&6
+kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wmissing-format-attribute"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS -Wformat-security -Wmissing-format-attribute"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CC supports -Wmissing-format-attribute" >&5
+echo $ECHO_N "checking whether $CC supports -Wmissing-format-attribute... $ECHO_C" >&6
+kde_cache=`echo Wmissing-format-attribute | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cc_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -Wmissing-format-attribute"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cc_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CFLAGS="$save_CFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cc_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CFLAGS="$CFLAGS -Wformat-security -Wmissing-format-attribute"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+          ;;
+        esac
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wundef" >&5
+echo $ECHO_N "checking whether $CXX supports -Wundef... $ECHO_C" >&6
+kde_cache=`echo Wundef | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wundef"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="-Wundef $CXXFLAGS"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wno-long-long" >&5
+echo $ECHO_N "checking whether $CXX supports -Wno-long-long... $ECHO_C" >&6
+kde_cache=`echo Wno-long-long | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wno-long-long"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="-Wno-long-long $CXXFLAGS"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wno-non-virtual-dtor" >&5
+echo $ECHO_N "checking whether $CXX supports -Wno-non-virtual-dtor... $ECHO_C" >&6
+kde_cache=`echo Wno-non-virtual-dtor | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS -Wno-non-virtual-dtor"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+     fi
+  fi
+
+  if test "$GXX" = "yes" && test "$kde_use_strict_options" = "yes"; then
+    CXXFLAGS="-Wcast-qual -Wshadow -Wcast-align $CXXFLAGS"
+  fi
+
+  # Check whether --enable-pch or --disable-pch was given.
+if test "${enable_pch+set}" = set; then
+  enableval="$enable_pch"
+   kde_use_pch=$enableval
+else
+   kde_use_pch=no
+fi;
+
+  HAVE_GCC_VISIBILITY=0
+
+
+  if test "$GXX" = "yes"; then
+    gcc_no_reorder_blocks=NO
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fno-reorder-blocks" >&5
+echo $ECHO_N "checking whether $CXX supports -fno-reorder-blocks... $ECHO_C" >&6
+kde_cache=`echo fno-reorder-blocks | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ gcc_no_reorder_blocks=YES
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+    if test $kde_use_debug_code != "no" && \
+       test $kde_use_debug_code != "full" && \
+       test "YES" = "$gcc_no_reorder_blocks" ; then
+          CXXFLAGS="$CXXFLAGS -fno-reorder-blocks"
+          CFLAGS="$CFLAGS -fno-reorder-blocks"
+    fi
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fno-exceptions" >&5
+echo $ECHO_N "checking whether $CXX supports -fno-exceptions... $ECHO_C" >&6
+kde_cache=`echo fno-exceptions | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fno-exceptions"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS -fno-exceptions"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fno-check-new" >&5
+echo $ECHO_N "checking whether $CXX supports -fno-check-new... $ECHO_C" >&6
+kde_cache=`echo fno-check-new | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fno-check-new"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS -fno-check-new"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fno-common" >&5
+echo $ECHO_N "checking whether $CXX supports -fno-common... $ECHO_C" >&6
+kde_cache=`echo fno-common | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fno-common"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS -fno-common"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -fexceptions" >&5
+echo $ECHO_N "checking whether $CXX supports -fexceptions... $ECHO_C" >&6
+kde_cache=`echo fexceptions | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -fexceptions"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ USE_EXCEPTIONS="-fexceptions"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+ USE_EXCEPTIONS=
+fi
+
+    ENABLE_PERMISSIVE_FLAG="-fpermissive"
+
+    if test "$kde_use_pch" = "yes"; then
+        echo "$as_me:$LINENO: checking whether gcc supports precompiling c header files" >&5
+echo $ECHO_N "checking whether gcc supports precompiling c header files... $ECHO_C" >&6
+        echo >conftest.h
+        if $CC -x c-header conftest.h >/dev/null 2>/dev/null; then
+            kde_gcc_supports_pch=yes
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+        else
+            kde_gcc_supports_pch=no
+            echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+        fi
+        if test "$kde_gcc_supports_pch" = "yes"; then
+            echo "$as_me:$LINENO: checking whether gcc supports precompiling c++ header files" >&5
+echo $ECHO_N "checking whether gcc supports precompiling c++ header files... $ECHO_C" >&6
+            if $CXX -x c++-header conftest.h >/dev/null 2>/dev/null; then
+                kde_gcc_supports_pch=yes
+                echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            else
+                kde_gcc_supports_pch=no
+                echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+            fi
+        fi
+        rm -f conftest.h conftest.h.gch
+    fi
+
+
+  echo "$as_me:$LINENO: checking whether system headers can cope with -O2 -fno-inline" >&5
+echo $ECHO_N "checking whether system headers can cope with -O2 -fno-inline... $ECHO_C" >&6
+if test "${kde_cv_opt_noinline_match+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+  kde_cv_opt_noinline_match=irrelevant
+    if echo "$CFLAGS" | grep -e -O2 >/dev/null 2>/dev/null \
+     && echo "$CFLAGS" | grep -e -fno-inline >/dev/null 2>/dev/null ; then
+
+    ac_cflags_save="$CFLAGS"
+    CFLAGS="$CFLAGS -D_USE_GNU"
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+  #include <string.h>
+
+int
+main ()
+{
+  const char *pt, *et;
+  et = __extension__      ({ char __a0, __a1, __a2;       (__builtin_constant_p (  ";,"  ) && ((size_t)(const void *)((   ";,"   )+ 1) - (size_t)(const void *)(   ";,"   ) == 1)        ? ((__a0 =((__const char  *) (  ";,"  ))[0], __a0 == '\0')     ? ((void) (  pt ),((void *)0) )        : ((__a1 = ((__const char *) (  ";,"  ))[1], __a1== '\0')      ? (__extension__ (__builtin_constant_p (  __a0 ) && ( __a0 ) == '\0'   ? (char *) __rawmemchr (   pt  ,   __a0)       : strchr(   pt  ,   __a0 )))   : ((__a2 = ((__const char *) (  ";,"  ))[2], __a2 == '\0')      ? __strpbrk_c2 (  pt , __a0, __a1)      :(((__const char *) (  ";,"  ))[3] == '\0'     ? __strpbrk_c3 (  pt ,__a0, __a1, __a2): strpbrk (  pt ,   ";,"  ))))) : strpbrk (  pt ,  ";,"  )); }) ;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_opt_noinline_match=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_opt_noinline_match=no
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+
+    CFLAGS="$ac_cflags_save"
+  fi
+
+fi
+echo "$as_me:$LINENO: result: $kde_cv_opt_noinline_match" >&5
+echo "${ECHO_T}$kde_cv_opt_noinline_match" >&6
+
+    if test "x$kde_cv_opt_noinline_match" = "xno" ; then
+       CFLAGS="`echo "$CFLAGS" | sed "s/ -fno-inline//"`"
+    fi
+  fi
+
+
+if test "$kde_use_pch" = "yes" && test "$kde_gcc_supports_pch" = "yes"; then
+  unsermake_enable_pch_TRUE=
+  unsermake_enable_pch_FALSE='#'
+else
+  unsermake_enable_pch_TRUE='#'
+  unsermake_enable_pch_FALSE=
+fi
+
+  if test "$CXX" = "KCC"; then
+
+    if test "$kde_use_pch" = "yes"; then
+
+echo "$as_me:$LINENO: checking whether $CXX supports --pch" >&5
+echo $ECHO_N "checking whether $CXX supports --pch... $ECHO_C" >&6
+kde_cache=`echo -pch | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --pch"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --pch"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+                                              fi
+
+echo "$as_me:$LINENO: checking whether $CXX supports --inline_keyword_space_time=6" >&5
+echo $ECHO_N "checking whether $CXX supports --inline_keyword_space_time=6... $ECHO_C" >&6
+kde_cache=`echo -inline_keyword_space_time=6 | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --inline_keyword_space_time=6"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports --inline_auto_space_time=2" >&5
+echo $ECHO_N "checking whether $CXX supports --inline_auto_space_time=2... $ECHO_C" >&6
+kde_cache=`echo -inline_auto_space_time=2 | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --inline_auto_space_time=2"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports --inline_implicit_space_time=2.0" >&5
+echo $ECHO_N "checking whether $CXX supports --inline_implicit_space_time=2.0... $ECHO_C" >&6
+kde_cache=`echo -inline_implicit_space_time=2.0 | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --inline_implicit_space_time=2.0"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports --inline_generated_space_time=2.0" >&5
+echo $ECHO_N "checking whether $CXX supports --inline_generated_space_time=2.0... $ECHO_C" >&6
+kde_cache=`echo -inline_generated_space_time=2.0 | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --inline_generated_space_time=2.0"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports --one_per" >&5
+echo $ECHO_N "checking whether $CXX supports --one_per... $ECHO_C" >&6
+kde_cache=`echo -one_per | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS --one_per"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ CXXFLAGS="$CXXFLAGS --one_per"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+  fi
+
+    USE_RTTI=
+
+
+  case "$host" in
+      *-*-irix*)  test "$GXX" = yes && CXXFLAGS="-D_LANGUAGE_C_PLUS_PLUS -D__LANGUAGE_C_PLUS_PLUS $CXXFLAGS" ;;
+      *-*-sysv4.2uw*) CXXFLAGS="-D_UNIXWARE $CXXFLAGS";;
+      *-*-sysv5uw7*) CXXFLAGS="-D_UNIXWARE7 $CXXFLAGS";;
+      *-*-solaris*)
+        if test "$GXX" = yes; then
+          libstdcpp=`$CXX -print-file-name=libstdc++.so`
+          if test ! -f $libstdcpp; then
+             { { echo "$as_me:$LINENO: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&5
+echo "$as_me: error: You've compiled gcc without --enable-shared. This doesn't work with KDE. Please recompile gcc with --enable-shared to receive a libstdc++.so" >&2;}
+   { (exit 1); exit 1; }; }
+          fi
+        fi
+        ;;
+  esac
+
+  if test "x$kde_use_qt_emb" != "xyes"; then
+  __val=$CXX
+  __forbid=" -fno-rtti -rpath "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5
+echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    CXX=$__new
+  fi
+
+  __val=$CXXFLAGS
+  __forbid=" -fno-rtti -rpath "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5
+echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    CXXFLAGS=$__new
+  fi
+
+else
+  __val=$CXX
+  __forbid=" -rpath "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXX, removing it" >&5
+echo "$as_me: WARNING: found forbidden $i in CXX, removing it" >&2;} ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    CXX=$__new
+  fi
+
+  __val=$CXXFLAGS
+  __forbid=" -rpath "
+  if test -n "$__val"; then
+    __new=""
+    ac_save_IFS=$IFS
+    IFS=" 	"
+    for i in $__val; do
+      case "$__forbid" in
+        *" $i "*) { echo "$as_me:$LINENO: WARNING: found forbidden $i in CXXFLAGS, removing it" >&5
+echo "$as_me: WARNING: found forbidden $i in CXXFLAGS, removing it" >&2;} ;;
+	*) # Careful to not add spaces, where there were none, because otherwise
+	   # libtool gets confused, if we change e.g. CXX
+	   if test -z "$__new" ; then __new=$i ; else __new="$__new $i" ; fi ;;
+      esac
+    done
+    IFS=$ac_save_IFS
+    CXXFLAGS=$__new
+  fi
+
+fi
+
+
+  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
+if test -z "$CXXCPP"; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+      # Double quotes because CXXCPP needs to be expanded
+    for CXXCPP in "$CXX -E" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  break
+fi
+
+    done
+    ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+  CXXCPP=$ac_cv_prog_CXXCPP
+else
+  ac_cv_prog_CXXCPP=$CXXCPP
+fi
+echo "$as_me:$LINENO: result: $CXXCPP" >&5
+echo "${ECHO_T}$CXXCPP" >&6
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether non-existent headers
+  # can be detected and how.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_cxx_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_cxx_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # Broken: success on invalid input.
+continue
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&5
+echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+  if test "$GCC" = yes; then
+     NOOPT_CFLAGS=-O0
+  fi
+
+echo "$as_me:$LINENO: checking whether $CXX supports -O0" >&5
+echo $ECHO_N "checking whether $CXX supports -O0... $ECHO_C" >&6
+kde_cache=`echo O0 | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -O0"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ NOOPT_CXXFLAGS=-O0
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+  # Check whether --enable-coverage or --disable-coverage was given.
+if test "${enable_coverage+set}" = set; then
+  enableval="$enable_coverage"
+
+      if test "$am_cv_CC_dependencies_compiler_type" = "gcc3"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker="-lgcc"
+      elif test "$am_cv_CC_dependencies_compiler_type" = "gcc"; then
+        ac_coverage_compiler="-fprofile-arcs -ftest-coverage"
+        ac_coverage_linker=""
+      else
+        { { echo "$as_me:$LINENO: error: coverage with your compiler is not supported" >&5
+echo "$as_me: error: coverage with your compiler is not supported" >&2;}
+   { (exit 1); exit 1; }; }
+      fi
+      CFLAGS="$CFLAGS $ac_coverage_compiler"
+      CXXFLAGS="$CXXFLAGS $ac_coverage_compiler"
+      LDFLAGS="$LDFLAGS $ac_coverage_linker"
+
+fi;
+
+
+
+
+
+
+  # Check whether --enable-new_ldflags or --disable-new_ldflags was given.
+if test "${enable_new_ldflags+set}" = set; then
+  enableval="$enable_new_ldflags"
+  kde_use_new_ldflags=$enableval
+else
+  kde_use_new_ldflags=no
+fi;
+
+  LDFLAGS_AS_NEEDED=""
+  LDFLAGS_NEW_DTAGS=""
+  if test "x$kde_use_new_ldflags" = "xyes"; then
+       LDFLAGS_NEW_DTAGS=""
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--enable-new-dtags" >&5
+echo $ECHO_N "checking whether $CXX supports -Wl,--enable-new-dtags... $ECHO_C" >&6
+kde_cache=`echo Wl,--enable-new-dtags | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wl,--enable-new-dtags"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--as-needed" >&5
+echo $ECHO_N "checking whether $CXX supports -Wl,--as-needed... $ECHO_C" >&6
+kde_cache=`echo Wl,--as-needed | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wl,--as-needed"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ LDFLAGS_AS_NEEDED="-Wl,--as-needed"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+  fi
+
+
+
+
+  # Check whether --enable-final or --disable-final was given.
+if test "${enable_final+set}" = set; then
+  enableval="$enable_final"
+  kde_use_final=$enableval
+else
+  kde_use_final=no
+fi;
+
+  if test "x$kde_use_final" = "xyes"; then
+      KDE_USE_FINAL_TRUE=""
+      KDE_USE_FINAL_FALSE="#"
+   else
+      KDE_USE_FINAL_TRUE="#"
+      KDE_USE_FINAL_FALSE=""
+  fi
+
+
+
+
+  # Check whether --enable-closure or --disable-closure was given.
+if test "${enable_closure+set}" = set; then
+  enableval="$enable_closure"
+  kde_use_closure=$enableval
+else
+  kde_use_closure=no
+fi;
+
+  KDE_NO_UNDEFINED=""
+  if test "x$kde_use_closure" = "xyes"; then
+       KDE_USE_CLOSURE_TRUE=""
+       KDE_USE_CLOSURE_FALSE="#"
+#       CXXFLAGS="$CXXFLAGS $REPO"
+  else
+       KDE_USE_CLOSURE_TRUE="#"
+       KDE_USE_CLOSURE_FALSE=""
+       KDE_NO_UNDEFINED=""
+       case $host in
+         *-*-linux-gnu)
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--no-undefined" >&5
+echo $ECHO_N "checking whether $CXX supports -Wl,--no-undefined... $ECHO_C" >&6
+kde_cache=`echo Wl,--no-undefined | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wl,--no-undefined"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+
+echo "$as_me:$LINENO: checking whether $CXX supports -Wl,--allow-shlib-undefined" >&5
+echo $ECHO_N "checking whether $CXX supports -Wl,--allow-shlib-undefined... $ECHO_C" >&6
+kde_cache=`echo Wl,--allow-shlib-undefined | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -Wl,--allow-shlib-undefined"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ KDE_NO_UNDEFINED="-Wl,--no-undefined -Wl,--allow-shlib-undefined"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+ KDE_NO_UNDEFINED=""
+fi
+
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+ KDE_NO_UNDEFINED=""
+fi
+
+           ;;
+       esac
+  fi
+
+
+
+
+
+  # Check whether --enable-nmcheck or --disable-nmcheck was given.
+if test "${enable_nmcheck+set}" = set; then
+  enableval="$enable_nmcheck"
+  kde_use_nmcheck=$enableval
+else
+  kde_use_nmcheck=no
+fi;
+
+  if test "$kde_use_nmcheck" = "yes"; then
+      KDE_USE_NMCHECK_TRUE=""
+      KDE_USE_NMCHECK_FALSE="#"
+   else
+      KDE_USE_NMCHECK_TRUE="#"
+      KDE_USE_NMCHECK_FALSE=""
+  fi
+
+
+
+
+
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_shared=yes ;;
+    no) enable_shared=no ;;
+    *)
+      enable_shared=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_shared=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_shared=yes
+fi;
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_static=yes ;;
+    no) enable_static=no ;;
+    *)
+     enable_static=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_static=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_static=no
+fi;
+
+
+
+
+    # Check whether --enable-libsuffix or --disable-libsuffix was given.
+if test "${enable_libsuffix+set}" = set; then
+  enableval="$enable_libsuffix"
+  kdelibsuff=$enableval
+else
+  kdelibsuff="auto"
+fi;
+
+    if test "$kdelibsuff" = "auto"; then
+
+cat > conftest.c << EOF
+#include <stdio.h>
+int main() {
+ return 0;
+}
+EOF
+        kdelibsuff=`$CC conftest.c -o conftest.out; ldd conftest.out |sed -ne '/libc.so/{
+    s,.*/lib\([^\/]*\)/.*,\1,
+    p
+}'`
+	rm -rf conftest.*
+    fi
+
+    if test "$kdelibsuff" = "no" || test "$kdelibsuff" = "none"; then
+       kdelibsuff=
+    fi
+    if test -z "$kdelibsuff"; then
+        echo "$as_me:$LINENO: result: not using lib directory suffix" >&5
+echo "${ECHO_T}not using lib directory suffix" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define KDELIBSUFF ""
+_ACEOF
+
+    else
+        if test "$libdir" = '${exec_prefix}/lib'; then
+            libdir="$libdir${kdelibsuff}"
+            libdir="$libdir"
+          fi
+
+cat >>confdefs.h <<_ACEOF
+#define KDELIBSUFF "${kdelibsuff}"
+_ACEOF
+
+        echo "$as_me:$LINENO: result: using lib directory suffix $kdelibsuff" >&5
+echo "${ECHO_T}using lib directory suffix $kdelibsuff" >&6
+    fi
+
+# Check whether --enable-fast-install or --disable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then
+  enableval="$enable_fast_install"
+  p=${PACKAGE-default}
+    case $enableval in
+    yes) enable_fast_install=yes ;;
+    no) enable_fast_install=no ;;
+    *)
+      enable_fast_install=no
+      # Look at the argument we got.  We use all the common list separators.
+      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+      for pkg in $enableval; do
+	IFS="$lt_save_ifs"
+	if test "X$pkg" = "X$p"; then
+	  enable_fast_install=yes
+	fi
+      done
+      IFS="$lt_save_ifs"
+      ;;
+    esac
+else
+  enable_fast_install=yes
+fi;
+
+echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6
+if test "${lt_cv_path_SED+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for lt_ac_prog in sed gsed; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+      fi
+    done
+  done
+done
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+  test ! -f $lt_ac_sed && break
+  cat /dev/null > conftest.in
+  lt_ac_count=0
+  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+  # Check for GNU sed and select it if it is found.
+  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+    lt_cv_path_SED=$lt_ac_sed
+    break
+  fi
+  while true; do
+    cat conftest.in conftest.in >conftest.tmp
+    mv conftest.tmp conftest.in
+    cp conftest.in conftest.nl
+    echo >>conftest.nl
+    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+    cmp -s conftest.out conftest.nl || break
+    # 10000 chars as input seems more than enough
+    test $lt_ac_count -gt 10 && break
+    lt_ac_count=`expr $lt_ac_count + 1`
+    if test $lt_ac_count -gt $lt_ac_max; then
+      lt_ac_max=$lt_ac_count
+      lt_cv_path_SED=$lt_ac_sed
+    fi
+  done
+done
+
+fi
+
+SED=$lt_cv_path_SED
+echo "$as_me:$LINENO: result: $SED" >&5
+echo "${ECHO_T}$SED" >&6
+
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+    then ac_cv_prog_egrep='grep -E'
+    else ac_cv_prog_egrep='egrep'
+    fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6
+if test "${lt_cv_ld_reload_flag+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_ld_reload_flag='-r'
+fi
+echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+
+echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6
+if test "${lt_cv_path_NM+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$NM"; then
+  # Let the user override the test.
+  lt_cv_path_NM="$NM"
+else
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
+    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+      # Check to see if the nm accepts a BSD-compat flag.
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+      #   nm: unknown option "B" ignored
+      # Tru64's nm complains that /dev/null is an invalid object file
+      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+      */dev/null* | *'Invalid file or object type'*)
+	lt_cv_path_NM="$tmp_nm -B"
+	break
+        ;;
+      *)
+	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+	*/dev/null*)
+	  lt_cv_path_NM="$tmp_nm -p"
+	  break
+	  ;;
+	*)
+	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+	  continue # so that we can try to find one that supports BSD flags
+	  ;;
+	esac
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
+fi
+fi
+echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+echo "${ECHO_T}$lt_cv_path_NM" >&6
+NM="$lt_cv_path_NM"
+
+echo "$as_me:$LINENO: checking whether ln -s works" >&5
+echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+echo "${ECHO_T}no, using $LN_S" >&6
+fi
+
+echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
+echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6
+if test "${lt_cv_deplibs_check_method+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix4* | aix5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+mingw* | pw32*)
+  # win32_libid is a shell function defined in ltmain.sh
+  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+  lt_cv_file_magic_cmd='win32_libid'
+  ;;
+
+darwin* | rhapsody*)
+  # this will be overwritten by pass_all, but leave it in just in case
+  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
+  lt_cv_file_magic_cmd='/usr/bin/file -L'
+  case "$host_os" in
+  rhapsody* | darwin1.[012])
+    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
+    ;;
+  *) # Darwin 1.3 on
+    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
+    ;;
+  esac
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+freebsd* | kfreebsd*-gnu)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    case $host_cpu in
+    i*86 )
+      # Not sure whether the presence of OpenBSD here was a mistake.
+      # Let's accept both of them until this is cleared up.
+      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library'
+      lt_cv_file_magic_cmd=/usr/bin/file
+      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+      ;;
+    esac
+  else
+    lt_cv_deplibs_check_method=pass_all
+  fi
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+hpux10.20* | hpux11*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  case "$host_cpu" in
+  ia64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+    ;;
+  hppa*64*)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'
+    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+    ;;
+  *)
+    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library'
+    lt_cv_file_magic_test_file=/usr/lib/libc.sl
+    ;;
+  esac
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+  irix5* | nonstopux*)
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case $LD in
+    *-32|*"-32 ") libmagic=32-bit;;
+    *-n32|*"-n32 ") libmagic=N32;;
+    *-64|*"-64 ") libmagic=64-bit;;
+    *) libmagic=never-match;;
+    esac
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+    ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  case $host_cpu in
+  alpha* | hppa* | i*86 | ia64* | m68* | mips* | powerpc* | sparc* | s390* | sh* | x86_64* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  # the debian people say, arm and glibc 2.3.1 works for them with pass_all
+  arm* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  ;;
+
+netbsd*)
+  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+  else
+    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+  fi
+  ;;
+
+newos6*)
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=/usr/lib/libnls.so
+  ;;
+
+nto-qnx*)
+  lt_cv_deplibs_check_method=unknown
+  ;;
+
+openbsd*)
+  lt_cv_file_magic_cmd=/usr/bin/file
+  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object'
+  else
+    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
+  fi
+  ;;
+
+osf3* | osf4* | osf5*)
+  # this will be overridden with pass_all, but let us keep it just in case
+  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=/lib/libc.so
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case $host_vendor in
+  motorola)
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  sequent)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+    ;;
+  sni)
+    lt_cv_file_magic_cmd='/bin/file'
+    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+    lt_cv_file_magic_test_file=/lib/libc.so
+    ;;
+  siemens)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7* | sysv4*uw2*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+esac
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *ELF-32*)
+      HPUX_IA64_MODE="32"
+      ;;
+    *ELF-64*)
+      HPUX_IA64_MODE="64"
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+*-*-irix6*)
+  # Find out which ABI we are using.
+  echo '#line 7680 "configure"' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   if test "$lt_cv_prog_gnu_ld" = yes; then
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -melf32bsmip"
+      ;;
+    *N32*)
+      LD="${LD-ld} -melf32bmipn32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -melf64bmip"
+      ;;
+    esac
+   else
+    case `/usr/bin/file conftest.$ac_objext` in
+    *32-bit*)
+      LD="${LD-ld} -32"
+      ;;
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
+      ;;
+    esac
+   fi
+  fi
+  rm -rf conftest*
+  ;;
+
+x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+  # Find out which ABI we are using.
+  echo 'int i;' > conftest.$ac_ext
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LINUX_64_MODE="32"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_i386"
+          ;;
+        ppc64-*linux*)
+          LD="${LD-ld} -m elf32ppclinux"
+          ;;
+        s390x-*linux*)
+          LD="${LD-ld} -m elf_s390"
+          ;;
+        sparc64-*linux*)
+          LD="${LD-ld} -m elf32_sparc"
+          ;;
+      esac
+      ;;
+    *64-bit*)
+      LINUX_64_MODE="64"
+      case $host in
+        x86_64-*linux*)
+          LD="${LD-ld} -m elf_x86_64"
+          ;;
+        ppc*-*linux*|powerpc*-*linux*)
+          LD="${LD-ld} -m elf64ppc"
+          ;;
+        s390*-*linux*)
+          LD="${LD-ld} -m elf64_s390"
+          ;;
+        sparc*-*linux*)
+          LD="${LD-ld} -m elf64_sparc"
+          ;;
+      esac
+      ;;
+    esac
+  fi
+  rm -rf conftest*
+  ;;
+
+*-*-sco3.2v5*)
+  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+  SAVE_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS -belf"
+  echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6
+if test "${lt_cv_cc_needs_belf+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+     cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  lt_cv_cc_needs_belf=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+lt_cv_cc_needs_belf=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+     ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6
+  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+    CFLAGS="$SAVE_CFLAGS"
+  fi
+  ;;
+
+esac
+
+need_locks="$enable_libtool_lock"
+
+
+
+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+if test "${ac_cv_header_stdc+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_header_stdc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_header_stdc=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then
+  :
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then
+  :
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <ctype.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      exit(2);
+  exit (0);
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+ac_cv_header_stdc=no
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6
+if test $ac_cv_header_stdc = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define STDC_HEADERS 1
+_ACEOF
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+
+
+
+
+
+
+
+
+
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Header=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+for ac_header in dlfcn.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$F77"; then
+  ac_cv_prog_F77="$F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+F77=$ac_cv_prog_F77
+if test -n "$F77"; then
+  echo "$as_me:$LINENO: result: $F77" >&5
+echo "${ECHO_T}$F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    test -n "$F77" && break
+  done
+fi
+if test -z "$F77"; then
+  ac_ct_F77=$F77
+  for ac_prog in g77 f77 xlf frt pgf77 fort77 fl32 af77 f90 xlf90 pgf90 epcf90 f95 fort xlf95 ifc efc pgf95 lf95 gfortran
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_F77"; then
+  ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_F77="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+ac_ct_F77=$ac_cv_prog_ac_ct_F77
+if test -n "$ac_ct_F77"; then
+  echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+echo "${ECHO_T}$ac_ct_F77" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$ac_ct_F77" && break
+done
+
+  F77=$ac_ct_F77
+fi
+
+
+# Provide some information about the compiler.
+echo "$as_me:8325:" \
+     "checking for Fortran 77 compiler version" >&5
+ac_compiler=`set X $ac_compile; echo $2`
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+  (eval $ac_compiler --version </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+  (eval $ac_compiler -v </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+  (eval $ac_compiler -V </dev/null >&5) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+rm -f a.out
+
+# If we don't use `.F' as extension, the preprocessor is not run on the
+# input file.  (Note that this only needs to work for GNU compilers.)
+ac_save_ext=$ac_ext
+ac_ext=F
+echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6
+if test "${ac_cv_f77_compiler_gnu+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+      program main
+#ifndef __GNUC__
+       choke me
+#endif
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_compiler_gnu=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_compiler_gnu=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_f77_compiler_gnu=$ac_compiler_gnu
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6
+ac_ext=$ac_save_ext
+ac_test_FFLAGS=${FFLAGS+set}
+ac_save_FFLAGS=$FFLAGS
+FFLAGS=
+echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6
+if test "${ac_cv_prog_f77_g+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  FFLAGS=-g
+cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_f77_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_prog_f77_g=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+echo "${ECHO_T}$ac_cv_prog_f77_g" >&6
+if test "$ac_test_FFLAGS" = set; then
+  FFLAGS=$ac_save_FFLAGS
+elif test $ac_cv_prog_f77_g = yes; then
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-g -O2"
+  else
+    FFLAGS="-g"
+  fi
+else
+  if test "x$ac_cv_f77_compiler_gnu" = xyes; then
+    FFLAGS="-O2"
+  else
+    FFLAGS=
+  fi
+fi
+
+G77=`test $ac_compiler_gnu = yes && echo yes`
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+
+# find the maximum length of command line arguments
+echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+    i=0
+  testring="ABCD"
+
+  case $build_os in
+  msdosdjgpp*)
+    # On DJGPP, this test can blow up pretty badly due to problems in libc
+    # (any single argument exceeding 2000 bytes causes a buffer overrun
+    # during glob expansion).  Even if it were fixed, the result of this
+    # check would be larger than it should be.
+    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
+    ;;
+
+  gnu*)
+    # Under GNU Hurd, this test is not required because there is
+    # no limit to the length of command line arguments.
+    # Libtool will interpret -1 as no limit whatsoever
+    lt_cv_sys_max_cmd_len=-1;
+    ;;
+
+  cygwin* | mingw*)
+    # On Win9x/ME, this test blows up -- it succeeds, but takes
+    # about 5 minutes as the teststring grows exponentially.
+    # Worse, since 9x/ME are not pre-emptively multitasking,
+    # you end up with a "frozen" computer, even though with patience
+    # the test eventually succeeds (with a max line length of 256k).
+    # Instead, let's just punt: use the minimum linelength reported by
+    # all of the supported platforms: 8192 (on NT/2K/XP).
+    lt_cv_sys_max_cmd_len=8192;
+    ;;
+
+ *)
+    # If test is not a shell built-in, we'll probably end up computing a
+    # maximum length that is only half of the actual maximum length, but
+    # we can't tell.
+    while (test "X"`$CONFIG_SHELL $0 --fallback-echo "X$testring" 2>/dev/null` \
+	       = "XX$testring") >/dev/null 2>&1 &&
+	    new_result=`expr "X$testring" : ".*" 2>&1` &&
+	    lt_cv_sys_max_cmd_len=$new_result &&
+	    test $i != 17 # 1/2 MB should be enough
+    do
+      i=`expr $i + 1`
+      testring=$testring$testring
+    done
+    testring=
+    # Add a significant safety factor because C++ compilers can tack on massive
+    # amounts of additional arguments before passing them to the linker.
+    # It appears as though 1/2 is a usable value.
+    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+    ;;
+  esac
+
+fi
+
+if test -n $lt_cv_sys_max_cmd_len ; then
+  echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6
+else
+  echo "$as_me:$LINENO: result: none" >&5
+echo "${ECHO_T}none" >&6
+fi
+
+
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Transform the above into a raw symbol and a C symbol.
+symxfrm='\1 \2\3 \3'
+
+# Transform an extracted symbol line into a proper C declaration
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+  symcode='[BCDT]'
+  ;;
+cygwin* | mingw* | pw32*)
+  symcode='[ABCDGISTW]'
+  ;;
+hpux*) # Its linker distinguishes data from code symbols
+  if test "$host_cpu" = ia64; then
+    symcode='[ABCDEGRST]'
+  fi
+  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
+  ;;
+irix* | nonstopux*)
+  symcode='[BCDEGRST]'
+  ;;
+osf*)
+  symcode='[BCDEGQRST]'
+  ;;
+solaris* | sysv5*)
+  symcode='[BDT]'
+  ;;
+sysv4)
+  symcode='[DFNSTU]'
+  ;;
+esac
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+  ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+  symcode='[ABCDGISTW]' ;;
+esac
+
+# Try without a prefix undercore, then with it.
+for ac_symprfx in "" "_"; do
+
+  # Write the raw and C identifiers.
+  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ 	]\($symcode$symcode*\)[ 	][ 	]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
+
+  # Check to see that the pipe works correctly.
+  pipe_works=no
+
+  rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+EOF
+
+  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+    # Now try to grab the symbols.
+    nlist=conftest.nm
+    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+  (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s "$nlist"; then
+      # Try sorting and uniquifying the output.
+      if sort "$nlist" | uniq > "$nlist"T; then
+	mv -f "$nlist"T "$nlist"
+      else
+	rm -f "$nlist"T
+      fi
+
+      # Make sure that we snagged all the symbols we need.
+      if grep ' nm_test_var$' "$nlist" >/dev/null; then
+	if grep ' nm_test_func$' "$nlist" >/dev/null; then
+	  cat <<EOF > conftest.$ac_ext
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+EOF
+	  # Now generate the symbol file.
+	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
+
+	  cat <<EOF >> conftest.$ac_ext
+#if defined (__STDC__) && __STDC__
+# define lt_ptr_t void *
+#else
+# define lt_ptr_t char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+const struct {
+  const char *name;
+  lt_ptr_t address;
+}
+lt_preloaded_symbols[] =
+{
+EOF
+	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
+	  cat <<\EOF >> conftest.$ac_ext
+  {0, (lt_ptr_t) 0}
+};
+
+#ifdef __cplusplus
+}
+#endif
+EOF
+	  # Now try linking the two files.
+	  mv conftest.$ac_objext conftstm.$ac_objext
+	  lt_save_LIBS="$LIBS"
+	  lt_save_CFLAGS="$CFLAGS"
+	  LIBS="conftstm.$ac_objext"
+	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+	    pipe_works=yes
+	  fi
+	  LIBS="$lt_save_LIBS"
+	  CFLAGS="$lt_save_CFLAGS"
+	else
+	  echo "cannot find nm_test_func in $nlist" >&5
+	fi
+      else
+	echo "cannot find nm_test_var in $nlist" >&5
+      fi
+    else
+      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+    fi
+  else
+    echo "$progname: failed program was:" >&5
+    cat conftest.$ac_ext >&5
+  fi
+  rm -f conftest* conftst*
+
+  # Do not use the global_symbol_pipe unless it works.
+  if test "$pipe_works" = yes; then
+    break
+  else
+    lt_cv_sys_global_symbol_pipe=
+  fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+  lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+  echo "$as_me:$LINENO: result: failed" >&5
+echo "${ECHO_T}failed" >&6
+else
+  echo "$as_me:$LINENO: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+fi
+
+echo "$as_me:$LINENO: checking for objdir" >&5
+echo $ECHO_N "checking for objdir... $ECHO_C" >&6
+if test "${lt_cv_objdir+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+  lt_cv_objdir=.libs
+else
+  # MS-DOS does not allow filenames that begin with a dot.
+  lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+echo "${ECHO_T}$lt_cv_objdir" >&6
+objdir=$lt_cv_objdir
+
+
+
+
+
+case $host_os in
+aix3*)
+  # AIX sometimes has problems with the GCC collect2 program.  For some
+  # reason, if we set the COLLECT_NAMES environment variable, the problems
+  # vanish in a puff of smoke.
+  if test "X${COLLECT_NAMES+set}" != Xset; then
+    COLLECT_NAMES=
+    export COLLECT_NAMES
+  fi
+  ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='sed -e s/^X//'
+sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+# Constants:
+rm="rm -f"
+
+# Global variables:
+default_ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+ltmain="$ac_aux_dir/ltmain.sh"
+ofile="$default_ofile"
+with_gnu_ld="$lt_cv_prog_gnu_ld"
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  echo "$as_me:$LINENO: result: $AR" >&5
+echo "${ECHO_T}$AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false"
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+echo "${ECHO_T}$ac_ct_AR" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  AR=$ac_ct_AR
+else
+  AR="$ac_cv_prog_AR"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  echo "$as_me:$LINENO: result: $RANLIB" >&5
+echo "${ECHO_T}$RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+echo "${ECHO_T}$ac_ct_RANLIB" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  RANLIB=$ac_ct_RANLIB
+else
+  RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  STRIP=$ac_ct_STRIP
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
+
+# Set sane defaults for various variables
+test -z "$AR" && AR=ar
+test -z "$AR_FLAGS" && AR_FLAGS=cru
+test -z "$AS" && AS=as
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$LD" && LD=ld
+test -z "$LN_S" && LN_S="ln -s"
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+test -z "$NM" && NM=nm
+test -z "$SED" && SED=sed
+test -z "$OBJDUMP" && OBJDUMP=objdump
+test -z "$RANLIB" && RANLIB=:
+test -z "$STRIP" && STRIP=:
+test -z "$ac_objext" && ac_objext=o
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+  case $host_os in
+  openbsd*)
+    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
+    ;;
+  *)
+    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
+    ;;
+  esac
+  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
+fi
+
+# Only perform the check for file, if the check method requires it
+case $deplibs_check_method in
+file_magic*)
+  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+    echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/${ac_tool_prefix}file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+  if test -n "$ac_tool_prefix"; then
+    echo "$as_me:$LINENO: checking for file" >&5
+echo $ECHO_N "checking for file... $ECHO_C" >&6
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $MAGIC_CMD in
+[\\/*] |  ?:[\\/]*)
+  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+  ;;
+*)
+  lt_save_MAGIC_CMD="$MAGIC_CMD"
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+  for ac_dir in $ac_dummy; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/file; then
+      lt_cv_path_MAGIC_CMD="$ac_dir/file"
+      if test -n "$file_magic_test_file"; then
+	case $deplibs_check_method in
+	"file_magic "*)
+	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+	    $EGREP "$file_magic_regex" > /dev/null; then
+	    :
+	  else
+	    cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
+
+EOF
+	  fi ;;
+	esac
+      fi
+      break
+    fi
+  done
+  IFS="$lt_save_ifs"
+  MAGIC_CMD="$lt_save_MAGIC_CMD"
+  ;;
+esac
+fi
+
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+  echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+echo "${ECHO_T}$MAGIC_CMD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  else
+    MAGIC_CMD=:
+  fi
+fi
+
+  fi
+  ;;
+esac
+
+enable_dlopen=yes
+enable_win32_dll=no
+
+# Check whether --enable-libtool-lock or --disable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then
+  enableval="$enable_libtool_lock"
+
+fi;
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+
+
+# Check whether --with-pic or --without-pic was given.
+if test "${with_pic+set}" = set; then
+  withval="$with_pic"
+  pic_mode="$withval"
+else
+  pic_mode=default
+fi;
+test -z "$pic_mode" && pic_mode=default
+
+# Use C for the default configuration in the libtool script
+tagname=
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}\n'
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+#
+# Check for any special shared library compilation flags.
+#
+lt_prog_cc_shlib=
+if test "$GCC" = no; then
+  case $host_os in
+  sco3.2v5*)
+    lt_prog_cc_shlib='-belf'
+    ;;
+  esac
+fi
+if test -n "$lt_prog_cc_shlib"; then
+  { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&5
+echo "$as_me: WARNING: \`$CC' requires \`$lt_prog_cc_shlib' to build shared libraries" >&2;}
+  if echo "$old_CC $old_CFLAGS " | grep "[ 	]$lt_prog_cc_shlib[ 	]" >/dev/null; then :
+  else
+    { echo "$as_me:$LINENO: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5
+echo "$as_me: WARNING: add \`$lt_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;}
+    lt_cv_prog_cc_can_build_shared=no
+  fi
+fi
+
+
+#
+# Check to make sure the static flag actually works.
+#
+echo "$as_me:$LINENO: checking if $compiler static flag $lt_prog_compiler_static works" >&5
+echo $ECHO_N "checking if $compiler static flag $lt_prog_compiler_static works... $ECHO_C" >&6
+if test "${lt_prog_compiler_static_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_static_works=no
+   save_LDFLAGS="$LDFLAGS"
+   LDFLAGS="$LDFLAGS $lt_prog_compiler_static"
+   printf "$lt_simple_link_test_code" > conftest.$ac_ext
+   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test -s conftest.err; then
+       # Append any errors to the config.log.
+       cat conftest.err 1>&5
+     else
+       lt_prog_compiler_static_works=yes
+     fi
+   fi
+   $rm conftest*
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_static_works" >&6
+
+if test x"$lt_prog_compiler_static_works" = xyes; then
+    :
+else
+    lt_prog_compiler_static=
+fi
+
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+
+lt_prog_compiler_no_builtin_flag=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:9357: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:9361: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl='-Wl,'
+    lt_prog_compiler_static='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static='-Bstatic'
+      else
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	lt_prog_compiler_wl='-Wl,'
+	lt_prog_compiler_pic='-KPIC'
+	lt_prog_compiler_static='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic='-Kpic'
+      lt_prog_compiler_static='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl='-Qoption ld '
+      lt_prog_compiler_pic='-PIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-KPIC'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic='-Kconform_pic'
+	lt_prog_compiler_static='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic='-pic'
+      lt_prog_compiler_static='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:9590: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:9594: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_prog_compiler_pic_works=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6
+
+if test x"$lt_prog_compiler_pic_works" = xyes; then
+    case $lt_prog_compiler_pic in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+     esac
+else
+    lt_prog_compiler_pic=
+     lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic=
+    ;;
+  *)
+    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:9657: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:9661: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       lt_cv_prog_compiler_c_o=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag=
+  enable_shared_with_static_runtimes=no
+  archive_cmds=
+  archive_expsym_cmds=
+  old_archive_From_new_cmds=
+  old_archive_from_expsyms_cmds=
+  export_dynamic_flag_spec=
+  whole_archive_flag_spec=
+  thread_safe_flag_spec=
+  hardcode_libdir_flag_spec=
+  hardcode_libdir_flag_spec_ld=
+  hardcode_libdir_separator=
+  hardcode_direct=no
+  hardcode_minus_L=no
+  hardcode_shlibpath_var=unsupported
+  link_all_deplibs=unknown
+  hardcode_automatic=no
+  module_cmds=
+  module_expsym_cmds=
+  always_export_symbols=no
+  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      allow_undefined_flag=no
+      always_export_symbols=no
+      enable_shared_with_static_runtimes=yes
+      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs" = yes; then
+      runpath_var=LD_RUN_PATH
+      hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir'
+      export_dynamic_flag_spec='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag=unsupported
+      always_export_symbols=yes
+      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds=''
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      link_all_deplibs=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.012|aix4.012.*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L=yes
+  	  hardcode_libdir_flag_spec='-L$libdir'
+  	  hardcode_libdir_separator=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      always_export_symbols=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag="-z nodefs"
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag=' ${wl}-bernotok'
+	  allow_undefined_flag=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec=' '
+	  archive_cmds_need_lc=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+
+    bsdi4*)
+      export_dynamic_flag_spec=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      allow_undefined_flag=no
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      archive_cmds_need_lc=no
+      case "$host_os" in
+      rhapsody* | darwin1.[012])
+	allow_undefined_flag='-Wl,-undefined -Wl,suppress'
+	;;
+      *) # Darwin 1.3 on
+	if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	  allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	else
+	  case ${MACOSX_DEPLOYMENT_TARGET} in
+	    10.012)
+	      allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	      ;;
+	    10.*)
+	      allow_undefined_flag='-Wl,-undefined -Wl,dynamic_lookup'
+	      ;;
+	  esac
+	fi
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  archive_cmds='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    	else
+        archive_cmds='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+      fi
+      module_cmds='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      hardcode_direct=no
+      hardcode_automatic=yes
+      hardcode_shlibpath_var=unsupported
+      whole_archive_flag_spec='-all_load $convenience'
+      link_all_deplibs=yes
+    else
+      ld_shlibs=no
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      archive_cmds='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L=yes
+      export_dynamic_flag_spec='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld='+b $libdir'
+	  hardcode_libdir_separator=:
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec='-L$libdir'
+	  hardcode_direct=no
+	  hardcode_shlibpath_var=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator=:
+	  hardcode_direct=yes
+	  export_dynamic_flag_spec='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      link_all_deplibs=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    newsos6)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_shlibpath_var=no
+      ;;
+
+    openbsd*)
+      hardcode_direct=yes
+      hardcode_shlibpath_var=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	   hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      allow_undefined_flag=unsupported
+      archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+      old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag=' -expect_unresolved \*'
+	archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag=' -z text'
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+      else
+	archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_shlibpath_var=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
+      esac
+      link_all_deplibs=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds='$CC -r -o $output$reload_objs'
+	  hardcode_direct=no
+        ;;
+	motorola)
+	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var=no
+      export_dynamic_flag_spec='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      hardcode_shlibpath_var=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec=
+      hardcode_shlibpath_var=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_shlibpath_var=no
+      ;;
+
+    *)
+      ld_shlibs=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+echo "${ECHO_T}$ld_shlibs" >&6
+test "$ld_shlibs" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag
+        allow_undefined_flag=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc=no
+        else
+	  archive_cmds_need_lc=yes
+        fi
+        allow_undefined_flag=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+echo "${ECHO_T}$archive_cmds_need_lc" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.01* | freebsdelf3.01*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" || \
+   test -n "$runpath_var " || \
+   test "X$hardcode_automatic"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no &&
+     test "$hardcode_minus_L" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action" >&5
+echo "${ECHO_T}$hardcode_action" >&6
+
+if test "$hardcode_action" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 11780 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 11878 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# Report which librarie types wil actually be built
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+
+aix4*)
+  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+    test "$enable_shared" = yes && enable_static=no
+  fi
+  ;;
+  darwin* | rhapsody*)
+  if test "$GCC" = yes; then
+    archive_cmds_need_lc=no
+    case "$host_os" in
+    rhapsody* | darwin1.[012])
+      allow_undefined_flag='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.012)
+	    allow_undefined_flag='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    allow_undefined_flag='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    output_verbose_link_cmd='echo'
+    archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    module_cmds='$CC $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    hardcode_direct=no
+    hardcode_automatic=yes
+    hardcode_shlibpath_var=unsupported
+    whole_archive_flag_spec='-all_load $convenience'
+    link_all_deplibs=yes
+  else
+    ld_shlibs=no
+  fi
+    ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler \
+    CC \
+    LD \
+    lt_prog_compiler_wl \
+    lt_prog_compiler_pic \
+    lt_prog_compiler_static \
+    lt_prog_compiler_no_builtin_flag \
+    export_dynamic_flag_spec \
+    thread_safe_flag_spec \
+    whole_archive_flag_spec \
+    enable_shared_with_static_runtimes \
+    old_archive_cmds \
+    old_archive_from_new_cmds \
+    predep_objects \
+    postdep_objects \
+    predeps \
+    postdeps \
+    compiler_lib_search_path \
+    archive_cmds \
+    archive_expsym_cmds \
+    postinstall_cmds \
+    postuninstall_cmds \
+    old_archive_from_expsyms_cmds \
+    allow_undefined_flag \
+    no_undefined_flag \
+    export_symbols_cmds \
+    hardcode_libdir_flag_spec \
+    hardcode_libdir_flag_spec_ld \
+    hardcode_libdir_separator \
+    hardcode_automatic \
+    module_cmds \
+    module_expsym_cmds \
+    lt_cv_prog_compiler_c_o \
+    exclude_expsyms \
+    include_expsyms; do
+
+    case $var in
+    old_archive_cmds | \
+    old_archive_from_new_cmds | \
+    archive_cmds | \
+    archive_expsym_cmds | \
+    module_cmds | \
+    module_expsym_cmds | \
+    old_archive_from_expsyms_cmds | \
+    export_symbols_cmds | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="${ofile}T"
+  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
+  $rm -f "$cfgfile"
+  { echo "$as_me:$LINENO: creating $ofile" >&5
+echo "$as_me: creating $ofile" >&6;}
+
+  cat <<__EOF__ >> "$cfgfile"
+#! $SHELL
+
+# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
+# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Free Software Foundation, Inc.
+#
+# This file is part of GNU Libtool:
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="$SED -e s/^X//"
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
+
+# The names of the tagged configurations supported by this script.
+available_tags=
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# ### END LIBTOOL CONFIG
+
+__EOF__
+
+
+  case $host_os in
+  aix3*)
+    cat <<\EOF >> "$cfgfile"
+
+# AIX sometimes has problems with the GCC collect2 program.  For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test "X${COLLECT_NAMES+set}" != Xset; then
+  COLLECT_NAMES=
+  export COLLECT_NAMES
+fi
+EOF
+    ;;
+  esac
+
+  # We use sed instead of cat because bash on DJGPP gets confused if
+  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
+  # text mode, it properly converts lines to CR/LF.  This bash problem
+  # is reportedly fixed, but why not run on old versions too?
+  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
+
+  mv -f "$cfgfile" "$ofile" || \
+    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+  chmod +x "$ofile"
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+
+# Check whether --with-tags or --without-tags was given.
+if test "${with_tags+set}" = set; then
+  withval="$with_tags"
+  tagnames="$withval"
+fi;
+
+if test -f "$ltmain" && test -n "$tagnames"; then
+  if test ! -f "${ofile}"; then
+    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+  fi
+
+  if test -z "$LTCC"; then
+    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
+    if test -z "$LTCC"; then
+      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+    else
+      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+    fi
+  fi
+
+  # Extract list of available tagged configurations in $ofile.
+  # Note that this assumes the entire list is on one line.
+  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
+
+  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+  for tagname in $tagnames; do
+    IFS="$lt_save_ifs"
+    # Check whether tagname contains only valid characters
+    case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
+    "") ;;
+    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+echo "$as_me: error: invalid tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+    esac
+
+    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
+    then
+      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    # Update the list of available tags.
+    if test -n "$tagname"; then
+      echo appending configuration tag \"$tagname\" to $ofile
+
+      case $tagname in
+      CXX)
+	if test -n "$CXX" && test "X$CXX" != "Xno"; then
+	  ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_automatic_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+# Source file extension for C++ test sources.
+ac_ext=cc
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(int, char *) { return(0); }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_LD=$LD
+lt_save_GCC=$GCC
+GCC=$GXX
+lt_save_with_gnu_ld=$with_gnu_ld
+lt_save_path_LD=$lt_cv_path_LD
+if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+else
+  unset lt_cv_prog_gnu_ld
+fi
+if test -n "${lt_cv_path_LDCXX+set}"; then
+  lt_cv_path_LD=$lt_cv_path_LDCXX
+else
+  unset lt_cv_path_LD
+fi
+test -z "${LDCXX+set}" || LD=$LDCXX
+CC=${CXX-"c++"}
+compiler=$CC
+compiler_CXX=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+# We don't want -fno-exception wen compiling C++ code, so set the
+# no_builtin_flag separately
+if test "$GXX" = yes; then
+  lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+else
+  lt_prog_compiler_no_builtin_flag_CXX=
+fi
+
+if test "$GXX" = yes; then
+  # Set up default GNU C++ configuration
+
+
+# Check whether --with-gnu-ld or --without-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then
+  withval="$with_gnu_ld"
+  test "$withval" = no || with_gnu_ld=yes
+else
+  with_gnu_ld=no
+fi;
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | ?:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the pathname of ld
+      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  echo "$as_me:$LINENO: checking for GNU ld" >&5
+echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6
+else
+  echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6
+fi
+if test "${lt_cv_path_LD+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -z "$LD"; then
+  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+  for ac_dir in $PATH; do
+    IFS="$lt_save_ifs"
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      lt_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+      *GNU* | *'with BFD'*)
+	test "$with_gnu_ld" != no && break
+	;;
+      *)
+	test "$with_gnu_ld" != yes && break
+	;;
+      esac
+    fi
+  done
+  IFS="$lt_save_ifs"
+else
+  lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+  echo "$as_me:$LINENO: result: $LD" >&5
+echo "${ECHO_T}$LD" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6
+if test "${lt_cv_prog_gnu_ld+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  lt_cv_prog_gnu_ld=yes
+  ;;
+*)
+  lt_cv_prog_gnu_ld=no
+  ;;
+esac
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+  # Check if GNU C++ uses GNU ld as the underlying linker, since the
+  # archiving commands below assume that GNU ld is being used.
+  if test "$with_gnu_ld" = yes; then
+    archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+    archive_expsym_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+    #     investigate it a little bit more. (MM)
+    wlarc='${wl}'
+
+    # ancient GNU ld didn't support --whole-archive et. al.
+    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
+	grep 'no-whole-archive' > /dev/null; then
+      whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+    else
+      whole_archive_flag_spec_CXX=
+    fi
+  else
+    with_gnu_ld=no
+    wlarc=
+
+    # A generic and very simple default shared library creation
+    # command for GNU C++ for the case where it uses the native
+    # linker, instead of GNU ld.  If possible, this setting should
+    # overridden to take advantage of the native linker features on
+    # the platform it is being used on.
+    archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $lib'
+  fi
+
+  # Commands to make compiler produce verbose output that lists
+  # what "hidden" libraries, object files and flags are used when
+  # linking a shared library.
+  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+else
+  GXX=no
+  with_gnu_ld=no
+  wlarc=
+fi
+
+# PORTME: fill in a description of your system's C++ link characteristics
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+ld_shlibs_CXX=yes
+case $host_os in
+  aix3*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  aix4* | aix5*)
+    if test "$host_cpu" = ia64; then
+      # On IA64, the linker does run time linking by default, so we don't
+      # have to do anything special.
+      aix_use_runtimelinking=no
+      exp_sym_flag='-Bexport'
+      no_entry_flag=""
+    else
+      # KDE requires run time linking.  Make it the default.
+      aix_use_runtimelinking=yes
+      exp_sym_flag='-bexport'
+      no_entry_flag='-bnoentry'
+    fi
+
+    # When large executables or shared objects are built, AIX ld can
+    # have problems creating the table of contents.  If linking a library
+    # or program results in "error TOC overflow" add -mminimal-toc to
+    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+    archive_cmds_CXX=''
+    hardcode_direct_CXX=yes
+    hardcode_libdir_separator_CXX=':'
+    link_all_deplibs_CXX=yes
+
+    if test "$GXX" = yes; then
+      case $host_os in aix4.012|aix4.012.*)
+      # We only want to do this on AIX 4.2 and lower, the check
+      # below for broken collect2 doesn't work under 4.3+
+	collect2name=`${CC} -print-prog-name=collect2`
+	if test -f "$collect2name" && \
+	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	then
+	  # We have reworked collect2
+	  hardcode_direct_CXX=yes
+	else
+	  # We have old collect2
+	  hardcode_direct_CXX=unsupported
+	  # It fails to find uninstalled libraries when the uninstalled
+	  # path is not listed in the libpath.  Setting hardcode_minus_L
+	  # to unsupported forces relinking
+	  hardcode_minus_L_CXX=yes
+	  hardcode_libdir_flag_spec_CXX='-L$libdir'
+	  hardcode_libdir_separator_CXX=
+	fi
+      esac
+      shared_flag='-shared'
+    else
+      # not using gcc
+      if test "$host_cpu" = ia64; then
+	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+	# chokes on -Wl,-G. The following line is correct:
+	shared_flag='-G'
+      else
+	if test "$aix_use_runtimelinking" = yes; then
+	  shared_flag='-qmkshrobj ${wl}-G'
+	else
+	  shared_flag='-qmkshrobj'
+	fi
+      fi
+    fi
+
+    # Let the compiler handle the export list.
+    always_export_symbols_CXX=no
+    if test "$aix_use_runtimelinking" = yes; then
+      # Warning - without using the other runtime loading flags (-brtl),
+      # -berok will link without error, but may produce a broken library.
+      allow_undefined_flag_CXX='-berok'
+      # Determine the default libpath from the value encoded in an empty executable.
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+      hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+      archive_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+      archive_expsym_cmds_CXX="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+     else
+      if test "$host_cpu" = ia64; then
+	hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+	allow_undefined_flag_CXX="-z nodefs"
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+      else
+	# Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+	# Warning - without using the other run time loading flags,
+	# -berok will link without error, but may produce a broken library.
+	no_undefined_flag_CXX=' ${wl}-bernotok'
+	allow_undefined_flag_CXX=' ${wl}-berok'
+	# -bexpall does not export symbols beginning with underscore (_)
+	always_export_symbols_CXX=yes
+	# Exported symbols can be pulled into shared objects from archives
+	whole_archive_flag_spec_CXX=' '
+	archive_cmds_need_lc_CXX=yes
+	# This is similar to how AIX traditionally builds it's shared libraries.
+	archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+      fi
+    fi
+    ;;
+  chorus*)
+    case $cc_basename in
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+
+  cygwin* | mingw* | pw32*)
+    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+    # as there is no search path for DLLs.
+    hardcode_libdir_flag_spec_CXX='-L$libdir'
+    allow_undefined_flag_CXX=no
+    always_export_symbols_CXX=no
+    enable_shared_with_static_runtimes_CXX=yes
+
+    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+      archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+      # If the export-symbols file already is a .def file (1st line
+      # is EXPORTS), use it as is; otherwise, prepend...
+      archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	cp $export_symbols $output_objdir/$soname.def;
+      else
+	echo EXPORTS > $output_objdir/$soname.def;
+	cat $export_symbols >> $output_objdir/$soname.def;
+      fi~
+      $CC -shared -nostdlib $output_objdir/$soname.def $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+    else
+      ld_shlibs_CXX=no
+    fi
+  ;;
+
+  darwin* | rhapsody*)
+  if test "$GXX" = yes; then
+    archive_cmds_need_lc_CXX=no
+    case "$host_os" in
+    rhapsody* | darwin1.[012])
+      allow_undefined_flag_CXX='-Wl,-undefined -Wl,suppress'
+      ;;
+    *) # Darwin 1.3 on
+      if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	allow_undefined_flag_CXX='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+      else
+	case ${MACOSX_DEPLOYMENT_TARGET} in
+	  10.012)
+	    allow_undefined_flag_CXX='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	    ;;
+	  10.*)
+	    allow_undefined_flag_CXX='-Wl,-undefined -Wl,dynamic_lookup'
+	    ;;
+	esac
+      fi
+      ;;
+    esac
+    lt_int_apple_cc_single_mod=no
+    output_verbose_link_cmd='echo'
+    if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+      lt_int_apple_cc_single_mod=yes
+    fi
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    else
+      archive_cmds_CXX='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+    fi
+    module_cmds_CXX='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+
+    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+    if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    else
+      archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    fi
+    module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+    hardcode_direct_CXX=no
+    hardcode_automatic_CXX=yes
+    hardcode_shlibpath_var_CXX=unsupported
+    whole_archive_flag_spec_CXX='-all_load $convenience'
+    link_all_deplibs_CXX=yes
+  else
+    ld_shlibs_CXX=no
+  fi
+    ;;
+
+  dgux*)
+    case $cc_basename in
+      ec++)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      ghcx)
+	# Green Hills C++ Compiler
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  freebsd12*)
+    # C++ shared libraries reported to be fairly broken before switch to ELF
+    ld_shlibs_CXX=no
+    ;;
+  freebsd-elf*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  freebsd* | kfreebsd*-gnu)
+    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+    # conventions
+    ld_shlibs_CXX=yes
+    ;;
+  gnu*)
+    ;;
+  hpux9*)
+    hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    export_dynamic_flag_spec_CXX='${wl}-E'
+    hardcode_direct_CXX=yes
+    hardcode_minus_L_CXX=yes # Not in the search PATH,
+				# but as the default
+				# location of the library.
+
+    case $cc_basename in
+    CC)
+      # FIXME: insert proper C++ library support
+      ld_shlibs_CXX=no
+      ;;
+    aCC)
+      archive_cmds_CXX='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      # Commands to make compiler produce verbose output that lists
+      # what "hidden" libraries, object files and flags are used when
+      # linking a shared library.
+      #
+      # There doesn't appear to be a way to prevent this compiler from
+      # explicitly linking system object files so we need to strip them
+      # from the output so that they don't get included in the library
+      # dependencies.
+      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+      ;;
+    *)
+      if test "$GXX" = yes; then
+        archive_cmds_CXX='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+        # FIXME: insert proper C++ library support
+        ld_shlibs_CXX=no
+      fi
+      ;;
+    esac
+    ;;
+  hpux10*|hpux11*)
+    if test $with_gnu_ld = no; then
+      case "$host_cpu" in
+      hppa*64*)
+	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+	hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
+	hardcode_libdir_separator_CXX=:
+        ;;
+      ia64*)
+	hardcode_libdir_flag_spec_CXX='-L$libdir'
+        ;;
+      *)
+	hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+	export_dynamic_flag_spec_CXX='${wl}-E'
+        ;;
+      esac
+    fi
+    case "$host_cpu" in
+    hppa*64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      ;;
+    ia64*)
+      hardcode_direct_CXX=no
+      hardcode_shlibpath_var_CXX=no
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    *)
+      hardcode_direct_CXX=yes
+      hardcode_minus_L_CXX=yes # Not in the search PATH,
+					      # but as the default
+					      # location of the library.
+      ;;
+    esac
+
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      aCC)
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	  ;;
+	esac
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test $with_gnu_ld = no; then
+	    case "$host_cpu" in
+	    ia64*|hppa*64*)
+	      archive_cmds_CXX='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
+	      ;;
+	    *)
+	      archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	      ;;
+	    esac
+	  fi
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  irix5* | irix6*)
+    case $cc_basename in
+      CC)
+	# SGI C++
+	archive_cmds_CXX='$CC -shared -all -multigot $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	# Archives containing C++ object files must be created using
+	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+	;;
+      *)
+	if test "$GXX" = yes; then
+	  if test "$with_gnu_ld" = no; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+	  else
+	    archive_cmds_CXX='$CC -shared -nostdlib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
+	  fi
+	fi
+	link_all_deplibs_CXX=yes
+	;;
+    esac
+    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+    hardcode_libdir_separator_CXX=:
+    ;;
+  linux*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+	archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	hardcode_libdir_flag_spec_CXX='${wl}--rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+	;;
+      icpc)
+	# Intel C++
+	with_gnu_ld=yes
+	archive_cmds_need_lc_CXX=no
+	archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+	;;
+      cxx)
+	# Compaq C++
+	archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+	runpath_var=LD_RUN_PATH
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+    esac
+    ;;
+  lynxos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  m88k*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  mvs*)
+    case $cc_basename in
+      cxx)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  netbsd*)
+    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+      archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+      wlarc=
+      hardcode_libdir_flag_spec_CXX='-R$libdir'
+      hardcode_direct_CXX=yes
+      hardcode_shlibpath_var_CXX=no
+    fi
+    # Workaround some broken pre-1.5 toolchains
+    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+    ;;
+  osf3*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx)
+	allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	  archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  osf4* | osf5*)
+    case $cc_basename in
+      KCC)
+	# Kuck and Associates, Inc. (KAI) C++ Compiler
+
+	# KCC will only create a shared library if the output file
+	# ends with ".so" (or ".sl" for HP-UX), so rename the library
+	# to its proper name (with version) after linking.
+	archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects --soname $soname -o \$templib; mv \$templib $lib'
+
+	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Archives containing C++ object files must be created using
+	# the KAI C++ compiler.
+	old_archive_cmds_CXX='$CC -o $oldlib $oldobjs'
+	;;
+      RCC)
+	# Rational C++ 2.4.1
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      cxx)
+	allow_undefined_flag_CXX=' -expect_unresolved \*'
+	archive_cmds_CXX='$CC -shared${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
+	archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+	  echo "-hidden">> $lib.exp~
+	  $CC -shared$allow_undefined_flag $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
+	  $rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+	hardcode_libdir_separator_CXX=:
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+	;;
+      *)
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+	 archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+	  hardcode_libdir_separator_CXX=:
+
+	  # Commands to make compiler produce verbose output that lists
+	  # what "hidden" libraries, object files and flags are used when
+	  # linking a shared library.
+	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
+
+	else
+	  # FIXME: insert proper C++ library support
+	  ld_shlibs_CXX=no
+	fi
+	;;
+    esac
+    ;;
+  psos*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  sco*)
+    archive_cmds_need_lc_CXX=no
+    case $cc_basename in
+      CC)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  sunos4*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.x
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      lcc)
+	# Lucid
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  solaris*)
+    case $cc_basename in
+      CC)
+	# Sun C++ 4.2, 5.x and Centerline C++
+	no_undefined_flag_CXX=' -zdefs'
+	archive_cmds_CXX='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects'
+	archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	hardcode_libdir_flag_spec_CXX='-R$libdir'
+	hardcode_shlibpath_var_CXX=no
+	case $host_os in
+	  solaris2.0-5 | solaris2.0-5.*) ;;
+	  *)
+	    # The C++ compiler is used as linker so we must use $wl
+	    # flag to pass the commands to the underlying system
+	    # linker.
+	    # Supported since Solaris 2.6 (maybe 2.5.1?)
+	    whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+	    ;;
+	esac
+	link_all_deplibs_CXX=yes
+
+	# Commands to make compiler produce verbose output that lists
+	# what "hidden" libraries, object files and flags are used when
+	# linking a shared library.
+	#
+	# There doesn't appear to be a way to prevent this compiler from
+	# explicitly linking system object files so we need to strip them
+	# from the output so that they don't get included in the library
+	# dependencies.
+	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[LR]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
+
+	# Archives containing C++ object files must be created using
+	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
+	# necessary to make sure instantiated templates are included
+	# in the archive.
+	old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+	;;
+      gcx)
+	# Green Hills C++ Compiler
+	archive_cmds_CXX='$CC -shared $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+
+	# The C++ compiler must be used to create the archive.
+	old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+	;;
+      *)
+	# GNU C++ compiler with Solaris linker
+	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+	  no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+	  if $CC --version | grep -v '^2\.7' > /dev/null; then
+	    archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  else
+	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
+	    # platform.
+	    archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects ${wl}-h $wl$soname -o $lib'
+	    archive_expsym_cmds_CXX='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $compiler_flags $predep_objects $libobjs $deplibs $postdep_objects~$rm $lib.exp'
+
+	    # Commands to make compiler produce verbose output that lists
+	    # what "hidden" libraries, object files and flags are used when
+	    # linking a shared library.
+	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
+	  fi
+
+	  hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+	fi
+	;;
+    esac
+    ;;
+  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+    archive_cmds_need_lc_CXX=no
+    ;;
+  tandem*)
+    case $cc_basename in
+      NCC)
+	# NonStop-UX NCC 3.20
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+      *)
+	# FIXME: insert proper C++ library support
+	ld_shlibs_CXX=no
+	;;
+    esac
+    ;;
+  vxworks*)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+  *)
+    # FIXME: insert proper C++ library support
+    ld_shlibs_CXX=no
+    ;;
+esac
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+GCC_CXX="$GXX"
+LD_CXX="$LD"
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+
+cat > conftest.$ac_ext <<EOF
+class Foo
+{
+public:
+  Foo (void) { a = 0; }
+private:
+  int a;
+};
+EOF
+
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+  # Parse the compiler output and extract the necessary
+  # objects, libraries and library flags.
+
+  # Sentinel used to keep track of whether or not we are before
+  # the conftest object file.
+  pre_test_object_deps_done=no
+
+  # The `*' in the case matches for architectures that use `case' in
+  # $output_verbose_cmd can trigger glob expansion during the loop
+  # eval without this substitution.
+  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
+
+  for p in `eval $output_verbose_link_cmd`; do
+    case $p in
+
+    -L* | -R* | -l*)
+       # Some compilers place space between "-{L,R}" and the path.
+       # Remove the space.
+       if test $p = "-L" \
+	  || test $p = "-R"; then
+	 prev=$p
+	 continue
+       else
+	 prev=
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 case $p in
+	 -L* | -R*)
+	   # Internal compiler library paths should come after those
+	   # provided the user.  The postdeps already come after the
+	   # user supplied libs so there is no need to process them.
+	   if test -z "$compiler_lib_search_path_CXX"; then
+	     compiler_lib_search_path_CXX="${prev}${p}"
+	   else
+	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+	   fi
+	   ;;
+	 # The "-l" case would never come before the object being
+	 # linked, so don't bother handling this case.
+	 esac
+       else
+	 if test -z "$postdeps_CXX"; then
+	   postdeps_CXX="${prev}${p}"
+	 else
+	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+	 fi
+       fi
+       ;;
+
+    *.$objext|*.$libext)
+       # This assumes that the test object file only shows up
+       # once in the compiler output.
+       if test "$p" = "conftest.$objext"; then
+	 pre_test_object_deps_done=yes
+	 continue
+       fi
+
+       if test "$pre_test_object_deps_done" = no; then
+	 if test -z "$predep_objects_CXX"; then
+	   predep_objects_CXX="$p"
+	 else
+	   predep_objects_CXX="$predep_objects_CXX $p"
+	 fi
+       else
+	 if test -z "$postdep_objects_CXX"; then
+	   postdep_objects_CXX="$p"
+	 else
+	   postdep_objects_CXX="$postdep_objects_CXX $p"
+	 fi
+       fi
+       ;;
+
+    *) ;; # Ignore the rest.
+
+    esac
+  done
+
+  # Clean up.
+  rm -f a.out a.exe
+else
+  echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$rm -f confest.$objext
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+
+lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  # C++ specific cases for pic, static, wl, etc.
+  if test "$GXX" = yes; then
+    lt_prog_compiler_wl_CXX='-Wl,'
+    lt_prog_compiler_static_CXX='-static'
+
+    case $host_os in
+    aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_CXX='-Bstatic'
+      fi
+      ;;
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+      ;;
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+    mingw* | os2* | pw32*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+      ;;
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_CXX='-fno-common'
+      ;;
+    *djgpp*)
+      # DJGPP does not support shared libraries at all
+      lt_prog_compiler_pic_CXX=
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_CXX=-Kconform_pic
+      fi
+      ;;
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	;;
+      *)
+	lt_prog_compiler_pic_CXX='-fPIC'
+	;;
+      esac
+      ;;
+    *)
+      lt_prog_compiler_pic_CXX='-fPIC'
+      ;;
+    esac
+  else
+    case $host_os in
+      aix4* | aix5*)
+	# All AIX code is PIC.
+	if test "$host_cpu" = ia64; then
+	  # AIX 5 now supports IA64 processor
+	  lt_prog_compiler_static_CXX='-Bstatic'
+	else
+	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+	fi
+	;;
+      chorus*)
+	case $cc_basename in
+	cxch68)
+	  # Green Hills C++ Compiler
+	  # _LT_AC_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+	  ;;
+	esac
+	;;
+      dgux*)
+	case $cc_basename in
+	  ec++)
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  ghcx)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      freebsd* | kfreebsd*-gnu)
+	# FreeBSD uses GNU C++
+	;;
+      hpux9* | hpux10* | hpux11*)
+	case $cc_basename in
+	  CC)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    if test "$host_cpu" != ia64; then
+	      lt_prog_compiler_pic_CXX='+Z'
+	    fi
+	    ;;
+	  aCC)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
+	    case "$host_cpu" in
+	    hppa*64*|ia64*)
+	      # +Z the default
+	      ;;
+	    *)
+	      lt_prog_compiler_pic_CXX='+Z'
+	      ;;
+	    esac
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      irix5* | irix6* | nonstopux*)
+	case $cc_basename in
+	  CC)
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    # CC pic flag -KPIC is the default.
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      linux*)
+	case $cc_basename in
+	  KCC)
+	    # KAI C++ Compiler
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  icpc)
+	    # Intel C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-static'
+	    ;;
+	  cxx)
+	    # Compaq C++
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      lynxos*)
+	;;
+      m88k*)
+	;;
+      mvs*)
+	case $cc_basename in
+	  cxx)
+	    lt_prog_compiler_pic_CXX='-W c,exportall'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      netbsd*)
+	;;
+      osf3* | osf4* | osf5*)
+	case $cc_basename in
+	  KCC)
+	    lt_prog_compiler_wl_CXX='--backend -Wl,'
+	    ;;
+	  RCC)
+	    # Rational C++ 2.4.1
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  cxx)
+	    # Digital/Compaq C++
+	    lt_prog_compiler_wl_CXX='-Wl,'
+	    # Make sure the PIC flag is empty.  It appears that all Alpha
+	    # Linux and Compaq Tru64 Unix objects are PIC.
+	    lt_prog_compiler_pic_CXX=
+	    lt_prog_compiler_static_CXX='-non_shared'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      psos*)
+	;;
+      sco*)
+	case $cc_basename in
+	  CC)
+	    lt_prog_compiler_pic_CXX='-fPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      solaris*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.2, 5.x and Centerline C++
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    lt_prog_compiler_wl_CXX='-Qoption ld '
+	    ;;
+	  gcx)
+	    # Green Hills C++ Compiler
+	    lt_prog_compiler_pic_CXX='-PIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      sunos4*)
+	case $cc_basename in
+	  CC)
+	    # Sun C++ 4.x
+	    lt_prog_compiler_pic_CXX='-pic'
+	    lt_prog_compiler_static_CXX='-Bstatic'
+	    ;;
+	  lcc)
+	    # Lucid
+	    lt_prog_compiler_pic_CXX='-pic'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      tandem*)
+	case $cc_basename in
+	  NCC)
+	    # NonStop-UX NCC 3.20
+	    lt_prog_compiler_pic_CXX='-KPIC'
+	    ;;
+	  *)
+	    ;;
+	esac
+	;;
+      unixware*)
+	;;
+      vxworks*)
+	;;
+      *)
+	lt_prog_compiler_can_build_shared_CXX=no
+	;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_CXX=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14043: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:14047: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_prog_compiler_pic_works_CXX=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6
+
+if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+    case $lt_prog_compiler_pic_CXX in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+     esac
+else
+    lt_prog_compiler_pic_CXX=
+     lt_prog_compiler_can_build_shared_CXX=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_CXX=
+    ;;
+  *)
+    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_CXX=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:14110: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:14114: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       lt_cv_prog_compiler_c_o_CXX=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  case $host_os in
+  aix4* | aix5*)
+    # If we're using GNU nm, then we don't want the "-C" option.
+    # -C means demangle to AIX nm, but means don't demangle with GNU nm
+    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    else
+      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+    fi
+    ;;
+  pw32*)
+    export_symbols_cmds_CXX="$ltdll_cmds"
+  ;;
+  cygwin* | mingw*)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  *)
+    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  ;;
+  esac
+
+echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+echo "${ECHO_T}$ld_shlibs_CXX" >&6
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_CXX=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_CXX in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_CXX
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+        allow_undefined_flag_CXX=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_CXX=no
+        else
+	  archive_cmds_need_lc_CXX=yes
+        fi
+        allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.01* | freebsdelf3.01*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" || \
+   test -n "$runpath_var CXX" || \
+   test "X$hardcode_automatic_CXX"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_CXX" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+     test "$hardcode_minus_L_CXX" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_CXX=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_CXX=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_CXX=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+echo "${ECHO_T}$hardcode_action_CXX" >&6
+
+if test "$hardcode_action_CXX" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 15446 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 15544 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_CXX \
+    CC_CXX \
+    LD_CXX \
+    lt_prog_compiler_wl_CXX \
+    lt_prog_compiler_pic_CXX \
+    lt_prog_compiler_static_CXX \
+    lt_prog_compiler_no_builtin_flag_CXX \
+    export_dynamic_flag_spec_CXX \
+    thread_safe_flag_spec_CXX \
+    whole_archive_flag_spec_CXX \
+    enable_shared_with_static_runtimes_CXX \
+    old_archive_cmds_CXX \
+    old_archive_from_new_cmds_CXX \
+    predep_objects_CXX \
+    postdep_objects_CXX \
+    predeps_CXX \
+    postdeps_CXX \
+    compiler_lib_search_path_CXX \
+    archive_cmds_CXX \
+    archive_expsym_cmds_CXX \
+    postinstall_cmds_CXX \
+    postuninstall_cmds_CXX \
+    old_archive_from_expsyms_cmds_CXX \
+    allow_undefined_flag_CXX \
+    no_undefined_flag_CXX \
+    export_symbols_cmds_CXX \
+    hardcode_libdir_flag_spec_CXX \
+    hardcode_libdir_flag_spec_ld_CXX \
+    hardcode_libdir_separator_CXX \
+    hardcode_automatic_CXX \
+    module_cmds_CXX \
+    module_expsym_cmds_CXX \
+    lt_cv_prog_compiler_c_o_CXX \
+    exclude_expsyms_CXX \
+    include_expsyms_CXX; do
+
+    case $var in
+    old_archive_cmds_CXX | \
+    old_archive_from_new_cmds_CXX | \
+    archive_cmds_CXX | \
+    archive_expsym_cmds_CXX | \
+    module_cmds_CXX | \
+    module_expsym_cmds_CXX | \
+    old_archive_from_expsyms_cmds_CXX | \
+    export_symbols_cmds_CXX | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_CXX
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_CXX
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_CXX
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_CXX
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_CXX
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_CXX"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+LDCXX=$LD
+LD=$lt_save_LD
+GCC=$lt_save_GCC
+with_gnu_ldcxx=$with_gnu_ld
+with_gnu_ld=$lt_save_with_gnu_ld
+lt_cv_path_LDCXX=$lt_cv_path_LD
+lt_cv_path_LD=$lt_save_path_LD
+lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      F77)
+	if test -n "$F77" && test "X$F77" != "Xno"; then
+
+ac_ext=f
+ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5'
+ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_f77_compiler_gnu
+
+
+archive_cmds_need_lc_F77=no
+allow_undefined_flag_F77=
+always_export_symbols_F77=no
+archive_expsym_cmds_F77=
+export_dynamic_flag_spec_F77=
+hardcode_direct_F77=no
+hardcode_libdir_flag_spec_F77=
+hardcode_libdir_flag_spec_ld_F77=
+hardcode_libdir_separator_F77=
+hardcode_minus_L_F77=no
+hardcode_automatic_F77=no
+module_cmds_F77=
+module_expsym_cmds_F77=
+link_all_deplibs_F77=unknown
+old_archive_cmds_F77=$old_archive_cmds
+no_undefined_flag_F77=
+whole_archive_flag_spec_F77=
+enable_shared_with_static_runtimes_F77=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+objext_F77=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="      program t\n      end\n"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${F77-"f77"}
+compiler=$CC
+compiler_F77=$CC
+cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
+
+echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6
+echo "$as_me:$LINENO: result: $can_build_shared" >&5
+echo "${ECHO_T}$can_build_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6
+test "$can_build_shared" = "no" && enable_shared=no
+
+# On AIX, shared libraries and static libraries use the same namespace, and
+# are all built from PIC.
+case "$host_os" in
+aix3*)
+  test "$enable_shared" = yes && enable_static=no
+  if test -n "$RANLIB"; then
+    archive_cmds="$archive_cmds~\$RANLIB \$lib"
+    postinstall_cmds='$RANLIB $lib'
+  fi
+  ;;
+aix4*)
+  test "$enable_shared" = yes && enable_static=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $enable_shared" >&5
+echo "${ECHO_T}$enable_shared" >&6
+
+echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6
+# Make sure either enable_shared or enable_static is yes.
+test "$enable_shared" = yes || enable_static=yes
+echo "$as_me:$LINENO: result: $enable_static" >&5
+echo "${ECHO_T}$enable_static" >&6
+
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+GCC_F77="$G77"
+LD_F77="$LD"
+
+lt_prog_compiler_wl_F77=
+lt_prog_compiler_pic_F77=
+lt_prog_compiler_static_F77=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_F77='-Wl,'
+    lt_prog_compiler_static_F77='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_F77='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_F77=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_F77=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_F77='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_F77='-Bstatic'
+      else
+	lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_F77='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_F77='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_F77='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	lt_prog_compiler_wl_F77='-Wl,'
+	lt_prog_compiler_pic_F77='-KPIC'
+	lt_prog_compiler_static_F77='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_F77='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_F77='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_F77='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic_F77='-Kpic'
+      lt_prog_compiler_static_F77='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_F77='-Qoption ld '
+      lt_prog_compiler_pic_F77='-PIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl_F77='-Wl,'
+      lt_prog_compiler_pic_F77='-KPIC'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_F77='-Kconform_pic'
+	lt_prog_compiler_static_F77='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_F77='-pic'
+      lt_prog_compiler_static_F77='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_F77"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_F77=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_F77"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16367: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:16371: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_prog_compiler_pic_works_F77=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6
+
+if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+    case $lt_prog_compiler_pic_F77 in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
+     esac
+else
+    lt_prog_compiler_pic_F77=
+     lt_prog_compiler_can_build_shared_F77=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_F77=
+    ;;
+  *)
+    lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_F77=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:16434: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:16438: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       lt_cv_prog_compiler_c_o_F77=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_F77=
+  enable_shared_with_static_runtimes_F77=no
+  archive_cmds_F77=
+  archive_expsym_cmds_F77=
+  old_archive_From_new_cmds_F77=
+  old_archive_from_expsyms_cmds_F77=
+  export_dynamic_flag_spec_F77=
+  whole_archive_flag_spec_F77=
+  thread_safe_flag_spec_F77=
+  hardcode_libdir_flag_spec_F77=
+  hardcode_libdir_flag_spec_ld_F77=
+  hardcode_libdir_separator_F77=
+  hardcode_direct_F77=no
+  hardcode_minus_L_F77=no
+  hardcode_shlibpath_var_F77=unsupported
+  link_all_deplibs_F77=unknown
+  hardcode_automatic_F77=no
+  module_cmds_F77=
+  module_expsym_cmds_F77=
+  always_export_symbols_F77=no
+  export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_F77=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_F77=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_F77=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_F77=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_F77='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      allow_undefined_flag_F77=no
+      always_export_symbols_F77=no
+      enable_shared_with_static_runtimes_F77=yes
+      export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_F77='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_F77=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_F77=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_F77" = yes; then
+      runpath_var=LD_RUN_PATH
+      hardcode_libdir_flag_spec_F77='${wl}--rpath ${wl}$libdir'
+      export_dynamic_flag_spec_F77='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	whole_archive_flag_spec_F77="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_F77=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_F77=unsupported
+      always_export_symbols_F77=yes
+      archive_expsym_cmds_F77='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_F77=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_F77=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_F77='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_F77=''
+      hardcode_direct_F77=yes
+      hardcode_libdir_separator_F77=':'
+      link_all_deplibs_F77=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.012|aix4.012.*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_F77=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_F77=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_F77=yes
+  	  hardcode_libdir_flag_spec_F77='-L$libdir'
+  	  hardcode_libdir_separator_F77=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      always_export_symbols_F77=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_F77='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	archive_expsym_cmds_F77="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_F77='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_F77="-z nodefs"
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+      program main
+
+      end
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_f77_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_F77='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_F77=' ${wl}-bernotok'
+	  allow_undefined_flag_F77=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols_F77=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_F77=' '
+	  archive_cmds_need_lc_F77=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds_F77="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_F77='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_F77=no
+      ;;
+
+    bsdi4*)
+      export_dynamic_flag_spec_F77=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_F77=' '
+      allow_undefined_flag_F77=no
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_F77='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_F77='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_F77=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      archive_cmds_need_lc_F77=no
+      case "$host_os" in
+      rhapsody* | darwin1.[012])
+	allow_undefined_flag_F77='-Wl,-undefined -Wl,suppress'
+	;;
+      *) # Darwin 1.3 on
+	if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	  allow_undefined_flag_F77='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	else
+	  case ${MACOSX_DEPLOYMENT_TARGET} in
+	    10.012)
+	      allow_undefined_flag_F77='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	      ;;
+	    10.*)
+	      allow_undefined_flag_F77='-Wl,-undefined -Wl,dynamic_lookup'
+	      ;;
+	  esac
+	fi
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  archive_cmds_F77='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    	else
+        archive_cmds_F77='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+      fi
+      module_cmds_F77='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      hardcode_direct_F77=no
+      hardcode_automatic_F77=yes
+      hardcode_shlibpath_var_F77=unsupported
+      whole_archive_flag_spec_F77='-all_load $convenience'
+      link_all_deplibs_F77=yes
+    else
+      ld_shlibs_F77=no
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_F77=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      archive_cmds_F77='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_F77='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_direct_F77=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_F77=yes
+      export_dynamic_flag_spec_F77='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_F77='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  archive_cmds_F77='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_F77='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld_F77='+b $libdir'
+	  hardcode_libdir_separator_F77=:
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec_F77='-L$libdir'
+	  hardcode_direct_F77=no
+	  hardcode_shlibpath_var_F77=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec_F77='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator_F77=:
+	  hardcode_direct_F77=yes
+	  export_dynamic_flag_spec_F77='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_F77=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      link_all_deplibs_F77=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    newsos6)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_F77=yes
+      hardcode_shlibpath_var_F77=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_F77='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_F77='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_F77='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_F77='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	   hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_minus_L_F77=yes
+      allow_undefined_flag_F77=unsupported
+      archive_cmds_F77='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+      old_archive_From_new_cmds_F77='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_F77=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_F77='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_F77='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_F77=' -expect_unresolved \*'
+	archive_cmds_F77='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_F77='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_F77=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag_F77=' -z text'
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+      else
+	archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_F77='-R$libdir'
+      hardcode_shlibpath_var_F77=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
+      esac
+      link_all_deplibs_F77=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_F77='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=yes
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_F77='$CC -r -o $output$reload_objs'
+	  hardcode_direct_F77=no
+        ;;
+	motorola)
+	  archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_F77=no
+      export_dynamic_flag_spec_F77='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_F77=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_F77=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_F77=yes
+      hardcode_minus_L_F77=no
+      hardcode_shlibpath_var_F77=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag_F77='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds_F77='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds_F77='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag_F77=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds_F77='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds_F77='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec_F77=
+      hardcode_shlibpath_var_F77=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_F77='-L$libdir'
+      hardcode_shlibpath_var_F77=no
+      ;;
+
+    *)
+      ld_shlibs_F77=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+echo "${ECHO_T}$ld_shlibs_F77" >&6
+test "$ld_shlibs_F77" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_F77" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_F77=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_F77 in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_F77
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_F77
+        allow_undefined_flag_F77=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_F77=no
+        else
+	  archive_cmds_need_lc_F77=yes
+        fi
+        allow_undefined_flag_F77=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.01* | freebsdelf3.01*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_F77=
+if test -n "$hardcode_libdir_flag_spec_F77" || \
+   test -n "$runpath_var F77" || \
+   test "X$hardcode_automatic_F77"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_F77" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, F77)" != no &&
+     test "$hardcode_minus_L_F77" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_F77=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_F77=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_F77=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+echo "${ECHO_T}$hardcode_action_F77" >&6
+
+if test "$hardcode_action_F77" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_F77 \
+    CC_F77 \
+    LD_F77 \
+    lt_prog_compiler_wl_F77 \
+    lt_prog_compiler_pic_F77 \
+    lt_prog_compiler_static_F77 \
+    lt_prog_compiler_no_builtin_flag_F77 \
+    export_dynamic_flag_spec_F77 \
+    thread_safe_flag_spec_F77 \
+    whole_archive_flag_spec_F77 \
+    enable_shared_with_static_runtimes_F77 \
+    old_archive_cmds_F77 \
+    old_archive_from_new_cmds_F77 \
+    predep_objects_F77 \
+    postdep_objects_F77 \
+    predeps_F77 \
+    postdeps_F77 \
+    compiler_lib_search_path_F77 \
+    archive_cmds_F77 \
+    archive_expsym_cmds_F77 \
+    postinstall_cmds_F77 \
+    postuninstall_cmds_F77 \
+    old_archive_from_expsyms_cmds_F77 \
+    allow_undefined_flag_F77 \
+    no_undefined_flag_F77 \
+    export_symbols_cmds_F77 \
+    hardcode_libdir_flag_spec_F77 \
+    hardcode_libdir_flag_spec_ld_F77 \
+    hardcode_libdir_separator_F77 \
+    hardcode_automatic_F77 \
+    module_cmds_F77 \
+    module_expsym_cmds_F77 \
+    lt_cv_prog_compiler_c_o_F77 \
+    exclude_expsyms_F77 \
+    include_expsyms_F77; do
+
+    case $var in
+    old_archive_cmds_F77 | \
+    old_archive_from_new_cmds_F77 | \
+    archive_cmds_F77 | \
+    archive_expsym_cmds_F77 | \
+    module_cmds_F77 | \
+    module_expsym_cmds_F77 | \
+    old_archive_from_expsyms_cmds_F77 | \
+    export_symbols_cmds_F77 | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_F77
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_F77
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_F77
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_F77
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_F77
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_F77
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_F77
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_F77
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_F77
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_F77
+archive_expsym_cmds=$lt_archive_expsym_cmds_F77
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_F77
+module_expsym_cmds=$lt_module_expsym_cmds_F77
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_F77
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_F77
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_F77
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_F77
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_F77
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_F77
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_F77
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_F77
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_F77
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_F77
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_F77
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_F77
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_F77
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_F77"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_F77
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_F77
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_F77
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_F77
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      GCJ)
+	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
+
+
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+objext_GCJ=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}\n"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String argv) {}; }\n'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${GCJ-"gcj"}
+compiler=$CC
+compiler_GCJ=$CC
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+archive_cmds_need_lc_GCJ=no
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+
+lt_prog_compiler_no_builtin_flag_GCJ=
+
+if test "$GCC" = yes; then
+  lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
+
+
+echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_rtti_exceptions=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="-fno-rtti -fno-exceptions"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:18407: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:18411: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_cv_prog_compiler_rtti_exceptions=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6
+
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+    lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
+else
+    :
+fi
+
+fi
+
+lt_prog_compiler_wl_GCJ=
+lt_prog_compiler_pic_GCJ=
+lt_prog_compiler_static_GCJ=
+
+echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6
+
+  if test "$GCC" = yes; then
+    lt_prog_compiler_wl_GCJ='-Wl,'
+    lt_prog_compiler_static_GCJ='-static'
+
+    case $host_os in
+      aix*)
+      # All AIX code is PIC.
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    amigaos*)
+      # FIXME: we need at least 68020 code to build shared libraries, but
+      # adding the `-m68020' flag to GCC prevents building anything better,
+      # like `-m68040'.
+      lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
+      ;;
+
+    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+      # PIC is the default for these OSes.
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    darwin* | rhapsody*)
+      # PIC is the default on this platform
+      # Common symbols not allowed in MH_DYLIB files
+      lt_prog_compiler_pic_GCJ='-fno-common'
+      ;;
+
+    msdosdjgpp*)
+      # Just because we use GCC doesn't mean we suddenly get shared libraries
+      # on systems that don't support them.
+      lt_prog_compiler_can_build_shared_GCJ=no
+      enable_shared=no
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	lt_prog_compiler_pic_GCJ=-Kconform_pic
+      fi
+      ;;
+
+    hpux*)
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='-fPIC'
+	;;
+      esac
+      ;;
+
+    *)
+      lt_prog_compiler_pic_GCJ='-fPIC'
+      ;;
+    esac
+  else
+    # PORTME Check for flag to pass linker flags through the system compiler.
+    case $host_os in
+    aix*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      if test "$host_cpu" = ia64; then
+	# AIX 5 now supports IA64 processor
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      else
+	lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp'
+      fi
+      ;;
+
+    mingw* | pw32* | os2*)
+      # This hack is so that the source file can tell whether it is being
+      # built for inclusion in a dll (and should export symbols for example).
+      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+      ;;
+
+    hpux9* | hpux10* | hpux11*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+      # not for PA HP-UX.
+      case "$host_cpu" in
+      hppa*64*|ia64*)
+	# +Z the default
+	;;
+      *)
+	lt_prog_compiler_pic_GCJ='+Z'
+	;;
+      esac
+      # Is there a better lt_prog_compiler_static that works with the bundled CC?
+      lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive'
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # PIC (with -KPIC) is the default.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    newsos6)
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    linux*)
+      case $CC in
+      icc* | ecc*)
+	lt_prog_compiler_wl_GCJ='-Wl,'
+	lt_prog_compiler_pic_GCJ='-KPIC'
+	lt_prog_compiler_static_GCJ='-static'
+        ;;
+      ccc*)
+        lt_prog_compiler_wl_GCJ='-Wl,'
+        # All Alpha code is PIC.
+        lt_prog_compiler_static_GCJ='-non_shared'
+        ;;
+      esac
+      ;;
+
+    osf3* | osf4* | osf5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      # All OSF/1 code is PIC.
+      lt_prog_compiler_static_GCJ='-non_shared'
+      ;;
+
+    sco3.2v5*)
+      lt_prog_compiler_pic_GCJ='-Kpic'
+      lt_prog_compiler_static_GCJ='-dn'
+      ;;
+
+    solaris*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sunos4*)
+      lt_prog_compiler_wl_GCJ='-Qoption ld '
+      lt_prog_compiler_pic_GCJ='-PIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      lt_prog_compiler_wl_GCJ='-Wl,'
+      lt_prog_compiler_pic_GCJ='-KPIC'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec ;then
+	lt_prog_compiler_pic_GCJ='-Kconform_pic'
+	lt_prog_compiler_static_GCJ='-Bstatic'
+      fi
+      ;;
+
+    uts4*)
+      lt_prog_compiler_pic_GCJ='-pic'
+      lt_prog_compiler_static_GCJ='-Bstatic'
+      ;;
+
+    *)
+      lt_prog_compiler_can_build_shared_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_GCJ"; then
+
+echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6
+if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_prog_compiler_pic_works_GCJ=no
+  ac_outfile=conftest.$ac_objext
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+   lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   # The option is referenced via a variable to avoid confusing sed.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:18640: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>conftest.err)
+   ac_status=$?
+   cat conftest.err >&5
+   echo "$as_me:18644: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s "$ac_outfile"; then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s conftest.err; then
+       lt_prog_compiler_pic_works_GCJ=yes
+     fi
+   fi
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6
+
+if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+    case $lt_prog_compiler_pic_GCJ in
+     "" | " "*) ;;
+     *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
+     esac
+else
+    lt_prog_compiler_pic_GCJ=
+     lt_prog_compiler_can_build_shared_GCJ=no
+fi
+
+fi
+case "$host_os" in
+  # For platforms which do not support PIC, -DPIC is meaningless:
+  *djgpp*)
+    lt_prog_compiler_pic_GCJ=
+    ;;
+  *)
+    lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ"
+    ;;
+esac
+
+echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6
+if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  lt_cv_prog_compiler_c_o_GCJ=no
+   $rm -r conftest 2>/dev/null
+   mkdir conftest
+   cd conftest
+   mkdir out
+   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
+   # that will create temporary files in the current directory regardless of
+   # the output directory.  Thus, making CWD read-only will cause this test
+   # to fail, enabling locking or at least warning the user not to do parallel
+   # builds.
+   chmod -w .
+
+   lt_compiler_flag="-o out/conftest2.$ac_objext"
+   # Insert the option either (1) after the last *FLAGS variable, or
+   # (2) before a word containing "conftest.", or (3) at the end.
+   # Note that $ac_compile itself does not contain backslashes and begins
+   # with a dollar sign (not a hyphen), so the echo should work correctly.
+   lt_compile=`echo "$ac_compile" | $SED \
+   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
+   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+   -e 's:$: $lt_compiler_flag:'`
+   (eval echo "\"\$as_me:18707: $lt_compile\"" >&5)
+   (eval "$lt_compile" 2>out/conftest.err)
+   ac_status=$?
+   cat out/conftest.err >&5
+   echo "$as_me:18711: \$? = $ac_status" >&5
+   if (exit $ac_status) && test -s out/conftest2.$ac_objext
+   then
+     # The compiler can only warn and ignore the option if not recognized
+     # So say no if there are warnings
+     if test ! -s out/conftest.err; then
+       lt_cv_prog_compiler_c_o_GCJ=yes
+     fi
+   fi
+   chmod u+w .
+   $rm conftest* out/*
+   rmdir out
+   cd ..
+   rmdir conftest
+   $rm conftest*
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6
+
+
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
+  # do not overwrite the value of need_locks provided by the user
+  echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6
+  hard_links=yes
+  $rm conftest*
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  touch conftest.a
+  ln conftest.a conftest.b 2>&5 || hard_links=no
+  ln conftest.a conftest.b 2>/dev/null && hard_links=no
+  echo "$as_me:$LINENO: result: $hard_links" >&5
+echo "${ECHO_T}$hard_links" >&6
+  if test "$hard_links" = no; then
+    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    need_locks=warn
+  fi
+else
+  need_locks=no
+fi
+
+echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6
+
+  runpath_var=
+  allow_undefined_flag_GCJ=
+  enable_shared_with_static_runtimes_GCJ=no
+  archive_cmds_GCJ=
+  archive_expsym_cmds_GCJ=
+  old_archive_From_new_cmds_GCJ=
+  old_archive_from_expsyms_cmds_GCJ=
+  export_dynamic_flag_spec_GCJ=
+  whole_archive_flag_spec_GCJ=
+  thread_safe_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_GCJ=
+  hardcode_libdir_flag_spec_ld_GCJ=
+  hardcode_libdir_separator_GCJ=
+  hardcode_direct_GCJ=no
+  hardcode_minus_L_GCJ=no
+  hardcode_shlibpath_var_GCJ=unsupported
+  link_all_deplibs_GCJ=unknown
+  hardcode_automatic_GCJ=no
+  module_cmds_GCJ=
+  module_expsym_cmds_GCJ=
+  always_export_symbols_GCJ=no
+  export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+  # include_expsyms should be a list of space-separated symbols to be *always*
+  # included in the symbol list
+  include_expsyms_GCJ=
+  # exclude_expsyms can be an extended regexp of symbols to exclude
+  # it will be wrapped by ` (' and `)$', so one must not match beginning or
+  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+  # as well as any symbol that contains `d'.
+  exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+  # platforms (ab)use it in PIC code, but their linkers get confused if
+  # the symbol is explicitly referenced.  Since portable code cannot
+  # rely on this symbol name, it's probably fine to never include it in
+  # preloaded symbol tables.
+  extract_expsyms_cmds=
+
+  case $host_os in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+  esac
+
+  ld_shlibs_GCJ=yes
+  if test "$with_gnu_ld" = yes; then
+    # If archive_cmds runs LD, not CC, wlarc should be empty
+    wlarc='${wl}'
+
+    # See if GNU ld supports shared libraries.
+    case $host_os in
+    aix3* | aix4* | aix5*)
+      # On AIX/PPC, the GNU linker is very broken
+      if test "$host_cpu" != ia64; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.9.1, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support.  If you
+*** really care for shared libraries, you may want to modify your PATH
+*** so that a non-GNU linker is found, and then restart.
+
+EOF
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can't use
+      # them.
+      ld_shlibs_GCJ=no
+      ;;
+
+    beos*)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	allow_undefined_flag_GCJ=unsupported
+	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+	# support --undefined.  This deserves some investigation.  FIXME
+	archive_cmds_GCJ='$CC -nostart $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless,
+      # as there is no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      allow_undefined_flag_GCJ=no
+      always_export_symbols_GCJ=no
+      enable_shared_with_static_runtimes_GCJ=yes
+      export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+
+      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+        archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
+	# If the export-symbols file already is a .def file (1st line
+	# is EXPORTS), use it as is; otherwise, prepend...
+	archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+	  cp $export_symbols $output_objdir/$soname.def;
+	else
+	  echo EXPORTS > $output_objdir/$soname.def;
+	  cat $export_symbols >> $output_objdir/$soname.def;
+	fi~
+	$CC -shared $output_objdir/$soname.def $compiler_flags $libobjs $deplibs -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
+      else
+	ld_shlibs=no
+      fi
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+	wlarc=
+      else
+	archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      fi
+      ;;
+
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+	ld_shlibs_GCJ=no
+	cat <<EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems.  Therefore, libtool
+*** is disabling shared libraries support.  We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer.  Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+EOF
+      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+
+    sunos4*)
+      archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      wlarc=
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+	archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname -o $lib'
+	archive_expsym_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+      else
+	ld_shlibs_GCJ=no
+      fi
+      ;;
+    esac
+
+    if test "$ld_shlibs_GCJ" = yes; then
+      runpath_var=LD_RUN_PATH
+      hardcode_libdir_flag_spec_GCJ='${wl}--rpath ${wl}$libdir'
+      export_dynamic_flag_spec_GCJ='${wl}--export-dynamic'
+      # ancient GNU ld didn't support --whole-archive et. al.
+      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
+ 	whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+      else
+  	whole_archive_flag_spec_GCJ=
+      fi
+    fi
+  else
+    # PORTME fill in a description of your system's linker (not GNU ld)
+    case $host_os in
+    aix3*)
+      allow_undefined_flag_GCJ=unsupported
+      always_export_symbols_GCJ=yes
+      archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L_GCJ=yes
+      if test "$GCC" = yes && test -z "$link_static_flag"; then
+	# Neither direct hardcoding nor static linking is supported with a
+	# broken collect2.
+	hardcode_direct_GCJ=unsupported
+      fi
+      ;;
+
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+	# On IA64, the linker does run time linking by default, so we don't
+	# have to do anything special.
+	aix_use_runtimelinking=no
+	exp_sym_flag='-Bexport'
+	no_entry_flag=""
+      else
+	# If we're using GNU nm, then we don't want the "-C" option.
+	# -C means demangle to AIX nm, but means don't demangle with GNU nm
+	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
+	  export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	else
+	  export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols'
+	fi
+
+	# KDE requires run time linking.  Make it the default.
+	aix_use_runtimelinking=yes
+	exp_sym_flag='-bexport'
+	no_entry_flag='-bnoentry'
+      fi
+
+      # When large executables or shared objects are built, AIX ld can
+      # have problems creating the table of contents.  If linking a library
+      # or program results in "error TOC overflow" add -mminimal-toc to
+      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
+      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+      archive_cmds_GCJ=''
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_separator_GCJ=':'
+      link_all_deplibs_GCJ=yes
+
+      if test "$GCC" = yes; then
+	case $host_os in aix4.012|aix4.012.*)
+	# We only want to do this on AIX 4.2 and lower, the check
+	# below for broken collect2 doesn't work under 4.3+
+	  collect2name=`${CC} -print-prog-name=collect2`
+	  if test -f "$collect2name" && \
+  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
+	  then
+  	  # We have reworked collect2
+  	  hardcode_direct_GCJ=yes
+	  else
+  	  # We have old collect2
+  	  hardcode_direct_GCJ=unsupported
+  	  # It fails to find uninstalled libraries when the uninstalled
+  	  # path is not listed in the libpath.  Setting hardcode_minus_L
+  	  # to unsupported forces relinking
+  	  hardcode_minus_L_GCJ=yes
+  	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+  	  hardcode_libdir_separator_GCJ=
+	  fi
+	esac
+	shared_flag='-shared'
+      else
+	# not using gcc
+	if test "$host_cpu" = ia64; then
+  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+  	# chokes on -Wl,-G. The following line is correct:
+	  shared_flag='-G'
+	else
+  	if test "$aix_use_runtimelinking" = yes; then
+	    shared_flag='-qmkshrobj ${wl}-G'
+	  else
+	    shared_flag='-qmkshrobj'
+  	fi
+	fi
+      fi
+
+      # Let the compiler handle the export list.
+      always_export_symbols_GCJ=no
+      if test "$aix_use_runtimelinking" = yes; then
+	# Warning - without using the other runtime loading flags (-brtl),
+	# -berok will link without error, but may produce a broken library.
+	allow_undefined_flag_GCJ='-berok'
+       # Determine the default libpath from the value encoded in an empty executable.
+	cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	archive_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '" $shared_flag"
+	archive_expsym_cmds_GCJ="\$CC"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+       else
+	if test "$host_cpu" = ia64; then
+	  hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib'
+	  allow_undefined_flag_GCJ="-z nodefs"
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
+	else
+	 # Determine the default libpath from the value encoded in an empty executable.
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`
+# Check for a 64-bit object if we didn't find anything.
+if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
+}'`; fi
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
+
+	 hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath"
+	  # Warning - without using the other run time loading flags,
+	  # -berok will link without error, but may produce a broken library.
+	  no_undefined_flag_GCJ=' ${wl}-bernotok'
+	  allow_undefined_flag_GCJ=' ${wl}-berok'
+	  # -bexpall does not export symbols beginning with underscore (_)
+	  always_export_symbols_GCJ=yes
+	  # Exported symbols can be pulled into shared objects from archives
+	  whole_archive_flag_spec_GCJ=' '
+	  archive_cmds_need_lc_GCJ=yes
+	  # This is similar to how AIX traditionally builds it's shared libraries.
+	  archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $compiler_flags $libobjs $deplibs ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+	fi
+      fi
+      ;;
+
+    amigaos*)
+      archive_cmds_GCJ='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs_GCJ=no
+      ;;
+
+    bsdi4*)
+      export_dynamic_flag_spec_GCJ=-rdynamic
+      ;;
+
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec_GCJ=' '
+      allow_undefined_flag_GCJ=no
+      # Tell ltmain to make .lib files, not .a files.
+      libext=lib
+      # Tell ltmain to make .dll files, not .so files.
+      shrext=".dll"
+      # FIXME: Setting linknames here is a bad hack.
+      archive_cmds_GCJ='$CC -o $lib $compiler_flags $libobjs `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
+      # The linker will automatically build a .lib file if we build a DLL.
+      old_archive_From_new_cmds_GCJ='true'
+      # FIXME: Should let the user specify the lib program.
+      old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+      fix_srcfile_path='`cygpath -w "$srcfile"`'
+      enable_shared_with_static_runtimes_GCJ=yes
+      ;;
+
+    darwin* | rhapsody*)
+    if test "$GXX" = yes ; then
+      archive_cmds_need_lc_GCJ=no
+      case "$host_os" in
+      rhapsody* | darwin1.[012])
+	allow_undefined_flag_GCJ='-Wl,-undefined -Wl,suppress'
+	;;
+      *) # Darwin 1.3 on
+	if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
+	  allow_undefined_flag_GCJ='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	else
+	  case ${MACOSX_DEPLOYMENT_TARGET} in
+	    10.012)
+	      allow_undefined_flag_GCJ='-Wl,-flat_namespace -Wl,-undefined -Wl,suppress'
+	      ;;
+	    10.*)
+	      allow_undefined_flag_GCJ='-Wl,-undefined -Wl,dynamic_lookup'
+	      ;;
+	  esac
+	fi
+	;;
+      esac
+    	lt_int_apple_cc_single_mod=no
+    	output_verbose_link_cmd='echo'
+    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
+    	  lt_int_apple_cc_single_mod=yes
+    	fi
+    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+    	  archive_cmds_GCJ='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring'
+    	else
+        archive_cmds_GCJ='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring'
+      fi
+      module_cmds_GCJ='$CC ${wl}-bind_at_load $allow_undefined_flag -o $lib -bundle $compiler_flags $libobjs $deplibs'
+      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
+        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
+          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $compiler_flags $libobjs $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        else
+          archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $compiler_flags $deplibs -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        fi
+          module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $compiler_flags $libobjs $deplibs~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+      hardcode_direct_GCJ=no
+      hardcode_automatic_GCJ=yes
+      hardcode_shlibpath_var_GCJ=unsupported
+      whole_archive_flag_spec_GCJ='-all_load $convenience'
+      link_all_deplibs_GCJ=yes
+    else
+      ld_shlibs_GCJ=no
+    fi
+      ;;
+
+    dgux*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    freebsd1*)
+      ld_shlibs_GCJ=no
+      ;;
+
+    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+    # support.  Future versions do this automatically, but an explicit c++rt0.o
+    # does not break anything, and helps significantly (at the cost of a little
+    # extra space).
+    freebsd2.2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+    freebsd2*)
+      archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+    freebsd* | kfreebsd*-gnu)
+      archive_cmds_GCJ='$CC -shared -o $lib $compiler_flags $libobjs $deplibs'
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    hpux9*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $compiler_flags $libobjs $deplibs~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      else
+	archive_cmds_GCJ='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_direct_GCJ=yes
+
+      # hardcode_minus_L: Not really in the search PATH,
+      # but as the default location of the library.
+      hardcode_minus_L_GCJ=yes
+      export_dynamic_flag_spec_GCJ='${wl}-E'
+      ;;
+
+    hpux10* | hpux11*)
+      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $compiler_flags $libobjs $deplibs'
+	  ;;
+	esac
+      else
+	case "$host_cpu" in
+	hppa*64*|ia64*)
+	  archive_cmds_GCJ='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	*)
+	  archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+	  ;;
+	esac
+      fi
+      if test "$with_gnu_ld" = no; then
+	case "$host_cpu" in
+	hppa*64*)
+	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_flag_spec_ld_GCJ='+b $libdir'
+	  hardcode_libdir_separator_GCJ=:
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+	  ;;
+	ia64*)
+	  hardcode_libdir_flag_spec_GCJ='-L$libdir'
+	  hardcode_direct_GCJ=no
+	  hardcode_shlibpath_var_GCJ=no
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	*)
+	  hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir'
+	  hardcode_libdir_separator_GCJ=:
+	  hardcode_direct_GCJ=yes
+	  export_dynamic_flag_spec_GCJ='${wl}-E'
+
+	  # hardcode_minus_L: Not really in the search PATH,
+	  # but as the default location of the library.
+	  hardcode_minus_L_GCJ=yes
+	  ;;
+	esac
+      fi
+      ;;
+
+    irix5* | irix6* | nonstopux*)
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_ld_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    netbsd*)
+      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+	archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
+      else
+	archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    newsos6)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    openbsd*)
+      hardcode_direct_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+	archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	export_dynamic_flag_spec_GCJ='${wl}-E'
+      else
+       case $host_os in
+	 openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+	   archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+	   hardcode_libdir_flag_spec_GCJ='-R$libdir'
+	   ;;
+	 *)
+	   archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $compiler_flags $libobjs $deplibs'
+	   hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+	   ;;
+       esac
+      fi
+      ;;
+
+    os2*)
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_minus_L_GCJ=yes
+      allow_undefined_flag_GCJ=unsupported
+      archive_cmds_GCJ='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $compiler_flags $libobjs $deplibs$output_objdir/$libname.def'
+      old_archive_From_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+      ;;
+
+    osf3*)
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+      fi
+      hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    osf4* | osf5*)	# as osf3* with the addition of -msym flag
+      if test "$GCC" = yes; then
+	allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*'
+	archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $compiler_flags $libobjs $deplibs ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+	hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir'
+      else
+	allow_undefined_flag_GCJ=' -expect_unresolved \*'
+	archive_cmds_GCJ='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
+	archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
+	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
+
+	# Both c and cxx compiler support -rpath directly
+	hardcode_libdir_flag_spec_GCJ='-rpath $libdir'
+      fi
+      hardcode_libdir_separator_GCJ=:
+      ;;
+
+    sco3.2v5*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='${wl}-Bexport'
+      runpath_var=LD_RUN_PATH
+      hardcode_runpath_var=yes
+      ;;
+
+    solaris*)
+      no_undefined_flag_GCJ=' -z text'
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs~$rm $lib.exp'
+      else
+	archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-R$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      case $host_os in
+      solaris2.[0-5] | solaris2.[0-5].*) ;;
+      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
+	whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
+      esac
+      link_all_deplibs_GCJ=yes
+      ;;
+
+    sunos4*)
+      if test "x$host_vendor" = xsequent; then
+	# Use $CC to link under sequent, because it throws in some extra .o
+	# files that make .init and .fini sections work.
+	archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+      fi
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=yes
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4)
+      case $host_vendor in
+	sni)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=yes # is this really true???
+	;;
+	siemens)
+	  ## LD is ld it makes a PLAMLIB
+	  ## CC just makes a GrossModule.
+	  archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+	  reload_cmds_GCJ='$CC -r -o $output$reload_objs'
+	  hardcode_direct_GCJ=no
+        ;;
+	motorola)
+	  archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	  hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie
+	;;
+      esac
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv4.3*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_shlibpath_var_GCJ=no
+      export_dynamic_flag_spec_GCJ='-Bexport'
+      ;;
+
+    sysv4*MP*)
+      if test -d /usr/nec; then
+	archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+	hardcode_shlibpath_var_GCJ=no
+	runpath_var=LD_RUN_PATH
+	hardcode_runpath_var=yes
+	ld_shlibs_GCJ=yes
+      fi
+      ;;
+
+    sysv4.2uw2*)
+      archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_direct_GCJ=yes
+      hardcode_minus_L_GCJ=no
+      hardcode_shlibpath_var_GCJ=no
+      hardcode_runpath_var=yes
+      runpath_var=LD_RUN_PATH
+      ;;
+
+   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[78]* | unixware7*)
+      no_undefined_flag_GCJ='${wl}-z ${wl}text'
+      if test "$GCC" = yes; then
+	archive_cmds_GCJ='$CC -shared ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      else
+	archive_cmds_GCJ='$CC -G ${wl}-h ${wl}$soname -o $lib $compiler_flags $libobjs $deplibs'
+      fi
+      runpath_var='LD_RUN_PATH'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    sysv5*)
+      no_undefined_flag_GCJ=' -z text'
+      # $CC -shared without GNU ld will not create a library from C++
+      # object files and a static libstdc++, better avoid it by now
+      archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      archive_expsym_cmds_GCJ='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
+  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
+      hardcode_libdir_flag_spec_GCJ=
+      hardcode_shlibpath_var_GCJ=no
+      runpath_var='LD_RUN_PATH'
+      ;;
+
+    uts4*)
+      archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+      hardcode_libdir_flag_spec_GCJ='-L$libdir'
+      hardcode_shlibpath_var_GCJ=no
+      ;;
+
+    *)
+      ld_shlibs_GCJ=no
+      ;;
+    esac
+  fi
+
+echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+echo "${ECHO_T}$ld_shlibs_GCJ" >&6
+test "$ld_shlibs_GCJ" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_GCJ" in
+x|xyes)
+  # Assume -lc should be added
+  archive_cmds_need_lc_GCJ=yes
+
+  if test "$enable_shared" = yes && test "$GCC" = yes; then
+    case $archive_cmds_GCJ in
+    *'~'*)
+      # FIXME: we may have to deal with multi-command sequences.
+      ;;
+    '$CC '*)
+      # Test whether the compiler implicitly links with -lc since on some
+      # systems, -lgcc has to come before -lc. If gcc already passes -lc
+      # to ld, don't add -lc before -lgcc.
+      echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6
+      $rm conftest*
+      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } 2>conftest.err; then
+        soname=conftest
+        lib=conftest
+        libobjs=conftest.$ac_objext
+        deplibs=
+        wl=$lt_prog_compiler_wl_GCJ
+        compiler_flags=-v
+        linker_flags=-v
+        verstring=
+        output_objdir=.
+        libname=conftest
+        lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ
+        allow_undefined_flag_GCJ=
+        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
+  (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }
+        then
+	  archive_cmds_need_lc_GCJ=no
+        else
+	  archive_cmds_need_lc_GCJ=yes
+        fi
+        allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag
+      else
+        cat conftest.err 1>&5
+      fi
+      $rm conftest*
+      echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6
+      ;;
+    esac
+  fi
+  ;;
+esac
+
+echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+  shlibpath_var=LIBPATH
+
+  # AIX 3 has no versioning support, so we append a major version to the name.
+  soname_spec='${libname}${release}${shared_ext}$major'
+  ;;
+
+aix4* | aix5*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  hardcode_into_libs=yes
+  if test "$host_cpu" = ia64; then
+    # AIX 5 supports IA64
+    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+    shlibpath_var=LD_LIBRARY_PATH
+  else
+    # With GCC up to 2.95.x, collect2 would create an import file
+    # for dependence libraries.  The import file would start with
+    # the line `#! .'.  This would cause the generated library to
+    # depend on `.', always an invalid library.  This was fixed in
+    # development snapshots of GCC prior to 3.0.
+    case $host_os in
+      aix4 | aix4.[01] | aix4.[01].*)
+      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+	   echo ' yes '
+	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
+	:
+      else
+	can_build_shared=no
+      fi
+      ;;
+    esac
+    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+    # soname into executable. Probably we can add versioning support to
+    # collect2, so additional links can be useful in future.
+    if test "$aix_use_runtimelinking" = yes; then
+      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+      # instead of lib<name>.a to let people know that these are not
+      # typical AIX shared libraries.
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    else
+      # We preserve .a as extension for shared libraries through AIX4.2
+      # and later when we are not doing run time linking.
+      library_names_spec='${libname}${release}.a $libname.a'
+      soname_spec='${libname}${release}${shared_ext}$major'
+    fi
+    shlibpath_var=LIBPATH
+  fi
+  ;;
+
+amigaos*)
+  library_names_spec='$libname.ixlibrary $libname.a'
+  # Create ${libname}_ixlibrary.a entries in /sys/libs.
+  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
+  ;;
+
+beos*)
+  library_names_spec='${libname}${shared_ext}'
+  dynamic_linker="$host_os ld.so"
+  shlibpath_var=LIBRARY_PATH
+  ;;
+
+bsdi4*)
+  version_type=linux
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+  # the default ld.so.conf also contains /usr/contrib/lib and
+  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+  # libtool to hard-code these into programs
+  ;;
+
+cygwin* | mingw* | pw32*)
+  version_type=windows
+  shrext=".dll"
+  need_version=no
+  need_lib_prefix=no
+
+  case $GCC,$host_os in
+  yes,cygwin* | yes,mingw* | yes,pw32*)
+    library_names_spec='$libname.dll.a'
+    # DLL is installed to $(libdir)/../bin by postinstall_cmds
+    postinstall_cmds='base_file=`basename \${file}`~
+      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
+      dldir=$destdir/`dirname \$dlpath`~
+      test -d \$dldir || mkdir -p \$dldir~
+      $install_prog $dir/$dlname \$dldir/$dlname'
+    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+      dlpath=$dir/\$dldll~
+       $rm \$dlpath'
+    shlibpath_overrides_runpath=yes
+
+    case $host_os in
+    cygwin*)
+      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib"
+      ;;
+    mingw*)
+      # MinGW DLLs use traditional 'lib' prefix
+      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+      if echo "$sys_lib_search_path_spec" | grep ';[c-zC-Z]:/' >/dev/null; then
+        # It is most probably a Windows format PATH printed by
+        # mingw gcc, but we are running on Cygwin. Gcc prints its search
+        # path with ; separators, and with drive letters. We can handle the
+        # drive letters (cygwin fileutils understands them), so leave them,
+        # especially as we might pass files found there to a mingw objdump,
+        # which wouldn't understand a cygwinified path. Ahh.
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+      else
+        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
+      fi
+      ;;
+    pw32*)
+      # pw32 DLLs use 'pw' prefix rather than 'lib'
+      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/./-/g'`${versuffix}${shared_ext}'
+      ;;
+    esac
+    ;;
+
+  *)
+    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+    ;;
+  esac
+  dynamic_linker='Win32 ld.exe'
+  # FIXME: first we should search . and the directory the executable is in
+  shlibpath_var=PATH
+  ;;
+
+darwin* | rhapsody*)
+  dynamic_linker="$host_os dyld"
+  version_type=darwin
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+  soname_spec='${libname}${release}${major}$shared_ext'
+  shlibpath_overrides_runpath=yes
+  shlibpath_var=DYLD_LIBRARY_PATH
+  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
+  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
+  if test "$GCC" = yes; then
+    sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
+  else
+    sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
+  fi
+  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+  ;;
+
+dgux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+freebsd1*)
+  dynamic_linker=no
+  ;;
+
+kfreebsd*-gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='GNU ld.so'
+  ;;
+
+freebsd*)
+  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
+  version_type=freebsd-$objformat
+  case $version_type in
+    freebsd-elf*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+      need_version=no
+      need_lib_prefix=no
+      ;;
+    freebsd-*)
+      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+      need_version=yes
+      ;;
+  esac
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_os in
+  freebsd2*)
+    shlibpath_overrides_runpath=yes
+    ;;
+  freebsd3.01* | freebsdelf3.01*)
+    shlibpath_overrides_runpath=yes
+    hardcode_into_libs=yes
+    ;;
+  *) # from 3.2 on
+    shlibpath_overrides_runpath=no
+    hardcode_into_libs=yes
+    ;;
+  esac
+  ;;
+
+gnu*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  hardcode_into_libs=yes
+  ;;
+
+hpux9* | hpux10* | hpux11*)
+  # Give a soname corresponding to the major version so that dld.sl refuses to
+  # link against other versions.
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  case "$host_cpu" in
+  ia64*)
+    shrext='.so'
+    hardcode_into_libs=yes
+    dynamic_linker="$host_os dld.so"
+    shlibpath_var=LD_LIBRARY_PATH
+    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    if test "X$HPUX_IA64_MODE" = X32; then
+      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+    else
+      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+    fi
+    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+    ;;
+   hppa*64*)
+     shrext='.sl'
+     hardcode_into_libs=yes
+     dynamic_linker="$host_os dld.sl"
+     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+     soname_spec='${libname}${release}${shared_ext}$major'
+     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+     ;;
+   *)
+    shrext='.sl'
+    dynamic_linker="$host_os dld.sl"
+    shlibpath_var=SHLIB_PATH
+    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    ;;
+  esac
+  # HP-UX runs *really* slowly unless shared libraries are mode 555.
+  postinstall_cmds='chmod 555 $lib'
+  ;;
+
+irix5* | irix6* | nonstopux*)
+  case $host_os in
+    nonstopux*) version_type=nonstopux ;;
+    *)
+	if test "$lt_cv_prog_gnu_ld" = yes; then
+		version_type=linux
+	else
+		version_type=irix
+	fi ;;
+  esac
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+  case $host_os in
+  irix5* | nonstopux*)
+    libsuff= shlibsuff=
+    ;;
+  *)
+    case $LD in # libtool.m4 will add one of these switches to LD
+    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+      libsuff= shlibsuff= libmagic=32-bit;;
+    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+      libsuff=32 shlibsuff=N32 libmagic=N32;;
+    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+      libsuff=64 shlibsuff=64 libmagic=64-bit;;
+    *) libsuff= shlibsuff= libmagic=never-match;;
+    esac
+    ;;
+  esac
+  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+  hardcode_into_libs=yes
+  ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+  dynamic_linker=no
+  ;;
+
+# This must be Linux ELF.
+linux*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+  libsuff=
+  if test "x$LINUX_64_MODE" = x64; then
+    # Some platforms are per default 64-bit, so there's no /lib64
+    if test -d /lib64 -a ! -h /lib64; then
+      libsuff=64
+    fi
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff}"
+  sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
+  # This implies no fast_install, which is unacceptable.
+  # Some rework will be needed to allow for fast_install
+  # before this can be enabled.
+  hardcode_into_libs=yes
+
+  # We used to test for /lib/ld.so.1 and disable shared libraries on
+  # powerpc, because MkLinux only supported shared libraries with the
+  # GNU dynamic linker.  Since this was broken with cross compilers,
+  # most powerpc-linux boxes support dynamic linking these days and
+  # people can always --disable-shared, the test was removed, and we
+  # assume the GNU/Linux dynamic linker is in use.
+  dynamic_linker='GNU/Linux ld.so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
+    soname_spec='${libname}${release}${shared_ext}$major'
+    dynamic_linker='NetBSD ld.elf_so'
+  fi
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  ;;
+
+newsos6)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+nto-qnx*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  ;;
+
+openbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+    case $host_os in
+      openbsd2.[89] | openbsd2.[89].*)
+	shlibpath_overrides_runpath=no
+	;;
+      *)
+	shlibpath_overrides_runpath=yes
+	;;
+      esac
+  else
+    shlibpath_overrides_runpath=yes
+  fi
+  ;;
+
+os2*)
+  libname_spec='$name'
+  shrext=".dll"
+  need_lib_prefix=no
+  library_names_spec='$libname${shared_ext} $libname.a'
+  dynamic_linker='OS/2 ld.exe'
+  shlibpath_var=LIBPATH
+  ;;
+
+osf3* | osf4* | osf5*)
+  version_type=osf
+  need_lib_prefix=no
+  need_version=no
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+  ;;
+
+sco3.2v5*)
+  version_type=osf
+  soname_spec='${libname}${release}${shared_ext}$major'
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+solaris*)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  hardcode_into_libs=yes
+  # ldd complains unless libraries are executable
+  postinstall_cmds='chmod +x $lib'
+  ;;
+
+sunos4*)
+  version_type=sunos
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=yes
+  if test "$with_gnu_ld" = yes; then
+    need_lib_prefix=no
+  fi
+  need_version=yes
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  case $host_vendor in
+    sni)
+      shlibpath_overrides_runpath=no
+      need_lib_prefix=no
+      export_dynamic_flag_spec='${wl}-Blargedynsym'
+      runpath_var=LD_RUN_PATH
+      ;;
+    siemens)
+      need_lib_prefix=no
+      ;;
+    motorola)
+      need_lib_prefix=no
+      need_version=no
+      shlibpath_overrides_runpath=no
+      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+      ;;
+  esac
+  ;;
+
+sysv4*MP*)
+  if test -d /usr/nec ;then
+    version_type=linux
+    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+    soname_spec='$libname${shared_ext}.$major'
+    shlibpath_var=LD_LIBRARY_PATH
+  fi
+  ;;
+
+uts4*)
+  version_type=linux
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  ;;
+
+*)
+  dynamic_linker=no
+  ;;
+esac
+echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+echo "${ECHO_T}$dynamic_linker" >&6
+test "$dynamic_linker" = no && can_build_shared=no
+
+echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6
+hardcode_action_GCJ=
+if test -n "$hardcode_libdir_flag_spec_GCJ" || \
+   test -n "$runpath_var GCJ" || \
+   test "X$hardcode_automatic_GCJ"="Xyes" ; then
+
+  # We can hardcode non-existant directories.
+  if test "$hardcode_direct_GCJ" != no &&
+     # If the only mechanism to avoid hardcoding is shlibpath_var, we
+     # have to relink, otherwise we might link with an installed library
+     # when we should be linking with a yet-to-be-installed one
+     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, GCJ)" != no &&
+     test "$hardcode_minus_L_GCJ" != no; then
+    # Linking always hardcodes the temporary library directory.
+    hardcode_action_GCJ=relink
+  else
+    # We can link without hardcoding, and we can hardcode nonexisting dirs.
+    hardcode_action_GCJ=immediate
+  fi
+else
+  # We cannot hardcode anything, or else we can only hardcode existing
+  # directories.
+  hardcode_action_GCJ=unsupported
+fi
+echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+echo "${ECHO_T}$hardcode_action_GCJ" >&6
+
+if test "$hardcode_action_GCJ" = relink; then
+  # Fast installation is not supported
+  enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+     test "$enable_shared" = no; then
+  # Fast installation is not necessary
+  enable_fast_install=needless
+fi
+
+striplib=
+old_striplib=
+echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6
+if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
+  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+  case $host_os in
+   darwin*)
+       if test -n "$STRIP" ; then
+         striplib="$STRIP -x"
+         echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+       else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+       ;;
+   *)
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    ;;
+  esac
+fi
+
+if test "x$enable_dlopen" != xyes; then
+  enable_dlopen=unknown
+  enable_dlopen_self=unknown
+  enable_dlopen_self_static=unknown
+else
+  lt_cv_dlopen=no
+  lt_cv_dlopen_libs=
+
+  case $host_os in
+  beos*)
+    lt_cv_dlopen="load_add_on"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+    ;;
+
+  mingw* | pw32*)
+    lt_cv_dlopen="LoadLibrary"
+    lt_cv_dlopen_libs=
+   ;;
+
+  cygwin*)
+    lt_cv_dlopen="dlopen"
+    lt_cv_dlopen_libs=
+   ;;
+
+  darwin*)
+  # if libdl is installed we need to link against it
+    echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+    lt_cv_dlopen="dyld"
+    lt_cv_dlopen_libs=
+    lt_cv_dlopen_self=yes
+
+fi
+
+   ;;
+
+  *)
+    echo "$as_me:$LINENO: checking for shl_load" >&5
+echo $ECHO_N "checking for shl_load... $ECHO_C" >&6
+if test "${ac_cv_func_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shl_load innocuous_shl_load
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shl_load (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shl_load
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shl_load) || defined (__stub___shl_load)
+choke me
+#else
+char (*f) () = shl_load;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shl_load;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+echo "${ECHO_T}$ac_cv_func_shl_load" >&6
+if test $ac_cv_func_shl_load = yes; then
+  lt_cv_dlopen="shl_load"
+else
+  echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_load ();
+int
+main ()
+{
+shl_load ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_load=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_load=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6
+if test $ac_cv_lib_dld_shl_load = yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+else
+  echo "$as_me:$LINENO: checking for dlopen" >&5
+echo $ECHO_N "checking for dlopen... $ECHO_C" >&6
+if test "${ac_cv_func_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define dlopen innocuous_dlopen
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char dlopen (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef dlopen
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_dlopen) || defined (__stub___dlopen)
+choke me
+#else
+char (*f) () = dlopen;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != dlopen;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+echo "${ECHO_T}$ac_cv_func_dlopen" >&6
+if test $ac_cv_func_dlopen = yes; then
+  lt_cv_dlopen="dlopen"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+  echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_svld_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_svld_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6
+if test $ac_cv_lib_svld_dlopen = yes; then
+  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+  echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dld_link ();
+int
+main ()
+{
+dld_link ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_dld_link=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_dld_link=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6
+if test $ac_cv_lib_dld_dld_link = yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+    ;;
+  esac
+
+  if test "x$lt_cv_dlopen" != xno; then
+    enable_dlopen=yes
+  else
+    enable_dlopen=no
+  fi
+
+  case $lt_cv_dlopen in
+  dlopen)
+    save_CPPFLAGS="$CPPFLAGS"
+    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+    save_LDFLAGS="$LDFLAGS"
+    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+    save_LIBS="$LIBS"
+    LIBS="$lt_cv_dlopen_libs $LIBS"
+
+    echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 20830 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self" >&6
+
+    if test "x$lt_cv_dlopen_self" = xyes; then
+      LDFLAGS="$LDFLAGS $link_static_flag"
+      echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6
+if test "${lt_cv_dlopen_self_static+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  	  if test "$cross_compiling" = yes; then :
+  lt_cv_dlopen_self_static=cross
+else
+  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+  lt_status=$lt_dlunknown
+  cat > conftest.$ac_ext <<EOF
+#line 20928 "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+#  define LT_DLGLOBAL		RTLD_GLOBAL
+#else
+#  ifdef DL_GLOBAL
+#    define LT_DLGLOBAL		DL_GLOBAL
+#  else
+#    define LT_DLGLOBAL		0
+#  endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+   find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+#  ifdef RTLD_LAZY
+#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
+#  else
+#    ifdef DL_LAZY
+#      define LT_DLLAZY_OR_NOW		DL_LAZY
+#    else
+#      ifdef RTLD_NOW
+#        define LT_DLLAZY_OR_NOW	RTLD_NOW
+#      else
+#        ifdef DL_NOW
+#          define LT_DLLAZY_OR_NOW	DL_NOW
+#        else
+#          define LT_DLLAZY_OR_NOW	0
+#        endif
+#      endif
+#    endif
+#  endif
+#endif
+
+#ifdef __cplusplus
+extern "C" void exit (int);
+#endif
+
+void fnord() { int i=42;}
+int main ()
+{
+  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+  int status = $lt_dlunknown;
+
+  if (self)
+    {
+      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
+      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+      /* dlclose (self); */
+    }
+
+    exit (status);
+}
+EOF
+  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+    (./conftest; exit; ) 2>/dev/null
+    lt_status=$?
+    case x$lt_status in
+      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+      x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;;
+    esac
+  else :
+    # compilation failed
+    lt_cv_dlopen_self_static=no
+  fi
+fi
+rm -fr conftest*
+
+
+fi
+echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6
+    fi
+
+    CPPFLAGS="$save_CPPFLAGS"
+    LDFLAGS="$save_LDFLAGS"
+    LIBS="$save_LIBS"
+    ;;
+  esac
+
+  case $lt_cv_dlopen_self in
+  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+  *) enable_dlopen_self=unknown ;;
+  esac
+
+  case $lt_cv_dlopen_self_static in
+  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+  *) enable_dlopen_self_static=unknown ;;
+  esac
+fi
+
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_GCJ \
+    CC_GCJ \
+    LD_GCJ \
+    lt_prog_compiler_wl_GCJ \
+    lt_prog_compiler_pic_GCJ \
+    lt_prog_compiler_static_GCJ \
+    lt_prog_compiler_no_builtin_flag_GCJ \
+    export_dynamic_flag_spec_GCJ \
+    thread_safe_flag_spec_GCJ \
+    whole_archive_flag_spec_GCJ \
+    enable_shared_with_static_runtimes_GCJ \
+    old_archive_cmds_GCJ \
+    old_archive_from_new_cmds_GCJ \
+    predep_objects_GCJ \
+    postdep_objects_GCJ \
+    predeps_GCJ \
+    postdeps_GCJ \
+    compiler_lib_search_path_GCJ \
+    archive_cmds_GCJ \
+    archive_expsym_cmds_GCJ \
+    postinstall_cmds_GCJ \
+    postuninstall_cmds_GCJ \
+    old_archive_from_expsyms_cmds_GCJ \
+    allow_undefined_flag_GCJ \
+    no_undefined_flag_GCJ \
+    export_symbols_cmds_GCJ \
+    hardcode_libdir_flag_spec_GCJ \
+    hardcode_libdir_flag_spec_ld_GCJ \
+    hardcode_libdir_separator_GCJ \
+    hardcode_automatic_GCJ \
+    module_cmds_GCJ \
+    module_expsym_cmds_GCJ \
+    lt_cv_prog_compiler_c_o_GCJ \
+    exclude_expsyms_GCJ \
+    include_expsyms_GCJ; do
+
+    case $var in
+    old_archive_cmds_GCJ | \
+    old_archive_from_new_cmds_GCJ | \
+    archive_cmds_GCJ | \
+    archive_expsym_cmds_GCJ | \
+    module_cmds_GCJ | \
+    module_expsym_cmds_GCJ | \
+    old_archive_from_expsyms_cmds_GCJ | \
+    export_symbols_cmds_GCJ | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_GCJ
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_GCJ
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_GCJ
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_GCJ
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_GCJ
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_GCJ
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_GCJ
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_GCJ
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_GCJ
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_GCJ
+archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_GCJ
+module_expsym_cmds=$lt_module_expsym_cmds_GCJ
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_GCJ
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_GCJ
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_GCJ
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_GCJ
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_GCJ
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_GCJ
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_GCJ
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_GCJ
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_GCJ
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_GCJ
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_GCJ
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_GCJ"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_GCJ
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_GCJ
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_GCJ
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_GCJ
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	else
+	  tagname=""
+	fi
+	;;
+
+      RC)
+
+
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+objext_RC=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="$lt_simple_compile_test_code"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Allow CC to be a program name with arguments.
+lt_save_CC="$CC"
+CC=${RC-"windres"}
+compiler=$CC
+compiler_RC=$CC
+lt_cv_prog_compiler_c_o_RC=yes
+
+# The else clause should only fire when bootstrapping the
+# libtool distribution, otherwise you forgot to ship ltmain.sh
+# with your package, and you will get complaints that there are
+# no rules to generate ltmain.sh.
+if test -f "$ltmain"; then
+  # See if we are running on zsh, and set the options which allow our commands through
+  # without removal of \ escapes.
+  if test -n "${ZSH_VERSION+set}" ; then
+    setopt NO_GLOB_SUBST
+  fi
+  # Now quote all the things that may contain metacharacters while being
+  # careful not to overquote the AC_SUBSTed values.  We take copies of the
+  # variables and quote the copies for generation of the libtool script.
+  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
+    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
+    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
+    deplibs_check_method reload_flag reload_cmds need_locks \
+    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
+    lt_cv_sys_global_symbol_to_c_name_address \
+    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
+    old_postinstall_cmds old_postuninstall_cmds \
+    compiler_RC \
+    CC_RC \
+    LD_RC \
+    lt_prog_compiler_wl_RC \
+    lt_prog_compiler_pic_RC \
+    lt_prog_compiler_static_RC \
+    lt_prog_compiler_no_builtin_flag_RC \
+    export_dynamic_flag_spec_RC \
+    thread_safe_flag_spec_RC \
+    whole_archive_flag_spec_RC \
+    enable_shared_with_static_runtimes_RC \
+    old_archive_cmds_RC \
+    old_archive_from_new_cmds_RC \
+    predep_objects_RC \
+    postdep_objects_RC \
+    predeps_RC \
+    postdeps_RC \
+    compiler_lib_search_path_RC \
+    archive_cmds_RC \
+    archive_expsym_cmds_RC \
+    postinstall_cmds_RC \
+    postuninstall_cmds_RC \
+    old_archive_from_expsyms_cmds_RC \
+    allow_undefined_flag_RC \
+    no_undefined_flag_RC \
+    export_symbols_cmds_RC \
+    hardcode_libdir_flag_spec_RC \
+    hardcode_libdir_flag_spec_ld_RC \
+    hardcode_libdir_separator_RC \
+    hardcode_automatic_RC \
+    module_cmds_RC \
+    module_expsym_cmds_RC \
+    lt_cv_prog_compiler_c_o_RC \
+    exclude_expsyms_RC \
+    include_expsyms_RC; do
+
+    case $var in
+    old_archive_cmds_RC | \
+    old_archive_from_new_cmds_RC | \
+    archive_cmds_RC | \
+    archive_expsym_cmds_RC | \
+    module_cmds_RC | \
+    module_expsym_cmds_RC | \
+    old_archive_from_expsyms_cmds_RC | \
+    export_symbols_cmds_RC | \
+    extract_expsyms_cmds | reload_cmds | finish_cmds | \
+    postinstall_cmds | postuninstall_cmds | \
+    old_postinstall_cmds | old_postuninstall_cmds | \
+    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
+      # Double-quote double-evaled strings.
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
+      ;;
+    *)
+      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
+      ;;
+    esac
+  done
+
+  case $lt_echo in
+  *'\$0 --fallback-echo"')
+    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'`
+    ;;
+  esac
+
+cfgfile="$ofile"
+
+  cat <<__EOF__ >> "$cfgfile"
+# ### BEGIN LIBTOOL TAG CONFIG: $tagname
+
+# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_RC
+
+# Whether or not to disallow shared libs when runtime libs are static
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# The host system.
+host_alias=$host_alias
+host=$host
+
+# An echo program that does not interpret backslashes.
+echo=$lt_echo
+
+# The archiver.
+AR=$lt_AR
+AR_FLAGS=$lt_AR_FLAGS
+
+# A C compiler.
+LTCC=$lt_LTCC
+
+# A language-specific compiler.
+CC=$lt_compiler_RC
+
+# Is the compiler the GNU C compiler?
+with_gcc=$GCC_RC
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# The linker used to build libraries.
+LD=$lt_LD_RC
+
+# Whether we need hard or soft links.
+LN_S=$lt_LN_S
+
+# A BSD-compatible nm program.
+NM=$lt_NM
+
+# A symbol stripping program
+STRIP=$STRIP
+
+# Used to examine libraries when file_magic_cmd begins "file"
+MAGIC_CMD=$MAGIC_CMD
+
+# Used on cygwin: DLL creation program.
+DLLTOOL="$DLLTOOL"
+
+# Used on cygwin: object dumper.
+OBJDUMP="$OBJDUMP"
+
+# Used on cygwin: assembler.
+AS="$AS"
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_RC
+
+# Object file suffix (normally "o").
+objext="$ac_objext"
+
+# Old archive suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally ".so").
+shrext='$shrext'
+
+# Executable file suffix (normally "").
+exeext="$exeext"
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_RC
+pic_mode=$pic_mode
+
+# What is the maximum length of a command?
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC
+
+# Must we lock files when doing compilation ?
+need_locks=$lt_need_locks
+
+# Do we need the lib prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_RC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC
+
+# Compiler flag to generate thread-safe objects.
+thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC
+
+# Library versioning type.
+version_type=$version_type
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names.  First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME.
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Commands used to build and install an old-style archive.
+RANLIB=$lt_RANLIB
+old_archive_cmds=$lt_old_archive_cmds_RC
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC
+
+# Commands used to build and install a shared archive.
+archive_cmds=$lt_archive_cmds_RC
+archive_expsym_cmds=$lt_archive_expsym_cmds_RC
+postinstall_cmds=$lt_postinstall_cmds
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to build a loadable module (assumed same as above if empty)
+module_cmds=$lt_module_cmds_RC
+module_expsym_cmds=$lt_module_expsym_cmds_RC
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predep_objects=$lt_predep_objects_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdep_objects=$lt_postdep_objects_RC
+
+# Dependencies to place before the objects being linked to create a
+# shared library.
+predeps=$lt_predeps_RC
+
+# Dependencies to place after the objects being linked to create a
+# shared library.
+postdeps=$lt_postdeps_RC
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method == file_magic.
+file_magic_cmd=$lt_file_magic_cmd
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_RC
+
+# Flag that forces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_RC
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# Same as above, but a single script fragment to be evaled but not shown.
+finish_eval=$lt_finish_eval
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm in a C name address pair
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# This is the shared library runtime path variable.
+runpath_var=$runpath_var
+
+# This is the shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_RC
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC
+
+# If ld is used when linking, flag to hardcode \$libdir into
+# a binary during linking. This must work even if \$libdir does
+# not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC
+
+# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct=$hardcode_direct_RC
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L=$hardcode_minus_L_RC
+
+# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
+# the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_RC
+
+# Set to yes if building a shared library automatically hardcodes DIR into the library
+# and all subsequent libraries and executables linked against it.
+hardcode_automatic=$hardcode_automatic_RC
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at relink time.
+variables_saved_for_relink="$variables_saved_for_relink"
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_RC
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
+
+# Fix the shell variable \$srcfile for the compiler.
+fix_srcfile_path="$fix_srcfile_path_RC"
+
+# Set to yes if exported symbols are required.
+always_export_symbols=$always_export_symbols_RC
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_RC
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_RC
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_RC
+
+# ### END LIBTOOL TAG CONFIG: $tagname
+
+__EOF__
+
+
+else
+  # If there is no Makefile yet, we rely on a make rule to execute
+  # `config.status --recheck' to rerun these tests and create the
+  # libtool script then.
+  test -f Makefile && make "$ltmain"
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+	;;
+
+      *)
+	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+   { (exit 1); exit 1; }; }
+	;;
+      esac
+
+      # Append the new tag name to the list of available tags.
+      if test -n "$tagname" ; then
+      available_tags="$available_tags $tagname"
+    fi
+    fi
+  done
+  IFS="$lt_save_ifs"
+
+  # Now substitute the updated list of available tags.
+  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
+    mv "${ofile}T" "$ofile"
+    chmod +x "$ofile"
+  else
+    rm -f "${ofile}T"
+    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+fi
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool --silent'
+
+# Prevent multiple expansion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+LIBTOOL_SHELL="/bin/sh ./libtool"
+#  LIBTOOL="$LIBTOOL --silent"
+KDE_PLUGIN="-avoid-version -module -no-undefined \$(KDE_NO_UNDEFINED) \$(KDE_RPATH) \$(KDE_MT_LDFLAGS)"
+
+
+# This hack ensures that libtool creates shared libs for kunittest plugins. By default check_LTLIBRARIES makes static libs.
+KDE_CHECK_PLUGIN="\$(KDE_PLUGIN) -rpath \$(libdir)"
+
+
+# we patch configure quite some so we better keep that consistent for incremental runs
+AUTOCONF='$(SHELL) $(top_srcdir)/admin/cvs.sh configure || touch configure'
+
+
+
+
+
+    # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_MSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -n "`$ac_dir/$ac_word --version 2>&1 | grep 'GNU gettext'`"; then
+	ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+    # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_GMSGFMT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+
+if test -n "$GMSGFMT"; then
+  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+     if test -z "`$GMSGFMT --version 2>&1 | grep 'GNU gettext'`"; then
+        echo "$as_me:$LINENO: result: found msgfmt program is not GNU msgfmt; ignore it" >&5
+echo "${ECHO_T}found msgfmt program is not GNU msgfmt; ignore it" >&6
+        GMSGFMT=":"
+      fi
+      MSGFMT=$GMSGFMT
+
+
+
+      # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_XGETTEXT+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+	ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+
+            if test "$XGETTEXT" != ":"; then
+			if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+	  : ;
+	else
+	  echo "$as_me:$LINENO: result: found xgettext programs is not GNU xgettext; ignore it" >&5
+echo "${ECHO_T}found xgettext programs is not GNU xgettext; ignore it" >&6
+	  XGETTEXT=":"
+	fi
+      fi
+
+
+
+
+
+if test -z "3"; then
+  # Current default Qt version: 3.3
+  kde_qtver=3
+  kde_qtsubver=3
+else
+  kde_qtsubver=`echo "3" | sed -e 's#[0-9][0-9]*\.\([0-9][0-9]*\).*#\1#'`
+  # following is the check if subversion isnt found in passed argument
+  if test "$kde_qtsubver" = "3"; then
+    kde_qtsubver=1
+  fi
+  kde_qtver=`echo "3" | sed -e 's#^\([0-9][0-9]*\)\..*#\1#'`
+  if test "$kde_qtver" = "1"; then
+    kde_qtsubver=42
+  fi
+fi
+
+if test -z ""; then
+  if test "$kde_qtver" = "2"; then
+    if test $kde_qtsubver -gt 0; then
+      kde_qt_minversion=">= Qt 2.2.2"
+    else
+      kde_qt_minversion=">= Qt 2.0.2"
+    fi
+  fi
+  if test "$kde_qtver" = "3"; then
+    if test $kde_qtsubver -gt 0; then
+	 if test $kde_qtsubver -gt 1; then
+	    if test $kde_qtsubver -gt 2; then
+		kde_qt_minversion=">= Qt 3.3 and < 4.0"
+	    else
+	        kde_qt_minversion=">= Qt 3.2 and < 4.0"
+	    fi
+	 else
+            kde_qt_minversion=">= Qt 3.1 (20021021) and < 4.0"
+         fi
+    else
+      kde_qt_minversion=">= Qt 3.0 and < 4.0"
+    fi
+  fi
+  if test "$kde_qtver" = "1"; then
+    kde_qt_minversion=">= 1.42 and < 2.0"
+  fi
+else
+   kde_qt_minversion=""
+fi
+
+if test -z ""; then
+   if test $kde_qtver = 3; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 0x03 at VER@00 && QT_VERSION < 0x040000"
+       qtsubver=`echo "00$kde_qtsubver" | sed -e 's,.*\(..\)$,\1,'`
+       kde_qt_verstring=`echo $kde_qt_verstring | sed -e "s, at VER@,$qtsubver,"`
+     else
+       kde_qt_verstring="QT_VERSION >= 300 && QT_VERSION < 0x040000"
+     fi
+   fi
+   if test $kde_qtver = 2; then
+     if test $kde_qtsubver -gt 0; then
+       kde_qt_verstring="QT_VERSION >= 222"
+     else
+       kde_qt_verstring="QT_VERSION >= 200"
+     fi
+   fi
+   if test $kde_qtver = 1; then
+    kde_qt_verstring="QT_VERSION >= 142 && QT_VERSION < 200"
+   fi
+else
+   kde_qt_verstring=""
+fi
+
+if test $kde_qtver = 4; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt4 /usr/lib/qt /usr/share/qt4"
+fi
+if test $kde_qtver = 3; then
+  kde_qt_dirs="$QTDIR /usr/lib/qt3 /usr/lib/qt /usr/share/qt3"
+fi
+if test $kde_qtver = 2; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt2 /usr/lib/qt"
+fi
+if test $kde_qtver = 1; then
+   kde_qt_dirs="$QTDIR /usr/lib/qt"
+fi
+
+
+
+
+     ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+    ac_save_CXXFLAGS="$CXXFLAGS"
+    CXXFLAGS="`echo $CXXFLAGS | sed s/-fno-exceptions//`"
+
+    echo "$as_me:$LINENO: checking if C++ programs can be compiled" >&5
+echo $ECHO_N "checking if C++ programs can be compiled... $ECHO_C" >&6
+    if test "${kde_cv_stl_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <string>
+using namespace std;
+
+int
+main ()
+{
+
+  string astring="Hallo Welt.";
+  astring.erase(0, 6); // now astring is "Welt"
+  return 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_stl_works=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_stl_works=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+
+   echo "$as_me:$LINENO: result: $kde_cv_stl_works" >&5
+echo "${ECHO_T}$kde_cv_stl_works" >&6
+
+   if test "$kde_cv_stl_works" = "yes"; then
+     # back compatible
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SGI_STL 1
+_ACEOF
+
+   else
+	 { { echo "$as_me:$LINENO: error: Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similar to libstdc++-dev." >&5
+echo "$as_me: error: Your Installation isn't able to compile simple C++ programs.
+Check config.log for details - if you're using a Linux distribution you might miss
+a package named similar to libstdc++-dev." >&2;}
+   { (exit 1); exit 1; }; }
+   fi
+
+   CXXFLAGS="$ac_save_CXXFLAGS"
+   ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
+echo "$as_me:$LINENO: checking for strlcat" >&5
+echo $ECHO_N "checking for strlcat... $ECHO_C" >&6
+if test "${kde_cv_func_strlcat+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <string.h>
+
+
+int
+main ()
+{
+
+ char buf[20];
+  buf[0]='\0';
+  strlcat(buf, "KDE function test", sizeof(buf));
+
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_func_strlcat=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_func_strlcat=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_cv_func_strlcat" >&5
+echo "${ECHO_T}$kde_cv_func_strlcat" >&6
+
+echo "$as_me:$LINENO: checking if strlcat needs custom prototype" >&5
+echo $ECHO_N "checking if strlcat needs custom prototype... $ECHO_C" >&6
+if test "${kde_cv_proto_strlcat+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x$kde_cv_func_strlcat" = xyes; then
+  kde_cv_proto_strlcat=no
+else
+  case "strlcat" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_strlcat="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_strlcat=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_strlcat" = xunknown; then
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <string.h>
+
+
+extern "C" unsigned long strlcat(char*, const char*, unsigned long);
+
+int
+main ()
+{
+
+ char buf[20];
+  buf[0]='\0';
+  strlcat(buf, "KDE function test", sizeof(buf));
+
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+   kde_cv_func_strlcat=yes
+  kde_cv_proto_strlcat=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_proto_strlcat="strlcat unavailable"
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$kde_safe_libs
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+
+fi
+
+echo "$as_me:$LINENO: result: $kde_cv_proto_strlcat" >&5
+echo "${ECHO_T}$kde_cv_proto_strlcat" >&6
+
+if test "x$kde_cv_func_strlcat" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRLCAT 1
+_ACEOF
+
+
+fi
+if test "x$kde_cv_proto_strlcat" = xno; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRLCAT_PROTO 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+echo "$as_me:$LINENO: checking for strlcpy" >&5
+echo $ECHO_N "checking for strlcpy... $ECHO_C" >&6
+if test "${kde_cv_func_strlcpy+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <string.h>
+
+
+int
+main ()
+{
+
+ char buf[20];
+  strlcpy(buf, "KDE function test", sizeof(buf));
+
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_func_strlcpy=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_func_strlcpy=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_cv_func_strlcpy" >&5
+echo "${ECHO_T}$kde_cv_func_strlcpy" >&6
+
+echo "$as_me:$LINENO: checking if strlcpy needs custom prototype" >&5
+echo $ECHO_N "checking if strlcpy needs custom prototype... $ECHO_C" >&6
+if test "${kde_cv_proto_strlcpy+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x$kde_cv_func_strlcpy" = xyes; then
+  kde_cv_proto_strlcpy=no
+else
+  case "strlcpy" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_strlcpy="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_strlcpy=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_strlcpy" = xunknown; then
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <string.h>
+
+
+extern "C" unsigned long strlcpy(char*, const char*, unsigned long);
+
+int
+main ()
+{
+
+ char buf[20];
+  strlcpy(buf, "KDE function test", sizeof(buf));
+
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+   kde_cv_func_strlcpy=yes
+  kde_cv_proto_strlcpy=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_proto_strlcpy="strlcpy unavailable"
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$kde_safe_libs
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+
+fi
+
+echo "$as_me:$LINENO: result: $kde_cv_proto_strlcpy" >&5
+echo "${ECHO_T}$kde_cv_proto_strlcpy" >&6
+
+if test "x$kde_cv_func_strlcpy" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRLCPY 1
+_ACEOF
+
+
+fi
+if test "x$kde_cv_proto_strlcpy" = xno; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_STRLCPY_PROTO 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+      echo "$as_me:$LINENO: checking for main in -lutil" >&5
+echo $ECHO_N "checking for main in -lutil... $ECHO_C" >&6
+if test "${ac_cv_lib_util_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lutil  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_util_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_util_main=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_util_main" >&5
+echo "${ECHO_T}$ac_cv_lib_util_main" >&6
+if test $ac_cv_lib_util_main = yes; then
+  LIBUTIL="-lutil"
+fi
+
+   echo "$as_me:$LINENO: checking for main in -lcompat" >&5
+echo $ECHO_N "checking for main in -lcompat... $ECHO_C" >&6
+if test "${ac_cv_lib_compat_main+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcompat  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+main ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_compat_main=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_compat_main=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_compat_main" >&5
+echo "${ECHO_T}$ac_cv_lib_compat_main" >&6
+if test $ac_cv_lib_compat_main = yes; then
+  LIBCOMPAT="-lcompat"
+fi
+
+   kde_have_crypt=
+   echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
+if test "${ac_cv_lib_crypt_crypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcrypt  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char crypt ();
+int
+main ()
+{
+crypt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_crypt_crypt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_crypt_crypt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
+if test $ac_cv_lib_crypt_crypt = yes; then
+  LIBCRYPT="-lcrypt"; kde_have_crypt=yes
+else
+  echo "$as_me:$LINENO: checking for crypt in -lc" >&5
+echo $ECHO_N "checking for crypt in -lc... $ECHO_C" >&6
+if test "${ac_cv_lib_c_crypt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char crypt ();
+int
+main ()
+{
+crypt ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_c_crypt=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_c_crypt=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_c_crypt" >&5
+echo "${ECHO_T}$ac_cv_lib_c_crypt" >&6
+if test $ac_cv_lib_c_crypt = yes; then
+  kde_have_crypt=yes
+else
+
+        { echo "$as_me:$LINENO: WARNING: you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support" >&5
+echo "$as_me: WARNING: you have no crypt in either libcrypt or libc.
+You should install libcrypt from another source or configure with PAM
+support" >&2;}
+	kde_have_crypt=no
+
+fi
+
+fi
+
+
+   if test $kde_have_crypt = yes; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_CRYPT 1
+_ACEOF
+
+   fi
+
+   echo "$as_me:$LINENO: checking for socklen_t" >&5
+echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6
+   if test "${kde_cv_socklen_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+      ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+      kde_cv_socklen_t=no
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+         #include <sys/types.h>
+         #include <sys/socket.h>
+
+int
+main ()
+{
+
+         socklen_t len;
+         getpeername(0,0,&len);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+         kde_cv_socklen_t=yes
+         kde_cv_socklen_t_equiv=socklen_t
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+      ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+   echo "$as_me:$LINENO: result: $kde_cv_socklen_t" >&5
+echo "${ECHO_T}$kde_cv_socklen_t" >&6
+   if test $kde_cv_socklen_t = no; then
+      echo "$as_me:$LINENO: checking for socklen_t equivalent for socket functions" >&5
+echo $ECHO_N "checking for socklen_t equivalent for socket functions... $ECHO_C" >&6
+      if test "${kde_cv_socklen_t_equiv+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+         kde_cv_socklen_t_equiv=int
+         ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+         for t in int size_t unsigned long "unsigned long"; do
+            cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+               #include <sys/types.h>
+               #include <sys/socket.h>
+
+int
+main ()
+{
+
+               $t len;
+               getpeername(0,0,&len);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+               kde_cv_socklen_t_equiv="$t"
+               break
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+         done
+         ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+      echo "$as_me:$LINENO: result: $kde_cv_socklen_t_equiv" >&5
+echo "${ECHO_T}$kde_cv_socklen_t_equiv" >&6
+   fi
+
+cat >>confdefs.h <<_ACEOF
+#define kde_socklen_t $kde_cv_socklen_t_equiv
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define ksize_t $kde_cv_socklen_t_equiv
+_ACEOF
+
+
+   echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dnet_dnet_ntoa=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dnet_dnet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_dnet_ntoa = yes; then
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+fi
+
+   if test $ac_cv_lib_dnet_dnet_ntoa = no; then
+      echo "$as_me:$LINENO: checking for dnet_ntoa in -ldnet_stub" >&5
+echo $ECHO_N "checking for dnet_ntoa in -ldnet_stub... $ECHO_C" >&6
+if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldnet_stub  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dnet_ntoa ();
+int
+main ()
+{
+dnet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dnet_stub_dnet_ntoa=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dnet_stub_dnet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_dnet_stub_dnet_ntoa" >&6
+if test $ac_cv_lib_dnet_stub_dnet_ntoa = yes; then
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+fi
+
+   fi
+   echo "$as_me:$LINENO: checking for inet_ntoa" >&5
+echo $ECHO_N "checking for inet_ntoa... $ECHO_C" >&6
+if test "${ac_cv_func_inet_ntoa+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define inet_ntoa to an innocuous variant, in case <limits.h> declares inet_ntoa.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define inet_ntoa innocuous_inet_ntoa
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char inet_ntoa (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef inet_ntoa
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_ntoa ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_inet_ntoa) || defined (__stub___inet_ntoa)
+choke me
+#else
+char (*f) () = inet_ntoa;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != inet_ntoa;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_inet_ntoa=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_inet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_inet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_func_inet_ntoa" >&6
+
+   if test $ac_cv_func_inet_ntoa = no; then
+     echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5
+echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6
+if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lnsl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_ntoa ();
+int
+main ()
+{
+inet_ntoa ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_nsl_inet_ntoa=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_nsl_inet_ntoa=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5
+echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6
+if test $ac_cv_lib_nsl_inet_ntoa = yes; then
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+fi
+
+   fi
+   echo "$as_me:$LINENO: checking for connect" >&5
+echo $ECHO_N "checking for connect... $ECHO_C" >&6
+if test "${ac_cv_func_connect+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define connect to an innocuous variant, in case <limits.h> declares connect.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define connect innocuous_connect
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char connect (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef connect
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char connect ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_connect) || defined (__stub___connect)
+choke me
+#else
+char (*f) () = connect;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != connect;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_connect=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_connect=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_connect" >&5
+echo "${ECHO_T}$ac_cv_func_connect" >&6
+
+   if test $ac_cv_func_connect = no; then
+      echo "$as_me:$LINENO: checking for connect in -lsocket" >&5
+echo $ECHO_N "checking for connect in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_connect+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char connect ();
+int
+main ()
+{
+connect ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_socket_connect=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_connect=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_connect" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_connect" >&6
+if test $ac_cv_lib_socket_connect = yes; then
+  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
+fi
+
+   fi
+
+   echo "$as_me:$LINENO: checking for remove" >&5
+echo $ECHO_N "checking for remove... $ECHO_C" >&6
+if test "${ac_cv_func_remove+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define remove to an innocuous variant, in case <limits.h> declares remove.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define remove innocuous_remove
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char remove (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef remove
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char remove ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_remove) || defined (__stub___remove)
+choke me
+#else
+char (*f) () = remove;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != remove;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_remove=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_remove=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_remove" >&5
+echo "${ECHO_T}$ac_cv_func_remove" >&6
+
+   if test $ac_cv_func_remove = no; then
+      echo "$as_me:$LINENO: checking for remove in -lposix" >&5
+echo $ECHO_N "checking for remove in -lposix... $ECHO_C" >&6
+if test "${ac_cv_lib_posix_remove+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lposix  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char remove ();
+int
+main ()
+{
+remove ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_posix_remove=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_posix_remove=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_posix_remove" >&5
+echo "${ECHO_T}$ac_cv_lib_posix_remove" >&6
+if test $ac_cv_lib_posix_remove = yes; then
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+fi
+
+   fi
+
+   # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+   echo "$as_me:$LINENO: checking for shmat" >&5
+echo $ECHO_N "checking for shmat... $ECHO_C" >&6
+if test "${ac_cv_func_shmat+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define shmat to an innocuous variant, in case <limits.h> declares shmat.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define shmat innocuous_shmat
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shmat (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef shmat
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shmat ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shmat) || defined (__stub___shmat)
+choke me
+#else
+char (*f) () = shmat;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != shmat;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func_shmat=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func_shmat=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func_shmat" >&5
+echo "${ECHO_T}$ac_cv_func_shmat" >&6
+if test $ac_cv_func_shmat = yes; then
+  :
+else
+  echo "$as_me:$LINENO: checking for shmat in -lipc" >&5
+echo $ECHO_N "checking for shmat in -lipc... $ECHO_C" >&6
+if test "${ac_cv_lib_ipc_shmat+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lipc  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shmat ();
+int
+main ()
+{
+shmat ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_ipc_shmat=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_ipc_shmat=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ipc_shmat" >&5
+echo "${ECHO_T}$ac_cv_lib_ipc_shmat" >&6
+if test $ac_cv_lib_ipc_shmat = yes; then
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+fi
+
+fi
+
+
+   # more headers that need to be explicitly included on darwin
+
+
+for ac_header in sys/types.h stdint.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+   # sys/bitypes.h is needed for uint32_t and friends on Tru64
+
+for ac_header in sys/bitypes.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+   # darwin requires a poll emulation library
+   echo "$as_me:$LINENO: checking for poll in -lpoll" >&5
+echo $ECHO_N "checking for poll in -lpoll... $ECHO_C" >&6
+if test "${ac_cv_lib_poll_poll+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpoll  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char poll ();
+int
+main ()
+{
+poll ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_poll_poll=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_poll_poll=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_poll_poll" >&5
+echo "${ECHO_T}$ac_cv_lib_poll_poll" >&6
+if test $ac_cv_lib_poll_poll = yes; then
+  LIB_POLL="-lpoll"
+fi
+
+
+   # for some image handling on Mac OS X
+
+for ac_header in Carbon/Carbon.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+   # CoreAudio framework
+   if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then
+  echo "$as_me:$LINENO: checking for CoreAudio/CoreAudio.h" >&5
+echo $ECHO_N "checking for CoreAudio/CoreAudio.h... $ECHO_C" >&6
+if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_CoreAudio_CoreAudio_h" >&5
+echo "${ECHO_T}$ac_cv_header_CoreAudio_CoreAudio_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking CoreAudio/CoreAudio.h usability" >&5
+echo $ECHO_N "checking CoreAudio/CoreAudio.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <CoreAudio/CoreAudio.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking CoreAudio/CoreAudio.h presence" >&5
+echo $ECHO_N "checking CoreAudio/CoreAudio.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <CoreAudio/CoreAudio.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: CoreAudio/CoreAudio.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: CoreAudio/CoreAudio.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for CoreAudio/CoreAudio.h" >&5
+echo $ECHO_N "checking for CoreAudio/CoreAudio.h... $ECHO_C" >&6
+if test "${ac_cv_header_CoreAudio_CoreAudio_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_CoreAudio_CoreAudio_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_CoreAudio_CoreAudio_h" >&5
+echo "${ECHO_T}$ac_cv_header_CoreAudio_CoreAudio_h" >&6
+
+fi
+if test $ac_cv_header_CoreAudio_CoreAudio_h = yes; then
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_COREAUDIO 1
+_ACEOF
+
+     FRAMEWORK_COREAUDIO="-Wl,-framework,CoreAudio"
+
+fi
+
+
+
+
+  echo "$as_me:$LINENO: checking if res_init needs -lresolv" >&5
+echo $ECHO_N "checking if res_init needs -lresolv... $ECHO_C" >&6
+  kde_libs_safe="$LIBS"
+  LIBS="$LIBS $X_EXTRA_LIBS -lresolv"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+int
+main ()
+{
+
+      res_init();
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+      LIBRESOLV="-lresolv"
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RES_INIT 1
+_ACEOF
+
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  LIBS=$kde_libs_safe
+
+
+
+echo "$as_me:$LINENO: checking for res_init" >&5
+echo $ECHO_N "checking for res_init... $ECHO_C" >&6
+if test "${kde_cv_func_res_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+save_CXXFLAGS="$CXXFLAGS"
+kde_safe_LIBS="$LIBS"
+LIBS="$LIBS $X_EXTRA_LIBS"
+if test "$GXX" = "yes"; then
+CXXFLAGS="$CXXFLAGS -pedantic-errors"
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+
+int
+main ()
+{
+
+res_init()
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_func_res_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_func_res_init=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+CXXFLAGS="$save_CXXFLAGS"
+LIBS="$kde_safe_LIBS"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_cv_func_res_init" >&5
+echo "${ECHO_T}$kde_cv_func_res_init" >&6
+
+echo "$as_me:$LINENO: checking if res_init needs custom prototype" >&5
+echo $ECHO_N "checking if res_init needs custom prototype... $ECHO_C" >&6
+if test "${kde_cv_proto_res_init+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "x$kde_cv_func_res_init" = xyes; then
+  kde_cv_proto_res_init=no
+else
+  case "res_init" in
+	setenv|unsetenv|usleep|random|srandom|seteuid|mkstemps|mkstemp|revoke|vsnprintf|strlcpy|strlcat)
+		kde_cv_proto_res_init="yes - in libkdefakes"
+		;;
+	*)
+		kde_cv_proto_res_init=unknown
+		;;
+  esac
+fi
+
+if test "x$kde_cv_proto_res_init" = xunknown; then
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  kde_safe_libs=$LIBS
+  LIBS="$LIBS $X_EXTRA_LIBS"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+
+#include <sys/types.h>
+#include <netinet/in.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+
+
+extern "C" int res_init(void);
+
+int
+main ()
+{
+
+res_init()
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+   kde_cv_func_res_init=yes
+  kde_cv_proto_res_init=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_proto_res_init="res_init unavailable"
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$kde_safe_libs
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+
+fi
+
+echo "$as_me:$LINENO: result: $kde_cv_proto_res_init" >&5
+echo "${ECHO_T}$kde_cv_proto_res_init" >&6
+
+if test "x$kde_cv_func_res_init" = xyes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RES_INIT 1
+_ACEOF
+
+
+fi
+if test "x$kde_cv_proto_res_init" = xno; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_RES_INIT_PROTO 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+   LIBSOCKET="$X_EXTRA_LIBS"
+
+
+   echo "$as_me:$LINENO: checking for killpg in -lucb" >&5
+echo $ECHO_N "checking for killpg in -lucb... $ECHO_C" >&6
+if test "${ac_cv_lib_ucb_killpg+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lucb  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char killpg ();
+int
+main ()
+{
+killpg ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_ucb_killpg=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_ucb_killpg=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ucb_killpg" >&5
+echo "${ECHO_T}$ac_cv_lib_ucb_killpg" >&6
+if test $ac_cv_lib_ucb_killpg = yes; then
+  LIBUCB="-lucb"
+fi
+
+
+   case $host in     *-*-lynxos* )
+        echo "$as_me:$LINENO: checking LynxOS header file wrappers" >&5
+echo $ECHO_N "checking LynxOS header file wrappers... $ECHO_C" >&6
+        CFLAGS="$CFLAGS -D__NO_INCLUDE_WARN__"
+        echo "$as_me:$LINENO: result: disabled" >&5
+echo "${ECHO_T}disabled" >&6
+        echo "$as_me:$LINENO: checking for gethostbyname in -lbsd" >&5
+echo $ECHO_N "checking for gethostbyname in -lbsd... $ECHO_C" >&6
+if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lbsd  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char gethostbyname ();
+int
+main ()
+{
+gethostbyname ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_bsd_gethostbyname=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_bsd_gethostbyname=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_gethostbyname" >&5
+echo "${ECHO_T}$ac_cv_lib_bsd_gethostbyname" >&6
+if test $ac_cv_lib_bsd_gethostbyname = yes; then
+  LIBSOCKET="-lbsd"
+fi
+          ;;
+    esac
+
+     echo "$as_me:$LINENO: checking for int" >&5
+echo $ECHO_N "checking for int... $ECHO_C" >&6
+if test "${ac_cv_type_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((int *) 0)
+  return 0;
+if (sizeof (int))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_int=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_int=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5
+echo "${ECHO_T}$ac_cv_type_int" >&6
+
+echo "$as_me:$LINENO: checking size of int" >&5
+echo $ECHO_N "checking size of int... $ECHO_C" >&6
+if test "${ac_cv_sizeof_int+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_int" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_int=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (int)); }
+unsigned long ulongval () { return (long) (sizeof (int)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (int))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (int))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_int=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (int), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_int=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_INT $ac_cv_sizeof_int
+_ACEOF
+
+   echo "$as_me:$LINENO: checking for short" >&5
+echo $ECHO_N "checking for short... $ECHO_C" >&6
+if test "${ac_cv_type_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((short *) 0)
+  return 0;
+if (sizeof (short))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_short=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_short=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5
+echo "${ECHO_T}$ac_cv_type_short" >&6
+
+echo "$as_me:$LINENO: checking size of short" >&5
+echo $ECHO_N "checking size of short... $ECHO_C" >&6
+if test "${ac_cv_sizeof_short+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_short" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_short=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (short)); }
+unsigned long ulongval () { return (long) (sizeof (short)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (short))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (short))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_short=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (short), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_short=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
+echo "${ECHO_T}$ac_cv_sizeof_short" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SHORT $ac_cv_sizeof_short
+_ACEOF
+
+  echo "$as_me:$LINENO: checking for long" >&5
+echo $ECHO_N "checking for long... $ECHO_C" >&6
+if test "${ac_cv_type_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((long *) 0)
+  return 0;
+if (sizeof (long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5
+echo "${ECHO_T}$ac_cv_type_long" >&6
+
+echo "$as_me:$LINENO: checking size of long" >&5
+echo $ECHO_N "checking size of long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (long)); }
+unsigned long ulongval () { return (long) (sizeof (long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_LONG $ac_cv_sizeof_long
+_ACEOF
+
+  echo "$as_me:$LINENO: checking for char *" >&5
+echo $ECHO_N "checking for char *... $ECHO_C" >&6
+if test "${ac_cv_type_char_p+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((char * *) 0)
+  return 0;
+if (sizeof (char *))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_char_p=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_char_p=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_char_p" >&5
+echo "${ECHO_T}$ac_cv_type_char_p" >&6
+
+echo "$as_me:$LINENO: checking size of char *" >&5
+echo $ECHO_N "checking size of char *... $ECHO_C" >&6
+if test "${ac_cv_sizeof_char_p+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_char_p" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char *))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char *))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (char *))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_char_p=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (char *), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (char *)); }
+unsigned long ulongval () { return (long) (sizeof (char *)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (char *))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (char *))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (char *))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_char_p=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (char *), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (char *), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_char_p=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_char_p" >&5
+echo "${ECHO_T}$ac_cv_sizeof_char_p" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_CHAR_P $ac_cv_sizeof_char_p
+_ACEOF
+
+
+
+echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char dlopen ();
+int
+main ()
+{
+dlopen ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dl_dlopen=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dl_dlopen=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6
+if test $ac_cv_lib_dl_dlopen = yes; then
+
+LIBDL="-ldl"
+ac_cv_have_dlfcn=yes
+
+fi
+
+
+echo "$as_me:$LINENO: checking for shl_unload in -ldld" >&5
+echo $ECHO_N "checking for shl_unload in -ldld... $ECHO_C" >&6
+if test "${ac_cv_lib_dld_shl_unload+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char shl_unload ();
+int
+main ()
+{
+shl_unload ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_dld_shl_unload=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_dld_shl_unload=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_unload" >&5
+echo "${ECHO_T}$ac_cv_lib_dld_shl_unload" >&6
+if test $ac_cv_lib_dld_shl_unload = yes; then
+
+LIBDL="-ldld"
+ac_cv_have_shload=yes
+
+fi
+
+
+
+
+
+
+
+  echo "$as_me:$LINENO: checking for size_t" >&5
+echo $ECHO_N "checking for size_t... $ECHO_C" >&6
+if test "${ac_cv_type_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((size_t *) 0)
+  return 0;
+if (sizeof (size_t))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_size_t=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_size_t=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+echo "${ECHO_T}$ac_cv_type_size_t" >&6
+
+echo "$as_me:$LINENO: checking size of size_t" >&5
+echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
+if test "${ac_cv_sizeof_size_t+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_size_t" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (size_t))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_size_t=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (size_t)); }
+unsigned long ulongval () { return (long) (sizeof (size_t)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (size_t))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (size_t))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (size_t))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_size_t=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (size_t), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_size_t=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5
+echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
+_ACEOF
+
+
+  echo "$as_me:$LINENO: checking for unsigned long" >&5
+echo $ECHO_N "checking for unsigned long... $ECHO_C" >&6
+if test "${ac_cv_type_unsigned_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+if ((unsigned long *) 0)
+  return 0;
+if (sizeof (unsigned long))
+  return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_type_unsigned_long=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_type_unsigned_long=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long" >&5
+echo "${ECHO_T}$ac_cv_type_unsigned_long" >&6
+
+echo "$as_me:$LINENO: checking size of unsigned long" >&5
+echo $ECHO_N "checking size of unsigned long... $ECHO_C" >&6
+if test "${ac_cv_sizeof_unsigned_long+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test "$ac_cv_type_unsigned_long" = yes; then
+  # The cast to unsigned long works around a bug in the HP C Compiler
+  # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
+  # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
+  # This bug is HP SR number 8606223364.
+  if test "$cross_compiling" = yes; then
+  # Depending upon the size, compute the lo and hi bounds.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (unsigned long))) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (unsigned long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr $ac_mid + 1`
+		    if test $ac_lo -le $ac_mid; then
+		      ac_lo= ac_hi=
+		      break
+		    fi
+		    ac_mid=`expr 2 '*' $ac_mid + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (unsigned long))) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (unsigned long))) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_lo=$ac_mid; break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_hi=`expr '(' $ac_mid ')' - 1`
+		       if test $ac_mid -le $ac_hi; then
+			 ac_lo= ac_hi=
+			 break
+		       fi
+		       ac_mid=`expr 2 '*' $ac_mid`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo= ac_hi=
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(((long) (sizeof (unsigned long))) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_hi=$ac_mid
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_lo=`expr '(' $ac_mid ')' + 1`
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in
+?*) ac_cv_sizeof_unsigned_long=$ac_lo;;
+'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (unsigned long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; } ;;
+esac
+else
+  if test "$cross_compiling" = yes; then
+  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot run test program while cross compiling
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+long longval () { return (long) (sizeof (unsigned long)); }
+unsigned long ulongval () { return (long) (sizeof (unsigned long)); }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    exit (1);
+  if (((long) (sizeof (unsigned long))) < 0)
+    {
+      long i = longval ();
+      if (i != ((long) (sizeof (unsigned long))))
+	exit (1);
+      fprintf (f, "%ld\n", i);
+    }
+  else
+    {
+      unsigned long i = ulongval ();
+      if (i != ((long) (sizeof (unsigned long))))
+	exit (1);
+      fprintf (f, "%lu\n", i);
+    }
+  exit (ferror (f) || fclose (f) != 0);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_sizeof_unsigned_long=`cat conftest.val`
+else
+  echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+{ { echo "$as_me:$LINENO: error: cannot compute sizeof (unsigned long), 77
+See \`config.log' for more details." >&5
+echo "$as_me: error: cannot compute sizeof (unsigned long), 77
+See \`config.log' for more details." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+rm -f conftest.val
+else
+  ac_cv_sizeof_unsigned_long=0
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sizeof_unsigned_long" >&5
+echo "${ECHO_T}$ac_cv_sizeof_unsigned_long" >&6
+cat >>confdefs.h <<_ACEOF
+#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long
+_ACEOF
+
+
+
+  echo "$as_me:$LINENO: checking sizeof size_t == sizeof unsigned long" >&5
+echo $ECHO_N "checking sizeof size_t == sizeof unsigned long... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+    #if SIZEOF_SIZE_T != SIZEOF_UNSIGNED_LONG
+       choke me
+    #endif
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+      echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+      { { echo "$as_me:$LINENO: error:
+       Apparently on your system our assumption sizeof size_t == sizeof unsigned long
+       does not apply. Please mail kde-devel at kde.org with a description of your system!
+      " >&5
+echo "$as_me: error:
+       Apparently on your system our assumption sizeof size_t == sizeof unsigned long
+       does not apply. Please mail kde-devel at kde.org with a description of your system!
+      " >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+  echo "$as_me:$LINENO: checking for PIE support" >&5
+echo $ECHO_N "checking for PIE support... $ECHO_C" >&6
+if test "${kde_cv_val_pie_support+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+     ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+    safe_CXXFLAGS=$CXXFLAGS
+    safe_LDFLAGS=$LDFLAGS
+    CXXFLAGS="$CXXFLAGS -fPIE"
+    LDFLAGS="$LDFLAGS -pie"
+
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+int foo;
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_val_pie_support=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_val_pie_support=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+
+    CXXFLAGS=$safe_CXXFLAGS
+    LDFLAGS=$safe_LDFLAGS
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+echo "$as_me:$LINENO: result: $kde_cv_val_pie_support" >&5
+echo "${ECHO_T}$kde_cv_val_pie_support" >&6
+
+  echo "$as_me:$LINENO: checking if enabling -pie/fPIE support" >&5
+echo $ECHO_N "checking if enabling -pie/fPIE support... $ECHO_C" >&6
+
+  # Check whether --enable-pie or --disable-pie was given.
+if test "${enable_pie+set}" = set; then
+  enableval="$enable_pie"
+  kde_has_pie_support=$enableval
+else
+  kde_has_pie_support=detect
+fi;
+
+  if test "$kde_has_pie_support" = "detect"; then
+    kde_has_pie_support=$kde_cv_val_pie_support
+  fi
+
+  echo "$as_me:$LINENO: result: $kde_has_pie_support" >&5
+echo "${ECHO_T}$kde_has_pie_support" >&6
+
+  KDE_USE_FPIE=""
+  KDE_USE_PIE=""
+
+
+
+
+  if test "$kde_has_pie_support" = "yes"; then
+    KDE_USE_FPIE="-fPIE"
+    KDE_USE_PIE="-pie"
+  fi
+
+
+# darwin needs this to initialize the environment
+
+for ac_header in crt_externs.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$ac_header>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+
+fi
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+echo "$as_me:$LINENO: checking for _NSGetEnviron" >&5
+echo $ECHO_N "checking for _NSGetEnviron... $ECHO_C" >&6
+if test "${ac_cv_func__NSGetEnviron+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define _NSGetEnviron to an innocuous variant, in case <limits.h> declares _NSGetEnviron.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define _NSGetEnviron innocuous__NSGetEnviron
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _NSGetEnviron (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef _NSGetEnviron
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char _NSGetEnviron ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub__NSGetEnviron) || defined (__stub____NSGetEnviron)
+choke me
+#else
+char (*f) () = _NSGetEnviron;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != _NSGetEnviron;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_func__NSGetEnviron=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_func__NSGetEnviron=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: $ac_cv_func__NSGetEnviron" >&5
+echo "${ECHO_T}$ac_cv_func__NSGetEnviron" >&6
+if test $ac_cv_func__NSGetEnviron = yes; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_NSGETENVIRON 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+
+
+
+for ac_func in vsnprintf snprintf
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_var=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+  cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+# Check whether --enable-embedded or --disable-embedded was given.
+if test "${enable_embedded+set}" = set; then
+  enableval="$enable_embedded"
+  kde_use_qt_emb=$enableval
+else
+  kde_use_qt_emb=no
+
+fi;
+
+# Check whether --enable-qtopia or --disable-qtopia was given.
+if test "${enable_qtopia+set}" = set; then
+  enableval="$enable_qtopia"
+  kde_use_qt_emb_palm=$enableval
+else
+  kde_use_qt_emb_palm=no
+
+fi;
+
+# Check whether --enable-mac or --disable-mac was given.
+if test "${enable_mac+set}" = set; then
+  enableval="$enable_mac"
+  kde_use_qt_mac=$enableval
+else
+  kde_use_qt_mac=no
+
+fi;
+
+# used to disable x11-specific stuff on special platforms
+
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+  include_x11_TRUE=
+  include_x11_FALSE='#'
+else
+  include_x11_TRUE='#'
+  include_x11_FALSE=
+fi
+
+
+if test "$kde_use_qt_emb" = "no" && test "$kde_use_qt_mac" = "no"; then
+
+echo "$as_me:$LINENO: checking for X" >&5
+echo $ECHO_N "checking for X... $ECHO_C" >&6
+
+if test "${kde_cv_have_x+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  # One or both of the vars are not set, and there is no cached value.
+if test "{$x_includes+set}" = set || test "$x_includes" = NONE; then
+   kde_x_includes=NO
+else
+   kde_x_includes=$x_includes
+fi
+if test "{$x_libraries+set}" = set || test "$x_libraries" = NONE; then
+   kde_x_libraries=NO
+else
+   kde_x_libraries=$x_libraries
+fi
+
+# below we use the standard autoconf calls
+ac_x_libraries=$kde_x_libraries
+ac_x_includes=$kde_x_includes
+
+
+
+
+if test "$ac_x_includes" = NO; then
+  # Guess where to find include files, by looking for this one X11 .h file.
+  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+  # First, try using that file with no special directory specified.
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <$x_direct_test_include>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  # We can compile using X headers with no special include directory.
+ac_x_includes=
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  # Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+  for ac_dir in               \
+    /usr/X11/include          \
+    /usr/X11R6/include        \
+    /usr/X11R5/include        \
+    /usr/X11R4/include        \
+                              \
+    /usr/include/X11          \
+    /usr/include/X11R6        \
+    /usr/include/X11R5        \
+    /usr/include/X11R4        \
+                              \
+    /usr/local/X11/include    \
+    /usr/local/X11R6/include  \
+    /usr/local/X11R5/include  \
+    /usr/local/X11R4/include  \
+                              \
+    /usr/local/include/X11    \
+    /usr/local/include/X11R6  \
+    /usr/local/include/X11R5  \
+    /usr/local/include/X11R4  \
+                              \
+    /usr/X386/include         \
+    /usr/x386/include         \
+    /usr/XFree86/include/X11  \
+                              \
+    /usr/include              \
+    /usr/local/include        \
+    /usr/unsupported/include  \
+    /usr/athena/include       \
+    /usr/local/x11r5/include  \
+    /usr/lpp/Xamples/include  \
+                              \
+    /usr/openwin/include      \
+    /usr/openwin/share/include \
+    ; \
+  do
+    if test -r "$ac_dir/$x_direct_test_include"; then
+      ac_x_includes=$ac_dir
+      break
+    fi
+  done
+fi
+rm -f conftest.err conftest.$ac_ext
+fi # $ac_x_includes = NO
+
+if test "$ac_x_libraries" = NO; then
+  # Check for the libraries.
+
+  test -z "$x_direct_test_library" && x_direct_test_library=Xt
+  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
+
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS="$LIBS"
+  LIBS="-l$x_direct_test_library $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <X11/Intrinsic.h>
+int
+main ()
+{
+${x_direct_test_function}(1)
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib${kdelibsuff}/` \
+    /usr/X11/lib${kdelibsuff}           \
+    /usr/X11R6/lib${kdelibsuff}         \
+    /usr/X11R5/lib${kdelibsuff}         \
+    /usr/X11R4/lib${kdelibsuff}         \
+                                        \
+    /usr/lib${kdelibsuff}/X11           \
+    /usr/lib${kdelibsuff}/X11R6         \
+    /usr/lib${kdelibsuff}/X11R5         \
+    /usr/lib${kdelibsuff}/X11R4         \
+                                        \
+    /usr/local/X11/lib${kdelibsuff}     \
+    /usr/local/X11R6/lib${kdelibsuff}   \
+    /usr/local/X11R5/lib${kdelibsuff}   \
+    /usr/local/X11R4/lib${kdelibsuff}   \
+                                        \
+    /usr/local/lib${kdelibsuff}/X11     \
+    /usr/local/lib${kdelibsuff}/X11R6   \
+    /usr/local/lib${kdelibsuff}/X11R5   \
+    /usr/local/lib${kdelibsuff}/X11R4   \
+                                        \
+    /usr/X386/lib${kdelibsuff}          \
+    /usr/x386/lib${kdelibsuff}          \
+    /usr/XFree86/lib${kdelibsuff}/X11   \
+                                        \
+    /usr/lib${kdelibsuff}               \
+    /usr/local/lib${kdelibsuff}         \
+    /usr/unsupported/lib${kdelibsuff}   \
+    /usr/athena/lib${kdelibsuff}        \
+    /usr/local/x11r5/lib${kdelibsuff}   \
+    /usr/lpp/Xamples/lib${kdelibsuff}   \
+    /lib/usr/lib${kdelibsuff}/X11       \
+                                        \
+    /usr/openwin/lib${kdelibsuff}       \
+    /usr/openwin/share/lib${kdelibsuff} \
+    ; \
+do
+  for ac_extension in a so sl; do
+    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+fi # $ac_x_libraries = NO
+
+case "$host" in
+mips-sgi-irix6*)
+  ;;
+*-*-solaris*)
+  ;;
+*)
+  rm -fr conftest.dir
+if mkdir conftest.dir; then
+  cd conftest.dir
+  # Make sure to not put "make" in the Imakefile rules, since we grep it out.
+  cat >Imakefile <<'_ACEOF'
+acfindx:
+	@echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
+_ACEOF
+  if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+    # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+    eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+    for ac_extension in a so sl; do
+      if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
+	 test -f $ac_im_libdir/libX11.$ac_extension; then
+	ac_im_usrlibdir=$ac_im_libdir; break
+      fi
+    done
+    # Screen out bogus values from the imake configuration.  They are
+    # bogus both because they are the default anyway, and because
+    # using them would break gcc on systems where it needs fixed includes.
+    case $ac_im_incroot in
+	/usr/include) ;;
+	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
+    esac
+    case $ac_im_usrlibdir in
+	/usr/lib | /lib) ;;
+	*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
+    esac
+  fi
+  cd ..
+  rm -fr conftest.dir
+fi
+
+  if test -z "$ac_x_includes"; then
+    ac_x_includes="."
+  fi
+  if test -z "$ac_x_libraries"; then
+    ac_x_libraries="/usr/lib${kdelibsuff}"
+  fi
+esac
+#from now on we use our own again
+
+# when the user already gave --x-includes, we ignore
+# what the standard autoconf macros told us.
+if test "$kde_x_includes" = NO; then
+  kde_x_includes=$ac_x_includes
+fi
+
+# for --x-libraries too
+if test "$kde_x_libraries" = NO; then
+  kde_x_libraries=$ac_x_libraries
+fi
+
+if test "$kde_x_includes" = NO; then
+  { { echo "$as_me:$LINENO: error: Can't find X includes. Please check your installation and add the correct paths!" >&5
+echo "$as_me: error: Can't find X includes. Please check your installation and add the correct paths!" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+if test "$kde_x_libraries" = NO; then
+  { { echo "$as_me:$LINENO: error: Can't find X libraries. Please check your installation and add the correct paths!" >&5
+echo "$as_me: error: Can't find X libraries. Please check your installation and add the correct paths!" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+# Record where we found X for the cache.
+kde_cv_have_x="have_x=yes \
+         kde_x_includes=$kde_x_includes kde_x_libraries=$kde_x_libraries"
+
+fi
+
+eval "$kde_cv_have_x"
+
+if test "$have_x" != yes; then
+  echo "$as_me:$LINENO: result: $have_x" >&5
+echo "${ECHO_T}$have_x" >&6
+  no_x=yes
+else
+  echo "$as_me:$LINENO: result: libraries $kde_x_libraries, headers $kde_x_includes" >&5
+echo "${ECHO_T}libraries $kde_x_libraries, headers $kde_x_includes" >&6
+fi
+
+if test -z "$kde_x_includes" || test "x$kde_x_includes" = xNONE; then
+  X_INCLUDES=""
+  x_includes=".";  else
+  x_includes=$kde_x_includes
+  X_INCLUDES="-I$x_includes"
+fi
+
+if test -z "$kde_x_libraries" || test "x$kde_x_libraries" = xNONE || test "$kde_x_libraries" = "/usr/lib"; then
+  X_LDFLAGS=""
+  x_libraries="/usr/lib";  else
+  x_libraries=$kde_x_libraries
+  X_LDFLAGS="-L$x_libraries"
+fi
+all_includes="$X_INCLUDES"
+all_libraries="$X_LDFLAGS $LDFLAGS_AS_NEEDED $LDFLAGS_NEW_DTAGS"
+
+# Check for libraries that X11R6 Xt/Xaw programs need.
+ac_save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+# check for ICE first), but we must link in the order -lSM -lICE or
+# we get undefined symbols.  So assume we have SM if we have ICE.
+# These have to be linked with before -lX11, unlike the other
+# libraries we check for below, so use a different variable.
+#  --interran at uluru.Stanford.EDU, kb at cs.umb.edu.
+echo "$as_me:$LINENO: checking for IceConnectionNumber in -lICE" >&5
+echo $ECHO_N "checking for IceConnectionNumber in -lICE... $ECHO_C" >&6
+if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char IceConnectionNumber ();
+int
+main ()
+{
+IceConnectionNumber ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_ICE_IceConnectionNumber=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_ICE_IceConnectionNumber=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5
+echo "${ECHO_T}$ac_cv_lib_ICE_IceConnectionNumber" >&6
+if test $ac_cv_lib_ICE_IceConnectionNumber = yes; then
+  LIBSM="-lSM -lICE"
+fi
+
+LDFLAGS="$ac_save_LDFLAGS"
+
+LIB_X11='-lX11 $(LIBSOCKET)'
+
+echo "$as_me:$LINENO: checking for libXext" >&5
+echo $ECHO_N "checking for libXext... $ECHO_C" >&6
+if test "${kde_cv_have_libXext+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+kde_ldflags_safe="$LDFLAGS"
+kde_libs_safe="$LIBS"
+
+LDFLAGS="$LDFLAGS $X_LDFLAGS $USER_LDFLAGS"
+LIBS="-lXext -lX11 $LIBSOCKET"
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include <stdio.h>
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+
+int
+main ()
+{
+
+printf("hello Xext\n");
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  kde_cv_have_libXext=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+kde_cv_have_libXext=no
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+
+LDFLAGS=$kde_ldflags_safe
+LIBS=$kde_libs_safe
+
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_cv_have_libXext" >&5
+echo "${ECHO_T}$kde_cv_have_libXext" >&6
+
+if test "$kde_cv_have_libXext" = "no"; then
+  { { echo "$as_me:$LINENO: error: We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either." >&5
+echo "$as_me: error: We need a working libXext to proceed. Since configure
+can't find it itself, we stop here assuming that make wouldn't find
+them either." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+LIB_XEXT="-lXext"
+QTE_NORTTI=""
+
+elif test "$kde_use_qt_emb" = "yes"; then
+    CPPFLAGS=-DQWS
+  CXXFLAGS="$CXXFLAGS -fno-rtti"
+  QTE_NORTTI="-fno-rtti -DQWS"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+elif test "$kde_use_qt_mac" = "yes"; then
+      CXXFLAGS="$CXXFLAGS -DQT_MAC -no-cpp-precomp"
+  CFLAGS="$CFLAGS -DQT_MAC -no-cpp-precomp"
+  X_PRE_LIBS=""
+  LIB_X11=""
+  LIB_XEXT=""
+  LIB_XRENDER=""
+  LIBSM=""
+  X_INCLUDES=""
+  X_LDFLAGS=""
+  x_includes=""
+  x_libraries=""
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+                LIBPTHREAD=""
+
+  if test -n "$PTHREAD_LIBS"; then
+    if test "x$PTHREAD_LIBS" = "x-pthread" ; then
+      LIBPTHREAD="PTHREAD"
+    else
+      PTHREAD_LIBS_save="$PTHREAD_LIBS"
+      PTHREAD_LIBS=`echo "$PTHREAD_LIBS_save" | sed -e 's,^-l,,g'`
+      echo "$as_me:$LINENO: checking for pthread_create in $PTHREAD_LIBS" >&5
+echo $ECHO_N "checking for pthread_create in $PTHREAD_LIBS... $ECHO_C" >&6
+
+     kde_save_LDFLAGS="$LDFLAGS"
+          kde_save_LIBS="$LIBS"
+     LDFLAGS="$LDFLAGS $all_libraries"
+     case $host_os in
+      aix*) LDFLAGS="-brtl $LDFLAGS"
+	test "$GCC" = yes && LDFLAGS="-Wl,$LDFLAGS"
+	;;
+     esac
+     as_ac_Lib=`echo "ac_cv_lib_$PTHREAD_LIBS''_pthread_create" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for pthread_create in -l$PTHREAD_LIBS" >&5
+echo $ECHO_N "checking for pthread_create in -l$PTHREAD_LIBS... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-l$PTHREAD_LIBS  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pthread_create ();
+int
+main ()
+{
+pthread_create ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "$as_ac_Lib=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Lib=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
+  LIBPTHREAD="$PTHREAD_LIBS_save"
+fi
+
+     LDFLAGS="$kde_save_LDFLAGS"
+     LIBS="$kde_save_LIBS"
+
+      PTHREAD_LIBS="$PTHREAD_LIBS_save"
+    fi
+  fi
+
+    if test -z "$LIBPTHREAD"; then
+    echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
+echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
+if test "${ac_cv_lib_pthread_pthread_create+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpthread  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char pthread_create ();
+int
+main ()
+{
+pthread_create ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_lib_pthread_pthread_create=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_pthread_pthread_create=no
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_pthread_create" >&5
+echo "${ECHO_T}$ac_cv_lib_pthread_pthread_create" >&6
+if test $ac_cv_lib_pthread_pthread_create = yes; then
+  LIBPTHREAD="-lpthread"
+fi
+
+  fi
+
+    if test -z "$LIBPTHREAD" ; then
+    echo "$as_me:$LINENO: checking for pthread_create in -lpthread" >&5
+echo $ECHO_N "checking for pthread_create in -lpthread... $ECHO_C" >&6
+    kde_safe_libs=$LIBS
+    LIBS="$LIBS -lpthread"
+    cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+(void)pthread_create(0,0,0,0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+        LIBPTHREAD="-lpthread"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+	echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+    LIBS=$kde_safe_libs
+  fi
+
+    if test "x$LIBPTHREAD" = "xPTHREAD" ; then
+    LIBPTHREAD=""
+  fi
+
+
+
+
+      USE_THREADS=""
+      if test -z "$LIBPTHREAD"; then
+
+echo "$as_me:$LINENO: checking whether $CXX supports -pthread" >&5
+echo $ECHO_N "checking whether $CXX supports -pthread... $ECHO_C" >&6
+kde_cache=`echo pthread | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -pthread"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ USE_THREADS="-D_THREAD_SAFE -pthread"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+      fi
+
+
+
+    case $host_os in
+ 	solaris*)
+
+echo "$as_me:$LINENO: checking whether $CXX supports -mt" >&5
+echo $ECHO_N "checking whether $CXX supports -mt... $ECHO_C" >&6
+kde_cache=`echo mt | sed 'y% .=/+-,%____p__%'`
+if eval "test \"\${kde_cv_prog_cxx_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+   ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+  save_CXXFLAGS="$CXXFLAGS"
+  CXXFLAGS="$CXXFLAGS -mt"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+ return 0;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_prog_cxx_$kde_cache=yes"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  CXXFLAGS="$save_CXXFLAGS"
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+if eval "test \"`echo '$kde_cv_prog_cxx_'$kde_cache`\" = yes"; then
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ :
+ USE_THREADS="-mt"
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+ :
+
+fi
+
+                CPPFLAGS="$CPPFLAGS -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DUSE_SOLARIS -DSVR4"
+    		;;
+        freebsd*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE $PTHREAD_CFLAGS"
+                ;;
+        aix*)
+                CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE"
+                LIBPTHREAD="$LIBPTHREAD -lc_r"
+                ;;
+        linux*) CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+                if test "$CXX" = "KCC"; then
+                  CXXFLAGS="$CXXFLAGS --thread_safe"
+		  NOOPT_CXXFLAGS="$NOOPT_CXXFLAGS --thread_safe"
+                fi
+                ;;
+	*)
+		;;
+    esac
+
+
+
+
+echo "$as_me:$LINENO: checking for extra includes" >&5
+echo $ECHO_N "checking for extra includes... $ECHO_C" >&6
+
+# Check whether --with-extra-includes or --without-extra-includes was given.
+if test "${with_extra_includes+set}" = set; then
+  withval="$with_extra_includes"
+  kde_use_extra_includes="$withval"
+else
+  kde_use_extra_includes=NONE
+
+fi;
+kde_extra_includes=
+if test -n "$kde_use_extra_includes" && \
+   test "$kde_use_extra_includes" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_includes; do
+     kde_extra_includes="$kde_extra_includes $dir"
+     USER_INCLUDES="$USER_INCLUDES -I$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_includes="added"
+else
+   kde_use_extra_includes="no"
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_use_extra_includes" >&5
+echo "${ECHO_T}$kde_use_extra_includes" >&6
+
+kde_extra_libs=
+echo "$as_me:$LINENO: checking for extra libs" >&5
+echo $ECHO_N "checking for extra libs... $ECHO_C" >&6
+
+# Check whether --with-extra-libs or --without-extra-libs was given.
+if test "${with_extra_libs+set}" = set; then
+  withval="$with_extra_libs"
+  kde_use_extra_libs=$withval
+else
+  kde_use_extra_libs=NONE
+
+fi;
+if test -n "$kde_use_extra_libs" && \
+   test "$kde_use_extra_libs" != "NONE"; then
+
+   ac_save_ifs=$IFS
+   IFS=':'
+   for dir in $kde_use_extra_libs; do
+     kde_extra_libs="$kde_extra_libs $dir"
+     KDE_EXTRA_RPATH="$KDE_EXTRA_RPATH -R $dir"
+     USER_LDFLAGS="$USER_LDFLAGS -L$dir"
+   done
+   IFS=$ac_save_ifs
+   kde_use_extra_libs="added"
+else
+   kde_use_extra_libs="no"
+fi
+
+
+
+echo "$as_me:$LINENO: result: $kde_use_extra_libs" >&5
+echo "${ECHO_T}$kde_use_extra_libs" >&6
+
+
+
+
+echo "$as_me:$LINENO: checking for libz" >&5
+echo $ECHO_N "checking for libz... $ECHO_C" >&6
+if test "${ac_cv_lib_z+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+kde_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -lz $LIBSOCKET"
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#include<zlib.h>
+
+int
+main ()
+{
+
+  char buf[42];
+  gzFile f = (gzFile) 0;
+  /* this would segfault.. but we only link, don't run */
+  (void) gzgets(f, buf, sizeof(buf));
+
+  return (zlibVersion() == ZLIB_VERSION);
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "ac_cv_lib_z='-lz'"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "ac_cv_lib_z=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+
+fi
+if test ! "$ac_cv_lib_z" = no; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBZ 1
+_ACEOF
+
+  LIBZ="$ac_cv_lib_z"
+  echo "$as_me:$LINENO: result: $ac_cv_lib_z" >&5
+echo "${ECHO_T}$ac_cv_lib_z" >&6
+else
+  { { echo "$as_me:$LINENO: error: not found.
+          Possibly configure picks up an outdated version
+          installed by XFree86. Remove it from your system.
+
+          Check your installation and look into config.log" >&5
+echo "$as_me: error: not found.
+          Possibly configure picks up an outdated version
+          installed by XFree86. Remove it from your system.
+
+          Check your installation and look into config.log" >&2;}
+   { (exit 1); exit 1; }; }
+  LIBZ=""
+fi
+
+
+
+
+
+echo "$as_me:$LINENO: checking for libpng" >&5
+echo $ECHO_N "checking for libpng... $ECHO_C" >&6
+if test "${ac_cv_lib_png+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+kde_save_LIBS="$LIBS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm -lX11 $LIBSOCKET"
+else
+LIBS="$LIBS $all_libraries $USER_LDFLAGS -lpng $LIBZ -lm"
+fi
+kde_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+    #include<png.h>
+
+int
+main ()
+{
+
+    png_structp png_ptr = png_create_read_struct(  /* image ptr */
+		PNG_LIBPNG_VER_STRING, 0, 0, 0 );
+    return( png_ptr != 0 );
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "ac_cv_lib_png='-lpng $LIBZ -lm'"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "ac_cv_lib_png=no"
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS="$kde_save_LIBS"
+CFLAGS="$kde_save_CFLAGS"
+
+fi
+if eval "test ! \"`echo $ac_cv_lib_png`\" = no"; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBPNG 1
+_ACEOF
+
+  LIBPNG="$ac_cv_lib_png"
+
+  echo "$as_me:$LINENO: result: $ac_cv_lib_png" >&5
+echo "${ECHO_T}$ac_cv_lib_png" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  LIBPNG=""
+
+fi
+
+
+
+echo "$as_me:$LINENO: checking for libjpeg6b" >&5
+echo $ECHO_N "checking for libjpeg6b... $ECHO_C" >&6
+if test "${ac_cv_lib_jpeg_6b+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg6b -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+void jpeg_CreateDecompress();
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+jpeg_CreateDecompress();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "ac_cv_lib_jpeg_6b=-ljpeg6b"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "ac_cv_lib_jpeg_6b=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+
+fi
+
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_6b`\" = no"; then
+  LIBJPEG="$ac_cv_lib_jpeg_6b"
+  echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_6b" >&5
+echo "${ECHO_T}$ac_cv_lib_jpeg_6b" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+echo "$as_me:$LINENO: checking for libjpeg" >&5
+echo $ECHO_N "checking for libjpeg... $ECHO_C" >&6
+if test "${ac_cv_lib_jpeg_normal+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS -ljpeg -lm"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $all_includes $USER_INCLUDES"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+void jpeg_CreateDecompress();
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+jpeg_CreateDecompress();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "ac_cv_lib_jpeg_normal=-ljpeg"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "ac_cv_lib_jpeg_normal=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS="$ac_save_LIBS"
+CFLAGS="$ac_save_CFLAGS"
+
+fi
+
+
+if eval "test ! \"`echo $ac_cv_lib_jpeg_normal`\" = no"; then
+  LIBJPEG="$ac_cv_lib_jpeg_normal"
+  echo "$as_me:$LINENO: result: $ac_cv_lib_jpeg_normal" >&5
+echo "${ECHO_T}$ac_cv_lib_jpeg_normal" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+       LIBJPEG=
+
+
+fi
+
+
+
+fi
+
+
+
+jpeg_incdirs="$includedir /usr/include /usr/local/include $kde_extra_includes"
+
+jpeg_incdir=NO
+for i in $jpeg_incdirs;
+do
+  for j in jpeglib.h;
+  do
+    echo "configure: 29702: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      jpeg_incdir=$i
+      break 2
+    fi
+  done
+done
+
+test "x$jpeg_incdir" = xNO && jpeg_incdir=
+
+if test -n "$jpeg_incdir" && test -n "$LIBJPEG" ; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBJPEG 1
+_ACEOF
+
+else
+  if test -n "$jpeg_incdir" || test -n "$LIBJPEG" ; then
+    { echo "$as_me:$LINENO: WARNING:
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+" >&5
+echo "$as_me: WARNING:
+There is an installation error in jpeg support. You seem to have only one
+of either the headers _or_ the libraries installed. You may need to either
+provide correct --with-extra-... options, or the development package of
+libjpeg6b. You can get a source package of libjpeg from http://www.ijg.org/
+Disabling JPEG support.
+" >&2;}
+  else
+    { echo "$as_me:$LINENO: WARNING: libjpeg not found. disable JPEG support." >&5
+echo "$as_me: WARNING: libjpeg not found. disable JPEG support." >&2;}
+  fi
+  jpeg_incdir=
+  LIBJPEG=
+fi
+
+
+
+
+
+
+
+   echo "$as_me:$LINENO: checking for perl" >&5
+echo $ECHO_N "checking for perl... $ECHO_C" >&6
+   if test -n "$PERL"; then
+        kde_cv_path="$PERL";
+   else
+        kde_cache=`echo perl | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$bindir $exec_prefix/bin $prefix/bin $dirs"
+        else  	  dirs="$dirs $bindir $exec_prefix/bin $prefix/bin"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/perl"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/perl  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/perl"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/perl"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+		    { { echo "$as_me:$LINENO: error: No Perl found in your $PATH.
+We need perl to generate some code." >&5
+echo "$as_me: error: No Perl found in your $PATH.
+We need perl to generate some code." >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      PERL=$kde_cv_path
+
+   fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --enable-mt or --disable-mt was given.
+if test "${enable_mt+set}" = set; then
+  enableval="$enable_mt"
+  kde_use_qt_mt=$enableval
+else
+
+    if test $kde_qtver = 3; then
+      kde_use_qt_mt=yes
+    else
+      kde_use_qt_mt=no
+    fi
+
+
+fi;
+
+USING_QT_MT=""
+
+
+KDE_MT_LDFLAGS=
+KDE_MT_LIBS=
+if test "x$kde_use_qt_mt" = "xyes"; then
+
+
+
+    if test -z "$LIBPTHREAD"; then
+    if test -z "$USE_THREADS"; then
+      kde_check_threading_default=no
+    else
+      kde_check_threading_default=yes
+    fi
+  else
+    kde_check_threading_default=yes
+  fi
+  # Check whether --enable-threading or --disable-threading was given.
+if test "${enable_threading+set}" = set; then
+  enableval="$enable_threading"
+  kde_use_threading=$enableval
+else
+  kde_use_threading=$kde_check_threading_default
+fi;
+  if test "x$kde_use_threading" = "xyes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBPTHREAD 1
+_ACEOF
+
+  fi
+
+  if test "x$kde_use_threading" = "xyes"; then
+    CPPFLAGS="$USE_THREADS -DQT_THREAD_SUPPORT $CPPFLAGS"
+    KDE_MT_LDFLAGS="$USE_THREADS"
+    KDE_MT_LIBS="$LIBPTHREAD"
+  else
+    kde_use_qt_mt=no
+  fi
+fi
+
+
+
+kde_qt_was_given=yes
+
+if test -z "$LIBQT_GLOB"; then
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    LIBQT_GLOB="libqte.*"
+  else
+    LIBQT_GLOB="libqt.*"
+  fi
+fi
+
+if test "x$kde_use_qt_emb" = "xyes"; then
+  qtlib="qte"
+else
+  qtlib="qt"
+fi
+
+kde_int_qt="-l$qtlib"
+
+if test -z "$LIBQPE"; then
+  if test "x$kde_use_qt_emb" = "xyes"; then
+    if test "x$kde_use_qt_emb_palm" = "xyes"; then
+      LIB_QPE="-lqpe"
+    else
+      LIB_QPE=""
+    fi
+  else
+    LIB_QPE=""
+  fi
+fi
+
+
+if test "x$kde_use_qt_mt" = "xyes"; then
+  LIBQT="-l$qtlib-mt"
+  kde_int_qt="-l$qtlib-mt"
+  LIBQT_GLOB="lib$qtlib-mt.*"
+  USING_QT_MT="using -mt"
+else
+  LIBQT="-l$qtlib"
+fi
+
+if test $kde_qtver != 1; then
+
+
+
+  LIBQT="$LIBQT $LIBPNG $LIBJPEG"
+fi
+
+if test $kde_qtver = 3; then
+
+  LIBQT="$LIBQT $LIBDL"
+fi
+
+echo "$as_me:$LINENO: checking for Qt" >&5
+echo $ECHO_N "checking for Qt... $ECHO_C" >&6
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBQT="$LIBQT $X_PRE_LIBS -lXext -lX11 $LIBSM $LIBSOCKET"
+fi
+ac_qt_includes=NO ac_qt_libraries=NO ac_qt_bindir=NO
+qt_libraries=""
+qt_includes=""
+
+# Check whether --with-qt-dir or --without-qt-dir was given.
+if test "${with_qt_dir+set}" = set; then
+  withval="$with_qt_dir"
+    ac_qt_includes="$withval"/include
+       ac_qt_libraries="$withval"/lib${kdelibsuff}
+       ac_qt_bindir="$withval"/bin
+
+fi;
+
+
+# Check whether --with-qt-includes or --without-qt-includes was given.
+if test "${with_qt_includes+set}" = set; then
+  withval="$with_qt_includes"
+
+       ac_qt_includes="$withval"
+
+fi;
+
+kde_qt_libs_given=no
+
+
+# Check whether --with-qt-libraries or --without-qt-libraries was given.
+if test "${with_qt_libraries+set}" = set; then
+  withval="$with_qt_libraries"
+    ac_qt_libraries="$withval"
+       kde_qt_libs_given=yes
+
+fi;
+
+if test "${ac_cv_have_qt+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  #try to guess Qt locations
+
+qt_incdirs=""
+for dir in $kde_qt_dirs; do
+   qt_incdirs="$qt_incdirs $dir/include $dir"
+done
+qt_incdirs="$QTINC $qt_incdirs /usr/local/qt/include /usr/include/qt /usr/include /usr/X11R6/include/X11/qt /usr/X11R6/include/qt /usr/X11R6/include/qt2 /usr/include/qt3 $x_includes"
+if test ! "$ac_qt_includes" = "NO"; then
+   qt_incdirs="$ac_qt_includes $qt_incdirs"
+fi
+
+if test "$kde_qtver" != "1"; then
+  kde_qt_header=qstyle.h
+else
+  kde_qt_header=qglobal.h
+fi
+
+
+qt_incdir=NO
+for i in $qt_incdirs;
+do
+  for j in $kde_qt_header;
+  do
+    echo "configure: 30000: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      qt_incdir=$i
+      break 2
+    fi
+  done
+done
+
+ac_qt_includes="$qt_incdir"
+
+qt_libdirs=""
+for dir in $kde_qt_dirs; do
+   qt_libdirs="$qt_libdirs $dir/lib${kdelibsuff} $dir"
+done
+qt_libdirs="$QTLIB $qt_libdirs /usr/X11R6/lib /usr/lib /usr/local/qt/lib $x_libraries"
+if test ! "$ac_qt_libraries" = "NO"; then
+  qt_libdir=$ac_qt_libraries
+else
+  qt_libdirs="$ac_qt_libraries $qt_libdirs"
+  # if the Qt was given, the chance is too big that libqt.* doesn't exist
+  qt_libdir=NONE
+  for dir in $qt_libdirs; do
+    try="ls -1 $dir/${LIBQT_GLOB}"
+    if test -n "`$try 2> /dev/null`"; then qt_libdir=$dir; break; else echo "tried $dir" >&5 ; fi
+  done
+fi
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+    LIBQT="$LIBQT ${kde_int_qt}_incremental"
+    break
+  fi
+done
+
+ac_qt_libraries="$qt_libdir"
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_incdir $all_includes"
+LDFLAGS="$LDFLAGS -L$qt_libdir $all_libraries $USER_LDFLAGS $KDE_MT_LDFLAGS"
+LIBS="$LIBS $LIBQT $KDE_MT_LIBS"
+
+
+
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+    QStringList *t = new QStringList();
+    Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+    QString s;
+    s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+    (void)QStyleFactory::create(QString::null);
+    QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+    return 0;
+}
+EOF
+
+
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest; then
+  rm -f conftest*
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_qt_libraries="NO"
+fi
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test "$ac_qt_includes" = NO || test "$ac_qt_libraries" = NO; then
+  ac_cv_have_qt="have_qt=no"
+  ac_qt_notfound=""
+  missing_qt_mt=""
+  if test "$ac_qt_includes" = NO; then
+    if test "$ac_qt_libraries" = NO; then
+      ac_qt_notfound="(headers and libraries)";
+    else
+      ac_qt_notfound="(headers)";
+    fi
+  else
+    if test "x$kde_use_qt_mt" = "xyes"; then
+       missing_qt_mt="
+Make sure that you have compiled Qt with thread support!"
+       ac_qt_notfound="(library $qtlib-mt)";
+    else
+       ac_qt_notfound="(library $qtlib)";
+    fi
+  fi
+
+  { { echo "$as_me:$LINENO: error: Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt" >&5
+echo "$as_me: error: Qt ($kde_qt_minversion) $ac_qt_notfound not found. Please check your installation!
+For more details about this problem, look at the end of config.log.$missing_qt_mt" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  have_qt="yes"
+fi
+
+fi
+
+
+eval "$ac_cv_have_qt"
+
+if test "$have_qt" != yes; then
+  echo "$as_me:$LINENO: result: $have_qt" >&5
+echo "${ECHO_T}$have_qt" >&6;
+else
+  ac_cv_have_qt="have_qt=yes \
+    ac_qt_includes=$ac_qt_includes ac_qt_libraries=$ac_qt_libraries"
+  echo "$as_me:$LINENO: result: libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT" >&5
+echo "${ECHO_T}libraries $ac_qt_libraries, headers $ac_qt_includes $USING_QT_MT" >&6
+
+  qt_libraries="$ac_qt_libraries"
+  qt_includes="$ac_qt_includes"
+fi
+
+if test ! "$kde_qt_libs_given" = "yes" && test ! "$kde_qtver" = 3; then
+
+
+echo "$as_me:$LINENO: checking if Qt compiles without flags" >&5
+echo $ECHO_N "checking if Qt compiles without flags... $ECHO_C" >&6
+if test "${kde_cv_qt_direct+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+ac_LD_LIBRARY_PATH_safe=$LD_LIBRARY_PATH
+ac_LIBRARY_PATH="$LIBRARY_PATH"
+ac_cxxflags_safe="$CXXFLAGS"
+ac_ldflags_safe="$LDFLAGS"
+ac_libs_safe="$LIBS"
+
+CXXFLAGS="$CXXFLAGS -I$qt_includes"
+LDFLAGS="$LDFLAGS $X_LDFLAGS"
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIBS="$LIBQT -lXext -lX11 $LIBSOCKET"
+else
+LIBS="$LIBQT $LIBSOCKET"
+fi
+LD_LIBRARY_PATH=
+export LD_LIBRARY_PATH
+LIBRARY_PATH=
+export LIBRARY_PATH
+
+
+
+cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <qglobal.h>
+#include <qapplication.h>
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qevent.h>
+#include <qstring.h>
+#include <qstyle.h>
+EOF
+
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+#if QT_VERSION < 210
+#error 1
+#endif
+EOF
+fi
+fi
+
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+#include <qcursor.h>
+#include <qstylefactory.h>
+#include <private/qucomextra_p.h>
+EOF
+fi
+
+echo "#if ! ($kde_qt_verstring)" >> conftest.$ac_ext
+cat >> conftest.$ac_ext <<EOF
+#error 1
+#endif
+
+int main() {
+EOF
+if test "$kde_qtver" = "2"; then
+cat >> conftest.$ac_ext <<EOF
+    QStringList *t = new QStringList();
+    Q_UNUSED(t);
+EOF
+if test $kde_qtsubver -gt 0; then
+cat >> conftest.$ac_ext <<EOF
+    QString s;
+    s.setLatin1("Elvis is alive", 14);
+EOF
+fi
+fi
+if test "$kde_qtver" = "3"; then
+cat >> conftest.$ac_ext <<EOF
+    (void)QStyleFactory::create(QString::null);
+    QCursor c(Qt::WhatsThisCursor);
+EOF
+fi
+cat >> conftest.$ac_ext <<EOF
+    return 0;
+}
+EOF
+
+
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest; then
+  kde_cv_qt_direct="yes"
+else
+  kde_cv_qt_direct="no"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+
+rm -f conftest*
+CXXFLAGS="$ac_cxxflags_safe"
+LDFLAGS="$ac_ldflags_safe"
+LIBS="$ac_libs_safe"
+
+LD_LIBRARY_PATH="$ac_LD_LIBRARY_PATH_safe"
+export LD_LIBRARY_PATH
+LIBRARY_PATH="$ac_LIBRARY_PATH"
+export LIBRARY_PATH
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+if test "$kde_cv_qt_direct" = "yes"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  qt_libraries=
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
+fi
+
+fi
+
+
+
+
+if test "$qt_includes" = "$x_includes" || test -z "$qt_includes"; then
+ QT_INCLUDES=""
+else
+ QT_INCLUDES="-I$qt_includes"
+ all_includes="$QT_INCLUDES $all_includes"
+fi
+
+if test "$qt_libraries" = "$x_libraries" || test -z "$qt_libraries"; then
+ QT_LDFLAGS=""
+else
+ QT_LDFLAGS="-L$qt_libraries"
+ all_libraries="$QT_LDFLAGS $all_libraries"
+fi
+test -z "$KDE_MT_LDFLAGS" || all_libraries="$all_libraries $KDE_MT_LDFLAGS"
+
+
+
+
+
+   qt_bindirs=""
+   for dir in $kde_qt_dirs; do
+      qt_bindirs="$qt_bindirs $dir/bin $dir/src/moc"
+   done
+   qt_bindirs="$qt_bindirs /usr/bin /usr/X11R6/bin /usr/local/qt/bin"
+   if test ! "$ac_qt_bindir" = "NO"; then
+      qt_bindirs="$ac_qt_bindir $qt_bindirs"
+   fi
+
+
+   echo "$as_me:$LINENO: checking for moc" >&5
+echo $ECHO_N "checking for moc... $ECHO_C" >&6
+   if test -n "$MOC"; then
+        kde_cv_path="$MOC";
+   else
+        kde_cache=`echo moc | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$qt_bindirs $dirs"
+        else  	  dirs="$dirs $qt_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/moc"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/moc  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/moc"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/moc"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+" >&5
+echo "$as_me: error: No Qt meta object compiler (moc) found!
+Please check whether you installed Qt correctly.
+You need to have a running moc binary.
+configure tried to run $ac_cv_path_moc and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable MOC to the right one before running
+configure.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      MOC=$kde_cv_path
+
+   fi
+
+   if test -z "$UIC_NOT_NEEDED"; then
+
+   echo "$as_me:$LINENO: checking for uic" >&5
+echo $ECHO_N "checking for uic... $ECHO_C" >&6
+   if test -n "$UIC_PATH"; then
+        kde_cv_path="$UIC_PATH";
+   else
+        kde_cache=`echo uic | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$qt_bindirs $dirs"
+        else  	  dirs="$dirs $qt_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/uic"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/uic  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/uic"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/uic"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+      UIC_PATH=""
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      UIC_PATH=$kde_cv_path
+
+   fi
+
+     if test -z "$UIC_PATH" ; then
+
+    { echo "$as_me:$LINENO: WARNING: No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+" >&5
+echo "$as_me: WARNING: No Qt ui compiler (uic) found!
+Please check whether you installed Qt correctly.
+You need to have a running uic binary.
+configure tried to run $ac_cv_path_uic and the test didn't
+succeed. If configure shouldn't have tried this one, set
+the environment variable UIC to the right one before running
+configure.
+" >&2;}
+
+       exit 1
+     else
+       UIC=$UIC_PATH
+
+       if test $kde_qtver = 3; then
+
+    echo "$as_me:$LINENO: checking whether uic supports -L " >&5
+echo $ECHO_N "checking whether uic supports -L ... $ECHO_C" >&6
+    kde_cache=`echo L | sed 'y% .=/+-%____p_%'`
+    if eval "test \"\${kde_cv_prog_uic_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        cat >conftest.ui <<EOT
+        <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+        ac_uic_testrun="$UIC_PATH -L /nonexistent conftest.ui >/dev/null"
+        if { (eval echo "$as_me:$LINENO: \"$ac_uic_testrun\"") >&5
+  (eval $ac_uic_testrun) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+            eval "kde_cv_prog_uic_$kde_cache=yes"
+        else
+            eval "kde_cv_prog_uic_$kde_cache=no"
+        fi
+        rm -f conftest*
+
+fi
+
+
+    if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+        :
+        ac_uic_supports_libpath=yes
+    else
+        echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+        :
+        ac_uic_supports_libpath=no
+    fi
+
+
+    echo "$as_me:$LINENO: checking whether uic supports -nounload " >&5
+echo $ECHO_N "checking whether uic supports -nounload ... $ECHO_C" >&6
+    kde_cache=`echo nounload | sed 'y% .=/+-%____p_%'`
+    if eval "test \"\${kde_cv_prog_uic_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        cat >conftest.ui <<EOT
+        <!DOCTYPE UI><UI version="3" stdsetdef="1"></UI>
+EOT
+        ac_uic_testrun="$UIC_PATH -nounload  conftest.ui >/dev/null"
+        if { (eval echo "$as_me:$LINENO: \"$ac_uic_testrun\"") >&5
+  (eval $ac_uic_testrun) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+            eval "kde_cv_prog_uic_$kde_cache=yes"
+        else
+            eval "kde_cv_prog_uic_$kde_cache=no"
+        fi
+        rm -f conftest*
+
+fi
+
+
+    if eval "test \"`echo '$kde_cv_prog_uic_'$kde_cache`\" = yes"; then
+        echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+        :
+        ac_uic_supports_nounload=yes
+    else
+        echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+        :
+        ac_uic_supports_nounload=no
+    fi
+
+
+         if test x$ac_uic_supports_libpath = xyes; then
+             UIC="$UIC -L \$(kde_widgetdir)"
+         fi
+         if test x$ac_uic_supports_nounload = xyes; then
+             UIC="$UIC -nounload"
+         fi
+       fi
+     fi
+   else
+     UIC="echo uic not available: "
+   fi
+
+
+
+
+   UIC_TR="i18n"
+   if test $kde_qtver = 3; then
+     UIC_TR="tr2i18n"
+   fi
+
+
+
+
+
+if test -n "$LIBJPEG"; then
+echo "$as_me:$LINENO: checking if Qt needs $LIBJPEG" >&5
+echo $ECHO_N "checking if Qt needs $LIBJPEG... $ECHO_C" >&6
+if test "${kde_cv_qt_jpeg+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+ac_save_LIBS="$LIBS"
+LIBS="$all_libraries $USER_LDFLAGS $LIBQT"
+LIBS=`echo $LIBS | sed "s/$LIBJPEG//"`
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS="$CXXFLAGS $all_includes $USER_INCLUDES"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <qapplication.h>
+int
+main ()
+{
+
+            int argc;
+            char** argv;
+            QApplication app(argc, argv);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_cxx_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  eval "kde_cv_qt_jpeg=no"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "kde_cv_qt_jpeg=yes"
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS="$ac_save_LIBS"
+CXXFLAGS="$ac_save_CXXFLAGS"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+
+fi
+
+
+if eval "test ! \"`echo $kde_cv_qt_jpeg`\" = no"; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+  LIBJPEG_QT='$(LIBJPEG)'
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  LIBJPEG_QT=
+fi
+
+
+
+if test "x$kde_use_qt_emb" != "xyes" && test "x$kde_use_qt_mac" != "xyes"; then
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG) -lXext $(LIB_X11) $(LIBSM)'
+else
+LIB_QT="$kde_int_qt $LIBJPEG_QT "'$(LIBZ) $(LIBPNG)'
+fi
+test -z "$KDE_MT_LIBS" || LIB_QT="$LIB_QT $KDE_MT_LIBS"
+for a in $qt_libdir/lib`echo ${kde_int_qt} | sed 's,^-l,,'`_incremental.*; do
+  if test -e "$a"; then
+     LIB_QT="$LIB_QT ${kde_int_qt}_incremental"
+     break
+  fi
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+echo "$as_me:$LINENO: checking for rpath" >&5
+echo $ECHO_N "checking for rpath... $ECHO_C" >&6
+# Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
+  USE_RPATH=$enableval
+else
+  USE_RPATH=yes
+fi;
+
+if test -z "$KDE_RPATH" && test "$USE_RPATH" = "yes"; then
+
+  KDE_RPATH="-R \$(libdir)"
+
+  if test "$kde_libraries" != "$libdir"; then
+      KDE_RPATH="$KDE_RPATH -R \$(kde_libraries)"
+  fi
+
+  if test -n "$qt_libraries"; then
+    KDE_RPATH="$KDE_RPATH -R \$(qt_libraries)"
+  fi
+    if test -n "$X_LDFLAGS"; then
+    X_RPATH="-R \$(x_libraries)"
+    KDE_RPATH="$KDE_RPATH $X_RPATH"
+  fi
+  if test -n "$KDE_EXTRA_RPATH"; then
+    KDE_RPATH="$KDE_RPATH \$(KDE_EXTRA_RPATH)"
+  fi
+fi
+
+
+
+echo "$as_me:$LINENO: result: $USE_RPATH" >&5
+echo "${ECHO_T}$USE_RPATH" >&6
+
+echo "$as_me:$LINENO: checking for KDE" >&5
+echo $ECHO_N "checking for KDE... $ECHO_C" >&6
+
+if test "${prefix}" != NONE; then
+  kde_includes=${includedir}
+
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$includedir
+while ac_kde_includes=`eval echo "$tmp"`; test "x$ac_kde_includes" != "x$tmp"; do tmp=$ac_kde_includes; done
+exec_prefix=$savex
+
+
+  kde_libraries=${libdir}
+
+savex=$exec_prefix
+test "x$exec_prefix" = xNONE && exec_prefix=$prefix
+tmp=$libdir
+while ac_kde_libraries=`eval echo "$tmp"`; test "x$ac_kde_libraries" != "x$tmp"; do tmp=$ac_kde_libraries; done
+exec_prefix=$savex
+
+
+else
+  ac_kde_includes=
+  ac_kde_libraries=
+  kde_libraries=""
+  kde_includes=""
+fi
+
+if test "${ac_cv_have_kde+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  #try to guess kde locations
+
+if test "$kde_qtver" = 1; then
+  kde_check_header="ksock.h"
+  kde_check_lib="libkdecore.la"
+else
+  kde_check_header="ksharedptr.h"
+  kde_check_lib="libkio.la"
+fi
+
+if test -z ""; then
+
+kde_incdirs="$kde_libs_prefix/include /usr/lib/kde/include /usr/local/kde/include /usr/local/include /usr/kde/include /usr/include/kde /usr/include /opt/kde3/include /opt/kde/include $x_includes $qt_includes"
+test -n "$KDEDIR" && kde_incdirs="$KDEDIR/include $KDEDIR/include/kde $KDEDIR $kde_incdirs"
+kde_incdirs="$ac_kde_includes $kde_incdirs"
+
+kde_incdir=NO
+for i in $kde_incdirs;
+do
+  for j in $kde_check_header;
+  do
+    echo "configure: 30837: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      kde_incdir=$i
+      break 2
+    fi
+  done
+done
+
+ac_kde_includes="$kde_incdir"
+
+if test -n "$ac_kde_includes" && test ! -r "$ac_kde_includes/$kde_check_header"; then
+  { { echo "$as_me:$LINENO: error:
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!" >&5
+echo "$as_me: error:
+in the prefix, you've chosen, are no KDE headers installed. This will fail.
+So, check this please and use another prefix!" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+kde_libdirs="$kde_libs_prefix/lib${kdelibsuff} /usr/lib/kde/lib${kdelibsuff} /usr/local/kde/lib${kdelibsuff} /usr/kde/lib${kdelibsuff} /usr/lib${kdelibsuff}/kde /usr/lib${kdelibsuff}/kde3 /usr/lib${kdelibsuff} /usr/X11R6/lib${kdelibsuff} /usr/local/lib${kdelibsuff} /opt/kde3/lib${kdelibsuff} /opt/kde/lib${kdelibsuff} /usr/X11R6/kde/lib${kdelibsuff}"
+test -n "$KDEDIR" && kde_libdirs="$KDEDIR/lib${kdelibsuff} $KDEDIR $kde_libdirs"
+kde_libdirs="$ac_kde_libraries $libdir $kde_libdirs"
+
+kde_libdir=NO
+for i in $kde_libdirs;
+do
+  for j in $kde_check_lib;
+  do
+    echo "configure: 30867: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      kde_libdir=$i
+      break 2
+    fi
+  done
+done
+
+ac_kde_libraries="$kde_libdir"
+
+kde_widgetdir=NO
+
+kde_widgetdir=NO
+for i in $kde_libdirs;
+do
+  for j in "kde3/plugins/designer/kdewidgets.la";
+  do
+    echo "configure: 30885: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      kde_widgetdir=$i
+      break 2
+    fi
+  done
+done
+
+
+if test -n "$ac_kde_libraries" && test ! -r "$ac_kde_libraries/$kde_check_lib"; then
+{ { echo "$as_me:$LINENO: error:
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!" >&5
+echo "$as_me: error:
+in the prefix, you've chosen, are no KDE libraries installed. This will fail.
+So, check this please and use another prefix!" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+if test -n "$kde_widgetdir" && test ! -r "$kde_widgetdir/kde3/plugins/designer/kdewidgets.la"; then
+{ { echo "$as_me:$LINENO: error:
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs" >&5
+echo "$as_me: error:
+I can't find the designer plugins. These are required and should have been installed
+by kdelibs" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+if test -n "$kde_widgetdir"; then
+    kde_widgetdir="$kde_widgetdir/kde3/plugins/designer"
+fi
+
+
+if test "$ac_kde_includes" = NO || test "$ac_kde_libraries" = NO || test "$kde_widgetdir" = NO; then
+  ac_cv_have_kde="have_kde=no"
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+fi
+
+else
+  ac_cv_have_kde="have_kde=no"
+
+fi
+
+fi
+
+eval "$ac_cv_have_kde"
+
+if test "$have_kde" != "yes"; then
+ if test "${prefix}" = NONE; then
+  ac_kde_prefix="$ac_default_prefix"
+ else
+  ac_kde_prefix="$prefix"
+ fi
+ if test "$exec_prefix" = NONE; then
+  ac_kde_exec_prefix="$ac_kde_prefix"
+  echo "$as_me:$LINENO: result: will be installed in $ac_kde_prefix" >&5
+echo "${ECHO_T}will be installed in $ac_kde_prefix" >&6
+ else
+  ac_kde_exec_prefix="$exec_prefix"
+  echo "$as_me:$LINENO: result: will be installed in $ac_kde_prefix and $ac_kde_exec_prefix" >&5
+echo "${ECHO_T}will be installed in $ac_kde_prefix and $ac_kde_exec_prefix" >&6
+ fi
+
+ kde_libraries="${libdir}"
+ kde_includes="${includedir}"
+
+else
+  ac_cv_have_kde="have_kde=yes \
+    ac_kde_includes=$ac_kde_includes ac_kde_libraries=$ac_kde_libraries"
+  echo "$as_me:$LINENO: result: libraries $ac_kde_libraries, headers $ac_kde_includes" >&5
+echo "${ECHO_T}libraries $ac_kde_libraries, headers $ac_kde_includes" >&6
+
+  kde_libraries="$ac_kde_libraries"
+  kde_includes="$ac_kde_includes"
+fi
+
+
+
+if test "$kde_includes" = "$x_includes" || test "$kde_includes" = "$qt_includes"  || test "$kde_includes" = "/usr/include"; then
+ KDE_INCLUDES=""
+else
+ KDE_INCLUDES="-I$kde_includes"
+ all_includes="$KDE_INCLUDES $all_includes"
+fi
+
+KDE_DEFAULT_CXXFLAGS="-DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION"
+
+KDE_LDFLAGS="-L$kde_libraries"
+if test ! "$kde_libraries" = "$x_libraries" && test ! "$kde_libraries" = "$qt_libraries" ; then
+ all_libraries="$KDE_LDFLAGS $all_libraries"
+fi
+
+
+
+
+
+
+all_libraries="$all_libraries $USER_LDFLAGS"
+all_includes="$all_includes $USER_INCLUDES"
+
+
+
+if test -z ""; then
+
+
+
+if test x$ac_uic_supports_libpath = xyes; then
+
+echo "$as_me:$LINENO: checking if UIC has KDE plugins available" >&5
+echo $ECHO_N "checking if UIC has KDE plugins available... $ECHO_C" >&6
+if test "${kde_cv_uic_plugins+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat > actest.ui << EOF
+<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
+<class>NewConnectionDialog</class>
+<widget class="QDialog">
+   <widget class="KLineEdit">
+        <property name="name">
+           <cstring>testInput</cstring>
+        </property>
+   </widget>
+</widget>
+</UI>
+EOF
+
+
+
+kde_cv_uic_plugins=no
+kde_line="$UIC_PATH -L $kde_widgetdir"
+if test x$ac_uic_supports_nounload = xyes; then
+   kde_line="$kde_line -nounload"
+fi
+kde_line="$kde_line -impl actest.h actest.ui > actest.cpp"
+if { (eval echo "$as_me:$LINENO: \"$kde_line\"") >&5
+  (eval $kde_line) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+	# if you're trying to debug this check and think it's incorrect,
+	# better check your installation. The check _is_ correct - your
+	# installation is not.
+	if test -f actest.cpp && grep klineedit actest.cpp > /dev/null; then
+		kde_cv_uic_plugins=yes
+	fi
+fi
+rm -f actest.ui actest.cpp
+
+fi
+
+
+echo "$as_me:$LINENO: result: $kde_cv_uic_plugins" >&5
+echo "${ECHO_T}$kde_cv_uic_plugins" >&6
+if test "$kde_cv_uic_plugins" != yes; then
+	{ { echo "$as_me:$LINENO: error:
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs.
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
+_same Qt version_, compiled with the _same compiler_ and the same Qt
+configuration settings.
+" >&5
+echo "$as_me: error:
+you need to install kdelibs first.
+
+If you did install kdelibs, then the Qt version that is picked up by
+this configure is not the same version you used to compile kdelibs.
+The Qt Plugin installed by kdelibs is *ONLY* loadable if it is the
+_same Qt version_, compiled with the _same compiler_ and the same Qt
+configuration settings.
+" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+fi
+
+fi
+
+ac_kde_libraries="$kde_libdir"
+
+
+
+
+
+  # Check whether --enable-path-check or --disable-path-check was given.
+if test "${enable_path_check+set}" = set; then
+  enableval="$enable_path_check"
+
+  if test "$enableval" = "no";
+    then ac_use_path_checking="default"
+    else ac_use_path_checking=""
+  fi
+
+else
+
+  if test "$kde_qtver" = 1;
+    then ac_use_path_checking=""
+    else ac_use_path_checking="default"
+  fi
+
+
+fi;
+
+
+
+
+echo "$as_me:$LINENO: checking for KDE paths" >&5
+echo $ECHO_N "checking for KDE paths... $ECHO_C" >&6
+kde_result=""
+kde_cached_paths=yes
+if test "${kde_cv_all_paths+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+
+if test "$ac_use_path_checking" = "default"; then
+
+  if test -z "$kde_htmldir"; then
+    kde_htmldir='\${datadir}/doc/HTML'
+  fi
+  if test -z "$kde_appsdir"; then
+    kde_appsdir='\${datadir}/applnk'
+  fi
+  if test -z "$kde_icondir"; then
+    kde_icondir='\${datadir}/icons'
+  fi
+  if test -z "$kde_sounddir"; then
+    kde_sounddir='\${datadir}/sounds'
+  fi
+  if test -z "$kde_datadir"; then
+    kde_datadir='\${datadir}/apps'
+  fi
+  if test -z "$kde_locale"; then
+    kde_locale='\${datadir}/locale'
+  fi
+  if test -z "$kde_cgidir"; then
+    kde_cgidir='\${exec_prefix}/cgi-bin'
+  fi
+  if test -z "$kde_confdir"; then
+    kde_confdir='\${datadir}/config'
+  fi
+  if test -z "$kde_kcfgdir"; then
+    kde_kcfgdir='\${datadir}/config.kcfg'
+  fi
+  if test -z "$kde_mimedir"; then
+    kde_mimedir='\${datadir}/mimelnk'
+  fi
+  if test -z "$kde_toolbardir"; then
+    kde_toolbardir='\${datadir}/toolbar'
+  fi
+  if test -z "$kde_wallpaperdir"; then
+    kde_wallpaperdir='\${datadir}/wallpapers'
+  fi
+  if test -z "$kde_templatesdir"; then
+    kde_templatesdir='\${datadir}/templates'
+  fi
+  if test -z "$kde_bindir"; then
+    kde_bindir='\${exec_prefix}/bin'
+  fi
+  if test -z "$kde_servicesdir"; then
+    kde_servicesdir='\${datadir}/services'
+  fi
+  if test -z "$kde_servicetypesdir"; then
+    kde_servicetypesdir='\${datadir}/servicetypes'
+  fi
+  if test -z "$kde_moduledir"; then
+    if test "$kde_qtver" = "2"; then
+      kde_moduledir='\${libdir}/kde2'
+    else
+      kde_moduledir='\${libdir}/kde3'
+    fi
+  fi
+  if test -z "$kde_styledir"; then
+    kde_styledir='\${libdir}/kde3/plugins/styles'
+  fi
+  if test -z "$kde_widgetdir"; then
+    kde_widgetdir='\${libdir}/kde3/plugins/designer'
+  fi
+  if test -z "$xdg_appsdir"; then
+    xdg_appsdir='\${datadir}/applications/kde'
+  fi
+  if test -z "$xdg_menudir"; then
+    xdg_menudir='\${sysconfdir}/xdg/menus'
+  fi
+  if test -z "$xdg_directorydir"; then
+    xdg_directorydir='\${datadir}/desktop-directories'
+  fi
+
+
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=defaults"
+
+
+else
+
+  if test $kde_qtver = 1; then
+     echo "$as_me:$LINENO: result: compiling" >&5
+echo "${ECHO_T}compiling" >&6
+
+
+    echo "$as_me:$LINENO: checking for KDE headers installed" >&5
+echo $ECHO_N "checking for KDE headers installed... $ECHO_C" >&6
+
+
+     ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+    printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+    printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+    printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+    printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+    printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+    printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+    printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+    printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+    printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+    printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+    printf("kde_wallpaperdir=\\"%s\\"\n",
+	KApplication::kde_wallpaperdir().data());
+    printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+    printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+    printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+    printf("kde_styledir=\\"/tmp/dummy\\"\n");
+    printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+    printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+    printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+    return 0;
+    }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+   { { echo "$as_me:$LINENO: error: your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log." >&5
+echo "$as_me: error: your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  CPPFLAGS=$ac_save_CPPFLAGS
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+  KDE_TEST_RPATH=
+
+  if test -n "$USE_RPATH"; then
+
+     if test -n "$kde_libraries"; then
+       KDE_TEST_RPATH="-R $kde_libraries"
+     fi
+
+     if test -n "$qt_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+     fi
+
+     if test -n "$x_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+     fi
+
+     KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+  fi
+
+echo "$as_me:$LINENO: checking for KDE libraries installed" >&5
+echo $ECHO_N "checking for KDE libraries installed... $ECHO_C" >&6
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  { { echo "$as_me:$LINENO: error: your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log." >&5
+echo "$as_me: error: your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+  kde_result=done
+else
+  kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=$kde_result"
+
+
+
+  else
+     { { echo "$as_me:$LINENO: error: path checking not yet supported for KDE 2" >&5
+echo "$as_me: error: path checking not yet supported for KDE 2" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+
+fi
+
+  kde_cached_paths=no
+
+fi
+
+eval "$kde_cv_all_paths"
+ if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+   test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+   test -z "$kde_datadir" || test -z "$kde_locale"  ||
+   test -z "$kde_cgidir"  || test -z "$kde_confdir" ||
+   test -z "$kde_kcfgdir" ||
+   test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+   test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+   test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+   test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+   test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+   test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+   test "x$kde_have_all_paths" != "xyes"; then
+     kde_have_all_paths=no
+  fi
+
+if test "$kde_have_all_paths" = "no" && test "$kde_cached_paths" = "yes"; then
+  # wrong values were cached, may be, we can set better ones
+  kde_result=
+  kde_htmldir= kde_appsdir= kde_icondir= kde_sounddir=
+  kde_datadir= kde_locale=  kde_cgidir=  kde_confdir= kde_kcfgdir=
+  kde_mimedir= kde_toolbardir= kde_wallpaperdir= kde_templatesdir=
+  kde_bindir= kde_servicesdir= kde_servicetypesdir= kde_moduledir=
+  kde_have_all_paths=
+  kde_styledir=
+  kde_widgetdir=
+  xdg_appsdir = xdg_menudir= xdg_directorydir=
+
+if test "$ac_use_path_checking" = "default"; then
+
+  if test -z "$kde_htmldir"; then
+    kde_htmldir='\${datadir}/doc/HTML'
+  fi
+  if test -z "$kde_appsdir"; then
+    kde_appsdir='\${datadir}/applnk'
+  fi
+  if test -z "$kde_icondir"; then
+    kde_icondir='\${datadir}/icons'
+  fi
+  if test -z "$kde_sounddir"; then
+    kde_sounddir='\${datadir}/sounds'
+  fi
+  if test -z "$kde_datadir"; then
+    kde_datadir='\${datadir}/apps'
+  fi
+  if test -z "$kde_locale"; then
+    kde_locale='\${datadir}/locale'
+  fi
+  if test -z "$kde_cgidir"; then
+    kde_cgidir='\${exec_prefix}/cgi-bin'
+  fi
+  if test -z "$kde_confdir"; then
+    kde_confdir='\${datadir}/config'
+  fi
+  if test -z "$kde_kcfgdir"; then
+    kde_kcfgdir='\${datadir}/config.kcfg'
+  fi
+  if test -z "$kde_mimedir"; then
+    kde_mimedir='\${datadir}/mimelnk'
+  fi
+  if test -z "$kde_toolbardir"; then
+    kde_toolbardir='\${datadir}/toolbar'
+  fi
+  if test -z "$kde_wallpaperdir"; then
+    kde_wallpaperdir='\${datadir}/wallpapers'
+  fi
+  if test -z "$kde_templatesdir"; then
+    kde_templatesdir='\${datadir}/templates'
+  fi
+  if test -z "$kde_bindir"; then
+    kde_bindir='\${exec_prefix}/bin'
+  fi
+  if test -z "$kde_servicesdir"; then
+    kde_servicesdir='\${datadir}/services'
+  fi
+  if test -z "$kde_servicetypesdir"; then
+    kde_servicetypesdir='\${datadir}/servicetypes'
+  fi
+  if test -z "$kde_moduledir"; then
+    if test "$kde_qtver" = "2"; then
+      kde_moduledir='\${libdir}/kde2'
+    else
+      kde_moduledir='\${libdir}/kde3'
+    fi
+  fi
+  if test -z "$kde_styledir"; then
+    kde_styledir='\${libdir}/kde3/plugins/styles'
+  fi
+  if test -z "$kde_widgetdir"; then
+    kde_widgetdir='\${libdir}/kde3/plugins/designer'
+  fi
+  if test -z "$xdg_appsdir"; then
+    xdg_appsdir='\${datadir}/applications/kde'
+  fi
+  if test -z "$xdg_menudir"; then
+    xdg_menudir='\${sysconfdir}/xdg/menus'
+  fi
+  if test -z "$xdg_directorydir"; then
+    xdg_directorydir='\${datadir}/desktop-directories'
+  fi
+
+
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=defaults"
+
+
+else
+
+  if test $kde_qtver = 1; then
+     echo "$as_me:$LINENO: result: compiling" >&5
+echo "${ECHO_T}compiling" >&6
+
+
+    echo "$as_me:$LINENO: checking for KDE headers installed" >&5
+echo $ECHO_N "checking for KDE headers installed... $ECHO_C" >&6
+
+
+     ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ac_link='rm -rf SunWS_cache; ${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+
+
+cat > conftest.$ac_ext <<EOF
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+#endif
+#include <stdio.h>
+#include "confdefs.h"
+#include <kapp.h>
+
+int main() {
+    printf("kde_htmldir=\\"%s\\"\n", KApplication::kde_htmldir().data());
+    printf("kde_appsdir=\\"%s\\"\n", KApplication::kde_appsdir().data());
+    printf("kde_icondir=\\"%s\\"\n", KApplication::kde_icondir().data());
+    printf("kde_sounddir=\\"%s\\"\n", KApplication::kde_sounddir().data());
+    printf("kde_datadir=\\"%s\\"\n", KApplication::kde_datadir().data());
+    printf("kde_locale=\\"%s\\"\n", KApplication::kde_localedir().data());
+    printf("kde_cgidir=\\"%s\\"\n", KApplication::kde_cgidir().data());
+    printf("kde_confdir=\\"%s\\"\n", KApplication::kde_configdir().data());
+    printf("kde_mimedir=\\"%s\\"\n", KApplication::kde_mimedir().data());
+    printf("kde_toolbardir=\\"%s\\"\n", KApplication::kde_toolbardir().data());
+    printf("kde_wallpaperdir=\\"%s\\"\n",
+	KApplication::kde_wallpaperdir().data());
+    printf("kde_bindir=\\"%s\\"\n", KApplication::kde_bindir().data());
+    printf("kde_partsdir=\\"%s\\"\n", KApplication::kde_partsdir().data());
+    printf("kde_servicesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_servicetypesdir=\\"/tmp/dummy\\"\n");
+    printf("kde_moduledir=\\"/tmp/dummy\\"\n");
+    printf("kde_styledir=\\"/tmp/dummy\\"\n");
+    printf("kde_widgetdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_appsdir=\\"/tmp/dummy\\"\n");
+    printf("xdg_menudir=\\"/tmp/dummy\\"\n");
+    printf("xdg_directorydir=\\"/tmp/dummy\\"\n");
+    printf("kde_kcfgdir=\\"/tmp/dummy\\"\n");
+    return 0;
+    }
+EOF
+
+ ac_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$all_includes $CPPFLAGS"
+ if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; then
+   echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+   { { echo "$as_me:$LINENO: error: your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log." >&5
+echo "$as_me: error: your system is not able to compile a small KDE application!
+Check, if you installed the KDE header files correctly.
+For more details about this problem, look at the end of config.log." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  CPPFLAGS=$ac_save_CPPFLAGS
+
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+  KDE_TEST_RPATH=
+
+  if test -n "$USE_RPATH"; then
+
+     if test -n "$kde_libraries"; then
+       KDE_TEST_RPATH="-R $kde_libraries"
+     fi
+
+     if test -n "$qt_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $qt_libraries"
+     fi
+
+     if test -n "$x_libraries"; then
+       KDE_TEST_RPATH="$KDE_TEST_RPATH -R $x_libraries"
+     fi
+
+     KDE_TEST_RPATH="$KDE_TEST_RPATH $KDE_EXTRA_RPATH"
+  fi
+
+echo "$as_me:$LINENO: checking for KDE libraries installed" >&5
+echo $ECHO_N "checking for KDE libraries installed... $ECHO_C" >&6
+ac_link='$LIBTOOL_SHELL --silent --mode=link ${CXX-g++} -o conftest $CXXFLAGS $all_includes $CPPFLAGS $LDFLAGS $all_libraries conftest.$ac_ext $LIBS -lkdecore $LIBQT $KDE_TEST_RPATH 1>&5'
+
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && test -s conftest; then
+  echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+  { { echo "$as_me:$LINENO: error: your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log." >&5
+echo "$as_me: error: your system fails at linking a small KDE application!
+Check, if your compiler is installed correctly and if you have used the
+same compiler to compile Qt and kdelibs as you did use now.
+For more details about this problem, look at the end of config.log." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+if eval `KDEDIR= ./conftest 2>&5`; then
+  kde_result=done
+else
+  kde_result=problems
+fi
+
+KDEDIR= ./conftest 2> /dev/null >&5 # make an echo for config.log
+kde_have_all_paths=yes
+
+
+  kde_cv_all_paths="kde_have_all_paths=\"yes\" \
+	kde_htmldir=\"$kde_htmldir\" \
+	kde_appsdir=\"$kde_appsdir\" \
+	kde_icondir=\"$kde_icondir\" \
+	kde_sounddir=\"$kde_sounddir\" \
+	kde_datadir=\"$kde_datadir\" \
+	kde_locale=\"$kde_locale\" \
+	kde_cgidir=\"$kde_cgidir\" \
+	kde_confdir=\"$kde_confdir\" \
+	kde_kcfgdir=\"$kde_kcfgdir\" \
+	kde_mimedir=\"$kde_mimedir\" \
+	kde_toolbardir=\"$kde_toolbardir\" \
+	kde_wallpaperdir=\"$kde_wallpaperdir\" \
+	kde_templatesdir=\"$kde_templatesdir\" \
+	kde_bindir=\"$kde_bindir\" \
+	kde_servicesdir=\"$kde_servicesdir\" \
+	kde_servicetypesdir=\"$kde_servicetypesdir\" \
+	kde_moduledir=\"$kde_moduledir\" \
+	kde_styledir=\"$kde_styledir\" \
+	kde_widgetdir=\"$kde_widgetdir\" \
+	xdg_appsdir=\"$xdg_appsdir\" \
+	xdg_menudir=\"$xdg_menudir\" \
+	xdg_directorydir=\"$xdg_directorydir\" \
+	kde_result=$kde_result"
+
+
+
+  else
+     { { echo "$as_me:$LINENO: error: path checking not yet supported for KDE 2" >&5
+echo "$as_me: error: path checking not yet supported for KDE 2" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+
+fi
+
+  eval "$kde_cv_all_paths"
+   if test -z "$kde_htmldir" || test -z "$kde_appsdir" ||
+   test -z "$kde_icondir" || test -z "$kde_sounddir" ||
+   test -z "$kde_datadir" || test -z "$kde_locale"  ||
+   test -z "$kde_cgidir"  || test -z "$kde_confdir" ||
+   test -z "$kde_kcfgdir" ||
+   test -z "$kde_mimedir" || test -z "$kde_toolbardir" ||
+   test -z "$kde_wallpaperdir" || test -z "$kde_templatesdir" ||
+   test -z "$kde_bindir" || test -z "$kde_servicesdir" ||
+   test -z "$kde_servicetypesdir" || test -z "$kde_moduledir" ||
+   test -z "$kde_styledir" || test -z "kde_widgetdir" ||
+   test -z "$xdg_appsdir" || test -z "$xdg_menudir" || test -z "$xdg_directorydir" ||
+   test "x$kde_have_all_paths" != "xyes"; then
+     kde_have_all_paths=no
+  fi
+
+  kde_result="$kde_result (cache overridden)"
+fi
+if test "$kde_have_all_paths" = "no"; then
+  { { echo "$as_me:$LINENO: error: configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+" >&5
+echo "$as_me: error: configure could not run a little KDE program to test the environment.
+Since it had compiled and linked before, it must be a strange problem on your system.
+Look at config.log for details. If you are not able to fix this, look at
+http://www.kde.org/faq/installation.html or any www.kde.org mirror.
+(If you're using an egcs version on Linux, you may update binutils!)
+" >&2;}
+   { (exit 1); exit 1; }; }
+else
+  rm -f conftest*
+  echo "$as_me:$LINENO: result: $kde_result" >&5
+echo "${ECHO_T}$kde_result" >&6
+fi
+
+bindir=$kde_bindir
+
+
+
+# Check whether --with-arts or --without-arts was given.
+if test "${with_arts+set}" = set; then
+  withval="$with_arts"
+  build_arts=$withval
+else
+  build_arts=yes
+
+fi;
+
+
+if test "$build_arts" '!=' "no"; then
+  include_ARTS_TRUE=
+  include_ARTS_FALSE='#'
+else
+  include_ARTS_TRUE='#'
+  include_ARTS_FALSE=
+fi
+
+    if test "$build_arts" = "no"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define WITHOUT_ARTS 1
+_ACEOF
+
+    fi
+
+
+    kde_default_bindirs="/usr/bin /usr/local/bin /opt/local/bin /usr/X11R6/bin /opt/kde/bin /opt/kde3/bin /usr/kde/bin /usr/local/kde/bin"
+    test -n "$KDEDIR" && kde_default_bindirs="$KDEDIR/bin $kde_default_bindirs"
+    if test -n "$KDEDIRS"; then
+       kde_save_IFS=$IFS
+       IFS=:
+       for dir in $KDEDIRS; do
+            kde_default_bindirs="$dir/bin $kde_default_bindirs "
+       done
+       IFS=$kde_save_IFS
+    fi
+
+        kde_default_bindirs="$exec_prefix/bin $prefix/bin $kde_libs_prefix/bin $kde_default_bindirs"
+
+   echo "$as_me:$LINENO: checking for dcopidl" >&5
+echo $ECHO_N "checking for dcopidl... $ECHO_C" >&6
+   if test -n "$DCOPIDL"; then
+        kde_cv_path="$DCOPIDL";
+   else
+        kde_cache=`echo dcopidl | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/dcopidl"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/dcopidl  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/dcopidl"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/dcopidl"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program dcopidl was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program dcopidl was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      DCOPIDL=$kde_cv_path
+
+   fi
+
+
+   echo "$as_me:$LINENO: checking for dcopidl2cpp" >&5
+echo $ECHO_N "checking for dcopidl2cpp... $ECHO_C" >&6
+   if test -n "$DCOPIDL2CPP"; then
+        kde_cv_path="$DCOPIDL2CPP";
+   else
+        kde_cache=`echo dcopidl2cpp | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/dcopidl2cpp"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/dcopidl2cpp  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/dcopidl2cpp"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/dcopidl2cpp"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program dcopidl2cpp was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program dcopidl2cpp was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      DCOPIDL2CPP=$kde_cv_path
+
+   fi
+
+        if test "$build_arts" '!=' "no"; then
+
+   echo "$as_me:$LINENO: checking for mcopidl" >&5
+echo $ECHO_N "checking for mcopidl... $ECHO_C" >&6
+   if test -n "$MCOPIDL"; then
+        kde_cv_path="$MCOPIDL";
+   else
+        kde_cache=`echo mcopidl | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/mcopidl"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/mcopidl  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/mcopidl"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/mcopidl"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program mcopidl was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+" >&5
+echo "$as_me: error: The important program mcopidl was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      MCOPIDL=$kde_cv_path
+
+   fi
+
+
+   echo "$as_me:$LINENO: checking for artsc-config" >&5
+echo $ECHO_N "checking for artsc-config... $ECHO_C" >&6
+   if test -n "$ARTSCCONFIG"; then
+        kde_cv_path="$ARTSCCONFIG";
+   else
+        kde_cache=`echo artsc-config | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/artsc-config"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/artsc-config  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/artsc-config"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/artsc-config"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program artsc-config was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+" >&5
+echo "$as_me: error: The important program artsc-config was not found!
+Please check whether you installed aRts correctly or use
+--without-arts to compile without aRts support (this will remove functionality).
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      ARTSCCONFIG=$kde_cv_path
+
+   fi
+
+        fi
+
+   echo "$as_me:$LINENO: checking for meinproc" >&5
+echo $ECHO_N "checking for meinproc... $ECHO_C" >&6
+   if test -n "$MEINPROC"; then
+        kde_cv_path="$MEINPROC";
+   else
+        kde_cache=`echo meinproc | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/meinproc"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/meinproc  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/meinproc"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/meinproc"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      MEINPROC=$kde_cv_path
+
+   fi
+
+
+        kde32ornewer=1
+        kde33ornewer=1
+        if test -n "$kde_qtver" && test "$kde_qtver" -lt 3; then
+            kde32ornewer=
+            kde33ornewer=
+        else
+            if test "$kde_qtver" = "3"; then
+              if test "$kde_qtsubver" -le 1; then
+                kde32ornewer=
+              fi
+              if test "$kde_qtsubver" -le 2; then
+                kde33ornewer=
+              fi
+              if test "$KDECONFIG" != "compiled"; then
+                if test `$KDECONFIG --version | grep KDE | sed 's/KDE: \(...\).*/\1/'` = 3.2; then
+                  kde33ornewer=
+                fi
+              fi
+            fi
+        fi
+
+        if test -n "$kde32ornewer"; then
+
+   echo "$as_me:$LINENO: checking for kconfig_compiler" >&5
+echo $ECHO_N "checking for kconfig_compiler... $ECHO_C" >&6
+   if test -n "$KCONFIG_COMPILER"; then
+        kde_cv_path="$KCONFIG_COMPILER";
+   else
+        kde_cache=`echo kconfig_compiler | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/kconfig_compiler"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/kconfig_compiler  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/kconfig_compiler"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/kconfig_compiler"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program kconfig_compiler was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program kconfig_compiler was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      KCONFIG_COMPILER=$kde_cv_path
+
+   fi
+
+
+   echo "$as_me:$LINENO: checking for dcopidlng" >&5
+echo $ECHO_N "checking for dcopidlng... $ECHO_C" >&6
+   if test -n "$DCOPIDLNG"; then
+        kde_cv_path="$DCOPIDLNG";
+   else
+        kde_cache=`echo dcopidlng | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/dcopidlng"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/dcopidlng  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/dcopidlng"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/dcopidlng"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program dcopidlng was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program dcopidlng was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      DCOPIDLNG=$kde_cv_path
+
+   fi
+
+        fi
+        if test -n "$kde33ornewer"; then
+
+   echo "$as_me:$LINENO: checking for makekdewidgets" >&5
+echo $ECHO_N "checking for makekdewidgets... $ECHO_C" >&6
+   if test -n "$MAKEKDEWIDGETS"; then
+        kde_cv_path="$MAKEKDEWIDGETS";
+   else
+        kde_cache=`echo makekdewidgets | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="$kde_default_bindirs $dirs"
+        else  	  dirs="$dirs $kde_default_bindirs"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/makekdewidgets"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/makekdewidgets  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/makekdewidgets"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/makekdewidgets"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+
+    { { echo "$as_me:$LINENO: error: The important program makekdewidgets was not found!
+Please check whether you installed KDE correctly.
+" >&5
+echo "$as_me: error: The important program makekdewidgets was not found!
+Please check whether you installed KDE correctly.
+" >&2;}
+   { (exit 1); exit 1; }; }
+
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      MAKEKDEWIDGETS=$kde_cv_path
+
+   fi
+
+
+        fi
+
+   echo "$as_me:$LINENO: checking for xmllint" >&5
+echo $ECHO_N "checking for xmllint... $ECHO_C" >&6
+   if test -n "$XMLLINT"; then
+        kde_cv_path="$XMLLINT";
+   else
+        kde_cache=`echo xmllint | sed 'y%./+-%__p_%'`
+
+        if eval "test \"\${kde_cv_path_$kde_cache+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+        kde_cv_path="NONE"
+	kde_save_IFS=$IFS
+	IFS=':'
+	dirs=""
+	for dir in $PATH; do
+	  dirs="$dirs $dir"
+	done
+	if test -z ""; then  	  dirs="${prefix}/bin ${exec_prefix}/bin $dirs"
+        else  	  dirs="$dirs ${prefix}/bin ${exec_prefix}/bin"
+	fi
+	IFS=$kde_save_IFS
+
+        for dir in $dirs; do
+	  if test -x "$dir/xmllint"; then
+	    if test -n ""
+	    then
+              evalstr="$dir/xmllint  2>&1 "
+	      if eval $evalstr; then
+                kde_cv_path="$dir/xmllint"
+                break
+	      fi
+            else
+		kde_cv_path="$dir/xmllint"
+                break
+	    fi
+          fi
+        done
+
+        eval "kde_cv_path_$kde_cache=$kde_cv_path"
+
+
+fi
+
+
+      eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\""
+
+   fi
+
+   if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then
+      echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+      XMLLINT=""
+   else
+      echo "$as_me:$LINENO: result: $kde_cv_path" >&5
+echo "${ECHO_T}$kde_cv_path" >&6
+      XMLLINT=$kde_cv_path
+
+   fi
+
+
+        if test -n "$MEINPROC" -a "$MEINPROC" != "compiled"; then
+ 	    kde_sharedirs="/usr/share/kde /usr/local/share /usr/share /opt/kde3/share /opt/kde/share $prefix/share"
+            test -n "$KDEDIR" && kde_sharedirs="$KDEDIR/share $kde_sharedirs"
+
+KDE_XSL_STYLESHEET=NO
+for i in $kde_sharedirs;
+do
+  for j in apps/ksgmltools2/customization/kde-chunk.xsl;
+  do
+    echo "configure: 32408: $i/$j" >&5
+    if test -r "$i/$j"; then
+      echo "taking that" >&5
+      KDE_XSL_STYLESHEET=$i
+      break 2
+    fi
+  done
+done
+
+	    if test "$KDE_XSL_STYLESHEET" = "NO"; then
+		KDE_XSL_STYLESHEET=""
+	    else
+                KDE_XSL_STYLESHEET="$KDE_XSL_STYLESHEET/apps/ksgmltools2/customization/kde-chunk.xsl"
+	    fi
+        fi
+
+        DCOP_DEPENDENCIES='$(DCOPIDL)'
+        if test -n "$kde32ornewer"; then
+            KCFG_DEPENDENCIES='$(KCONFIG_COMPILER)'
+            DCOP_DEPENDENCIES='$(DCOPIDL) $(DCOPIDLNG)'
+
+
+
+        fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+kdeinitdir='$(kde_moduledir)'
+
+
+
+if test "$kde_qtver" = 1; then
+  kde_minidir="$kde_icondir/mini"
+else
+# for KDE 1 - this breaks KDE2 apps using minidir, but
+# that's the plan ;-/
+  kde_minidir="/dev/null"
+fi
+
+
+
+
+
+
+if test $kde_qtver = 3; then
+   case $host in
+               *cygwin*) lib_kded="-lkdeinit_kded" ;;
+               *) lib_kded="" ;;
+       esac
+   LIB_KDED=$lib_kded
+
+   LIB_KDECORE="-lkdecore"
+
+   LIB_KDEUI="-lkdeui"
+
+   LIB_KIO="-lkio"
+
+   LIB_KJS="-lkjs"
+
+   LIB_SMB="-lsmb"
+
+   LIB_KAB="-lkab"
+
+   LIB_KABC="-lkabc"
+
+   LIB_KHTML="-lkhtml"
+
+   LIB_KSPELL="-lkspell"
+
+   LIB_KPARTS="-lkparts"
+
+   LIB_KMDI="-lkmdi"
+
+   LIB_KDEPRINT="-lkdeprint"
+
+   LIB_KUTILS="-lkutils"
+
+   LIB_KDEPIM="-lkdepim"
+
+   LIB_KIMPROXY="-lkimproxy"
+
+   LIB_KNEWSTUFF="-lknewstuff"
+
+   LIB_KDNSSD="-lkdnssd"
+
+   LIB_KUNITTEST="-lkunittest"
+
+# these are for backward compatibility
+   LIB_KSYCOCA="-lkio"
+
+   LIB_KFILE="-lkio"
+
+elif test $kde_qtver = 2; then
+   LIB_KDECORE="-lkdecore"
+
+   LIB_KDEUI="-lkdeui"
+
+   LIB_KIO="-lkio"
+
+   LIB_KSYCOCA="-lksycoca"
+
+   LIB_SMB="-lsmb"
+
+   LIB_KFILE="-lkfile"
+
+   LIB_KAB="-lkab"
+
+   LIB_KHTML="-lkhtml"
+
+   LIB_KSPELL="-lkspell"
+
+   LIB_KPARTS="-lkparts"
+
+   LIB_KDEPRINT="-lkdeprint"
+
+else
+   LIB_KDECORE="-lkdecore -lXext $(LIB_QT)"
+
+   LIB_KDEUI="-lkdeui $(LIB_KDECORE)"
+
+   LIB_KFM="-lkfm $(LIB_KDECORE)"
+
+   LIB_KFILE="-lkfile $(LIB_KFM) $(LIB_KDEUI)"
+
+   LIB_KAB="-lkab $(LIB_KIMGIO) $(LIB_KDECORE)"
+
+fi
+
+
+
+#MIN_CONFIG(3)
+
+
+CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS"
+
+# KDE_FIND_PATH(pqxx-config, PQXX_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin /usr/bin], [
+#  AC_MSG_WARN([libpqxx not found anywhere, check http://pqxx.org for libpqxx. ])
+#])
+
+#if test -n "$PQXX_CONFIG"; then
+    PQXX_LIBS=`pkg-config --libs libpqxx`
+    PQXX_CFLAGS=`pkg-config --cflags libpqxx`
+#fi
+
+
+
+#AC_SUBST(PQXX_LIBS, "-lpqxx")
+
+CXXFLAGS="$CXXFLAGS $PQXX_CFLAGS"
+
+
+DO_NOT_COMPILE="$DO_NOT_COMPILE CVS debian bsd-port admin"
+TOPSUBDIRS=""
+
+if test ! -s $srcdir/subdirs; then
+    files=`cd $srcdir && ls -1`
+  dirs=`for i in $files; do if test -d $i; then echo $i; fi; done`
+  for i in $dirs; do
+    echo $i >> $srcdir/subdirs
+  done
+fi
+
+ac_topsubdirs=
+if test -s $srcdir/inst-apps; then
+  ac_topsubdirs="`cat $srcdir/inst-apps`"
+elif test -s $srcdir/subdirs; then
+  ac_topsubdirs="`cat $srcdir/subdirs`"
+fi
+
+for i in $ac_topsubdirs; do
+  echo "$as_me:$LINENO: checking if $i should be compiled" >&5
+echo $ECHO_N "checking if $i should be compiled... $ECHO_C" >&6
+  if test -d $srcdir/$i; then
+    install_it="yes"
+    for j in $DO_NOT_COMPILE; do
+      if test $i = $j; then
+        install_it="no"
+      fi
+    done
+  else
+    install_it="no"
+  fi
+  echo "$as_me:$LINENO: result: $install_it" >&5
+echo "${ECHO_T}$install_it" >&6
+  vari=`echo $i | sed -e 's,[-+.@],_,g'`
+  if test $install_it = "yes"; then
+    TOPSUBDIRS="$TOPSUBDIRS $i"
+    eval "$vari""_SUBDIR_included=yes"
+  else
+    eval "$vari""_SUBDIR_included=no"
+  fi
+done
+
+
+
+          ac_config_files="$ac_config_files Makefile"
+
+          ac_config_files="$ac_config_files admin/Makefile"
+
+          ac_config_files="$ac_config_files doc/Makefile"
+
+          ac_config_files="$ac_config_files doc/en/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/DataTable/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/DbObjects/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/Debugger/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/Executor/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/PropertyPages/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/QueryResult/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/Wizards/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/XmlSupport/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/icons/Makefile"
+
+          ac_config_files="$ac_config_files kpogre/pics/Makefile"
+
+          ac_config_files="$ac_config_files po/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+{
+  (set) 2>&1 |
+    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+    *ac_space=\ *)
+      # `set' does not quote correctly, so add quotes (double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;;
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n \
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      ;;
+    esac;
+} |
+  sed '
+     t clear
+     : clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     : end' >>confcache
+if diff $cache_file confcache >/dev/null 2>&1; then :; else
+  if test -w $cache_file; then
+    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+    cat confcache >$cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/;
+s/:*\${srcdir}:*/:/;
+s/:*@srcdir@:*/:/;
+s/^\([^=]*=[	 ]*\):*/\1/;
+s/:*$//;
+s/^[^=]*=[	 ]*$//;
+}'
+fi
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_i=`echo "$ac_i" |
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+  # 2. Add them.
+  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${unsermake_enable_pch_TRUE}" && test -z "${unsermake_enable_pch_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"unsermake_enable_pch\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"unsermake_enable_pch\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${include_x11_TRUE}" && test -z "${include_x11_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"include_x11\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"include_x11\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+if test -z "${include_ARTS_TRUE}" && test -z "${include_ARTS_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"include_ARTS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"include_ARTS\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+: ${CONFIG_STATUS=./config.status}
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+SHELL=\${CONFIG_SHELL-$SHELL}
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+## --------------------- ##
+## M4sh Initialization.  ##
+## --------------------- ##
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+  set -o posix
+fi
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# Support unset when possible.
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+  as_unset=unset
+else
+  as_unset=false
+fi
+
+
+# Work around bugs in pre-3.0 UWIN ksh.
+$as_unset ENV MAIL MAILPATH
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+for as_var in \
+  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+  LC_TELEPHONE LC_TIME
+do
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+    eval $as_var=C; export $as_var
+  else
+    $as_unset $as_var
+  fi
+done
+
+# Required to use basename.
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+
+# Name of the executable.
+as_me=`$as_basename "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)$' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\/\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+
+
+# PATH needs CR, and LINENO needs CR and PATH.
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+  # Find who we are.  Look in the path if we contain no path at all
+  # relative or not.
+  case $0 in
+    *[\\/]* ) as_myself=$0 ;;
+    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+
+       ;;
+  esac
+  # We did not find ourselves, most probably we were run as `sh COMMAND'
+  # in which case we are not to be found in the path.
+  if test "x$as_myself" = x; then
+    as_myself=$0
+  fi
+  if test ! -f "$as_myself"; then
+    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+  case $CONFIG_SHELL in
+  '')
+    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for as_base in sh bash ksh sh5; do
+	 case $as_dir in
+	 /*)
+	   if ("$as_dir/$as_base" -c '
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+	     CONFIG_SHELL=$as_dir/$as_base
+	     export CONFIG_SHELL
+	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+	   fi;;
+	 esac
+       done
+done
+;;
+  esac
+
+  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+  # uniformly replaced by the line number.  The first 'sed' inserts a
+  # line-number line before each line; the second 'sed' does the real
+  # work.  The second script uses 'N' to pair each line-number line
+  # with the numbered line, and appends trailing '-' during
+  # substitution so that $LINENO is not a special case at line end.
+  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+  sed '=' <$as_myself |
+    sed '
+      N
+      s,$,-,
+      : loop
+      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      t loop
+      s,-$,,
+      s,^['$as_cr_digits']*\n,,
+    ' >$as_me.lineno &&
+  chmod +x $as_me.lineno ||
+    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+   { (exit 1); exit 1; }; }
+
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensible to this).
+  . ./$as_me.lineno
+  # Exit status is that of the last command.
+  exit
+}
+
+
+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+  *c*,-n*) ECHO_N= ECHO_C='
+' ECHO_T='	' ;;
+  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+esac
+
+if expr a : '\(a\)' >/dev/null 2>&1; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+rm -f conf$$ conf$$.exe conf$$.file
+echo >conf$$.file
+if ln -s conf$$.file conf$$ 2>/dev/null; then
+  # We could just check for DJGPP; but this test a) works b) is more generic
+  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+  if test -f conf$$.exe; then
+    # Don't use ln at all; we don't have any links
+    as_ln_s='cp -p'
+  else
+    as_ln_s='ln -s'
+  fi
+elif ln conf$$.file conf$$ 2>/dev/null; then
+  as_ln_s=ln
+else
+  as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.file
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p=:
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_executable_p="test -f"
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.
+as_nl='
+'
+IFS=" 	$as_nl"
+
+# CDPATH.
+$as_unset CDPATH
+
+exec 6>&1
+
+# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.  Logging --version etc. is OK.
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+} >&5
+cat >&5 <<_CSEOF
+
+This file was extended by $as_me, which was
+generated by GNU Autoconf 2.59.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+_CSEOF
+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+echo >&5
+_ACEOF
+
+# Files that config.status was made for.
+if test -n "$ac_config_files"; then
+  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_headers"; then
+  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_links"; then
+  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+fi
+
+if test -n "$ac_config_commands"; then
+  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+ac_cs_usage="\
+\`$as_me' instantiates files from templates according to the
+current configuration.
+
+Usage: $0 [OPTIONS] [FILE]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number, then exit
+  -q, --quiet      do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+  --file=FILE[:TEMPLATE]
+		   instantiate the configuration file FILE
+  --header=FILE[:TEMPLATE]
+		   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-autoconf at gnu.org>."
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+ac_cs_version="\\
+config.status
+configured by $0, generated by GNU Autoconf 2.59,
+  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+
+Copyright (C) 2003 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+srcdir=$srcdir
+INSTALL="$INSTALL"
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If no file are specified by the user, then we need to provide default
+# value.  By we need to know if files were specified by the user.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=*)
+    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  -*)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  *) # This is not an option, so the user has probably given explicit
+     # arguments.
+     ac_option=$1
+     ac_need_defaults=false;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --vers* | -V )
+    echo "$ac_cs_version"; exit 0 ;;
+  --he | --h)
+    # Conflict between --help and --header
+    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit 0 ;;
+  --debug | --d* | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    ac_need_defaults=false;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&5
+echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2;}
+   { (exit 1); exit 1; }; } ;;
+
+  *) ac_config_targets="$ac_config_targets $1" ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+if \$ac_cs_recheck; then
+  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+fi
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+#
+# INIT-COMMANDS section.
+#
+
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_config_target in $ac_config_targets
+do
+  case "$ac_config_target" in
+  # Handling of arguments.
+  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+  "admin/Makefile" ) CONFIG_FILES="$CONFIG_FILES admin/Makefile" ;;
+  "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
+  "doc/en/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/en/Makefile" ;;
+  "kpogre/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/Makefile" ;;
+  "kpogre/DataTable/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/DataTable/Makefile" ;;
+  "kpogre/DbObjects/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/DbObjects/Makefile" ;;
+  "kpogre/Debugger/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/Debugger/Makefile" ;;
+  "kpogre/Executor/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/Executor/Makefile" ;;
+  "kpogre/PropertyPages/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/PropertyPages/Makefile" ;;
+  "kpogre/QueryResult/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/QueryResult/Makefile" ;;
+  "kpogre/Wizards/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/Wizards/Makefile" ;;
+  "kpogre/XmlSupport/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/XmlSupport/Makefile" ;;
+  "kpogre/icons/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/icons/Makefile" ;;
+  "kpogre/pics/Makefile" ) CONFIG_FILES="$CONFIG_FILES kpogre/pics/Makefile" ;;
+  "po/Makefile" ) CONFIG_FILES="$CONFIG_FILES po/Makefile" ;;
+  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+   { (exit 1); exit 1; }; };;
+  esac
+done
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason to put it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Create a temporary directory, and hook for its removal unless debugging.
+$debug ||
+{
+  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  trap '{ (exit 1); exit 1; }' 1 2 13 15
+}
+
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  test -n "$tmp" && test -d "$tmp"
+}  ||
+{
+  tmp=./confstat$$-$RANDOM
+  (umask 077 && mkdir $tmp)
+} ||
+{
+   echo "$me: cannot create a temporary directory in ." >&2
+   { (exit 1); exit 1; }
+}
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<_ACEOF
+
+#
+# CONFIG_FILES section.
+#
+
+# No need to generate the scripts if there are no CONFIG_FILES.
+# This happens for instance when ./config.status config.h
+if test -n "\$CONFIG_FILES"; then
+  # Protect against being on the right side of a sed subst in config.status.
+  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+s, at SHELL@,$SHELL,;t t
+s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
+s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
+s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+s, at exec_prefix@,$exec_prefix,;t t
+s, at prefix@,$prefix,;t t
+s, at program_transform_name@,$program_transform_name,;t t
+s, at bindir@,$bindir,;t t
+s, at sbindir@,$sbindir,;t t
+s, at libexecdir@,$libexecdir,;t t
+s, at datadir@,$datadir,;t t
+s, at sysconfdir@,$sysconfdir,;t t
+s, at sharedstatedir@,$sharedstatedir,;t t
+s, at localstatedir@,$localstatedir,;t t
+s, at libdir@,$libdir,;t t
+s, at includedir@,$includedir,;t t
+s, at oldincludedir@,$oldincludedir,;t t
+s, at infodir@,$infodir,;t t
+s, at mandir@,$mandir,;t t
+s, at build_alias@,$build_alias,;t t
+s, at host_alias@,$host_alias,;t t
+s, at target_alias@,$target_alias,;t t
+s, at DEFS@,$DEFS,;t t
+s, at ECHO_C@,$ECHO_C,;t t
+s, at ECHO_N@,$ECHO_N,;t t
+s, at ECHO_T@,$ECHO_T,;t t
+s, at LIBS@,$LIBS,;t t
+s, at build@,$build,;t t
+s, at build_cpu@,$build_cpu,;t t
+s, at build_vendor@,$build_vendor,;t t
+s, at build_os@,$build_os,;t t
+s, at host@,$host,;t t
+s, at host_cpu@,$host_cpu,;t t
+s, at host_vendor@,$host_vendor,;t t
+s, at host_os@,$host_os,;t t
+s, at target@,$target,;t t
+s, at target_cpu@,$target_cpu,;t t
+s, at target_vendor@,$target_vendor,;t t
+s, at target_os@,$target_os,;t t
+s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+s, at INSTALL_DATA@,$INSTALL_DATA,;t t
+s, at CYGPATH_W@,$CYGPATH_W,;t t
+s, at PACKAGE@,$PACKAGE,;t t
+s, at VERSION@,$VERSION,;t t
+s, at ACLOCAL@,$ACLOCAL,;t t
+s, at AUTOCONF@,$AUTOCONF,;t t
+s, at AUTOMAKE@,$AUTOMAKE,;t t
+s, at AUTOHEADER@,$AUTOHEADER,;t t
+s, at MAKEINFO@,$MAKEINFO,;t t
+s, at install_sh@,$install_sh,;t t
+s, at STRIP@,$STRIP,;t t
+s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
+s, at INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+s, at mkdir_p@,$mkdir_p,;t t
+s, at AWK@,$AWK,;t t
+s, at SET_MAKE@,$SET_MAKE,;t t
+s, at am__leading_dot@,$am__leading_dot,;t t
+s, at AMTAR@,$AMTAR,;t t
+s, at am__tar@,$am__tar,;t t
+s, at am__untar@,$am__untar,;t t
+s, at KDECONFIG@,$KDECONFIG,;t t
+s, at kde_libs_prefix@,$kde_libs_prefix,;t t
+s, at kde_libs_htmldir@,$kde_libs_htmldir,;t t
+s, at CONF_FILES@,$CONF_FILES,;t t
+s, at CC@,$CC,;t t
+s, at CFLAGS@,$CFLAGS,;t t
+s, at LDFLAGS@,$LDFLAGS,;t t
+s, at CPPFLAGS@,$CPPFLAGS,;t t
+s, at ac_ct_CC@,$ac_ct_CC,;t t
+s, at EXEEXT@,$EXEEXT,;t t
+s, at OBJEXT@,$OBJEXT,;t t
+s, at DEPDIR@,$DEPDIR,;t t
+s, at am__include@,$am__include,;t t
+s, at am__quote@,$am__quote,;t t
+s, at AMDEP_TRUE@,$AMDEP_TRUE,;t t
+s, at AMDEP_FALSE@,$AMDEP_FALSE,;t t
+s, at AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+s, at CCDEPMODE@,$CCDEPMODE,;t t
+s, at am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+s, at CPP@,$CPP,;t t
+s, at CXX@,$CXX,;t t
+s, at CXXFLAGS@,$CXXFLAGS,;t t
+s, at ac_ct_CXX@,$ac_ct_CXX,;t t
+s, at CXXDEPMODE@,$CXXDEPMODE,;t t
+s, at am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t
+s, at am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t
+s, at WOVERLOADED_VIRTUAL@,$WOVERLOADED_VIRTUAL,;t t
+s, at HAVE_GCC_VISIBILITY@,$HAVE_GCC_VISIBILITY,;t t
+s, at unsermake_enable_pch_TRUE@,$unsermake_enable_pch_TRUE,;t t
+s, at unsermake_enable_pch_FALSE@,$unsermake_enable_pch_FALSE,;t t
+s, at USE_EXCEPTIONS@,$USE_EXCEPTIONS,;t t
+s, at USE_RTTI@,$USE_RTTI,;t t
+s, at CXXCPP@,$CXXCPP,;t t
+s, at NOOPT_CXXFLAGS@,$NOOPT_CXXFLAGS,;t t
+s, at NOOPT_CFLAGS@,$NOOPT_CFLAGS,;t t
+s, at ENABLE_PERMISSIVE_FLAG@,$ENABLE_PERMISSIVE_FLAG,;t t
+s, at LDFLAGS_AS_NEEDED@,$LDFLAGS_AS_NEEDED,;t t
+s, at LDFLAGS_NEW_DTAGS@,$LDFLAGS_NEW_DTAGS,;t t
+s, at KDE_USE_FINAL_TRUE@,$KDE_USE_FINAL_TRUE,;t t
+s, at KDE_USE_FINAL_FALSE@,$KDE_USE_FINAL_FALSE,;t t
+s, at KDE_USE_CLOSURE_TRUE@,$KDE_USE_CLOSURE_TRUE,;t t
+s, at KDE_USE_CLOSURE_FALSE@,$KDE_USE_CLOSURE_FALSE,;t t
+s, at KDE_NO_UNDEFINED@,$KDE_NO_UNDEFINED,;t t
+s, at KDE_USE_NMCHECK_TRUE@,$KDE_USE_NMCHECK_TRUE,;t t
+s, at KDE_USE_NMCHECK_FALSE@,$KDE_USE_NMCHECK_FALSE,;t t
+s, at EGREP@,$EGREP,;t t
+s, at LN_S@,$LN_S,;t t
+s, at ECHO@,$ECHO,;t t
+s, at AR@,$AR,;t t
+s, at ac_ct_AR@,$ac_ct_AR,;t t
+s, at RANLIB@,$RANLIB,;t t
+s, at ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+s, at F77@,$F77,;t t
+s, at FFLAGS@,$FFLAGS,;t t
+s, at ac_ct_F77@,$ac_ct_F77,;t t
+s, at LIBTOOL@,$LIBTOOL,;t t
+s, at KDE_PLUGIN@,$KDE_PLUGIN,;t t
+s, at KDE_CHECK_PLUGIN@,$KDE_CHECK_PLUGIN,;t t
+s, at MSGFMT@,$MSGFMT,;t t
+s, at GMSGFMT@,$GMSGFMT,;t t
+s, at XGETTEXT@,$XGETTEXT,;t t
+s, at LIBUTIL@,$LIBUTIL,;t t
+s, at LIBCOMPAT@,$LIBCOMPAT,;t t
+s, at LIBCRYPT@,$LIBCRYPT,;t t
+s, at LIBRESOLV@,$LIBRESOLV,;t t
+s, at LIB_POLL@,$LIB_POLL,;t t
+s, at FRAMEWORK_COREAUDIO@,$FRAMEWORK_COREAUDIO,;t t
+s, at LIBSOCKET@,$LIBSOCKET,;t t
+s, at X_EXTRA_LIBS@,$X_EXTRA_LIBS,;t t
+s, at LIBUCB@,$LIBUCB,;t t
+s, at LIBDL@,$LIBDL,;t t
+s, at KDE_USE_FPIE@,$KDE_USE_FPIE,;t t
+s, at KDE_USE_PIE@,$KDE_USE_PIE,;t t
+s, at include_x11_TRUE@,$include_x11_TRUE,;t t
+s, at include_x11_FALSE@,$include_x11_FALSE,;t t
+s, at X_PRE_LIBS@,$X_PRE_LIBS,;t t
+s, at LIB_X11@,$LIB_X11,;t t
+s, at LIB_XRENDER@,$LIB_XRENDER,;t t
+s, at LIBSM@,$LIBSM,;t t
+s, at X_INCLUDES@,$X_INCLUDES,;t t
+s, at X_LDFLAGS@,$X_LDFLAGS,;t t
+s, at x_includes@,$x_includes,;t t
+s, at x_libraries@,$x_libraries,;t t
+s, at QTE_NORTTI@,$QTE_NORTTI,;t t
+s, at LIB_XEXT@,$LIB_XEXT,;t t
+s, at LIBPTHREAD@,$LIBPTHREAD,;t t
+s, at USE_THREADS@,$USE_THREADS,;t t
+s, at KDE_MT_LDFLAGS@,$KDE_MT_LDFLAGS,;t t
+s, at KDE_MT_LIBS@,$KDE_MT_LIBS,;t t
+s, at USER_INCLUDES@,$USER_INCLUDES,;t t
+s, at USER_LDFLAGS@,$USER_LDFLAGS,;t t
+s, at LIBZ@,$LIBZ,;t t
+s, at LIBPNG@,$LIBPNG,;t t
+s, at LIBJPEG@,$LIBJPEG,;t t
+s, at qt_libraries@,$qt_libraries,;t t
+s, at qt_includes@,$qt_includes,;t t
+s, at QT_INCLUDES@,$QT_INCLUDES,;t t
+s, at QT_LDFLAGS@,$QT_LDFLAGS,;t t
+s, at PERL@,$PERL,;t t
+s, at MOC@,$MOC,;t t
+s, at UIC@,$UIC,;t t
+s, at UIC_TR@,$UIC_TR,;t t
+s, at LIB_QT@,$LIB_QT,;t t
+s, at LIB_QPE@,$LIB_QPE,;t t
+s, at kde_qtver@,$kde_qtver,;t t
+s, at KDE_EXTRA_RPATH@,$KDE_EXTRA_RPATH,;t t
+s, at KDE_RPATH@,$KDE_RPATH,;t t
+s, at X_RPATH@,$X_RPATH,;t t
+s, at kde_libraries@,$kde_libraries,;t t
+s, at kde_includes@,$kde_includes,;t t
+s, at KDE_LDFLAGS@,$KDE_LDFLAGS,;t t
+s, at KDE_INCLUDES@,$KDE_INCLUDES,;t t
+s, at all_includes@,$all_includes,;t t
+s, at all_libraries@,$all_libraries,;t t
+s, at AUTODIRS@,$AUTODIRS,;t t
+s, at include_ARTS_TRUE@,$include_ARTS_TRUE,;t t
+s, at include_ARTS_FALSE@,$include_ARTS_FALSE,;t t
+s, at MAKEKDEWIDGETS@,$MAKEKDEWIDGETS,;t t
+s, at KCONFIG_COMPILER@,$KCONFIG_COMPILER,;t t
+s, at KCFG_DEPENDENCIES@,$KCFG_DEPENDENCIES,;t t
+s, at DCOPIDLNG@,$DCOPIDLNG,;t t
+s, at DCOPIDL@,$DCOPIDL,;t t
+s, at DCOPIDL2CPP@,$DCOPIDL2CPP,;t t
+s, at DCOP_DEPENDENCIES@,$DCOP_DEPENDENCIES,;t t
+s, at MCOPIDL@,$MCOPIDL,;t t
+s, at ARTSCCONFIG@,$ARTSCCONFIG,;t t
+s, at MEINPROC@,$MEINPROC,;t t
+s, at KDE_XSL_STYLESHEET@,$KDE_XSL_STYLESHEET,;t t
+s, at XMLLINT@,$XMLLINT,;t t
+s, at kde_htmldir@,$kde_htmldir,;t t
+s, at kde_appsdir@,$kde_appsdir,;t t
+s, at kde_icondir@,$kde_icondir,;t t
+s, at kde_sounddir@,$kde_sounddir,;t t
+s, at kde_datadir@,$kde_datadir,;t t
+s, at kde_locale@,$kde_locale,;t t
+s, at kde_confdir@,$kde_confdir,;t t
+s, at kde_kcfgdir@,$kde_kcfgdir,;t t
+s, at kde_mimedir@,$kde_mimedir,;t t
+s, at kde_wallpaperdir@,$kde_wallpaperdir,;t t
+s, at kde_bindir@,$kde_bindir,;t t
+s, at xdg_appsdir@,$xdg_appsdir,;t t
+s, at xdg_menudir@,$xdg_menudir,;t t
+s, at xdg_directorydir@,$xdg_directorydir,;t t
+s, at kde_templatesdir@,$kde_templatesdir,;t t
+s, at kde_servicesdir@,$kde_servicesdir,;t t
+s, at kde_servicetypesdir@,$kde_servicetypesdir,;t t
+s, at kde_moduledir@,$kde_moduledir,;t t
+s, at kdeinitdir@,$kdeinitdir,;t t
+s, at kde_styledir@,$kde_styledir,;t t
+s, at kde_widgetdir@,$kde_widgetdir,;t t
+s, at LIB_KDED@,$LIB_KDED,;t t
+s, at LIB_KDECORE@,$LIB_KDECORE,;t t
+s, at LIB_KDEUI@,$LIB_KDEUI,;t t
+s, at LIB_KIO@,$LIB_KIO,;t t
+s, at LIB_KJS@,$LIB_KJS,;t t
+s, at LIB_SMB@,$LIB_SMB,;t t
+s, at LIB_KAB@,$LIB_KAB,;t t
+s, at LIB_KABC@,$LIB_KABC,;t t
+s, at LIB_KHTML@,$LIB_KHTML,;t t
+s, at LIB_KSPELL@,$LIB_KSPELL,;t t
+s, at LIB_KPARTS@,$LIB_KPARTS,;t t
+s, at LIB_KMDI@,$LIB_KMDI,;t t
+s, at LIB_KDEPRINT@,$LIB_KDEPRINT,;t t
+s, at LIB_KUTILS@,$LIB_KUTILS,;t t
+s, at LIB_KDEPIM@,$LIB_KDEPIM,;t t
+s, at LIB_KIMPROXY@,$LIB_KIMPROXY,;t t
+s, at LIB_KNEWSTUFF@,$LIB_KNEWSTUFF,;t t
+s, at LIB_KDNSSD@,$LIB_KDNSSD,;t t
+s, at LIB_KUNITTEST@,$LIB_KUNITTEST,;t t
+s, at LIB_KSYCOCA@,$LIB_KSYCOCA,;t t
+s, at LIB_KFILE@,$LIB_KFILE,;t t
+s, at LIB_KFM@,$LIB_KFM,;t t
+s, at PQXX_LIBS@,$PQXX_LIBS,;t t
+s, at PQXX_CFLAGS@,$PQXX_CFLAGS,;t t
+s, at TOPSUBDIRS@,$TOPSUBDIRS,;t t
+s, at LIBOBJS@,$LIBOBJS,;t t
+s, at LTLIBOBJS@,$LTLIBOBJS,;t t
+CEOF
+
+_ACEOF
+
+  cat >>$CONFIG_STATUS <<\_ACEOF
+  # Split the substitutions into bite-sized pieces for seds with
+  # small command number limits, like on Digital OSF/1 and HP-UX.
+  ac_max_sed_lines=48
+  ac_sed_frag=1 # Number of current file.
+  ac_beg=1 # First line for current file.
+  ac_end=$ac_max_sed_lines # Line after last line for current file.
+  ac_more_lines=:
+  ac_sed_cmds=
+  while $ac_more_lines; do
+    if test $ac_beg -gt 1; then
+      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    else
+      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+    fi
+    if test ! -s $tmp/subs.frag; then
+      ac_more_lines=false
+    else
+      # The purpose of the label and of the branching condition is to
+      # speed up the sed processing (if there are no `@' at all, there
+      # is no need to browse any of the substitutions).
+      # These are the two extra sed commands mentioned above.
+      (echo ':t
+  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+      if test -z "$ac_sed_cmds"; then
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+      else
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+      fi
+      ac_sed_frag=`expr $ac_sed_frag + 1`
+      ac_beg=$ac_end
+      ac_end=`expr $ac_end + $ac_max_sed_lines`
+    fi
+  done
+  if test -z "$ac_sed_cmds"; then
+    ac_sed_cmds=cat
+  fi
+fi # test -n "$CONFIG_FILES"
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  esac
+
+  if test x"$ac_file" != x-; then
+    { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    rm -f "$ac_file"
+  fi
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    configure_input=
+  else
+    configure_input="$ac_file.  "
+  fi
+  configure_input=$configure_input"Generated from `echo $ac_file_in |
+				     sed 's,.*/,,'` by configure."
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF
+  sed "$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s, at configure_input@,$configure_input,;t t
+s, at srcdir@,$ac_srcdir,;t t
+s, at abs_srcdir@,$ac_abs_srcdir,;t t
+s, at top_srcdir@,$ac_top_srcdir,;t t
+s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+s, at builddir@,$ac_builddir,;t t
+s, at abs_builddir@,$ac_abs_builddir,;t t
+s, at top_builddir@,$ac_top_builddir,;t t
+s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
+s, at INSTALL@,$ac_INSTALL,;t t
+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+  rm -f $tmp/stdin
+  if test x"$ac_file" != x-; then
+    mv $tmp/out $ac_file
+  else
+    cat $tmp/out
+    rm -f $tmp/out
+  fi
+
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_HEADER section.
+#
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
+ac_dC=' '
+ac_dD=',;t'
+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
+ac_uB='$,\1#\2define\3'
+ac_uC=' '
+ac_uD=',;t'
+
+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case $ac_file in
+  - | *:- | *:-:* ) # input from stdin
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+  * )   ac_file_in=$ac_file.in ;;
+  esac
+
+  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+
+  # First look for the input files in the build tree, otherwise in the
+  # src tree.
+  ac_file_inputs=`IFS=:
+    for f in $ac_file_in; do
+      case $f in
+      -) echo $tmp/stdin ;;
+      [\\/$]*)
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
+      *) # Relative
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+echo "$as_me: error: cannot find input file: $f" >&2;}
+   { (exit 1); exit 1; }; }
+	 fi;;
+      esac
+    done` || { (exit 1); exit 1; }
+  # Remove the trailing spaces.
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+
+_ACEOF
+
+# Transform confdefs.h into two sed scripts, `conftest.defines' and
+# `conftest.undefs', that substitutes the proper values into
+# config.h.in to produce config.h.  The first handles `#define'
+# templates, and the second `#undef' templates.
+# And first: Protect against being on the right side of a sed subst in
+# config.status.  Protect against being in an unquoted here document
+# in config.status.
+rm -f conftest.defines conftest.undefs
+# Using a here document instead of a string reduces the quoting nightmare.
+# Putting comments in sed scripts is not portable.
+#
+# `end' is used to avoid that the second main sed command (meant for
+# 0-ary CPP macros) applies to n-ary macro definitions.
+# See the Autoconf documentation for `clear'.
+cat >confdef2sed.sed <<\_ACEOF
+s/[\\&,]/\\&/g
+s,[\\$`],\\&,g
+t clear
+: clear
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+t end
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+: end
+_ACEOF
+# If some macros were called several times there might be several times
+# the same #defines, which is useless.  Nevertheless, we may not want to
+# sort them, since we want the *last* AC-DEFINE to be honored.
+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+rm -f confdef2sed.sed
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >>conftest.undefs <<\_ACEOF
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+_ACEOF
+
+# Break up conftest.defines because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+echo '  :' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.defines >/dev/null
+do
+  # Write a limited-size here document to $tmp/defines.sed.
+  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#define' lines.
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+  rm -f conftest.defines
+  mv conftest.tail conftest.defines
+done
+rm -f conftest.defines
+echo '  fi # grep' >>$CONFIG_STATUS
+echo >>$CONFIG_STATUS
+
+# Break up conftest.undefs because some shells have a limit on the size
+# of here documents, and old seds have small limits too (100 cmds).
+echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+rm -f conftest.tail
+while grep . conftest.undefs >/dev/null
+do
+  # Write a limited-size here document to $tmp/undefs.sed.
+  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+  # Speed up: don't consider the non `#undef'
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
+  # Work around the forget-to-reset-the-flag bug.
+  echo 't clr' >>$CONFIG_STATUS
+  echo ': clr' >>$CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+  echo 'CEOF
+  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+  rm -f $tmp/in
+  mv $tmp/out $tmp/in
+' >>$CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+  rm -f conftest.undefs
+  mv conftest.tail conftest.undefs
+done
+rm -f conftest.undefs
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+  # Let's still pretend it is `configure' which instantiates (i.e., don't
+  # use $as_me), people would be surprised to read:
+  #    /* config.h.  Generated by config.status.  */
+  if test x"$ac_file" = x-; then
+    echo "/* Generated by configure.  */" >$tmp/config.h
+  else
+    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+  fi
+  cat $tmp/in >>$tmp/config.h
+  rm -f $tmp/in
+  if test x"$ac_file" != x-; then
+    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+      { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+      rm -f $ac_file
+      mv $tmp/config.h $ac_file
+    fi
+  else
+    cat $tmp/config.h
+    rm -f $tmp/config.h
+  fi
+# Compute $ac_file's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $ac_file | $ac_file:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X$ac_file : 'X\(//\)[^/]' \| \
+	 X$ac_file : 'X\(//\)$' \| \
+	 X$ac_file : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X$ac_file |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`/stamp-h$_am_stamp_count
+done
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+#
+# CONFIG_COMMANDS section.
+#
+for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$ac_dest" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+  ac_builddir=.
+
+if test "$ac_dir" != .; then
+  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  # A "../" for each directory in $ac_dir_suffix.
+  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+else
+  ac_dir_suffix= ac_top_builddir=
+fi
+
+case $srcdir in
+  .)  # No --srcdir option.  We are building in place.
+    ac_srcdir=.
+    if test -z "$ac_top_builddir"; then
+       ac_top_srcdir=.
+    else
+       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+    fi ;;
+  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir ;;
+  *) # Relative path.
+    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+esac
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
+
+
+  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+echo "$as_me: executing $ac_dest commands" >&6;}
+  case $ac_dest in
+    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  # Strip MF so we end up with the name of the file.
+  mf=`echo "$mf" | sed -e 's/:.*$//'`
+  # Check whether this is an Automake generated Makefile or not.
+  # We used to match only the files named `Makefile.in', but
+  # some people rename them; so instead we look at the file content.
+  # Grep'ing the first line is not enough: some people post-process
+  # each Makefile.in and add a new line on top of each file to say so.
+  # So let's grep whole file.
+  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+    dirpart=`(dirname "$mf") 2>/dev/null ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+  else
+    continue
+  fi
+  # Extract the definition of DEPDIR, am__include, and am__quote
+  # from the Makefile without running `make'.
+  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+  test -z "am__include" && continue
+  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n 's/^U = //p' < "$mf"`
+  # Find all dependency output files, they are included files with
+  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+  # simplest approach to changing $(DEPDIR) to its actual value in the
+  # expansion.
+  for file in `sed -n "
+    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`(dirname "$file") 2>/dev/null ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    { if $as_mkdir_p; then
+    mkdir -p $dirpart/$fdir
+  else
+    as_dir=$dirpart/$fdir
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+   { (exit 1); exit 1; }; }; }
+
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+ ;;
+  esac
+done
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF
+
+{ (exit 0); exit 0; }
+_ACEOF
+if test "x$with_fast_perl" = "xyes"; then    
+  perl -i.bak $ac_aux_dir/conf.change.pl $CONFIG_STATUS    \
+    || mv $CONFIG_STATUS.bak $CONFIG_STATUS    
+  rm -f $CONFIG_STATUS.bak
+fi    
+chmod +x $CONFIG_STATUS
+ac_clean_files=$ac_clean_files_save
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || { (exit 1); exit 1; }
+fi
+
+# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
+if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
+  # And if so, warn when they don't match
+  if test "$kde_libs_prefix" != "$given_prefix"; then
+    # And if kde doesn't know about the prefix yet
+    echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
+    if test $? -ne 0; then
+      echo ""
+      echo "Warning: you chose to install this package in $given_prefix,"
+      echo "but KDE was found in $kde_libs_prefix."
+      echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
+      echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
+      echo "Then restart KDE."
+      echo ""
+    fi
+  fi
+fi
+
+if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
+  echo ""
+  echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
+  echo "was not included. Therefore, GCC symbol visibility support remains disabled."
+  echo ""
+  echo "For better performance, consider including the Qt visibility supporting patch"
+  echo "located at:"
+  echo ""
+  echo "http://bugs.kde.org/show_bug.cgi?id=109386"
+  echo ""
+  echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
+  echo "everything will continue to work just fine without it."
+  echo ""
+fi
+
+if test "$all_tests" = "bad"; then
+  if test ! "$cache_file" = "/dev/null"; then
+    echo ""
+    echo "Please remove the file $cache_file after changing your setup"
+    echo "so that configure will find the changes next time."
+    echo ""
+  fi
+else
+  echo ""
+  echo "Good - your configure finished. Start make now"
+  echo ""
+fi


Property changes on: kde-extras/kpogre/branches/upstream/current/configure
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/configure.files
===================================================================
--- kde-extras/kpogre/branches/upstream/current/configure.files	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/configure.files	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,2 @@
+./admin/configure.in.min
+configure.in.in

Added: kde-extras/kpogre/branches/upstream/current/configure.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/configure.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/configure.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,153 @@
+dnl =======================================================
+dnl FILE: ./admin/configure.in.min
+dnl =======================================================
+
+dnl    This file is part of the KDE libraries/packages
+dnl    Copyright (C) 2001 Stephan Kulow (coolo at kde.org)
+ 
+dnl    This file is free software; you can redistribute it and/or
+dnl    modify it under the terms of the GNU Library General Public
+dnl    License as published by the Free Software Foundation; either
+dnl    version 2 of the License, or (at your option) any later version.
+ 
+dnl    This library is distributed in the hope that it will be useful,
+dnl    but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+dnl    Library General Public License for more details.
+ 
+dnl    You should have received a copy of the GNU Library General Public License
+dnl    along with this library; see the file COPYING.LIB.  If not, write to
+dnl    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+dnl    Boston, MA 02110-1301, USA.
+
+# Original Author was Kalle at kde.org
+# I lifted it in some mater. (Stephan Kulow)
+# I used much code from Janos Farkas
+
+dnl Process this file with autoconf to produce a configure script.
+
+AC_INIT(acinclude.m4) dnl a source file from your sub dir
+
+dnl This is so we can use kde-common
+AC_CONFIG_AUX_DIR(admin)
+
+dnl This ksh/zsh feature conflicts with `cd blah ; pwd`
+unset CDPATH
+
+dnl Checking host/target/build systems, for make, install etc.
+AC_CANONICAL_SYSTEM 
+dnl Perform program name transformation
+AC_ARG_PROGRAM
+
+dnl Automake doc recommends to do this only here. (Janos)
+AM_INIT_AUTOMAKE(kpogre, 1.6.2) dnl searches for some needed programs
+
+KDE_SET_PREFIX
+
+dnl generate the config header
+AM_CONFIG_HEADER(config.h) dnl at the distribution this done
+
+dnl Checks for programs.
+AC_CHECK_COMPILERS
+AC_ENABLE_SHARED(yes)
+AC_ENABLE_STATIC(no)
+KDE_PROG_LIBTOOL
+
+dnl for NLS support. Call them in this order!
+dnl WITH_NLS is for the po files
+AM_KDE_WITH_NLS
+
+KDE_USE_QT(3)
+AC_PATH_KDE
+dnl =======================================================
+dnl FILE: configure.in.in
+dnl =======================================================
+
+#MIN_CONFIG(3)
+
+dnl PACKAGE set before
+
+dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
+dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
+CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
+
+dnl KDE_NEED_FLEX dnl __kdevelop__
+dnl AC_PROG_YACC dnl __kdevelop__
+
+# KDE_FIND_PATH(pqxx-config, PQXX_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin /usr/bin], [
+#  AC_MSG_WARN([libpqxx not found anywhere, check http://pqxx.org for libpqxx. ])
+#])
+
+#if test -n "$PQXX_CONFIG"; then
+    PQXX_LIBS=`pkg-config --libs libpqxx`
+    PQXX_CFLAGS=`pkg-config --cflags libpqxx`
+#fi
+
+AC_SUBST(PQXX_LIBS)
+AC_SUBST(PQXX_CFLAGS)
+#AC_SUBST(PQXX_LIBS, "-lpqxx")
+
+CXXFLAGS="$CXXFLAGS $PQXX_CFLAGS"
+KDE_CREATE_SUBDIRSLIST
+AC_CONFIG_FILES([ Makefile ])
+AC_CONFIG_FILES([ admin/Makefile ])
+AC_CONFIG_FILES([ doc/Makefile ])
+AC_CONFIG_FILES([ doc/en/Makefile ])
+AC_CONFIG_FILES([ kpogre/Makefile ])
+AC_CONFIG_FILES([ kpogre/DataTable/Makefile ])
+AC_CONFIG_FILES([ kpogre/DbObjects/Makefile ])
+AC_CONFIG_FILES([ kpogre/Debugger/Makefile ])
+AC_CONFIG_FILES([ kpogre/Executor/Makefile ])
+AC_CONFIG_FILES([ kpogre/PropertyPages/Makefile ])
+AC_CONFIG_FILES([ kpogre/QueryResult/Makefile ])
+AC_CONFIG_FILES([ kpogre/Wizards/Makefile ])
+AC_CONFIG_FILES([ kpogre/XmlSupport/Makefile ])
+AC_CONFIG_FILES([ kpogre/icons/Makefile ])
+AC_CONFIG_FILES([ kpogre/pics/Makefile ])
+AC_CONFIG_FILES([ po/Makefile ])
+AC_OUTPUT
+# Check if KDE_SET_PREFIX was called, and --prefix was passed to configure
+if test -n "$kde_libs_prefix" -a -n "$given_prefix"; then
+  # And if so, warn when they don't match
+  if test "$kde_libs_prefix" != "$given_prefix"; then
+    # And if kde doesn't know about the prefix yet
+    echo ":"`kde-config --path exe`":" | grep ":$given_prefix/bin/:" 2>&1 >/dev/null
+    if test $? -ne 0; then
+      echo ""
+      echo "Warning: you chose to install this package in $given_prefix,"
+      echo "but KDE was found in $kde_libs_prefix."
+      echo "For this to work, you will need to tell KDE about the new prefix, by ensuring"
+      echo "that KDEDIRS contains it, e.g. export KDEDIRS=$given_prefix:$kde_libs_prefix"
+      echo "Then restart KDE."
+      echo ""
+    fi
+  fi
+fi
+
+if test x$GXX = "xyes" -a x$kde_have_gcc_visibility = "xyes" -a x$kde_cv_val_qt_gcc_visibility_patched = "xno"; then
+  echo ""
+  echo "Your GCC supports symbol visibility, but the patch for Qt supporting visibility"
+  echo "was not included. Therefore, GCC symbol visibility support remains disabled."
+  echo ""
+  echo "For better performance, consider including the Qt visibility supporting patch"
+  echo "located at:"
+  echo ""
+  echo "http://bugs.kde.org/show_bug.cgi?id=109386"
+  echo ""
+  echo "and recompile all of Qt and KDE. Note, this is entirely optional and"
+  echo "everything will continue to work just fine without it."
+  echo ""
+fi
+
+if test "$all_tests" = "bad"; then
+  if test ! "$cache_file" = "/dev/null"; then
+    echo ""
+    echo "Please remove the file $cache_file after changing your setup"
+    echo "so that configure will find the changes next time."
+    echo ""
+  fi
+else
+  echo ""
+  echo "Good - your configure finished. Start make now"
+  echo ""
+fi

Added: kde-extras/kpogre/branches/upstream/current/configure.in.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/configure.in.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/configure.in.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,25 @@
+#MIN_CONFIG(3)
+
+AM_INIT_AUTOMAKE(kpogre, 1.6.2)
+
+dnl CXXFLAGS="$NOOPT_CXXFLAGS" dnl __kdevelop[noopt]__
+dnl CFLAGS="$NOOPT_CFLAGS" dnl __kdevelop[noopt]__
+CXXFLAGS="$CXXFLAGS $USE_EXCEPTIONS" dnl __kdevelop[exc]__
+
+dnl KDE_NEED_FLEX dnl __kdevelop__
+dnl AC_PROG_YACC dnl __kdevelop__
+
+# KDE_FIND_PATH(pqxx-config, PQXX_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin /usr/bin], [
+#  AC_MSG_WARN([libpqxx not found anywhere, check http://pqxx.org for libpqxx. ])
+#])
+
+#if test -n "$PQXX_CONFIG"; then
+    PQXX_LIBS=`pkg-config --libs libpqxx`
+    PQXX_CFLAGS=`pkg-config --cflags libpqxx`
+#fi
+
+AC_SUBST(PQXX_LIBS)
+AC_SUBST(PQXX_CFLAGS)
+#AC_SUBST(PQXX_LIBS, "-lpqxx")
+
+CXXFLAGS="$CXXFLAGS $PQXX_CFLAGS"

Added: kde-extras/kpogre/branches/upstream/current/doc/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/doc/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/doc/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,6 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+SUBDIRS = en 
+
+####### kdevelop will overwrite this part!!! (end)############
+

Added: kde-extras/kpogre/branches/upstream/current/doc/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/doc/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/doc/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,715 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- 	html-recursive info-recursive install-data-recursive \
+#>- 	install-exec-recursive install-info-recursive \
+#>- 	install-recursive installcheck-recursive installdirs-recursive \
+#>- 	pdf-recursive ps-recursive uninstall-info-recursive \
+#>- 	uninstall-recursive
+#>+ 6
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive nmcheck-recursive bcheck-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+SUBDIRS = en 
+#>- all: all-recursive
+#>+ 1
+all: docs-am  all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  doc/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin doc/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean  clean-recursive
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool \
+	distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+	clean clean-generic clean-libtool clean-recursive ctags \
+	ctags-recursive distclean distclean-generic distclean-libtool \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-exec install-exec-am install-info \
+	install-info-am install-man install-strip installcheck \
+	installcheck-am installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-generic mostlyclean-libtool \
+	mostlyclean-recursive pdf pdf-am ps ps-am tags tags-recursive \
+	uninstall uninstall-am uninstall-info-am
+
+
+####### kdevelop will overwrite this part!!! (end)############
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=Makefile.in Makefile.am 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin doc/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,10 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+
+EXTRA_DIST = index.docbook 
+
+####### kdevelop will overwrite this part!!! (end)############
+
+KDE_LANG = en
+KDE_DOCS = kpogre
+

Added: kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/doc/en/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,601 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = doc/en
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+EXTRA_DIST = index.docbook 
+
+####### kdevelop will overwrite this part!!! (end)############
+KDE_LANG = en
+KDE_DOCS = kpogre
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/en/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  doc/en/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/en/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/en/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin doc/en/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+#>- distdir: $(DISTFILES)
+#>+ 1
+distdir: distdir-nls  $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+#>- uninstall: uninstall-am
+#>+ 1
+uninstall: uninstall-docs uninstall-nls  uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-docs clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+#>- install-data-am:
+#>+ 1
+install-data-am: install-docs install-nls 
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=index.png wzd_rest_db2.png wzd_create_tbsp2.png wzd_create_comp_typ2.png wzd_copy_tbl_from1.png schema_sys.png wzd_set_cluster_tbl2.png wzd_objtype_srv.png bookmarks2.png primary_key.png wzd_create_idx3.png wzd_create_tbl19.png wzd_modify_col7.png data_table4.png user_super.png wzd_dump_db3.png database_usr.png aggregate.png wzd_copy_tbl_to3.png wzd_create_tbl15.png view.png wzd_drop2.png wzd_create_idx2.png wzd_drop1.png wzd_create_tbl14.png executor3.png wzd_modify_col9.png wzd_create_fnc_sql4.png wzd_create_lng2.png wzd_create_col1.png wzd_modify_fnc1.png wzd_create_comp_typ1.png wzd_create_trg2.png wzd_create_cnst9.png wzd_modify1.png oid_links3.png wzd_create_vw2.png wzd_create_tbl12.png wzd_copy_tbl_to1.png wzd_create_tbl7.png wzd_modify_dom2.png wzd_modify_vw1.png wzd_create_tbl18.png wzd_create_comp_typ3.png wzd_create_tbl17.png edit.png wzd_create_dom3.png wzd_create_usr3.png wzd_dump_db2.png column_uuid.png wzd_copy_tbl_to2.png server.png column_xid.png key.png wzd_rest_db3.png wzd_objtype_tbl.png wzd_create_idx1.png wzd_create_cnst4.png wzd_create_fnc_c6.png wzd_create_base_typ4.png wzd_create_tbl8.png wzd_objtype_db.png wzd_create_vw6.png privileges2.png wzd_modify_dom3.png column_bool.png data_table7.png group.png privileges1.png wzd_create_cnst6.png wzd_copy_tbl_from2.png wzd_create_tbl11.png screenshot.png wzd_set_cluster_tbl1.png column_xml.png column_num.png wzd_set_owner1.png data_table6.png wzd_create_cnst2.png type_base.png wzd_create_fnc_sql5.png wzd_analyze_tbl1.png wzd_create_dom2.png data_table5.png bookmarks1.png wzd_rest_db1.png wzd_create_tbl1.png tblspace_sys.png column_tid.png column.png argument.png privileges3.png wzd_vacuum_tbl2.png type_standalone.png editdelete.png wzd_create_vw7.png column_oid.png wzd_analyze_tbl3.png user_crt_db.png column_bit.png wzd_create_fnc_c5.png column_net.png column_char.png wzd_modify_col4.png wzd_create_tbsp1.png Makefile.in wzd_create_fnc_c1.png foreign_key.png wzd_create_fnc_c3.png wzd_copy_tbl_to4.png wzd_create_db2.png wzd_analyze_tbl2.png wzd_create_trg1.png oid_links2.png trigger.png wzd_create_vw3.png wzd_modify_fnc2.png sequence.png wzd_create_tbl2.png data_table1.png user.png wzd_create_db3.png bookmarks3.png wzd_create_rul2.png wzd_create_usr2.png wzd_create_seq1.png domain.png wzd_create_sch1.png table.png wzd_modify_dom1.png wzd_create_tbl13.png query_result1.png wzd_create_fnc_sql6.png wzd_create_dom1.png wzd_create_base_typ2.png wzd_modify_col5.png wzd_create_fnc_sql3.png cast.png database.png schema_usr.png wzd_modify_col3.png wzd_create_tbl16.png wzd_modify_seq1.png privileges4.png wzd_modify_col8.png wzd_modify2.png wzd_create_grp1.png function_c.png wzd_copy_tbl_from3.png wzd_create_vw4.png wzd_modify_vw2.png data_table2.png executor1.png wzd_create_cnst7.png wzd_vacuum_tbl1.png wzd_rename0.png wzd_create_grp2.png wzd_set_tablespace1.png function.png column_geo.png wzd_create_fnc_c4.png wzd_create_lng1.png wzd_create_db1.png tblspace_usr.png wzd_create_cnst5.png wzd_create_rul1.png wzd_create_lng3.png executor2.png query_result3.png wzd_create_tbl10.png statistics2.png operator_class.png wzd_create_tbsp3.png wzd_modify_col2.png column_bin.png function_sql.png wzd_create_fnc_sql1.png database_sys.png rule.png data_table3.png type.png wzd_create_fnc_c2.png wzd_modify_seq2.png column_date.png wzd_create_seq2.png wzd_modify_col0.png query_result2.png wzd_create_usr1.png wzd_create_dom_cnst1.png wzd_create_sch2.png conversion.png edittool.png language.png wzd_create_cnst1.png wzd_create_tbl9.png wzd_modify_col10.png statistics1.png wzd_create_vw5.png wzd_copy_tbl_from4.png wizard.png wzd_rename1.png wzd_create_tbl6.png oid_links1.png wzd_create_tbl3.png wzd_create_fnc_sql2.png wzd_drop0.png wzd_create_cnst3.png wzd_modify_col1.png setupsqlteditor.png wzd_create_vw1.png function_pl.png wzd_modify_dom4.png wzd_vacuum_tbl3.png wzd_create_tbl5.png type_composite.png column_time.png wzd_create_tbl4.png wzd_create_sch3.png operator.png wzd_dump_db1.png check.png wzd_create_base_typ3.png wzd_create_col2.png wzd_modify_col6.png wzd_rename2.png schema.png column_cid.png wzd_modify0.png Makefile.am wzd_create_dom_cnst2.png wzd_create_base_typ1.png wzd_create_dom4.png wzd_create_cnst8.png toast_table.png 
+
+#>+ 24
+index.cache.bz2: $(srcdir)/index.docbook $(KDE_XSL_STYLESHEET) wzd_create_comp_typ1.png sequence.png wzd_create_comp_typ2.png wzd_create_comp_typ3.png edit.png argument.png schema_sys.png column_oid.png oid_links1.png oid_links2.png oid_links3.png wzd_create_sch1.png bookmarks1.png wzd_create_sch2.png bookmarks2.png wzd_create_sch3.png bookmarks3.png column_num.png key.png wzd_create_fnc_sql1.png wzd_create_fnc_sql2.png wzd_create_fnc_c1.png wzd_create_fnc_sql3.png wzd_create_fnc_c2.png wzd_create_fnc_sql4.png wzd_create_fnc_c3.png wzd_create_fnc_sql5.png wzd_create_fnc_c4.png wzd_create_fnc_sql6.png wzd_create_fnc_c5.png wzd_create_fnc_c6.png wzd_create_grp1.png wzd_create_grp2.png column_date.png type_standalone.png function.png function_c.png column_uuid.png wzd_create_tbsp1.png wzd_create_tbsp2.png wzd_create_tbsp3.png wzd_set_owner1.png wzd_create_rul1.png wzd_create_rul2.png column_bin.png column_bit.png toast_table.png type.png wzd_create_col1.png wzd_create_col2.png primary_key.png wzd_rename0.png database_sys.png wzd_rename1.png wzd_rename2.png schema_usr.png wzd_create_tbl10.png wzd_create_tbl11.png wzd_create_tbl12.png wzd_create_tbl13.png wzd_create_tbl14.png wzd_create_tbl15.png wzd_create_tbl16.png wzd_create_tbl17.png wzd_create_tbl18.png wzd_create_tbl19.png function_sql.png wzd_create_vw1.png wzd_create_vw2.png wzd_create_vw3.png wzd_create_vw4.png wzd_create_vw5.png wzd_create_vw6.png column_char.png wzd_create_vw7.png column_cid.png wzd_modify_col0.png wzd_modify_col1.png wzd_modify_col2.png wzd_modify_col3.png wzd_modify_col4.png wzd_modify_col5.png wzd_modify_col6.png trigger.png wzd_modify_col7.png wzd_modify_col8.png wzd_modify_col9.png domain.png wzd_create_idx1.png wzd_create_idx2.png wzd_create_idx3.png column_xid.png wzd_create_lng1.png wzd_create_lng2.png wzd_create_lng3.png wzd_create_db1.png rule.png wzd_create_db2.png wzd_create_db3.png wzd_modify_col10.png screenshot.png query_result1.png query_result2.png query_result3.png function_pl.png column_xml.png type_composite.png database_usr.png wzd_objtype_db.png tblspace_sys.png column.png wzd_create_seq1.png wzd_create_seq2.png wzd_objtype_tbl.png cast.png wzd_modify0.png wzd_modify1.png wzd_modify2.png wzd_create_tbl1.png wzd_create_tbl2.png wzd_create_tbl3.png wzd_create_tbl4.png wzd_create_tbl5.png operator_class.png wzd_create_tbl6.png server.png wzd_create_tbl7.png wzd_create_tbl8.png index.png wzd_modify_seq1.png wzd_create_tbl9.png wzd_modify_seq2.png wzd_objtype_srv.png wzd_create_cnst1.png wzd_create_cnst2.png wzd_create_cnst3.png wzd_create_cnst4.png wzd_create_cnst5.png wzd_create_cnst6.png type_base.png wzd_create_cnst7.png wzd_create_cnst8.png wzd_create_cnst9.png user_crt_db.png setupsqlteditor.png wzd_create_base_typ1.png wzd_create_base_typ2.png wzd_create_base_typ3.png wzd_create_base_typ4.png wzd_analyze_tbl1.png wzd_analyze_tbl2.png wzd_analyze_tbl3.png privileges1.png tblspace_usr.png privileges2.png privileges3.png privileges4.png wzd_drop0.png check.png wzd_dump_db1.png wzd_drop1.png wzd_dump_db2.png wzd_drop2.png wzd_dump_db3.png wizard.png wzd_create_usr1.png wzd_create_usr2.png wzd_create_usr3.png group.png database.png wzd_modify_vw1.png wzd_modify_vw2.png wzd_create_dom_cnst1.png wzd_create_dom_cnst2.png conversion.png statistics1.png statistics2.png language.png wzd_copy_tbl_to1.png wzd_copy_tbl_to2.png wzd_copy_tbl_to3.png wzd_copy_tbl_to4.png column_tid.png aggregate.png user.png data_table1.png data_table2.png data_table3.png data_table4.png data_table5.png data_table6.png data_table7.png wzd_create_dom1.png wzd_create_dom2.png wzd_create_dom3.png wzd_create_dom4.png column_time.png foreign_key.png wzd_create_trg1.png wzd_create_trg2.png wzd_modify_fnc1.png wzd_modify_fnc2.png column_geo.png wzd_set_cluster_tbl1.png wzd_set_cluster_tbl2.png column_net.png executor1.png executor2.png executor3.png column_bool.png index.docbook wzd_vacuum_tbl1.png wzd_vacuum_tbl2.png wzd_vacuum_tbl3.png wzd_set_tablespace1.png wzd_rest_db1.png user_super.png wzd_rest_db2.png wzd_rest_db3.png editdelete.png wzd_modify_dom1.png wzd_modify_dom2.png wzd_modify_dom3.png wzd_modify_dom4.png table.png view.png wzd_copy_tbl_from1.png wzd_copy_tbl_from2.png wzd_copy_tbl_from3.png wzd_copy_tbl_from4.png edittool.png schema.png operator.png 
+	@if test -n "$(MEINPROC)"; then echo $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; $(MEINPROC) --check --cache index.cache.bz2 $(srcdir)/index.docbook; fi
+
+docs-am: index.cache.bz2
+
+install-docs: docs-am install-nls
+	$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre
+	@if test -f index.cache.bz2; then \
+	echo $(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/; \
+	$(INSTALL_DATA) index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/; \
+	elif test -f  $(srcdir)/index.cache.bz2; then \
+	echo $(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/; \
+	$(INSTALL_DATA) $(srcdir)/index.cache.bz2 $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/; \
+	fi
+	-rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/common
+	$(LN_S) $(kde_libs_htmldir)/$(KDE_LANG)/common $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/common
+
+uninstall-docs:
+	-rm -rf $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre
+
+clean-docs:
+	-rm -f index.cache.bz2
+
+
+#>+ 13
+install-nls:
+	$(mkinstalldirs) $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre
+	@for base in wzd_create_comp_typ1.png sequence.png wzd_create_comp_typ2.png wzd_create_comp_typ3.png edit.png argument.png schema_sys.png column_oid.png oid_links1.png oid_links2.png oid_links3.png wzd_create_sch1.png bookmarks1.png wzd_create_sch2.png bookmarks2.png wzd_create_sch3.png bookmarks3.png column_num.png key.png wzd_create_fnc_sql1.png wzd_create_fnc_sql2.png wzd_create_fnc_c1.png wzd_create_fnc_sql3.png wzd_create_fnc_c2.png wzd_create_fnc_sql4.png wzd_create_fnc_c3.png wzd_create_fnc_sql5.png wzd_create_fnc_c4.png wzd_create_fnc_sql6.png wzd_create_fnc_c5.png wzd_create_fnc_c6.png wzd_create_grp1.png wzd_create_grp2.png column_date.png type_standalone.png function.png function_c.png column_uuid.png wzd_create_tbsp1.png wzd_create_tbsp2.png wzd_create_tbsp3.png wzd_set_owner1.png wzd_create_rul1.png wzd_create_rul2.png column_bin.png column_bit.png toast_table.png type.png wzd_create_col1.png wzd_create_col2.png primary_key.png wzd_rename0.png database_sys.png wzd_rename1.png wzd_rename2.png schema_usr.png wzd_create_tbl10.png wzd_create_tbl11.png wzd_create_tbl12.png wzd_create_tbl13.png wzd_create_tbl14.png wzd_create_tbl15.png wzd_create_tbl16.png wzd_create_tbl17.png wzd_create_tbl18.png wzd_create_tbl19.png function_sql.png wzd_create_vw1.png wzd_create_vw2.png wzd_create_vw3.png wzd_create_vw4.png wzd_create_vw5.png wzd_create_vw6.png column_char.png wzd_create_vw7.png column_cid.png wzd_modify_col0.png wzd_modify_col1.png wzd_modify_col2.png wzd_modify_col3.png wzd_modify_col4.png wzd_modify_col5.png wzd_modify_col6.png trigger.png wzd_modify_col7.png wzd_modify_col8.png wzd_modify_col9.png domain.png wzd_create_idx1.png wzd_create_idx2.png wzd_create_idx3.png column_xid.png wzd_create_lng1.png wzd_create_lng2.png wzd_create_lng3.png wzd_create_db1.png rule.png wzd_create_db2.png wzd_create_db3.png wzd_modify_col10.png screenshot.png query_result1.png query_result2.png query_result3.png function_pl.png column_xml.png type_composite.png database_usr.png wzd_objtype_db.png tblspace_sys.png column.png wzd_create_seq1.png wzd_create_seq2.png wzd_objtype_tbl.png cast.png wzd_modify0.png wzd_modify1.png wzd_modify2.png wzd_create_tbl1.png wzd_create_tbl2.png wzd_create_tbl3.png wzd_create_tbl4.png wzd_create_tbl5.png operator_class.png wzd_create_tbl6.png server.png wzd_create_tbl7.png wzd_create_tbl8.png index.png wzd_modify_seq1.png wzd_create_tbl9.png wzd_modify_seq2.png wzd_objtype_srv.png wzd_create_cnst1.png wzd_create_cnst2.png wzd_create_cnst3.png wzd_create_cnst4.png wzd_create_cnst5.png wzd_create_cnst6.png type_base.png wzd_create_cnst7.png wzd_create_cnst8.png wzd_create_cnst9.png user_crt_db.png setupsqlteditor.png wzd_create_base_typ1.png wzd_create_base_typ2.png wzd_create_base_typ3.png wzd_create_base_typ4.png wzd_analyze_tbl1.png wzd_analyze_tbl2.png wzd_analyze_tbl3.png privileges1.png tblspace_usr.png privileges2.png privileges3.png privileges4.png wzd_drop0.png check.png wzd_dump_db1.png wzd_drop1.png wzd_dump_db2.png wzd_drop2.png wzd_dump_db3.png wizard.png wzd_create_usr1.png wzd_create_usr2.png wzd_create_usr3.png group.png database.png wzd_modify_vw1.png wzd_modify_vw2.png wzd_create_dom_cnst1.png wzd_create_dom_cnst2.png conversion.png statistics1.png statistics2.png language.png wzd_copy_tbl_to1.png wzd_copy_tbl_to2.png wzd_copy_tbl_to3.png wzd_copy_tbl_to4.png column_tid.png aggregate.png user.png data_table1.png data_table2.png data_table3.png data_table4.png data_table5.png data_table6.png data_table7.png wzd_create_dom1.png wzd_create_dom2.png wzd_create_dom3.png wzd_create_dom4.png column_time.png foreign_key.png wzd_create_trg1.png wzd_create_trg2.png wzd_modify_fnc1.png wzd_modify_fnc2.png column_geo.png wzd_set_cluster_tbl1.png wzd_set_cluster_tbl2.png column_net.png executor1.png executor2.png executor3.png column_bool.png index.docbook wzd_vacuum_tbl1.png wzd_vacuum_tbl2.png wzd_vacuum_tbl3.png wzd_set_tablespace1.png wzd_rest_db1.png user_super.png wzd_rest_db2.png wzd_rest_db3.png editdelete.png wzd_modify_dom1.png wzd_modify_dom2.png wzd_modify_dom3.png wzd_modify_dom4.png table.png view.png wzd_copy_tbl_from1.png wzd_copy_tbl_from2.png wzd_copy_tbl_from3.png wzd_copy_tbl_from4.png edittool.png schema.png operator.png ; do \
+	  echo $(INSTALL_DATA) $$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/$$base ;\
+	  $(INSTALL_DATA) $(srcdir)/$$base $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/$$base ;\
+	done
+
+uninstall-nls:
+	for base in wzd_create_comp_typ1.png sequence.png wzd_create_comp_typ2.png wzd_create_comp_typ3.png edit.png argument.png schema_sys.png column_oid.png oid_links1.png oid_links2.png oid_links3.png wzd_create_sch1.png bookmarks1.png wzd_create_sch2.png bookmarks2.png wzd_create_sch3.png bookmarks3.png column_num.png key.png wzd_create_fnc_sql1.png wzd_create_fnc_sql2.png wzd_create_fnc_c1.png wzd_create_fnc_sql3.png wzd_create_fnc_c2.png wzd_create_fnc_sql4.png wzd_create_fnc_c3.png wzd_create_fnc_sql5.png wzd_create_fnc_c4.png wzd_create_fnc_sql6.png wzd_create_fnc_c5.png wzd_create_fnc_c6.png wzd_create_grp1.png wzd_create_grp2.png column_date.png type_standalone.png function.png function_c.png column_uuid.png wzd_create_tbsp1.png wzd_create_tbsp2.png wzd_create_tbsp3.png wzd_set_owner1.png wzd_create_rul1.png wzd_create_rul2.png column_bin.png column_bit.png toast_table.png type.png wzd_create_col1.png wzd_create_col2.png primary_key.png wzd_rename0.png database_sys.png wzd_rename1.png wzd_rename2.png schema_usr.png wzd_create_tbl10.png wzd_create_tbl11.png wzd_create_tbl12.png wzd_create_tbl13.png wzd_create_tbl14.png wzd_create_tbl15.png wzd_create_tbl16.png wzd_create_tbl17.png wzd_create_tbl18.png wzd_create_tbl19.png function_sql.png wzd_create_vw1.png wzd_create_vw2.png wzd_create_vw3.png wzd_create_vw4.png wzd_create_vw5.png wzd_create_vw6.png column_char.png wzd_create_vw7.png column_cid.png wzd_modify_col0.png wzd_modify_col1.png wzd_modify_col2.png wzd_modify_col3.png wzd_modify_col4.png wzd_modify_col5.png wzd_modify_col6.png trigger.png wzd_modify_col7.png wzd_modify_col8.png wzd_modify_col9.png domain.png wzd_create_idx1.png wzd_create_idx2.png wzd_create_idx3.png column_xid.png wzd_create_lng1.png wzd_create_lng2.png wzd_create_lng3.png wzd_create_db1.png rule.png wzd_create_db2.png wzd_create_db3.png wzd_modify_col10.png screenshot.png query_result1.png query_result2.png query_result3.png function_pl.png column_xml.png type_composite.png database_usr.png wzd_objtype_db.png tblspace_sys.png column.png wzd_create_seq1.png wzd_create_seq2.png wzd_objtype_tbl.png cast.png wzd_modify0.png wzd_modify1.png wzd_modify2.png wzd_create_tbl1.png wzd_create_tbl2.png wzd_create_tbl3.png wzd_create_tbl4.png wzd_create_tbl5.png operator_class.png wzd_create_tbl6.png server.png wzd_create_tbl7.png wzd_create_tbl8.png index.png wzd_modify_seq1.png wzd_create_tbl9.png wzd_modify_seq2.png wzd_objtype_srv.png wzd_create_cnst1.png wzd_create_cnst2.png wzd_create_cnst3.png wzd_create_cnst4.png wzd_create_cnst5.png wzd_create_cnst6.png type_base.png wzd_create_cnst7.png wzd_create_cnst8.png wzd_create_cnst9.png user_crt_db.png setupsqlteditor.png wzd_create_base_typ1.png wzd_create_base_typ2.png wzd_create_base_typ3.png wzd_create_base_typ4.png wzd_analyze_tbl1.png wzd_analyze_tbl2.png wzd_analyze_tbl3.png privileges1.png tblspace_usr.png privileges2.png privileges3.png privileges4.png wzd_drop0.png check.png wzd_dump_db1.png wzd_drop1.png wzd_dump_db2.png wzd_drop2.png wzd_dump_db3.png wizard.png wzd_create_usr1.png wzd_create_usr2.png wzd_create_usr3.png group.png database.png wzd_modify_vw1.png wzd_modify_vw2.png wzd_create_dom_cnst1.png wzd_create_dom_cnst2.png conversion.png statistics1.png statistics2.png language.png wzd_copy_tbl_to1.png wzd_copy_tbl_to2.png wzd_copy_tbl_to3.png wzd_copy_tbl_to4.png column_tid.png aggregate.png user.png data_table1.png data_table2.png data_table3.png data_table4.png data_table5.png data_table6.png data_table7.png wzd_create_dom1.png wzd_create_dom2.png wzd_create_dom3.png wzd_create_dom4.png column_time.png foreign_key.png wzd_create_trg1.png wzd_create_trg2.png wzd_modify_fnc1.png wzd_modify_fnc2.png column_geo.png wzd_set_cluster_tbl1.png wzd_set_cluster_tbl2.png column_net.png executor1.png executor2.png executor3.png column_bool.png index.docbook wzd_vacuum_tbl1.png wzd_vacuum_tbl2.png wzd_vacuum_tbl3.png wzd_set_tablespace1.png wzd_rest_db1.png user_super.png wzd_rest_db2.png wzd_rest_db3.png editdelete.png wzd_modify_dom1.png wzd_modify_dom2.png wzd_modify_dom3.png wzd_modify_dom4.png table.png view.png wzd_copy_tbl_from1.png wzd_copy_tbl_from2.png wzd_copy_tbl_from3.png wzd_copy_tbl_from4.png edittool.png schema.png operator.png ; do \
+	  rm -f $(DESTDIR)$(kde_htmldir)/$(KDE_LANG)/kpogre/$$base ;\
+	done
+
+
+#>+ 5
+distdir-nls:
+	for file in wzd_create_comp_typ1.png sequence.png wzd_create_comp_typ2.png wzd_create_comp_typ3.png edit.png argument.png schema_sys.png column_oid.png oid_links1.png oid_links2.png oid_links3.png wzd_create_sch1.png bookmarks1.png wzd_create_sch2.png bookmarks2.png wzd_create_sch3.png bookmarks3.png column_num.png key.png wzd_create_fnc_sql1.png wzd_create_fnc_sql2.png wzd_create_fnc_c1.png wzd_create_fnc_sql3.png wzd_create_fnc_c2.png wzd_create_fnc_sql4.png wzd_create_fnc_c3.png wzd_create_fnc_sql5.png wzd_create_fnc_c4.png wzd_create_fnc_sql6.png wzd_create_fnc_c5.png wzd_create_fnc_c6.png wzd_create_grp1.png wzd_create_grp2.png column_date.png type_standalone.png function.png function_c.png column_uuid.png wzd_create_tbsp1.png wzd_create_tbsp2.png wzd_create_tbsp3.png wzd_set_owner1.png wzd_create_rul1.png wzd_create_rul2.png column_bin.png column_bit.png toast_table.png type.png wzd_create_col1.png wzd_create_col2.png primary_key.png wzd_rename0.png database_sys.png wzd_rename1.png wzd_rename2.png schema_usr.png wzd_create_tbl10.png wzd_create_tbl11.png wzd_create_tbl12.png wzd_create_tbl13.png wzd_create_tbl14.png wzd_create_tbl15.png wzd_create_tbl16.png wzd_create_tbl17.png wzd_create_tbl18.png wzd_create_tbl19.png function_sql.png wzd_create_vw1.png wzd_create_vw2.png wzd_create_vw3.png wzd_create_vw4.png wzd_create_vw5.png wzd_create_vw6.png column_char.png wzd_create_vw7.png column_cid.png wzd_modify_col0.png wzd_modify_col1.png wzd_modify_col2.png wzd_modify_col3.png wzd_modify_col4.png wzd_modify_col5.png wzd_modify_col6.png trigger.png wzd_modify_col7.png wzd_modify_col8.png wzd_modify_col9.png domain.png wzd_create_idx1.png wzd_create_idx2.png wzd_create_idx3.png column_xid.png wzd_create_lng1.png wzd_create_lng2.png wzd_create_lng3.png wzd_create_db1.png rule.png wzd_create_db2.png wzd_create_db3.png wzd_modify_col10.png screenshot.png query_result1.png query_result2.png query_result3.png function_pl.png column_xml.png type_composite.png database_usr.png wzd_objtype_db.png tblspace_sys.png column.png wzd_create_seq1.png wzd_create_seq2.png wzd_objtype_tbl.png cast.png wzd_modify0.png wzd_modify1.png wzd_modify2.png wzd_create_tbl1.png wzd_create_tbl2.png wzd_create_tbl3.png wzd_create_tbl4.png wzd_create_tbl5.png operator_class.png wzd_create_tbl6.png server.png wzd_create_tbl7.png wzd_create_tbl8.png index.png wzd_modify_seq1.png wzd_create_tbl9.png wzd_modify_seq2.png wzd_objtype_srv.png wzd_create_cnst1.png wzd_create_cnst2.png wzd_create_cnst3.png wzd_create_cnst4.png wzd_create_cnst5.png wzd_create_cnst6.png type_base.png wzd_create_cnst7.png wzd_create_cnst8.png wzd_create_cnst9.png user_crt_db.png setupsqlteditor.png wzd_create_base_typ1.png wzd_create_base_typ2.png wzd_create_base_typ3.png wzd_create_base_typ4.png wzd_analyze_tbl1.png wzd_analyze_tbl2.png wzd_analyze_tbl3.png privileges1.png tblspace_usr.png privileges2.png privileges3.png privileges4.png wzd_drop0.png check.png wzd_dump_db1.png wzd_drop1.png wzd_dump_db2.png wzd_drop2.png wzd_dump_db3.png wizard.png wzd_create_usr1.png wzd_create_usr2.png wzd_create_usr3.png group.png database.png wzd_modify_vw1.png wzd_modify_vw2.png wzd_create_dom_cnst1.png wzd_create_dom_cnst2.png conversion.png statistics1.png statistics2.png language.png wzd_copy_tbl_to1.png wzd_copy_tbl_to2.png wzd_copy_tbl_to3.png wzd_copy_tbl_to4.png column_tid.png aggregate.png user.png data_table1.png data_table2.png data_table3.png data_table4.png data_table5.png data_table6.png data_table7.png wzd_create_dom1.png wzd_create_dom2.png wzd_create_dom3.png wzd_create_dom4.png column_time.png foreign_key.png wzd_create_trg1.png wzd_create_trg2.png wzd_modify_fnc1.png wzd_modify_fnc2.png column_geo.png wzd_set_cluster_tbl1.png wzd_set_cluster_tbl2.png column_net.png executor1.png executor2.png executor3.png column_bool.png index.docbook wzd_vacuum_tbl1.png wzd_vacuum_tbl2.png wzd_vacuum_tbl3.png wzd_set_tablespace1.png wzd_rest_db1.png user_super.png wzd_rest_db2.png wzd_rest_db3.png editdelete.png wzd_modify_dom1.png wzd_modify_dom2.png wzd_modify_dom3.png wzd_modify_dom4.png table.png view.png wzd_copy_tbl_from1.png wzd_copy_tbl_from2.png wzd_copy_tbl_from3.png wzd_copy_tbl_from4.png edittool.png schema.png operator.png ; do \
+	  cp $(srcdir)/$$file $(distdir); \
+	done
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/en/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/en/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin doc/en/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/doc/en/aggregate.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/aggregate.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/argument.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/argument.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/bookmarks3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/cast.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/cast.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/check.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/check.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_bin.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_bin.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_bit.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_bit.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_bool.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_bool.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_char.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_char.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_cid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_cid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_date.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_date.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_geo.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_geo.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_net.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_net.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_num.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_num.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_oid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_oid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_tid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_tid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_time.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_time.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_uuid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_uuid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_xid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_xid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/column_xml.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/column_xml.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/conversion.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/conversion.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/data_table7.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/data_table7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/database.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/database.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/database_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/database_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/database_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/database_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/domain.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/domain.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/edit.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/edit.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/editdelete.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/editdelete.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/edittool.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/edittool.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/executor1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/executor1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/executor2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/executor2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/executor3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/executor3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/foreign_key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/foreign_key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/function.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/function.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/function_c.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/function_c.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/function_pl.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/function_pl.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/function_sql.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/function_sql.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/group.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/group.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/index.docbook
===================================================================
--- kde-extras/kpogre/branches/upstream/current/doc/en/index.docbook	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/doc/en/index.docbook	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,6318 @@
+<?xml version="1.0" ?>
+<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//EN" "dtd/kdex.dtd" [
+  <!ENTITY kpogre '<application>KPoGre</application>'>
+  <!ENTITY kapp "&kpogre;"><!-- replace kpogre here -->
+  <!ENTITY % addindex "IGNORE">
+  <!ENTITY % English "INCLUDE"><!-- change language only here -->
+  
+  
+  <!-- Do not define any other entities; instead, use the entities
+       from kde-genent.entities and $LANG/user.entities. -->
+]>
+<!-- kdoctemplate v0.8 October 1 1999 
+     Minor update to "Credits and Licenses" section on August 24, 2000
+     Removed "Revision history" section on 22 January 2001   -->
+
+<!-- ................................................................ -->
+
+<!-- The language must NOT be changed here. -->
+
+<book lang="&language;">
+
+<!-- This header contains all of the meta-information for the document such
+as Authors, publish date, the abstract, and Keywords -->
+
+<bookinfo>
+<title>The KPoGre Handbook</title>
+
+<authorgroup>
+<author>
+<firstname>Lumir</firstname>
+<othername></othername>
+<surname>Vanek</surname>
+<affiliation>
+<address><email>lvanek at users.sourceforge.net</email></address>
+</affiliation>
+</author>
+</authorgroup>
+
+<!-- TRANS:ROLES_OF_TRANSLATORS -->
+
+<copyright>
+<year>2004-2008</year>
+<holder>Lumir Vanek</holder>
+</copyright>
+<!-- Translators: put here the copyright notice of the translation -->
+<!-- Put here the FDL notice.  Read the explanation in fdl-notice.docbook 
+     and in the FDL itself on how to use it. -->
+<legalnotice>&FDLNotice;</legalnotice>
+
+<!-- Date and version information of the documentation
+Don't forget to include this last date and this last revision number, we
+need them for translation coordination !
+Please respect the format of the date (DD/MM/YYYY) and of the version
+(V.MM.LL), it could be used by automation scripts.
+Do NOT change these in the translation. -->
+
+<date>01/04/2008</date>
+<releaseinfo>1.6.2</releaseinfo>
+
+<!-- Abstract about this handbook -->
+
+<abstract>
+<para>
+&kpogre; is a PostgreSQL administration tool for KDE.
+</para>
+</abstract>
+
+<!-- This is a set of Keywords for indexing by search engines.
+Please at least include KDE, the KDE package it is in, the name
+ of your application, and a few relevant keywords. -->
+
+<keywordset>
+<keyword>KDE</keyword>
+<keyword>PostgreSQL</keyword>
+</keywordset>
+
+</bookinfo>
+
+<!-- The contents of the documentation begin here.  Label
+each chapter so with the id attribute. This is necessary for two reasons: it
+allows you to easily reference the chapter from other chapters of your
+document, and if there is no ID, the name of the generated HTML files will vary
+from time to time making it hard to manage for maintainers and for the CVS
+system. Any chapter labelled (OPTIONAL) may be left out at the author's
+discretion. Other chapters should not be left out in order to maintain a
+consistent documentation style across all KDE apps. -->
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Introduction                                      -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="introduction">
+<title>Introduction</title>
+
+<!-- The introduction chapter contains a brief introduction for the
+application that explains what it does and where to report
+problems. Basically a long version of the abstract.  Don't include a
+revision history. (see installation appendix comment) -->
+
+<para>
+&kapp; is a <ulink url="http://www.postgresql.org">PostgreSQL</ulink> administration tool. It allow browse through system catalog, create, modify and drop database objects, run
+administrative tasks, execute SQL statements, edit database tables, executes functions. &kpogre; looks like this:
+</para>
+
+<para>
+Left side contain dockable tree  with connected PostgreSQL servers and their objects structure. 
+</para>
+
+<para>
+Right side contain MDI child's windows. There is Properties for selected item. Also other windows, may be opened here: <link linkend="query_result">Query / result windows</link>, 
+<link linkend="data_table">Datatable windows</link> etc..
+</para>
+
+<!-- This chapter should tell the user how to use your app. You should use as
+many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
+your application. -->
+
+<para>
+
+<!-- Note that all graphics should be in .png format. Use no gifs because of
+patent issues. -->
+
+<screenshot>
+<screeninfo>Here's a screenshot of &kpogre;</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="screenshot.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+</para>
+
+
+<para>
+&kapp; have various toolbars - basic one with standart commands and
+database related commands. Third toolbar contain Konqueror-like path bar, that display
+path of selected tree item.
+</para>
+
+<para>
+Also next toolbars can be displaied with specific actions for Query / result windows, Datatable windows and others.
+</para>
+
+<para><interface>The Pathbar</interface> shows the path to the selected item,
+You can type a path here and press <keycap>Enter</keycap> to go to it.
+You may use combobox in path bar for select item. The black icon at the left hand 
+end of the Pathbar clears the text entry box.
+</para>
+
+</chapter>
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Using KPoGre                                      -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="using">
+<title>Using &kpogre;</title>
+
+<sect1 id="obj_icons">
+<title>Objects icons</title>
+
+<sect2 id="main_icons">
+<title>Main objects</title>
+
+<para><guiicon><inlinegraphic fileref="server.png"></inlinegraphic></guiicon> Connection to PostgreSQL server</para>
+
+<para><guiicon><inlinegraphic fileref="tblspace_sys.png"></inlinegraphic></guiicon> System tablespace</para>
+<para><guiicon><inlinegraphic fileref="tblspace_usr.png"></inlinegraphic></guiicon> User tablespace</para>
+
+<para><guiicon><inlinegraphic fileref="database.png"></inlinegraphic></guiicon> Unconnected database</para>
+<para><guiicon><inlinegraphic fileref="database_sys.png"></inlinegraphic></guiicon> Template database</para>
+<para><guiicon><inlinegraphic fileref="database_usr.png"></inlinegraphic></guiicon> User database</para>
+
+<para><guiicon><inlinegraphic fileref="user_super.png"></inlinegraphic></guiicon> Database super-user</para>
+<para><guiicon><inlinegraphic fileref="user_crt_db.png"></inlinegraphic></guiicon> Database user - can create databases</para>
+<para><guiicon><inlinegraphic fileref="user.png"></inlinegraphic></guiicon> Database user</para>
+<para><guiicon><inlinegraphic fileref="group.png"></inlinegraphic></guiicon> Groups of users</para>
+
+<para><guiicon><inlinegraphic fileref="schema_sys.png"></inlinegraphic></guiicon> System schema</para>
+<para><guiicon><inlinegraphic fileref="schema_usr.png"></inlinegraphic></guiicon> User schema</para>
+<para><guiicon><inlinegraphic fileref="cast.png"></inlinegraphic></guiicon> Type cast</para>
+<para><guiicon><inlinegraphic fileref="language.png"></inlinegraphic></guiicon> Procedural language</para>
+
+</sect2>
+
+<sect2 id="schema_icons">
+<title>Schema objects</title>
+
+<para><guiicon><inlinegraphic fileref="aggregate.png"></inlinegraphic></guiicon> Aggregate</para>
+<para><guiicon><inlinegraphic fileref="conversion.png"></inlinegraphic></guiicon> Conversion</para>
+<para><guiicon><inlinegraphic fileref="domain.png"></inlinegraphic></guiicon> Domain</para>
+<para><guiicon><inlinegraphic fileref="function_c.png"></inlinegraphic></guiicon> Function in C language</para>
+<para><guiicon><inlinegraphic fileref="function_pl.png"></inlinegraphic></guiicon> Function in pl/PGSQL</para>
+<para><guiicon><inlinegraphic fileref="function_sql.png"></inlinegraphic></guiicon> Function in SQL</para>
+<para><guiicon><inlinegraphic fileref="function.png"></inlinegraphic></guiicon> Other function</para>
+<para><guiicon><inlinegraphic fileref="argument.png"></inlinegraphic></guiicon> Function argument</para>
+<para><guiicon><inlinegraphic fileref="operator_class.png"></inlinegraphic></guiicon> Operator class</para>
+<para><guiicon><inlinegraphic fileref="operator.png"></inlinegraphic></guiicon> Operator</para>
+<para><guiicon><inlinegraphic fileref="table.png"></inlinegraphic></guiicon> Ordinary Table</para>
+<para><guiicon><inlinegraphic fileref="toast_table.png"></inlinegraphic></guiicon> <ulink
+url="http://www.postgresql.org/docs/current/static/storage-toast.html">TOAST</ulink> Table</para>
+<para><guiicon><inlinegraphic fileref="type_base.png"></inlinegraphic></guiicon> Base datatype</para>
+<para><guiicon><inlinegraphic fileref="type_composite.png"></inlinegraphic></guiicon> Composite datatype based on table row  structure</para>
+<para><guiicon><inlinegraphic fileref="type_standalone.png"></inlinegraphic></guiicon> Standalone composite datatype</para>
+<para><guiicon><inlinegraphic fileref="type.png"></inlinegraphic></guiicon> Other datatype</para>
+<para><guiicon><inlinegraphic fileref="sequence.png"></inlinegraphic></guiicon> Sequence</para>
+<para><guiicon><inlinegraphic fileref="view.png"></inlinegraphic></guiicon> View</para>
+
+</sect2>
+
+<sect2 id="table_icons">
+<title>Table objects</title>
+
+<para><guiicon><inlinegraphic fileref="check.png"></inlinegraphic></guiicon> Check constraint</para>
+<para><guiicon><inlinegraphic fileref="index.png"></inlinegraphic></guiicon> Index</para>
+<para><guiicon><inlinegraphic fileref="primary_key.png"></inlinegraphic></guiicon> Primary key</para>
+<para><guiicon><inlinegraphic fileref="foreign_key.png"></inlinegraphic></guiicon> Foreign key</para>
+<para><guiicon><inlinegraphic fileref="rule.png"></inlinegraphic></guiicon> Rule</para>
+<para><guiicon><inlinegraphic fileref="trigger.png"></inlinegraphic></guiicon> Trigger</para>
+
+</sect2>
+
+<sect2 id="columns_icons">
+<title>Column types</title>
+
+<para><guiicon><inlinegraphic fileref="column_oid.png"></inlinegraphic></guiicon> OID - object identifier</para>
+<para><guiicon><inlinegraphic fileref="column_tid.png"></inlinegraphic></guiicon> TID - tuple (row)  identifier</para>
+<para><guiicon><inlinegraphic fileref="column_cid.png"></inlinegraphic></guiicon> CID - command identifier</para>
+<para><guiicon><inlinegraphic fileref="column_xid.png"></inlinegraphic></guiicon> XID - transaction  identifier.</para>
+<para><guiicon><inlinegraphic fileref="column_char.png"></inlinegraphic></guiicon> Character</para>
+<para><guiicon><inlinegraphic fileref="column_xml.png"></inlinegraphic></guiicon> XML</para>
+<para><guiicon><inlinegraphic fileref="column_num.png"></inlinegraphic></guiicon> Numeric</para>
+<para><guiicon><inlinegraphic fileref="column_uuid.png"></inlinegraphic></guiicon> UUID</para>
+<para><guiicon><inlinegraphic fileref="column_bin.png"></inlinegraphic></guiicon> Binary</para>
+<para><guiicon><inlinegraphic fileref="column_bit.png"></inlinegraphic></guiicon> Bit String</para>
+<para><guiicon><inlinegraphic fileref="column_bool.png"></inlinegraphic></guiicon> Boolean</para>
+<para><guiicon><inlinegraphic fileref="column_time.png"></inlinegraphic></guiicon> Time</para>
+<para><guiicon><inlinegraphic fileref="column_date.png"></inlinegraphic></guiicon> Date</para>
+<para><guiicon><inlinegraphic fileref="column_geo.png"></inlinegraphic></guiicon> Geometric</para>
+<para><guiicon><inlinegraphic fileref="column_net.png"></inlinegraphic></guiicon> Network address</para>
+<para><guiicon><inlinegraphic fileref="column.png"></inlinegraphic></guiicon> Other column</para>
+
+</sect2>
+
+</sect1>
+
+<sect1 id="connecting">
+<title>Connecting to server</title>
+
+<para>Choose <guimenuitem>Database -> Connect</guimenuitem> menu item and fill connect dialog. Press <guibutton>OK</guibutton> to connect.
+</para>
+
+<screenshot>
+<screeninfo>image 1</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="bookmarks1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+You may disconnect from server selecting it and using  <guimenuitem>Database -> Disconnect</guimenuitem> menu item.
+</para>
+
+
+</sect1>
+
+
+<sect1 id="bookmarks">
+<title>Using bookmarks</title>
+
+<para>On database toolbar, there is <guimenuitem>bookmarks</guimenuitem> button that can be used to bookmarking connection to PostgreSQL server. Select server in left tree view. Click to <guimenuitem>Bookmarks</guimenuitem> button on left toolbar and choose <guimenuitem>Add bookmark</guimenuitem>.
+</para>
+
+<screenshot>
+<screeninfo>image 1</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="bookmarks2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+Now you may connect to server using <guimenuitem>Bookmarks</guimenuitem> button and choosing item in menu, instead of using <guimenuitem>Database -> Connect</guimenuitem> command and fill all items to connect dialog.
+</para>
+
+<screenshot>
+<screeninfo>image 2</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="bookmarks3.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect1>
+
+
+<sect1 id="oid_links">
+<title>OID links</title>
+
+<para>Most of objects in system catalog have OID as identifier that is unique through database. In property pages, &kpogre; displays objects referenced with OID using different color.
+</para>
+
+<para>
+In folowing screenshot there is list of functions. First column in right side contain their names as OID links. User may move mouse cursor to OID link, pointer is changed to hand and OID value is shown as tooltip.
+</para>
+
+<screenshot>
+<screeninfo>image 1</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="oid_links1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+User may double click on OID link and &kpogre; jump to referenced object. Using this feature is easy to browse system catalog. 
+</para>
+
+<para>
+Now we see choosed function. On new object, there is another referenced object - function datatype. Double clicking on it user can jump to this object. Or we may return back to previous object using <guimenuitem>View -> To back</guimenuitem> command.
+</para>
+
+<screenshot>
+<screeninfo>image 2</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="oid_links2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+
+<para>
+Jumping through object tree is logged and user may return back using <guimenuitem>View -> To Back</guimenuitem> command and go forward using <guimenuitem>View -> To Forward</guimenuitem> or with related buttons on toolbar.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="oid_links3.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<note><para>
+Selecting items in left tree view is not logged to back/forward navigation. Another way to return to previously visited item is selecting it in <interface>Path bar</interface> combo.
+</para></note>
+
+</sect1>
+
+<sect1 id="statistics">
+<title>Monitoring Database Activity</title>
+
+<para>If you select 
+<guiicon><inlinegraphic fileref="server.png"></inlinegraphic></guiicon> server, 
+<guiicon><inlinegraphic fileref="database_usr.png"></inlinegraphic></guiicon> database, 
+<guiicon><inlinegraphic fileref="table.png"></inlinegraphic></guiicon> table, 
+<guiicon><inlinegraphic fileref="index.png"></inlinegraphic></guiicon> index 
+or <guiicon><inlinegraphic fileref="sequence.png"></inlinegraphic></guiicon> sequence
+, there are statistics informations on property page. These informations are obtained from <ulink url="http://www.postgresql.org/docs/current/static/monitoring-stats.html">The Statistics Collector</ulink>.
+</para>
+
+<para>
+The PostgreSQL server must be configured to collect statistics informations:
+</para>
+
+<screenshot>
+<screeninfo>image 1</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="statistics1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Statistics pages contains <guibutton>Refresh</guibutton> button that allow reload statistics from database.
+</para>
+
+<screenshot>
+<screeninfo>Statistics information page</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="statistics2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!--                              Querying database                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="query_result">
+<title>Querying database</title>
+
+<para>
+Use <guimenuitem>File -> New</guimenuitem> to open new SQL query/result window. It can be used to enter SQL statement, send it to server and see result.
+</para>
+
+<para>
+Tab icons in tabs may have three colors:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Black</interface> - Query / result window is ready to enter SQL</para> 
+</listitem>
+<listitem>
+<para><interface>Red</interface> - SQL was sent to server and user waits for result.</para> 
+</listitem>
+<listitem>
+<para><interface>Blue</interface> - Result is displayied and query is not changed after run last query.</para> 
+</listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Query / result window</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="query_result1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<sect2 id="query_result1">
+<title>SQL query</title>
+
+<para>
+SQL query can be saved and opened using standard menu entries in <guimenuitem>File</guimenuitem> menu. For editing SQL is used Kate part component - editing is similar than in Kate editor.
+</para>
+
+<para>
+While editing, code completition box can be showed pressing <keycap>Ctrl</keycap>+<keycap>Space</keycap>. Code completion offers SQL keywords,
+tables, views and functions. Code completion is case sensitive, to compete SQL keywords 
+type threm  in upper case leters.
+</para>
+
+<screenshot>
+<screeninfo>Code completition</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="query_result2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+
+<para>
+When you type table name, or function returning set name - and then press dot, code completion
+box containing columns is displayied.
+</para>
+
+</sect2>
+
+<sect2 id="query_result2">
+<title>Running query</title>
+
+<para>
+Enter statement in <ulink url="http://www.postgresql.org/docs/current/static/sql.html">SQL language</ulink>. You may use PostgreSQL language extensions, of course.
+</para>
+
+<para>
+If user have connected more than one server or database, then it is necessary choose proper server and database for running query in comboboxes. 
+</para>
+
+<para>
+Choose <guimenuitem>Database -> Run query</guimenuitem> menu item or press toolbar button with rocket. Query will be sent to server, terminal icon change color to red. It is possible to continue work with rest of program.
+</para>
+
+<para>
+It is possible to terminate running query using <guimenuitem>Database -> Stop query</guimenuitem> menu item or pressing toolbar button.
+</para>
+
+</sect2>
+
+<sect2 id="query_result3">
+<title>Options</title>
+
+<para>
+Pressing <guimenuitem>Options</guimenuitem> button user can show controls for following options:
+</para>
+
+<sect3 id="query_result3_1">
+<title>XAct - transaction type</title>
+<para>
+User can choose type of transaction for executing query:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Transaction</interface> - Standard back-end transaction.</para> 
+</listitem>
+<listitem>
+<para><interface>Robust trans</interface> - Slightly slower, better-fortified version of transaction.</para> 
+</listitem>
+<listitem>
+<para><interface>Nontransaction</interface> - Query will not run inside transaction.</para> 
+</listitem>
+</itemizedlist>
+
+</sect3>
+
+<sect3 id="query_result3_2">
+<title>Explaining and analyzing SQL</title>
+<para>
+There are checkboxes to prepend keywords EXPLAIN [ANALYZE] [VERBOSE] before SQL statement. See PostgreSQL 
+<ulink url="http://www.postgresql.org/docs/current/static/sql-explain.html">documentation</ulink>
+for more informations about explaining and analyzing SQL.
+</para>
+
+</sect3>
+
+<sect3 id="query_result3_3">
+<title>Execution time</title>
+<para>
+Also you may see information about last query execution time. Note, that this time is meassured
+on client side, and it differ from time meassured by EXPLAIN ANALYZE.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="query_result4">
+<title>Looking at result</title>
+
+<para>
+When query result is returned from server, it is displayied in result area. 
+It may be text or table, depending from query.
+</para>
+
+<para>
+When table result is larger than 500 rows, only 500 rows fetched initially to table. User may fetch another bunch of rows using <guimenuitem>Database -> Fetch next</guimenuitem> and <guimenuitem>Database -> Fetch all</guimenuitem>.
+</para>
+
+</sect2>
+
+<sect2 id="query_result5">
+<title>Saving result</title>
+
+<para>
+Content of result table may be saved to CSV file using <guimenuitem>File -> Export result</guimenuitem>.
+</para>
+
+</sect2>
+
+<sect2 id="query_result6">
+<title>Copy result data to clipboard</title>
+
+<para>
+If you make mouse right-click over result table, menu containing some clipboard actions is
+displayied.
+</para>
+
+<screenshot>
+<screeninfo>Clipboard actions</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="query_result3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!--                                  Edit tables                                  -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="data_table">
+<title>Edit tables</title>
+
+<para>
+&kpogre; contain Datatable - editor for editing database table content. Select table you wish to edit in tree, make right mouse click to display menu and choose <guimenuitem>Edit table content</guimenuitem>. Table must have primary key.
+</para>
+
+<screenshot>
+<screeninfo>Opening datatable</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>KPoGre shows dialog, you may enter WHERE predicate to limit anmount of edited rows and ORDER BY predicate to specify sort orded of edited data. It is good practice specify at least one sort column, because updated rows are returned on end of result when you reload data and sort order is not specified. 
+</para>
+
+<screenshot>
+<screeninfo>Datatable window</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>&kpogre; shows Datatable with table content. Also toolbar is displaied.</para>
+
+
+<sect2 id="data_table1">
+<title>Datatable menu and toolbar actions</title>
+
+<para>
+When Datatable is opened, you may use items in <guimenuitem>Database</guimenuitem> submenu from main menu bar. &kpogre; also shows toolbar with actions for it. Aditionally, you may reach those actions by make right click over datatable to show menu. On this menu, there are some useful clibpoard actions.
+</para>
+
+<screenshot>
+<screeninfo>&kpogre; with datatable</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+
+<sect3 id="data_tbl_actions1">
+<title>Moving current row</title>
+<para>
+There are actions for navigate to <guimenuitem>First row</guimenuitem>, 
+<guimenuitem>Previous row</guimenuitem>, <guimenuitem>Next row</guimenuitem> and 
+<guimenuitem>Last row</guimenuitem>. This same effect have	navigate keys on keyboard - <keycap>Up</keycap>, <keycap>Down</keycap>, <keycap>Home</keycap> and <keycap>End</keycap> keys. Current row can be also changed using mouse by selecting it.
+</para>
+</sect3>
+
+<sect3 id="data_tbl_actions2">
+<title>Edit data</title>
+<para>
+When cell is selected, you may start edit it's content using <guimenuitem>Edit cell</guimenuitem> action, or by pressing <keycap>F2</keycap>, or simply by start typing on keyboard. Current cell content can be cleared by <guimenuitem>Clear cell</guimenuitem> or pressing <keycap>Delete</keycap>. Cell editing can be canceled by pressing <keycap>Esc</keycap>.
+</para>
+<para>
+Insert new row using action <guimenuitem>Insert row</guimenuitem> or pressing <keycap>Ctrl+Insert</keycap>. New row is inserted at end of table and it's ready to fill data. User must fill all fields, except NULLable or with DEFAULT value. When table have primary key autogenerated from sequence, leave it's cell blank, Datatable select next sequence value and use it. After fill row, use  <guimenuitem>Update changes</guimenuitem> or presses <keycap>Ctrl+Enter</keycap> to perform INSERT operation.
+</para>
+<para>
+Delete current row using action <guimenuitem>Delete row</guimenuitem> or pressing <keycap>Ctrl+Delete</keycap>.
+</para>
+</sect3>
+
+<sect3 id="data_tbl_actions3">
+<title>Commit or cancel changes</title>
+<para>
+Datatable is row oriented editor. When a user makes changes to a cell in the table, current row's data are stored to backup buffer and cell is marked for update. The Datatable will not send changes in the current row to the database until the user moves to a different record in the	datatable or use <guimenuitem>Update changes</guimenuitem> or presses <keycap>Ctrl+Enter</keycap>.
+</para>
+<para>
+Row editing or inserting can be canceled using <guimenuitem>Cancel changes</guimenuitem>,
+or by pressing <keycap>Esc</keycap>. In this case, data are restored from backup buffer or insert is cancelled.
+</para>
+</sect3>
+
+<sect3 id="data_tbl_actions4">
+<title>Reload data</title>
+<para>
+Using action <guimenuitem>Reload data</guimenuitem> user can perform SQL query to actual data in database table. &kpogre; displays dialog to give chance to modify WHERE or ORDER BY clauses.
+</para>
+<para>
+Using action <guimenuitem>Stop reload data</guimenuitem> user can interrupt this operation.
+</para>
+</sect3>
+
+<sect3 id="data_tbl_actions5">
+<title>Clipboard actions</title>
+<para>
+When user make right mouse click over Datatable, &kpogre; shows popup menu, where are some useful actions for copy current cell, row or entire table to clipboard.
+</para>
+
+<para>
+Content of Datatable may be saved to CSV file using <guimenuitem>File -> Export result</guimenuitem>.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="data_table2">
+<title>Large objects</title>
+
+<para>
+If table contain large object column (text or bytea), its content is stripped to reasonable
+size for display it. Those fields cannot be edited by inline editor. Instead, press
+<keycap>F2</keycap> or make double click on cell and &kpogre; display popup menu.
+</para>
+
+<sect3 id="data_tbl_large1">
+<title>Editing Texts - CLOBs</title>
+<para>
+Text fields can be loaded from disk file, saved to it ...
+</para>
+<screenshot>
+<screeninfo>Text field menu</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>... or you can launch dialog for edit it.</para>
+
+<screenshot>
+<screeninfo>Editing text</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect3>
+
+<sect3 id="data_tbl_large2">
+<title>Editing Byte arrays - BLOBs</title>
+<para>
+Byte array fields can be loaded from disk file or saved to it.
+</para>
+<screenshot>
+<screeninfo>Text field menu</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect3>
+
+<sect3 id="data_tbl_large3">
+<title>Encoding notes</title>
+<para>
+When you save large object field to file, it's encoded with this same encoding, that have connection to PostgreSQL server, when you load from file, expected encoding is also the same
+as connection have. Select server in left tree to check wich encoding is used for connection:
+</para>
+<screenshot>
+<screeninfo>Checking server connection</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="data_table7.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect3>
+
+</sect2>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!--                               Execute functions                               -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="executor">
+<title>Execute functions</title>
+
+<para>
+&kpogre; contain Executor - for executing database functions. Select function you wish to run in tree, make right mouse click to display menu and choose <guimenuitem>Execute function</guimenuitem>.
+</para>
+
+<screenshot>
+<screeninfo>Opening Executor</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="executor1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>KPoGre shows Executor with function arguments and result area. Also toolbar is displaied.
+</para>
+
+<screenshot>
+<screeninfo>Executor window</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="executor2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<sect2 id="executor1">
+<title>Function arguments</title>
+
+<para>
+Enter arguments values to table. Convertion rules are the same as in 
+<link linkend="data_table">Datatable</link>.
+</para>
+
+</sect2>
+
+<sect2 id="executor2">
+<title>Execute function</title>
+
+<para>
+Choose <guimenuitem>Database -> Execute</guimenuitem> menu item or press toolbar button.
+</para>
+
+<para>
+It is possible to terminate running function using <guimenuitem>Database -> Stop</guimenuitem> menu item or pressing toolbar button.
+</para>
+
+</sect2>
+
+<sect2 id="executor3">
+<title>Options</title>
+
+<sect3 id="executor3_1">
+<title>XAct - transaction type</title>
+<para>
+User can choose type of transaction for executing function:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Transaction</interface> - Standard back-end transaction.</para> 
+</listitem>
+<listitem>
+<para><interface>Robust trans</interface> - Slightly slower, better-fortified version of transaction.</para> 
+</listitem>
+<listitem>
+<para><interface>Nontransaction</interface> - Query will not run inside transaction.</para> 
+</listitem>
+</itemizedlist>
+
+</sect3>
+
+<sect3 id="executor3_2">
+<title>Explaining and analyzing SQL</title>
+<para>
+There are checkboxes to prepend keywords EXPLAIN [ANALYZE] [VERBOSE] before SQL statement. See PostgreSQL 
+<ulink url="http://www.postgresql.org/docs/current/static/sql-explain.html">documentation</ulink>
+for more informations about explaining and analyzing SQL.
+</para>
+
+</sect3>
+
+<sect3 id="executor3_3">
+<title>Execution time</title>
+<para>
+Also you may see information about last query execution time. Note, that this time is meassured
+on client side, and it differ from time meassured by EXPLAIN ANALYZE.
+</para>
+
+</sect3>
+
+</sect2>
+
+<sect2 id="executor4">
+<title>Looking at result</title>
+
+<para>
+When query result is returned from server, it is displayied in result area. 
+It may be text or table, depending from function.
+</para>
+
+<para>
+When table result is larger than 500 rows, only 500 rows fetched initially to table. User may fetch another bunch of rows using <guimenuitem>Database -> Fetch next</guimenuitem> and <guimenuitem>Database -> Fetch all</guimenuitem>.
+</para>
+
+</sect2>
+
+<sect2 id="executor5">
+<title>Saving result</title>
+
+<para>
+Content of result table may be saved to CSV file using <guimenuitem>File -> Export Result</guimenuitem>.
+</para>
+
+</sect2>
+
+<sect2 id="executor6">
+<title>Copy result data to clipboard</title>
+
+<para>
+If you make mouse right-click over result table, menu containing some clipboard actions is
+displayied.
+</para>
+
+<screenshot>
+<screeninfo>Clipboard actions</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="executor3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+</sect1>
+
+</chapter>
+
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                                  Wizards                                      -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="wizards">
+<title>&kpogre; Wizards</title>
+
+<!-- ***************************************************************************** -->
+<!--                                 USING WIZARDS                                 -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<sect1 id="using_wiards0">
+<title>Create object</title>
+
+<para>
+There are two ways to create object using wizard. First - you may select <guiicon><inlinegraphic fileref="server.png"></inlinegraphic></guiicon> server or <guiicon><inlinegraphic fileref="database_usr.png"></inlinegraphic></guiicon> database or <guiicon><inlinegraphic fileref="schema_usr.png"></inlinegraphic></guiicon> schema or <guiicon><inlinegraphic fileref="table.png"></inlinegraphic></guiicon> table in left tree view and choose menu command <guiicon><inlinegraphic fileref="wizard.png"></inlinegraphic></guiicon> <guimenuitem>Database -> Wizard</guimenuitem>. &kpogre; displays dialog where you may choose what you want to create.
+Dialog contents is depends from selected object: 
+</para>
+
+<screenshot>
+<screeninfo>Object type dialog</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_objtype_srv.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>Object type dialog</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_objtype_db.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo>Object type dialog</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_objtype_tbl.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+A second way is using object menu - in left tree view. Select object and make right button click on it to display object menu. This menu contain item for creating child objects. For example if you want to create 
+new table, select tables folder and from object menu choose <guiicon><inlinegraphic fileref="wizard.png"></inlinegraphic></guiicon> <guimenuitem>Create table</guimenuitem>
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_tbl1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+
+<sect1 id="using_wizards1">
+<title>Rename object</title>
+
+<para>
+Select object in tree view and make right button click on it to display object menu. If rename is posible, this menu contain item for <guiicon><inlinegraphic fileref="edittool.png"></inlinegraphic></guiicon> <guimenuitem>Rename</guimenuitem> object. Choose this menu item and follow Wizard for rename object.
+</para>
+
+<screenshot>
+<screeninfo>Rename object Wizard</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_rename0.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+For example if you want to rename namespace on first wizard page you may enter new namespace name:
+</para>
+
+<screenshot>
+<screeninfo>Rename object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_rename1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+In next step you may rewiew SQL command to RENAME object. When you press
+<guimenuitem>Next</guimenuitem> button, coman will be send to server.
+</para>
+
+<screenshot>
+<screeninfo>Rename object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_rename2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+In final second step you may see operation result. Press <guimenuitem>Finish</guimenuitem> button
+to close wizard dialog.
+</para>
+
+<note><para>
+If object menu not contain <guimenuitem>Rename</guimenuitem> item, renaming may be possible using <guimenuitem>Modify object</guimenuitem> Wizard.
+</para></note>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<sect1 id="using_wizards3">
+<title>Modify object</title>
+
+<para>
+Select object in tree view and make right button click on it to display object menu. This menu contain item for <guiicon><inlinegraphic fileref="edit.png"></inlinegraphic></guiicon> <guimenuitem>Modify</guimenuitem> object.
+</para>
+
+<screenshot>
+<screeninfo>Modify object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_modify0.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+For example if you want to modify view, &kpogre; display this Wizard.
+</para>
+
+<screenshot>
+<screeninfo>Modify object Wizard</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+In next step you may rewiew SQL command. When you press
+<guimenuitem>Next</guimenuitem> button, coman will be send to server.
+</para>
+
+<screenshot>
+<screeninfo>Modify object Wizard</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+In final step you may see operation result. Press <guimenuitem>Finish</guimenuitem> button
+to close wizard dialog.
+</para>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<sect1 id="using_wizards4">
+<title>Set object owner</title>
+
+<para>
+This operation changes the owner of the selected object. It is applicable for tablespace, database, schema, table, index, domain and type.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_set_owner1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Press <guibutton>Next</guibutton> button. 
+</para>
+
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<sect1 id="using_wizards5">
+<title>Set object privileges</title>
+
+<para>
+Privileges can be <ulink url="http://www.postgresql.org/docs/current/static/sql-grant.html">granted</ulink> or <ulink url="http://www.postgresql.org/docs/current/static/sql-revoke.html">revoked</ulink> for table, view, sequence, database, tablespace, function, language or schema. Those objects have menu items for grant or revoke privileges and also have <interface>Privileges</interface> tab in property window.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="privileges1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+There are two ways for setting privileges. First - using wizards from object menu - selecting object, make right mouse click and select <guimenuitem>Grant privileges</guimenuitem> or <guimenuitem>Revoke privileges</guimenuitem> menu items. A second one is using <interface>Privileges</interface> tab in property window. There is list of users or groups and their privileges displayied using check boxes. User may change it's state and then press <interface>Update</interface> button.
+</para>
+
+<para>
+First way - using wizard is suitable for granting new privileges for users or groups that are not in privilegs list. Grant privileges wizard have the same look and feel as last step from create object wizard, where is also possibility to grant privileges. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="privileges2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+While granting privileges - if <interface>Also give GRANT privileges</interface> is checked, the recipient of the privilege may in turn grant it to others. Without a grant option, the recipient cannot do that. Grant options can only be granted to individual users, not to groups or PUBLIC.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="privileges3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+While revoking privileges - if <interface>Only revoke GRANT privilege</interface> is choosed, only the grant option for the privilege is revoked, not the privilege itself. Otherwise, both the privilege and the grant option are revoked.
+</para>
+
+<para>
+If a user holds a privilege with grant option and has granted it to other users then the privileges held by those other users are called dependent privileges. If the privilege or the grant option held by the first user is being revoked and dependent privileges exist, those dependent privileges are also revoked if <interface>Cascade</interface> is checked, else the revoke action will fail. This recursive revocation only affects privileges that were granted through a chain of users that is traceable to the user that is the subject of this REVOKE command. Thus, the affected users may effectively keep the privilege if it was also granted through other users.
+</para>
+
+<para>
+Second way is better for editing existing privileges. Simply check or uncheck privileges and press <interface>Update</interface> button. &kpogre; displays two-steps wizard that contain SQL commands to make this change.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="privileges4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+
+<sect1 id="using_wizards6">
+<title>Drop object</title>
+
+<para>
+Select object in tree view and make right button click on it to display object menu. This menu contain item for drop objects. For example if you want to drop table, select it and from object menu choose <guiicon><inlinegraphic fileref="editdelete.png"></inlinegraphic></guiicon> <guimenuitem>Drop table</guimenuitem>
+&kpogre; run two-steps Wizard. 
+</para>
+
+<screenshot>
+<screeninfo>Running drop object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_drop0.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+In first step you may rewiew SQL command to DROP objet. When you press
+<guimenuitem>Next</guimenuitem> button, coman will be send to server.
+</para>
+
+<screenshot>
+<screeninfo>Drop object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_drop1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+<para>
+In final second step you may see operation result. Press <guimenuitem>Finish</guimenuitem> button
+to close wizard dialog.
+</para>
+
+<screenshot>
+<screeninfo>Drop object Wizard</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_drop2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE/MODIFY GROUP WIZARD                           -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_group">
+<title>Create or modify Group</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_group1">
+<title>Step 1 - Group name and members</title>
+
+<para>
+In first step, enter <guimenuitem>group name</guimenuitem>. Optionally, you may enter System ID for new group. If you leave it blank,
+PostgreSQL assign this ID automatically. Also, define users that becomes members of this group.
+</para>
+
+<screenshot>
+<screeninfo>Group name and members</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_grp1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_group2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In second step review SQL command that create group. Press <guimenuitem>Next</guimenuitem> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Review SQL statement</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_grp2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE/MODIFY USER WIZARD                            -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_user">
+<title>Create or modify User</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_user1">
+<title>Step 1 - User name, rights and password</title>
+
+<para>
+In first step, enter <guimenuitem>user name</guimenuitem>. Optionally, you may enter user ID for new user. If you leave it blank,
+PostgreSQL assign this ID automatically. Also, define if user can create databases and other users.
+</para>
+
+<para>
+Enter twice password for user, choose password encryption mode and if you want - set accout
+expiration date.
+</para>
+
+<screenshot>
+<screeninfo>User name, rights and password</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_usr1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_user2">
+<title>Step 2 - Group membersip</title>
+
+<para>
+In second step define users that becomes members of this group.
+</para>
+
+<screenshot>
+<screeninfo>Group membersip</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_usr2.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_user3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In third step review SQL command that create user. Press <guimenuitem>Next</guimenuitem> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Review SQL statement</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_usr3.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                       CREATE TABLESPACE WIZARD                         -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tablespace">
+<title>Create Tablespace</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tablespace1">
+<title>Step 1 - Tablespace name and another properties</title>
+
+<para>
+A tablespace allows define an alternative location path on the file system where the data files containing database objects (such as tables and indexes) may reside. This allow to split data to more physical disc and improve performance. Tablespaces support is introduced to PostgreSQL 8. 
+</para>
+
+<para>
+In first step, enter <interface>tablespace name</interface>. Enter location <guimenuitem>path</guimenuitem> for tablespace. Note, that using <interface>directory browse button</interface> has sense only if you manage server on local machine. 
+</para>
+
+<para>
+Optionally select <interface>Owner</interface> of tablespace, if it is different than actual user that in logged in.
+</para>
+
+<screenshot>
+<screeninfo>Tablespace name and another properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbsp1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tablespace2">
+<title>Step 2 - Grant create privileges</title>
+
+<para>
+In second step define users with privileges to CREATE DATABASE, CREATE SCHEMA, CREATE TABLE, CREATE INDEX or ADD CONSTRAINT.
+</para>
+
+<screenshot>
+<screeninfo>Grant create privileges</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbsp2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tablespace3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In third step review SQL command that create tablespace. Press <guimenuitem>Next</guimenuitem> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Step 3 - Review SQL statement</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbsp3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                             CREATE DATABASE                                   -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_database">
+<title>Create Database</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_database1">
+<title>Step 1 - Database name and another properties</title>
+
+<para>
+Enter <guimenuitem>name</guimenuitem> for new database and optionally choose another properties.
+</para>
+
+<para>
+Normally, the creator becomes the owner of the new database. Select another user as <guimenuitem>Owner</guimenuitem>, if you want.
+</para>
+
+<para>
+For PostgreSQL 7.x or older - an alternative <interface>Location</interface> can be specified in order to, for example, store the database on a different disk. The path must have been prepared with the <interface>initlocation</interface> command. <guimenuitem>Location</guimenuitem> is interpreted as an environment variable name, which must be known to the server process. 
+</para>
+
+<para>
+For PostgreSQL 8 or newer - A  <link linkend="create_tablespace">Tablespace</link> can be specified. If not specified, the same tablespace that is default for the template database is used.
+</para>
+
+<para>
+By default, the new database will be created by cloning the standard system database template1. A different <interface>Template</interface> can be specified. Listed are only unconnected databases.
+</para>
+
+<para>
+The optional <guimenuitem>Encoding</guimenuitem> parameter allows selection of the database encoding. When not specified, it defaults to the encoding used by the selected template database. 
+</para>
+
+<screenshot>
+<screeninfo>Step 1 - Database name and another properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_db1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_database2">
+<title>Step 2 - Define user rights</title>
+
+<para>
+This step allow grant specific privileges on database to one or more users or groups of users. These privileges are added to those already granted, if any. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<para>
+The possible privileges are:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>CREATE</interface> - Allows new schemas to be created within the database.</para> 
+</listitem>
+<listitem>
+<para><interface>TEMPORARY</interface> - Allows temporary tables to be created while using the database.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+Check one or more privileges, or <interface>ALL</interface>. 
+</para>
+
+<screenshot>
+<screeninfo>Define user rights</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_db2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_database3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In second step review SQL command that create database. Press <guimenuitem>Next</guimenuitem> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Review SQL statement</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_db3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                         ANALYSE DATABASE WIZARD                               -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="analyze_database">
+<title>Analyze database</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="analyse_database1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-analyze.html">Analyze</ulink> examines every table in the current database and collects statistics about the contents of tables, and stores the results in the system table pg_statistic. Subsequently, the query planner uses these statistics to help determine the most efficient execution plans for queries. 
+</para>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="analyze_database2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           REINDEX DATABASE WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="reindex_database">
+<title>Reindex database</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_database1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-reindex.html">Reindex</ulink> rebuilds an index based on the data stored in the table, replacing the old copy of the index. There are two main reasons to use:
+</para>
+
+<itemizedlist>
+<listitem>
+<para>An index has become corrupted, and no longer contains valid data. Although in theory this should never happen, in practice indexes may become corrupted due to software bugs or hardware failures. REINDEX provides a recovery method.</para> 
+</listitem>
+<listitem>
+<para>The index in question contains a lot of dead index pages that are not being reclaimed. This can occur with B-tree indexes in PostgreSQL under certain access patterns. REINDEX provides a way to reduce the space consumption of the index by writing a new version of the index without the dead pages.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+This function recreate all system indexes of a specified database. Indexes on user tables are not processed. Also, indexes on shared system catalogs are skipped except in stand-alone mode. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_database2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                              DUMP DATABASE WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="dump_database">
+<title>Dump database</title>
+
+<para>
+This wizard is a shell for <ulink url="http://www.postgresql.org/docs/current/static/app-pgdump.html">pg_dump</ulink> command. pg_dump is a utility for backing up a PostgreSQL database. It makes consistent backups even if the database is being used concurrently. pg_dump does not block other users accessing the database (readers or writers).
+</para>
+
+<!-- ***************************************************************************** -->
+<sect2 id="dump_database1">
+<title>Step 1 - Dump database parameters</title>
+
+<para>
+Enter <interface>Output file</interface> used for storing database backup.
+</para>
+
+<para>
+Selects the <interface>Format</interface> of the output:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>plain-text SQL</interface> - Output a plain-text SQL script file.</para> 
+</listitem>
+<listitem>
+<para><interface>tar archive</interface> - Output a tar archive suitable for input into pg_restore. Using this archive format allows reordering and/or exclusion of database objects at the time the database is restored. It is also possible to limit which data is reloaded at restore time.</para> 
+</listitem>
+<listitem>
+<para><interface>custom archive</interface> - Output a custom archive suitable for input into pg_restore. This is the most flexible format in that it allows reordering of loading data as well as object definitions. This format is also compressed by default. For this format specify the <interface>Compression level</interface>.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+Selects the <interface>Options</interface>:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Dump only the data, not the schema</interface> - This option is only meaningful for the plain-text format. For the other formats, you may specify the option when you call pg_restore.</para> 
+</listitem>
+<listitem>
+<para><interface>Dump only the object definitions (schema)</interface> - If this option is not specified, all non-system schemas in the target database will be dumped.</para> 
+</listitem>
+<listitem>
+<para><interface>Include large objects</interface> - Include large objects in dump.</para> 
+</listitem>
+<listitem>
+<para><interface>Include command to CREATE the database</interface> - Begin the output with a command to create the database itself and reconnect to the created database. </para> 
+</listitem>
+<listitem>
+<para><interface>Generate 'DROP objects' statements</interface> - Output commands to clean (drop) database objects prior to (the commands for) creating them.</para> 
+</listitem>
+<listitem>
+<para><interface>Dump data as INSERT commands</interface> - Dump data as INSERT commands (rather than COPY). This will make restoration very slow, but it makes the archives more portable to other SQL database management systems.</para> 
+</listitem>
+<listitem>
+<para><interface>With explicit column names</interface> - Dump data as INSERT commands with explicit column names (INSERT INTO table (column, ...) VALUES ...). This will make restoration very slow, but it is necessary if you desire to rearrange the column ordering.</para> 
+</listitem>
+<listitem>
+<para><interface>Ignore version mismatch</interface> - Ignore version mismatch between pg_dump and the database server. </para> 
+</listitem>
+<listitem>
+<para><interface>Dump OIDs</interface> - Dump object identifiers (OIDs) for every table. Use this option if your application references the OID columns in some way (e.g., in a foreign key constraint). Otherwise, this option should not be used.</para> 
+</listitem>
+<listitem>
+<para><interface>No owner</interface> - Do not output commands to set ownership of objects to match the original database.</para> 
+</listitem>
+<listitem>
+<para><interface>Verbose mode</interface> - Output detailed object comments and start/stop times to the dump file, and progress messages to standard error. </para> 
+</listitem>
+<listitem>
+<para><interface>No privileges</interface> - Prevent dumping of access privileges (grant/revoke commands). </para> 
+</listitem>
+<listitem>
+<para><interface>Disable dollar quoting for function</interface> - This option disables the use of dollar quoting for function bodies, and forces them to be quoted using SQL standard string syntax.</para> 
+</listitem>
+<listitem>
+<para><interface>Disable triggers</interface> - This option is only relevant when creating a data-only dump. It instructs pg_dump to include commands to temporarily disable triggers on the target tables while the data is reloaded. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data reload.</para> 
+</listitem>
+<listitem>
+<para><interface>Set session authorization</interface> - Output SQL standard SET SESSION AUTHORIZATION commands instead of OWNER TO commands. This makes the dump more standards compatible, but depending on the history of the objects in the dump, may not restore properly.</para> 
+</listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_dump_db1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="dump_database2">
+<title>Step 2 - Review command</title>
+
+<para>
+In this step, you may review command, before running it.  
+</para>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_dump_db2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="dump_database3">
+<title>Step 3 - Console with operation</title>
+
+<para>
+In this step, pg_dump command is run using Console. Wait for it and press <guibutton>Finish</guibutton> button.
+</para>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_dump_db3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                           RESTORE DATABASE WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="restore_database">
+<title>Restore database</title>
+
+<para>
+This wizard is a shell for <ulink url="http://www.postgresql.org/docs/current/static/app-pgrestore.html">pg_restore</ulink> command that restore a PostgreSQL database from an archive file created by pg_dump.
+</para>
+
+<!-- ***************************************************************************** -->
+<sect2 id="restore_database1">
+<title>Step 1 - Restore database parameters</title>
+
+<para>
+Enter <interface>Input file</interface> of the archive file to be restored.
+</para>
+
+<para>
+Selects the <interface>Options</interface>:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Restore only the data, not the schema</interface> - Restore only the data, not the schema (data definitions). </para> 
+</listitem>
+<listitem>
+<para><interface>Restore only the schema, not the data. Sequence values will be reset</interface> - Restore only the schema (data definitions), not the data.</para> 
+</listitem>
+<listitem>
+<para><interface>Clean (drop) database objects before recreating them</interface> - Drop objects before creare them.</para> 
+</listitem>
+<listitem>
+<para><interface>Exit on error</interface> - Exit if an error is encountered while sending SQL commands to the database. The default is to continue and to display a count of errors at the end of the restoration.</para> 
+</listitem>
+<listitem>
+<para><interface>Ignore version mismatch</interface> - Ignore version mismatch between pg_dump and the database server. </para> 
+</listitem>
+<listitem>
+<para><interface>No owner</interface> - Do not output commands to set ownership of objects to match the original database.</para> 
+</listitem>
+<listitem>
+<para><interface>Verbose mode</interface> - Output detailed object comments and start/stop times to the dump file, and progress messages to standard error. </para> 
+</listitem>
+<listitem>
+<para><interface>No privileges</interface> - Prevent dumping of access privileges (grant/revoke commands). </para> 
+</listitem>
+<listitem>
+<para><interface>Disable triggers</interface> - This option is only relevant when creating a data-only restore. It instructs pg_dump to include commands to temporarily disable triggers on the target tables while the data is reloaded. Use this if you have referential integrity checks or other triggers on the tables that you do not want to invoke during data reload.</para> 
+</listitem>
+<listitem>
+<para><interface>Set session authorization</interface> - Output SQL standard SET SESSION AUTHORIZATION commands instead of OWNER TO commands. This makes the dump more standards compatible, but depending on the history of the objects in the dump, may not restore properly.</para> 
+</listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_rest_db1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="restore_databas2">
+<title>Step 2 - Review command</title>
+
+<para>
+In this step, you may review command, before running it.  
+</para>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_rest_db2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="restore_database3">
+<title>Step 3 - Console with operation</title>
+
+<para>
+In this step, pg_restore command is run using Console. Wait for it and press <guibutton>Finish</guibutton> button.
+</para>
+
+<screenshot>
+<screeninfo>Dump database</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_rest_db3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE/MODIFY SCHEMA                                 -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_schema">
+<title>Create Schema</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_schema1">
+<title>Step 1 - Schema name and owner</title>
+
+<para>
+A schema is essentially a namespace: it contains named objects (tables, data types, functions, and operators) whose names may duplicate those of other objects existing in other schemas. Named objects are accessed either by "qualifying" their names with the schema name as a prefix, or by setting a search path that includes the desired schema(s). Unqualified objects are created in the current schema (the one at the front of the search path, which can be determined with the function current_schema). 
+</para>
+
+<para>
+Enter <interface>name</interface> for new schema (AKA namespace) and optionally choose <guimenuitem>Owner</guimenuitem> - the user who will own the schema. If omitted, defaults to the user executing the command. Only superusers may create schemas owned by users other than themselves.
+</para>
+
+<para>
+For PostgreSQL 8 or newer - a <link linkend="create_tablespace">Tablespace</link> can be specified. Choose the tablespace that is to be the default tablespace for all new objects created in the schema. If not supplied, the schema will inherit the default tablespace of the database. 
+</para>
+
+<screenshot>
+<screeninfo>Schema name and owner</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_sch1.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_schema2">
+<title>Step 2 - Define user rights</title>
+
+<para>
+This step allow grant specific privileges on schema to one or more users or groups of users. These privileges are added to those already granted, if any. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<para>
+The possible privileges are:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>CREATE</interface> - Allows new schemas to be created within the database.</para> 
+</listitem>
+<listitem>
+<para><interface>USAGE</interface> - Allows access to objects contained in the specified schema (assuming that the objects' own privilege requirements are also met). Essentially this allows the grantee to "look up" objects within the schema.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+Check one or more privileges, or <interface>ALL</interface>. 
+</para>
+
+<screenshot>
+<screeninfo>Define user rights</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_sch2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_schema3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In second step review SQL command that create schema. Press <guimenuitem>Next</guimenuitem> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Step 3 - Review SQL statement</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="wzd_create_sch3.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE/MODIFY LANGUAGE                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_language">
+<title>Create Language</title>
+
+<para>
+Using this wizard you can register a new procedural language with a PostgreSQL database. You need PostgreSQL superuser privilege to register a new language.
+Before registering language, you must have registered <link linkend="create_function_c">handler function</link>.
+</para>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_language1">
+<title>Step 1 - Language name and another properties</title>
+
+<para>
+Enter <interface>name</interface> for new language and choose a <interface>call handler</interface> that is responsible for executing functions written in the language. Optionally, choose <interface>validator</interface>.
+</para>
+
+<para>
+<interface>Trusted</interface> specifies that the call handler for the language is safe, that is, it does not offer an unprivileged user any functionality to bypass access restrictions. If this key word is omitted when registering the language, only users with the PostgreSQL superuser privilege can use this language to create new functions. 
+</para>
+
+<screenshot>
+<screeninfo>Step 1 - Language name and another properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_lng1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_language2">
+<title>Step 2 - Grant usage privileges</title>
+
+<para>
+This step allow grant usage privileges on language to one or more users or groups of users. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<screenshot>
+<screeninfo>Step 2 - Grant usage privileges</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_lng2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_language3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In second step review SQL command that create language. Press <guibutton>Next</guibutton> button
+to perform operation.
+</para>
+
+<screenshot>
+<screeninfo>Step 3 - Review SQL statement</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_lng3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                             CREATE DOMAIN WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_domain">
+<title>Create Domain</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_domain1">
+<title>Step 1 - Domain name</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-createdomain.html">Domains</ulink> are useful for abstracting common fields between tables into a single location for maintenance. For example, an email address column may be used in several tables, all with the same properties. Define a domain and use that rather than setting up each table's constraints individually.
+</para>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new domain. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Enter <interface>name</interface> for new domain.
+</para>
+
+<screenshot>
+<screeninfo>Domain name and properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_domain2">
+<title>Step 2 - Domain properties</title>
+
+<para>
+Choose <interface>Data type</interface> of the domain. This may include array specifiers. A <interface>Schema</interface> combobox is for user defined <link linkend="create_base_type">datatypes</link>. If domain is based on build-in data type, selecting it does not matter.
+</para>
+
+<para>
+Check <interface>Not NULL</interface> if domain are not allowed to be null. Also you may optionally specify <interface>Default </interface> value for domain.
+</para>
+
+<screenshot>
+<screeninfo>Domain name and properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_domain3">
+<title>Step 3 - Domain constraints</title>
+
+<para>
+In this step, you may optionally define CHECK constraints for domain. Start define constraint by typing <interface>Constraint name</interface>.
+</para>
+
+<para>
+Each constraint must be an <interface>Expression</interface> producing a Boolean result. It should use the name VALUE to refer to the value being tested. Currently, CHECK expressions cannot contain subqueries nor refer to variables other than VALUE. 
+</para>
+
+<para>
+Press <interface>Add</interface> button to insert constraint to list. Repeat this procedure for each constraint. Constraint definition may be removed by selecting it and <interface>Delete</interface> button.
+</para>
+
+<screenshot>
+<screeninfo>Domain constraints</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_domain14">
+<title>Step 4 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create constraint is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                         MODIFY DOMAIN WIZARDs                                 -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="modify_domain">
+<title>Modify Domain</title>
+
+<para>
+When you select table domain in left <interface>tree view</interface> and press right mouse button, &kpogre; display menu that  run wizards <ulink url="http://www.postgresql.org/docs/current/static/sql-alterdomain.html">change domain properties</ulink>
+
+</para>
+
+<!-- ***************************************************************************** -->
+<sect2 id="modify_domain_not_null1">
+<title>Set NOT NULL / Drop NOT NULL</title>
+
+<para>
+This wizard allow to modify column NOT NULL property, that say, if domain is not allowed to contain null values. Wizard do not need any aditional information from user, SQL statement is displayied in first step.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_dom1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_domain_set_default">
+<title>Set default</title>
+
+<para>
+This wizard allow to set or modify domain DEFAULT property for INSERT operation, when value is not specified.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_dom2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_dom3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_domain_drop_default">
+<title>Drop default</title>
+
+<para>
+This wizard allow to drop column DEFAULT property for INSERT operation, when value is not specified.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_dom4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       CREATE DOMAIN CONSTRAINT WIZARD                         -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_domain_constr">
+<title>Create Domain constraint</title>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_domain1_constr1">
+<title>Step 1 - Domain constraints</title>
+
+<para>
+This wizard can create domain CHECK constraints. Start define constraint by typing <interface>Constraint name</interface>.
+</para>
+
+<para>
+Each constraint must be an <interface>Expression</interface> producing a Boolean result. It should use the name VALUE to refer to the value being tested. Currently, CHECK expressions cannot contain subqueries nor refer to variables other than VALUE. 
+</para>
+
+<para>
+Press <interface>Add</interface> button to insert constraint to list. Repeat this procedure for each constraint. Constraint definition may be removed by selecting it and <interface>Delete</interface> button.
+</para>
+
+<screenshot>
+<screeninfo>Domain constraints</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom_cnst1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_domain_constr2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create constraint(s) is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_dom_cnst2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           CREATE FUNCTION WIZARD  - C                         -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_function_c">
+<title>Create Function - C language</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_function_c1">
+<title>Step 1 - Function name</title>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new function. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Type <interface>name</interface> for new function. The name of the new function must not match any existing function with the same argument types in the same schema. Select function <interface>language</interface> - C in this case.
+</para>
+
+<screenshot>
+<screeninfo>Function name</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_c2">
+<title>Step 2 - Return and arguments types</title>
+
+<para>
+Choose <interface>return type</interface>. You may choose any build-in data type, OPAQUE, base or composite type. Optionally, choose <interface>function arguments</interface>.
+</para>
+
+<screenshot>
+<screeninfo>Return and arguments types</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Using <interface>User defined datatype</interface> button you may include non-exist datatype to both <interface>Data type</interface> comboboxes. This is useful, when you create functions for base datatype. Because datatype is not exists while you create functions for it - PostgreSQL will create a "shell" type, which is simply a placeholder entry in the system catalog, and link the input function definition to the shell type. Similarly the other functions will be linked to the (now already existing) shell type. Finally, <link linkend="create_base_type">CREATE TYPE</link> replaces the shell entry with a complete type definition, and the new type can be used. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_c3">
+<title>Step 3 - Function properties</title>
+
+<para>
+In this step, choose function properties.
+</para>
+
+<para>
+These attributes inform the system whether it is safe to replace multiple evaluations of the function with a single evaluation, for run-time optimization. Volatile is the default assumption. 
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Immutable</interface> - indicates that the function always returns the same result when given the same argument values.</para> 
+</listitem>
+<listitem>
+<para><interface>Stable</interface> - indicates that within a single table scan the function will consistently return the same result for the same argument values, but that its result could change across SQL statements.</para> 
+</listitem>
+<listitem>
+<para><interface>Volatile</interface> - indicates that the function value can change even within a single table scan, so no optimizations can be made.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+NULL arguments behavior
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Called on NULL input</interface> - (the default) indicates that the function will be called normally when some of its arguments are null. It is then the function author's responsibility to check for null values if necessary and respond appropriately.</para> 
+</listitem>
+<listitem>
+<para><interface>Strict</interface> - indicates that the function always returns null whenever any of its arguments are null. If this parameter is specified, the function is not executed when there are null arguments; instead a null result is assumed automatically.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+Security
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Security invoker</interface> - indicates that the function is to be executed with the privileges of the user that calls it. That is the default.</para> 
+</listitem>
+<listitem>
+<para><interface>Security definer</interface> - specifies that the function is to be executed with the privileges of the user that created it. Note that you should be careful when creating function with SECURITY DEFINER option. This is potentially security hole.</para> 
+</listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Step 2 - Function properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_c4">
+<title>Step 4 - Function definition</title>
+
+<para>
+Enter <interface>function library</interface> name - the path to an object file. Optionally specify function name inside library. This is  C language functions when the function name in the C language source code is not the same as the name of the SQL function.
+</para>
+
+<screenshot>
+<screeninfo>Step 3 - Function definition</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+
+<sect2 id="create_function_c5">
+<title>Step 5 - Grant execute privileges</title>
+
+<para>
+This step allow grant execute privileges on function to one or more users or groups of users. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<screenshot>
+<screeninfo>Step 2 - Grant execute privileges</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_c6">
+<title>Step 6 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create function is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_c6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                           CREATE FUNCTION WIZARD  - SQL                       -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_function_sql">
+<title>Create Function - SQL</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_function_sql1">
+<title>Step 1 - Function name</title>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new function. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Type <interface>name</interface> for new function. The name of the new function must not match any existing function with the same argument types in the same schema. Select function <interface>language</interface> - SQL in this case.
+</para>
+
+<screenshot>
+<screeninfo>Function name</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_sql2">
+<title>Step 2 - Return and arguments types</title>
+
+<para>
+Choose <interface>return type</interface>. You may choose any build-in data type, OPAQUE, composite or base type. Check <interface>Return a set</interface>, if  function will return set of return types. Optionally, choose <interface>function arguments</interface>.
+</para>
+
+<screenshot>
+<screeninfo>Step 1 - Function name, return and arguments types</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_sql3">
+<title>Step 3 - Function properties</title>
+
+<para>
+In this step, choose function properties.
+</para>
+
+<para>
+These attributes inform the system whether it is safe to replace multiple evaluations of the function with a single evaluation, for run-time optimization. Volatile is the default assumption. 
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Immutable</interface> - indicates that the function always returns the same result when given the same argument values.</para> 
+</listitem>
+<listitem>
+<para><interface>Stable</interface> - indicates that within a single table scan the function will consistently return the same result for the same argument values, but that its result could change across SQL statements.</para> 
+</listitem>
+<listitem>
+<para><interface>Volatile</interface> - indicates that the function value can change even within a single table scan, so no optimizations can be made.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+NULL arguments behavior
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Called on NULL input</interface> - (the default) indicates that the function will be called normally when some of its arguments are null. It is then the function author's responsibility to check for null values if necessary and respond appropriately.</para> 
+</listitem>
+<listitem>
+<para><interface>Strict</interface> - indicates that the function always returns null whenever any of its arguments are null. If this parameter is specified, the function is not executed when there are null arguments; instead a null result is assumed automatically.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+Security
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Security invoker</interface> - indicates that the function is to be executed with the privileges of the user that calls it. That is the default.</para> 
+</listitem>
+<listitem>
+<para><interface>Security definer</interface> - specifies that the function is to be executed with the privileges of the user that created it. Note that you should be careful when creating function with SECURITY DEFINER option. This is potentially security hole.</para> 
+</listitem>
+</itemizedlist>
+
+<screenshot>
+<screeninfo>Function properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_sql4">
+<title>Step 4 - Function definition</title>
+
+<para>
+EEnter function code here. You must be familiar with choosed language.
+</para>
+
+<screenshot>
+<screeninfo>Function definition</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+
+<sect2 id="create_function_sql5">
+<title>Step 5 - Grant execute privileges</title>
+
+<para>
+This step allow grant execute privileges on function to one or more users or groups of users. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<screenshot>
+<screeninfo>Grant execute privileges</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_function_sql6">
+<title>Step 6 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create function is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_fnc_sql6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           MODIFY FUNCTION WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="modify_function">
+<title>Modify Function</title>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_function1">
+<title>Step 1 - Function properties</title>
+
+<para>
+In this step, choose function properties. This page is the same as in <link linkend="create_function_sql2">create function wizard</link>.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="modify_function2">
+<title>Step 2 - Function definition</title>
+
+<para>
+Modify function code. You must be familiar with used language. 
+</para>
+
+<screenshot>
+<screeninfo>Step 2 - Function definition</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_fnc1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_function3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for replace function is displayied for your check. You may modify it (for example change view name), if you understand, what do you do. Press <guimenuitem>Next</guimenuitem> button to perform operation.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_fnc2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           CREATE SEQUENCE WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_sequence">
+<title>Create Sequence</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_sequence1">
+<title>Step 1 - Sequence name and another properties</title>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new function. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Type <interface>name</interface> for new sequence. 
+</para>
+
+<para>
+The parameter <interface>Increment by</interface> specifies which value is added to the current sequence value to create a new value. A positive value will make an ascending sequence, a negative one a descending sequence. The default value is 1. 
+</para>
+
+<para>
+The optional <interface>Start value</interface> allows the sequence to begin anywhere. The default starting value is minvalue for ascending sequences and maxvalue for descending ones.
+</para>
+
+<para>
+Optionally you may choose <interface>Minimum value</interface> and <interface>Maximum value</interface> for sequence.
+</para>
+
+<para>
+The optional parameter <interface>Cache</interface> specifies how many sequence numbers are to be preallocated and stored in memory for faster access. The minimum value is 1 (only one value can be generated at a time, i.e., no cache), and this is also the default. 
+</para>
+
+<para>
+The <interface>Cycle</interface> option allows the sequence to wrap around when the maxvalue or minvalue has been reached by an ascending or descending sequence respectively. If the limit is reached, the next number generated will be the minvalue or maxvalue, respectively. 
+</para>
+
+<screenshot>
+<screeninfo>Step 1 - Sequence name and another properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_seq1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_sequence2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create sequence is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_seq2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           MODIFY SEQUENCE WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="modify_sequence">
+<title>Modify Sequence</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="modify_sequence1">
+<title>Step 1 - Sequence properties</title>
+
+<para>
+The parameter <interface>Increment by</interface> specifies which value is added to the current sequence value to create a new value. A positive value will make an ascending sequence, a negative one a descending sequence.
+</para>
+
+<para>
+Modify <interface>Last value</interface> if you want to change the current value of the sequence.
+</para>
+
+<para>
+You may change <interface>Minimum value</interface> or <interface>Maximum value</interface> for sequence. Leave it blank, if you want to reset it to default values.
+</para>
+
+<para>
+The parameter <interface>Cache</interface> specifies how many sequence numbers are to be preallocated and stored in memory for faster access. The minimum value is 1 (only one value can be generated at a time, i.e., no cache), and this is also the default. 
+</para>
+
+<para>
+The <interface>Cycle</interface> option allows the sequence to wrap around when the maxvalue or minvalue has been reached by an ascending or descending sequence respectively. If the limit is reached, the next number generated will be the minvalue or maxvalue, respectively. 
+</para>
+
+<screenshot>
+<screeninfo>Step 1 - Sequence properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_seq1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_sequence2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for alter sequence is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_seq2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE TABLE WIZARD                                  -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_table">
+<title>Create Table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table1">
+<title>Step 1 - Table name</title>
+
+<para>
+If you start this wizard when database is selected, choose schema for new table. When you run wizard from schema or tables folder, actual schema is used. 
+</para>
+
+<para>
+Type <interface>name</interface> for new table. The <interface>Tablespace</interface> is the name of the <link linkend="create_tablespace">tablespace</link> in which the new table is to be created. If not supplied, the default tablespace of the table's schema will be used. If you need new table <interface>without OIDs</interface>, choose this option. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table2">
+<title>Step 2 - Define columns</title>
+
+<para>
+In this step, user define list of table columns. Each column have name, datatype and another optional properties. 
+</para>
+
+<para>
+First, type <interface>column name</interface>. This name must be unique in table. Next choose <interface>datatype</interface> from combo box. Short description is displayied in line under combobox. If you can create multidimensional column, choose <interface>number of dimensions</interface> greather than 0. Some variable lenght datatypes requires size. And some datatypes requires <interface>precision</interface> and <interface>scale</interface>. 
+</para>
+
+<para>
+Datatype can be build-in type, or <link linkend="create_domain">domain</link> or user defined <link linkend="create_base_type">base type</link>. If you want to use domain or type from different namespace, use <interface>Schema</interface> combobox to list them.
+</para>
+
+<para>
+After entering basic information, user may select table constraints for column: 
+
+<itemizedlist>
+<listitem>
+<para><interface>NOT NULL</interface> - The column is not allowed to contain null values.</para> 
+</listitem>
+<listitem>
+<para><interface>UNIQUE</interface> - Specifies that a column may contain only unique values. </para> 
+</listitem>
+<listitem>
+<para><interface>DEFAULT</interface> - Default value for INSERT operation, when value is not specified.
+Use <interface>Quoted</interface> checkbox for setting if default value is text, or leave it unchecked if default is function, e.g. now(). For simply set current datetime value as default, use <interface>Now</interface> button.
+</para> 
+</listitem>
+<listitem>
+<para><interface>CHECK</interface> - The CHECK clause specifies an expression producing a Boolean result which new or updated rows must satisfy for an INSERT or UPDATE operation to succeed. </para> 
+</listitem>
+</itemizedlist>
+
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you have all information for new column, press <guibutton>Add</guibutton> button. Column may be removed from list and user may change order of columns. After defining all columns press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table3">
+<title>Step 3 - Define table constraints</title>
+
+<para>
+Create constraints is optional. Table may have one (and only one) primary key, and zero or more of foreign keys. Create primary key is good practice. Select type of new constraint in combo box.
+</para>
+
+<simplesect>
+<title>Primary key</title>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton>. If you need multicolumn primary key, repeat this step for another columns. After adding first column, primary key name is automatically filled from table name. You may change this name.
+</para>
+
+<para>Optionally select <interface>Tablespace</interface> in which the index associated with a PRIMARY KEY constraint will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+
+<title>Foreign key</title>
+
+<para>
+First select <interface>referenced table</interface> and their <interface>unique</interface>. This may be primary key or unique index. Then select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton> button. 
+</para>
+
+<para>
+Columns in <interface>FK columns</interface> and in <interface>Referenced columns</interface> must be compatible regards datatypes, and columns number must match. 
+</para>
+
+<para>
+User may specify another optional properties for foreign key. See at PostgreSQL <ulink url="http://www.postgresql.org/docs/current/static/sql-createtable.html">documentation</ulink>, if you don't understand those parameters.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl7.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+<title>Unique</title>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton>. If you need multicolumn unique, repeat this step for another columns. After adding first column, unique name is automatically filled from table name. You may change this name.
+</para>
+
+<para>Optionally select <interface>Tablespace</interface> in which the index associated with a UNIQUE constraint will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl8.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl9.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+<title>Check</title>
+
+<para>
+Type an <interface>Expression</interface> producing a Boolean result which new or updated rows must satisfy for an insert or update operation to succeed. Expressions evaluating to TRUE or UNKNOWN succeed. Should any row of an insert or update operation produce a FALSE result an error exception is raised and the insert or update does not alter the database. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint may reference multiple columns. 
+</para>
+
+<para>
+If you doubleclick on column in <interface>Available columns</interface> list, it is inserted to <interface>Expression</interface> edit line to current cursor position.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl10.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl11.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_table4">
+<title>Step 4 - Define table indexes</title>
+
+<para>
+Create indexes is optional. <ulink url="http://www.postgresql.org/docs/current/static/sql-createindex.html">Indexes</ulink> are primarily used to enhance database performance. 
+</para>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton> button. If you need multicolumn index, repeat this step for another columns. After adding first column, <interface>index name</interface> is automatically filled from table and first column name. You may change this name. 
+</para>
+
+<para>
+If you create <interface>unique index</interface>, check this option.
+</para>
+
+<para>
+Optionally select <interface>Tablespace</interface> in which the index will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl12.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table indexes</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl13.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<simplesect>
+<title>Expression Index</title>
+
+<para>
+An index field can be an expression computed from the values of one or more columns of the table row. This feature can be used to obtain fast access to data based on some transformation of the basic data.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl14.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+For example, an index computed on upper(first_name) would allow the clause WHERE upper(first_name) = 'JIM' to use an index. Select this function in combobox. 
+</para>
+
+<note><para>
+<interface>Index functions</interface> combobox is refreshed, each time is <interface>Index columns</interface> list changed. Listed are only "immutable" functions with number of parameters as index columns count. 
+</para></note>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl15.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+
+<simplesect>
+<title>Partial Index</title>
+
+<para>
+When the WHERE clause is present, a partial index is created. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl16.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Type WHERE clause that define partial data for index.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl17.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Index may be removed from list, using <guibutton>Delete</guibutton> button. After defining all indexes press <guibutton>Next</guibutton> button. 
+</para>
+
+</simplesect>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table5">
+<title>Step 5 - Define user rights</title>
+
+<para>
+This step allow grant specific privileges on table to one or more users or groups of users. These privileges are added to those already granted, if any. 
+</para>
+
+<para>
+Select users or groups (multiple select allowed) or check <interface>PUBLIC</interface> for grant to all users. 
+</para>
+
+<para>
+The possible privileges are:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>SELECT</interface> - Allows SELECT from any column of the table. Also allows the use of COPY TO.</para> 
+</listitem>
+<listitem>
+<para><interface>INSERT</interface> - Allows INSERT of a new row into the specified table. Also allows COPY FROM.</para> 
+</listitem>
+<listitem>
+<para><interface>UPDATE</interface> - Allows UPDATE of any column of the specified table. SELECT ... FOR UPDATE also requires this privilege.</para> 
+</listitem>
+<listitem>
+<para><interface>DELETE</interface> - Allows DELETE of a row from the specified table. </para> 
+</listitem>
+<listitem>
+<para><interface>RULE</interface> - Allows the creation of a rule on the table/view.</para> 
+</listitem>
+<listitem>
+<para><interface>REFERENCES</interface> - To create a foreign key constraint, it is necessary to have this privilege on both the referencing and referenced tables.</para> 
+</listitem>
+<listitem>
+<para><interface>TRIGGER</interface> - Allows the creation of a trigger on the specified table.</para> 
+</listitem>
+</itemizedlist>
+
+
+<para>
+Check one or more privileges, or <interface>ALL</interface>. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl18.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Click on <guibutton>Add</guibutton> button. One or more grant commands is inserted to list. Grant privilege may be removed from list, using <guibutton>Delete</guibutton> button. After defining all privileges press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table6">
+<title>Step 6 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create table, indexes and grant privileges is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_tbl19.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_table7">
+<title>Step 7 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 6. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           ANALYSE TABLE WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="analyze_table">
+<title>Analyze table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="analyse_table1">
+<title>Step 1 - Analyze table parameters</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-analyze.html">Analyze</ulink> collects statistics about the contents of table, and stores the results in the system table pg_statistic. Subsequently, the query planner uses these statistics to help determine the most efficient execution plans for queries. 
+</para>
+
+<para>
+Optionally enable <interface>Verbose</interface> that enables display of progress messages. 
+</para>
+
+<para>
+Optionally specify one or more columns to analyze. Defaults to <interface>All columns</interface>. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_analyze_tbl1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="analyze_table2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for analyze. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_analyze_tbl2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="analyze_table3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_analyze_tbl3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                            VACUUM TABLE WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="vacuum_table">
+<title>Vacuum table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="vacuum_table1">
+<title>Step 1 - Vacuum table properties</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-vacuum.html">Vacuum</ulink> reclaims storage occupied by deleted tuples. In normal PostgreSQL operation, tuples that are deleted or obsoleted by an update are not physically removed from their table; they remain present until a VACUUM is done. Therefore it's necessary to do VACUUM periodically, especially on frequently-updated tables.
+</para>
+
+<para>
+Enabling <interface>Full</interface> vacuum may reclaim more space, but takes much longer and exclusively locks the table. 
+</para>
+
+<para>
+Enable <interface>Freeze</interface> to aggressive "freezing" of tuples. 
+</para>
+
+<para>
+Optionally enable <interface>Verbose</interface> that enables display of progress messages. 
+</para>
+
+<para>
+Enable <interface>Also perform Analyze</interface> to updates statistics used by the planner to determine the most efficient way to execute a query. Optionally specify one or more columns to analyze. Defaults to <interface>All columns</interface>. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_vacuum_tbl1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="vacuum_table2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, review SQL statement for vacuum. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_vacuum_tbl2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="vacuum_table3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_vacuum_tbl3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                           REINDEX TABLE WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="reindex_table">
+<title>Reindex table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_table1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-reindex.html">Reindex</ulink> rebuilds an index based on the data stored in the table, replacing the old copy of the index. There are two main reasons to use:
+</para>
+
+<itemizedlist>
+<listitem>
+<para>An index has become corrupted, and no longer contains valid data. Although in theory this should never happen, in practice indexes may become corrupted due to software bugs or hardware failures. REINDEX provides a recovery method.</para> 
+</listitem>
+<listitem>
+<para>The index in question contains a lot of dead index pages that are not being reclaimed. This can occur with B-tree indexes in PostgreSQL under certain access patterns. REINDEX provides a way to reduce the space consumption of the index by writing a new version of the index without the dead pages.</para> 
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_table2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                        SET CLUSTER ON TABLE WIZARD                            -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="set_cluster_on_table">
+<title>Set cluster for table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_cluster_on_table1">
+<title>Step 1 - Select index for cluster</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-altertable.html">Set cluster</ulink> selects the default index for future <link linkend="cluster_table">Cluster</link> operations. It does not actually re-cluster the table.
+</para>
+
+<para>
+Choose index that become default index for future CLUSTER operations. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_set_cluster_tbl1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="set_cluster_on_table2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, review SQL statement for re-cluster table. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_set_cluster_tbl2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_cluster_on_table3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                      SET WITHOUT CLUSTER TABLE WIZARD                         -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="set_wo_cluster_on_table">
+<title>Set without cluster</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_wo_cluster_on_table1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-altertable.html">operation</ulink> removes the most recently used <link linkend="cluster_table">Cluster</link> index specification from the table. This affects future cluster operations that don't specify an index. 
+</para>
+
+<para>
+Choose index that become default index for future CLUSTER operations. 
+</para>
+
+<para>
+Press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_wo_cluster_on_table2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                             CLUSTER TABLE WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="cluster_table">
+<title>Cluster table</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="cluster_table1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+This operation <ulink url="http://www.postgresql.org/docs/current/static/sql-cluster.html">cluster</ulink> a table according to an index. When a table is clustered, it is physically reordered based on the index information.
+</para>
+
+<para>
+When a table is being clustered, an ACCESS EXCLUSIVE lock is acquired on it. This prevents any other database operations (both reads and writes) from operating on the table until the CLUSTER is finished. 
+</para>
+
+<para>
+Press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+
+<!-- ***************************************************************************** -->
+<sect2 id="cluster_table2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                         COPY TABLE TO FILE  WIZARD                            -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="copy_to_file_table">
+<title>Copy table to file</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="copy_to_file_table1">
+<title>Step 1 - Copy to file parameters</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-copy.html">operations</ulink> copies the contents of a table to a file.
+</para>
+
+<para>
+Specify the absolute path name of the output file. Notify that this is server side path. If PostgreSQL and &kpogre; not run on the same machine, using <interface>path dialog button</interface> may produce unexistent path. Output file must be accessible with write privileges by the PostgreSQL user (the user ID the server runs as).
+</para>
+
+<para>
+If no column list is specified, <interface>All columns</interface> will be used. An optional list of columns to be copied.  
+</para>
+
+<para>
+Check <interface>CSV mode</interface> option to enable Comma Separated Value mode.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_to1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="copy_to_file_table2">
+<title>Step 2 - Copy file parameters</title>
+
+<para>
+In this step, specify aditional parameters for copy operation.
+</para>
+
+<para>
+<interface>Binary</interface> causes all data to be stored or read in binary format rather than as text.
+</para>
+
+<para>
+<interface>OIDs</interface> Specifies copying the OID for each row.
+</para>
+
+<para>
+<interface>Delimiter</interface> is the single character that separates columns within each row (line) of the file. The default is a tab character in text mode, a comma in CSV mode..
+</para>
+
+<para>
+<interface>NULL string</interface> - the string that represents a NULL value. The default is \N (backslash-N) in text mode, and a empty value with no quotes in CSV mode. 
+</para>
+
+<para>
+<interface>Quote</interface> specifies the quotation character in CSV mode. The default is double-quote.
+</para>
+
+<para>
+<interface>Escape</interface> specifies the character that should appear before a QUOTE data character value in CSV mode. The default is the <interface>Quote</interface> value (usually double-quote).
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_to2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="copy_to_file_table3">
+<title>Step 3 - Force quote columns</title>
+
+<para>
+In CSV COPY TO mode, forces quoting to be used for all non-NULL values in each specified column. NULL output is never quoted. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_to3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="copy_to_file_table4">
+<title>Step 4 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for copy to. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_to4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="copy_to_file_table5">
+<title>Step 5 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                         COPY FILE TO TABLE  WIZARD                            -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="copy_from_file_table">
+<title>Copy table from file</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="copy_from_file_table1">
+<title>Step 1 - Copy to file parameters</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-copy.html">operations</ulink> copies the contents of a table to a file.
+</para>
+
+<para>
+Specify the absolute path name of the input file. Notify that this is server side path. If PostgreSQL and &kpogre; not run on the same machine, using <interface>path dialog button</interface> may produce unexistent path.
+</para>
+
+<para>
+If no column list is specified, <interface>All columns</interface> will be used. An optional list of columns to be copied.  
+</para>
+
+<para>
+Check <interface>CSV mode</interface> option to enable Comma Separated Value mode.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_from1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="wzd_copy_tbl_from1.png2">
+<title>Step 2 - Copy file parameters</title>
+
+<para>
+In this step, specify aditional parameters for copy operation.
+</para>
+
+<para>
+<interface>Binary</interface> causes all data to be stored or read in binary format rather than as text.
+</para>
+
+<para>
+<interface>OIDs</interface> Specifies copying the OID for each row.
+</para>
+
+<para>
+<interface>Delimiter</interface> is the single character that separates columns within each row (line) of the file. The default is a tab character in text mode, a comma in CSV mode..
+</para>
+
+<para>
+<interface>NULL string</interface> - the string that represents a NULL value. The default is \N (backslash-N) in text mode, and a empty value with no quotes in CSV mode. 
+</para>
+
+<para>
+<interface>Quote</interface> specifies the quotation character in CSV mode. The default is double-quote.
+</para>
+
+<para>
+<interface>Escape</interface> specifies the character that should appear before a QUOTE data character value in CSV mode. The default is the <interface>Quote</interface> value (usually double-quote).
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_from2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="copy_from_file_table3">
+<title>Step 3 - Force NOT NULL columns</title>
+
+<para>
+In CSV COPY FROM mode, process each specified column as though it were quoted and hance not a NULL value. For the default null string in CSV mode (''), this causes a missing values to be input as a zero-length strings.  
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_from3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="copy_from_file_table4">
+<title>Step 4 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for copy from. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_copy_tbl_from4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="copy_from_file_table5">
+<title>Step 5 - Check operation result</title>
+
+<para>
+Finally, check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       SET TABLESPACE TABLE WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="set_tblspace_table">
+<title>Set table tablespace</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_tblspace_table1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-altertablespace.html">operation</ulink> changes the <link linkend="create_tablespace">Tablespace</link> of the table.
+</para>
+
+<para>
+Choose new tablespace for table. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_set_tablespace1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="set_tblspace_table2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for set new tablespace. You may modify it, if you understand, what do you do. 
+</para>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="set_tblspace_table3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                        SET WITHOUT OIDs TABLE WIZARD                          -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="set_wo_oids_table">
+<title>Set without OIDs</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_wo_oids_table1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-altertable.html">operation</ulink> removes the oid system column from the table. This is exactly equivalent to DROP COLUMN oid RESTRICT, except that it will not complain if there is already no oid column. 
+</para>
+
+<note><para>
+Note that there is no variant of ALTER TABLE that allows OIDs to be restored to a table once they have been removed. 
+</para></note>
+
+</sect2>
+
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_wo_oids_table2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       CREATE TABLE COLUMN WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tbl_column">
+<title>Create Table Column</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_column1">
+<title>Step 1 - Define table column(s)</title>
+
+<para>
+This wizard allow to add one or more columns to table. Each column have name, datatype and another optional properties. 
+</para>
+
+<para>
+First, type <interface>column name</interface>. This name must be unique in table. Next choose <interface>datatype</interface> from combo box. Short description is displayied in line under combobox. If you can create multidimensional column, choose <interface>number of dimensions</interface> greather than 0. Some variable lenght datatypes requires size. And some datatypes requires <interface>precision</interface> and <interface>scale</interface>. 
+</para>
+
+<para>
+After entering basic information, user may select table constraints for column: 
+
+<itemizedlist>
+<listitem>
+<para><interface>NOT NULL</interface> - The column is not allowed to contain null values.</para> 
+</listitem>
+<listitem>
+<para><interface>UNIQUE</interface> - Specifies that a column may contain only unique values.</para> 
+</listitem>
+<listitem>
+<para><interface>DEFAULT</interface> - Default value for INSERT operation, when value is not specified.</para> 
+</listitem>
+<listitem>
+<para><interface>CHECK</interface> - The CHECK clause specifies an expression producing a Boolean result which new or updated rows must satisfy for an INSERT or UPDATE operation to succeed. </para> 
+</listitem>
+</itemizedlist>
+
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_col1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you have all information for new column, press <guibutton>Add</guibutton> button. Column may be removed from list and user may change order of columns. After defining all columns press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tbl_column2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create columns is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_col2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_column3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 1. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                      MODIFY TABLE COLUMN WIZARDs                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="modify_tbl_column">
+<title>Modify Table Column</title>
+
+<para>
+When you select table column in left <interface>tree view</interface> and press right mouse button, &kpogre; display menu that  run wizards for drop column, rename it or change column properties.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col0.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<!-- ***************************************************************************** -->
+<sect2 id="modify_tbl_column_not_null1">
+<title>Set NOT NULL / Drop NOT NULL</title>
+
+<para>
+This wizard allow to modify column NOT NULL property, that say, if column is not allowed to contain null values. Wizard do not need any aditional information from user, SQL statement is displayied in first step.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_tbl_column_set_default">
+<title>Set default</title>
+
+<para>
+This wizard allow to set or modify column DEFAULT property for INSERT operation, when value is not specified.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_tbl_column_drop_default">
+<title>Drop default</title>
+
+<para>
+This wizard allow to drop column DEFAULT property for INSERT operation, when value is not specified.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_tbl_column_set_type">
+<title>Set type</title>
+
+<para>
+This wizard allow to change column datatype. Indexes and simple table constraints involving the column will be automatically converted to use the new column type by reparsing the originally supplied expression. The optional <interface>Using expression</interface> specifies how to compute the new column value from the old; if omitted, the default conversion is the same as an assignment cast from old data type to new. A <interface>Using expression</interface> clause must be provided if there is no implicit or assignment cast from old to new type. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_tbl_column_set_storage">
+<title>Set storage</title>
+
+<para>
+This wizard sets the storage mode for a column. This controls whether this column is held inline or in a supplementary table, and whether the data should be compressed or not. PLAIN must be used for fixed-length values such as integer and is inline, uncompressed. MAIN is for inline, compressible data. EXTERNAL is for external, uncompressed data, and EXTENDED is for external, compressed data. EXTENDED is the default for all data types that support it. The use of EXTERNAL will, for example, make substring operations on a text column faster, at the penalty of increased storage space. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col7.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col8.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_tbl_column_set_stats">
+<title>Set statistics</title>
+
+<para>
+This wizard allow to set the per-column statistics-gathering target for subsequent ANALYZE operations. The value can be set in the range 0 to 1000; alternatively, set it to -1 to revert to using the system default statistics target. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col9.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_col10.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                    CREATE TABLE CONSTRAINT WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tbl_constraint">
+<title>Create Table Constraint</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_constraint1">
+<title>Step 1 - Define table constraint</title>
+
+<para>
+Select type of new constraint in combo box. This wizard allow to create one or more constraint.
+</para>
+
+<simplesect>
+<title>Primary key</title>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton>. If you need multicolumn primary key, repeat this step for another columns. After adding first column, primary key name is automatically filled from table name. You may change this name.
+</para>
+
+<para>Optionally select <interface>Tablespace</interface> in which the index associated with a PRIMARY KEY constraint will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+
+<title>Foreign key</title>
+
+<para>
+First select <interface>referenced table</interface> and their <interface>unique</interface>. This may be primary key or unique index. Then select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton> button. 
+</para>
+
+<para>
+Columns in <interface>FK columns</interface> and in <interface>Referenced columns</interface> must be compatible regards datatypes, and columns number must match. 
+</para>
+
+<para>
+User may specify another optional properties for foreign key. See at PostgreSQL <ulink url="http://www.postgresql.org/docs/current/static/sql-createtable.html">documentation</ulink>, if you don't understand those parameters.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+<title>Unique</title>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton>. If you need multicolumn unique, repeat this step for another columns. After adding first column, unique name is automatically filled from table name. You may change this name.
+</para>
+
+<para>Optionally select <interface>Tablespace</interface> in which the index associated with a UNIQUE constraint will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+<simplesect>
+<title>Check</title>
+
+<para>
+Type an <interface>Expression</interface> producing a Boolean result which new or updated rows must satisfy for an insert or update operation to succeed. Expressions evaluating to TRUE or UNKNOWN succeed. Should any row of an insert or update operation produce a FALSE result an error exception is raised and the insert or update does not alter the database. A check constraint specified as a column constraint should reference that column's value only, while an expression appearing in a table constraint may reference multiple columns. 
+</para>
+
+<para>
+If you doubleclick on column in <interface>Available columns</interface> list, it is inserted to <interface>Expression</interface> edit line to current cursor position.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst7.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table constraints</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst8.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</simplesect>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tbl_constraint2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create constratints is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_cnst9.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_constraint3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 1. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       CREATE TABLE INDEX WIZARD                               -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tbl_index">
+<title>Create Table Index</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_index1">
+<title>Step 1 - Define table indexes</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-createindex.html">Indexes</ulink> are primarily used to enhance database performance. 
+</para>
+
+<para>
+Select column in <interface>Available columns</interface> list and press <guibutton>Add</guibutton> button. If you need multicolumn index, repeat this step for another columns. After adding first column, <interface>index name</interface> is automatically filled from table and first column name. You may change this name. 
+</para>
+
+<para>
+If you create <interface>unique index</interface>, check this option.
+</para>
+
+<para>Optionally select <interface>Tablespace</interface> in which the index will be created. If not supplied, the index will be created in the same <link linkend="create_tablespace">tablespace</link> as the table.</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_idx1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Add</guibutton> button in <interface>Table indexes</interface> group box. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_idx2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+See at <link linkend="create_table4">Create table Wizard</link> if you need know how to create partial or expression index. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tbl_index2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create indexes is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_idx3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_index3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 1. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       REINDEX TABLE INDEX WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="reindex_index">
+<title>Reindex index</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_index1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+<ulink url="http://www.postgresql.org/docs/current/static/sql-reindex.html">Reindex</ulink> rebuilds an index based on the data stored in the table, replacing the old copy of the index. There are two main reasons to use:
+</para>
+
+<itemizedlist>
+<listitem>
+<para>An index has become corrupted, and no longer contains valid data. Although in theory this should never happen, in practice indexes may become corrupted due to software bugs or hardware failures. REINDEX provides a recovery method.</para> 
+</listitem>
+<listitem>
+<para>The index in question contains a lot of dead index pages that are not being reclaimed. This can occur with B-tree indexes in PostgreSQL under certain access patterns. REINDEX provides a way to reduce the space consumption of the index by writing a new version of the index without the dead pages.</para> 
+</listitem>
+</itemizedlist>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="reindex_index2">
+<title>Step 2 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                       SET TABLESPACE INDEX WIZARD                             -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="set_tblspace_index">
+<title>Set index tablespace</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="set_tblspace_index1">
+<title>Step 1 - Review SQL statement</title>
+
+<para>
+This <ulink url="http://www.postgresql.org/docs/current/static/sql-altertablespace.html">operation</ulink> changes the <link linkend="create_tablespace">Tablespace</link> of the index.
+</para>
+
+<para>
+Choose new tablespace for index. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_set_tablespace1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="set_tblspace_index2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for set new tablespace. You may modify it, if you understand, what do you do. 
+</para>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="set_tblspace_index3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Check operation result. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                       CREATE TABLE RULE WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tbl_rule">
+<title>Create Table Rule</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_rule1">
+<title>Step 1 - Rule name and properties</title>
+
+<para>
+Rules is used to perform additional commands to be executed when a given command on a table is executed. 
+</para>
+
+<para>
+Type rule <interface>name</interface> and choose an <interface>event</interface> for rule. 
+</para>
+
+<para>
+Optionally specify WHERE <interface>condition</interface>. The condition expression may not refer to any tables except NEW and OLD, and may not contain aggregate functions. 
+</para>
+
+<para>
+Then choose, what rule do:
+</para>
+
+<itemizedlist>
+<listitem>
+<para><interface>Also</interface> - indicates that the <interface>command</interface> should be executed in addition to the original command. .</para> 
+</listitem>
+<listitem>
+<para><interface>Instead</interface> - indicates that the <interface>command</interface> should be executed instead of the original command.</para>
+</listitem>
+<listitem>
+<para><interface>Nothing</interface> - indicates that original command will not be executed.</para> 
+</listitem>
+</itemizedlist>
+
+<para>
+For Also and Instead rule specify <interface>command</interface> that make up the rule action. Valid commands are SELECT, INSERT, UPDATE, DELETE, or NOTIFY. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_rul1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tbl_rule2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create rule is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_rul2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_rule3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 1. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                      CREATE TABLE TRIGGER WIZARD                              -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_tbl_trigger">
+<title>Create Table Trigger</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_trigger1">
+<title>Step 1 - Trigger name and properties</title>
+
+<para>
+The trigger can be specified to fire either before the operation is attempted on a row (before constraints are checked and the INSERT, UPDATE, or DELETE is attempted) or after the operation has completed (after constraints are checked and the INSERT, UPDATE, or DELETE has completed). If the trigger fires before the event, the trigger may skip the operation for the current row, or change the row being inserted (for INSERT and UPDATE operations only). If the trigger fires after the event, all changes, including the last insertion, update, or deletion, are "visible" to the trigger. 
+</para>
+
+<para>
+Type trigger <interface>name</interface> and choose one or more <interface>events</interface> for trigger. 
+</para>
+
+<para>
+Choose trigger <interface>function</interface>. Listed are only functions from current namespace, without arguments, that returns datatype OPAQUE for PostgreSQL 7.x or older, or datatype TRIGGER  for PostgreSQL 8 or newer.
+</para>
+
+<para>
+Also specify whether the trigger procedure should be fired once for every row affected by the trigger event, or just once per SQL statement. 
+</para>
+
+<para>
+Choose if the function is called <interface>before</interface> or <interface>after</interface> the event. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_trg1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Then, press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_tbl_trigger2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create trigger is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_trg2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_tbl_trigger3">
+<title>Step 3 - Check operation result</title>
+
+<para>
+Finally, check operation result. If you get any error, you may go back and try make changes and retry step 1. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                            CREATE BASE TYPE WIZARD                            -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_base_type">
+<title>Create Base type</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_base_type1">
+<title>Step 1 - Type name</title>
+
+<para>
+This wizard registers a new base <ulink url="http://www.postgresql.org/docs/current/static/sql-createtype.html">type</ulink> (scalar type) for use in the current data base. The user who defines a type becomes its owner. 
+</para>
+
+<para>
+You must register two or more <link linkend="create_function_c">functions</link> before defining the type. The support functions input_function and output_function are required, while the functions receive_function, send_function and analyze_function are optional. Generally these functions have to be coded in C or another low-level language. 
+</para>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new type. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Enter <interface>name</interface> for new type. The type name must be distinct from the name of any existing type or domain in the same schema. (Because tables have associated data types, the type name must also be distinct from the name of any existing table in the same schema.) 
+</para>
+
+<screenshot>
+<screeninfo>Type name</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_base_typ1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_base_type2">
+<title>Step 2 - Define functions</title>
+
+<para>
+Choose <interface>input and output functions</interface> for datatype. Optionally choose <interface>send, receive and analyze functions</interface>. You may choose <interface>Schema</interface> for those functions.
+</para>
+
+<screenshot>
+<screeninfo>Domain name and properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_base_typ2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_base_type3">
+<title>Step 3 - Define type properties</title>
+
+<para>
+In this step, you may set optional properties for datatype.
+</para>
+
+<para>
+<interface>Internal length</interface> - a numeric constant that specifies the length in bytes of the new type's internal representation. The default assumption is that it is variable-length. 
+</para>
+
+<para>
+<interface>Alignment</interface> - The storage alignment requirement of the data type. If specified, it must be char, int2, int4, or double; the default is int4. 
+</para>
+
+<para>
+<interface>Storage</interface> - The storage strategy for the data type. If specified, must be plain, external, extended, or main; the default is plain.  
+</para>
+
+<para>
+<interface>Default value</interface> - The default value for the data type. If this is omitted, the default is null. Use <interface>Quoted</interface> checkbox for setting if default value is text, or leave it unchecked if default is function, e.g. now(). For simply set current datetime value as default, use <interface>Now</interface> button.
+</para>
+
+<para>
+<interface>Element</interface> - The type being created is an array; this specifies the type of the array elements. 
+</para>
+
+<para>
+<interface>Delimiter</interface> - The delimiter character to be used between values in arrays made of this type. 
+</para>
+
+<screenshot>
+<screeninfo>Domain constraints</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_base_typ3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_base_type4">
+<title>Step 4 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create type is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_base_typ4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                          CREATE COMPOSITE TYPE WIZARD                         -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_comp_type">
+<title>Create Composite type</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_comp_type1">
+<title>Step 1 - Type name</title>
+
+<para>
+This wizard registers a new composite <ulink url="http://www.postgresql.org/docs/current/static/sql-createtype.html">type</ulink> for use in the current data base. The user who defines a type becomes its owner. 
+</para>
+
+<para>
+The composite type is specified by a list of attribute names and data types.
+</para>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new type. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Enter <interface>name</interface> for new type. The type name must be distinct from the name of any existing type or domain in the same schema. (Because tables have associated data types, the type name must also be distinct from the name of any existing table in the same schema.) 
+</para>
+
+<screenshot>
+<screeninfo>Type name</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_comp_typ1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_comp_type2">
+<title>Step 2 - Define attributes</title>
+
+<para>
+In this step, user define list of type attributes. Each attribute have name, datatype and another optional properties. 
+</para>
+
+<para>
+First, type <interface>attribute name</interface>. This name must be unique in type. Next choose <interface>datatype</interface> from combo box. Some datatypes requires <interface>precision</interface> and <interface>scale</interface>. 
+</para>
+
+<para>
+Datatype can be build-in type, or user defined <link linkend="create_base_type">base type</link>. If you want to use  type from different namespace, use <interface>Schema</interface> combobox to list them.
+</para>
+
+
+<screenshot>
+<screeninfo>Domain name and properties</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_comp_typ2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_comp_type3">
+<title>Step 3 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create type is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_comp_typ3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+<!-- ***************************************************************************** -->
+<!--                             CREATE VIEW WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="create_view">
+<title>Create View</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="create_view1">
+<title>Step 1 - View name and used tables</title>
+
+<para>
+If you start this wizard when database is selected, choose namespace (AKA schema) for new view. When you run wizard from schema or views folder, actual schema is used. 
+</para>
+
+<para>
+Type <interface>name</interface> for new view. Add tables that will be used for output columns and joins. Using one or two letters alias for each table
+is good practice. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_view2">
+<title>Step 2 - Define columns</title>
+
+<para>
+For each table you may add column to view output. If you want to rename column, use <interface>AS</interface> field.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_view3">
+<title>Step 3 - Define joins</title>
+
+<para>
+If you have more than one table in view, you probably need define joins. Choose <interface>Join type</interface>. Select tables for joins and also select columns. Selecting more than one column is allowed. Joined columns must have compatible datatypes and selected columns count must match.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw3.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Press <guibutton>Add</guibutton> button in <interface>Joins</interface> group box. Join definition is included to list. You may repeat this for all needed joins in view. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw4.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<note><para>
+After adding first join, left table is locked and you may change only right table.
+</para></note>
+
+<para>
+Join may be removed from list, using <guibutton>Delete</guibutton> button. After defining all joins press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_view4">
+<title>Step 4 - Define conditions</title>
+
+<para>
+In this step you may define conditions to reduce number of output rows. Thi step is optional. Select <interface>Table</interface> and its <interface>Column</interface> for condition. Also select <interface>Condition</interface> type and enter <interface>Value</interface>.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw5.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Press <guibutton>Add</guibutton> button in <interface>Conditions</interface> group box. Condition is included to list. You may repeat this for all needed conditions in view. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw6.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+Condition may be removed from list, using <guibutton>Delete</guibutton> button. After defining all conditions press <guibutton>Next</guibutton> button. 
+</para>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="create_view5">
+<title>Step 5 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for create view is displayied for your check. You may modify it, if you understand, what do you do. 
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_create_vw7.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+<para>
+When you press <guibutton>Next</guibutton> button command will be send to server.
+</para>
+
+</sect2>
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                             MODIFY VIEW WIZARD                                -->
+<!-- ***************************************************************************** -->
+
+<sect1 id="modify_view">
+<title>Modify View</title>
+
+<!-- ***************************************************************************** -->
+<sect2 id="modify_view1">
+<title>Step 1 - Enter SQL statement for view</title>
+
+<para>
+Modify view SQL statement. Use <guibutton>Test SQL</guibutton> button to testing it. Then press <guibutton>Next</guibutton> button.
+</para>
+
+<screenshot>
+<screeninfo>Modify View</screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_vw1.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+<sect2 id="modify_view2">
+<title>Step 2 - Review SQL statement</title>
+
+<para>
+In this step, SQL statement for replace view is displayied for your check. You may modify it (for example change view name), if you understand, what do you do. Press <guimenuitem>Next</guimenuitem> button to perform operation.
+</para>
+
+<screenshot>
+<screeninfo></screeninfo>
+  <mediaobject>
+    <imageobject>
+      <imagedata fileref="wzd_modify_vw2.png" format="PNG" />
+    </imageobject>
+  </mediaobject>
+</screenshot>
+
+</sect2>
+
+<!-- ***************************************************************************** -->
+
+</sect1>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+</chapter>
+
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+<!-- ***************************************************************************** -->
+
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Menu Entries                                      -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="the-menu-entries">
+<title>The Menu Entries</title>
+
+<!-- ******************************** File menu ********************************* -->
+<sect1 id="file">
+<title>The <guimenu>File</guimenu> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>O</keycap></keycombo></shortcut>
+<guimenu><accel>F</accel>ile</guimenu>
+<guimenuitem><accel>O</accel>pen</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+This command opens a SQL file.  It does this by means of a dialog box
+which allows the user to navigate the file system.  The dialog operates
+like a small file manager. Clicking on directories displayed in the
+central window directs the dialog to enter that directory - displaying its
+contents.  There is an entry/dropdown box which can be used to type in
+directly the location and name of the file or by clicking the arrow at the
+side choose from a dropdown list of recently used locations. Below this is
+a filter which similarly may have data entered directly or chosen from a
+dropdown list of recent filter types.  The filter facility lets only files
+that meet its specifications be displayed in the central window. If the
+filter contained text such as <literal role="extension">*.sql</literal> then only files
+with the txt extension would be visible in the selection window. Below the filter
+is a status bar giving information about the number of files and subdirectories
+within the current directory.
+</para>
+
+<para>The  toolbar, which is located at the top of the dialog, has left and right
+arrow buttons that let the user move back and forth through previously selected
+directories as well as an up arrow button for moving up the directory tree. The
+button with the little house takes the user to his or her home directory and the one
+with the two arrows curved in on each other updates the view of the current
+directory. The flag button lets the user set a new bookmark at the current directory
+or go to  one that was previously set. <!-- The button with the wrench (spanner) -->
+<!-- icon even permits the user to change a few basic settings for the dialog -->
+<!-- box.  --> The last button on the toolbar allows you to create a new
+directory, and finally  there is dropdown box with a list of some commonly
+frequented directories.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term>
+<menuchoice>
+<guimenu><accel>F</accel>ile</guimenu>
+<guimenuitem>Open<accel>R</accel>ecent</guimenuitem>
+</menuchoice></term>
+<listitem><para>
+This is a shortcut to open recently saved SQL files. Clicking on
+this item opens a list to the side of the menu with several of the most recently
+saved files. Clicking on a specific file will open it in &kpogre; - if the file
+still resides at the same location.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>S</keycap></keycombo></shortcut>
+<guimenu><accel>F</accel>ile</guimenu>
+<guimenuitem><accel>S</accel>ave</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>
+This saves the current SQL file. If there has already been a save of the document then this will overwrite the previously saved file without asking for the user's consent. If it is the first save of a new document the save as dialog (described below) will be invoked.
+</action></para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem>Save <accel>A</accel>s</guimenuitem>
+</menuchoice></term>
+<listitem><para>
+This allows a SQL query to be saved with a new file name. This is
+done by means of the file dialog box described above in the Open
+ section of this help file.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem><accel>E</accel>xport Result</guimenuitem>
+</menuchoice></term>
+<listitem><para>
+This allow export query result to CSV (comma separated values) file.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu>File</guimenu>
+<guimenuitem><accel>P</accel>rint</guimenuitem>
+</menuchoice></term>
+<listitem><para>
+This allow print document. Not implemented yet.
+</para></listitem>
+</varlistentry>
+
+
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>Q</keycap></keycombo></shortcut>
+<guimenu><accel>F</accel>ile</guimenu>
+<guimenuitem><accel>Q</accel>uit</guimenuitem>
+</menuchoice></term>
+<listitem><para><action>Quits</action> &kpogre;</para></listitem>
+</varlistentry>
+
+</variablelist></para>
+
+</sect1>
+
+<!-- ******************************** Edit menu ********************************* -->
+<sect1 id="edit">
+<title>The <guimenu>Edit</guimenu> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>Z</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem><accel>U</accel>ndo</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This is used to eliminate or reverse the most recent user action or operation.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>Shift</keycap><keycap>Z</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem><accel>R</accel>edo</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This will reverse the most recent change (if any) made using Undo
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>X</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem>C<accel>u</accel>t</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This command deletes the current selection and places it on the clipboard.  The
+clipboard is a feature of KDE that works invisibly to provide a way to transfer data between
+applications.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>C</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem><accel>C</accel>opy</guimenuitem></menuchoice></term>
+<listitem>
+<para>This copies the currently selected text to the clipboard so that it may be
+pasted elsewhere.  The clipboard is a feature of KDE that works invisibly to
+provide a way to transfer data between applications.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>V</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem><accel>P</accel>aste</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This will insert the contents of the clipboard at the cursor position. The
+clipboard is feature of KDE that works invisibly to provide a way to transfer
+data between applications.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem>Clear <accel>I</accel>nputarea</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This clear SQL query editor contents</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>F</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem><accel>F</accel>ind</guimenuitem></menuchoice></term>
+<listitem>
+<para>This opens the find dialog which is used to specify the <guilabel>Text to
+Find</guilabel> in the object tree. You may find object by names or OID's.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>F3</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem>Find <accel>N</accel>ext</guimenuitem></menuchoice></term>
+<listitem>
+<para>This repeats the last find operation, if any, without calling the find
+dialog box.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Ctrl</keycap><keycap>E</keycap></keycombo></shortcut>
+<guimenu><accel>E</accel>dit</guimenu>
+<guimenuitem>D<accel>e</accel>select item</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This unselect item in tree window</para>
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+</sect1>
+
+<!-- ******************************** View menu ********************************* -->
+<sect1 id="view">
+<title>The <guimenu>View</guimenu> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>V</accel>iew</guimenu>
+<guimenuitem>To <accel>P</accel>arent item</guimenuitem></menuchoice></term>
+<listitem>
+<para>Go up a level in the tree hierarchy. Select parent item.</para> 
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>V</accel>iew</guimenu>
+<guimenuitem>To <accel>B</accel>ack item</guimenuitem></menuchoice></term>
+<listitem>
+<para>Used for browsing using <link linkend="oid_links">OID links</link>. Return back to previously selected item.</para> 
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>V</accel>iew</guimenu>
+<guimenuitem>To <accel>F</accel>orward item</guimenuitem></menuchoice></term>
+<listitem>
+<para>Used for browsing using <link linkend="oid_links">OID links</link>. Go forward to next item.</para> 
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+</sect1>
+
+<!-- ******************************** Database menu *************************** -->
+<sect1 id="database">
+<title>The <guimenu>Database</guimenu> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>D</accel>atabase</guimenu>
+<guimenuitem><accel>C</accel>onnect</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+Display dialog where is host name, port, username and password. Allow establish new connetion to PostgreSQL server.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>D</accel>atabase</guimenu>
+<guimenuitem><accel>D</accel>isconnect</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+Close connection to selected PostgreSQL server.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>F8</keycap></keycombo></shortcut>
+<guimenu><accel>D</accel>atabase</guimenu>
+<guimenuitem><accel>R</accel>un query</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+Send query from selected query/result windows to PostgreSQL server. Display query result.
+</para>
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+</sect1>
+
+<!-- ******************************** Settings menu ****************************** -->
+<sect1 id="settings">
+<title>The <guimenu>Settings</guimenu> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>S</accel>ettings</guimenu>
+<guimenuitem>Show <accel>T</accel>oolbar</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+When checked, this displays a movable toolbar containing buttons used to
+initiate frequently used commands. When unchecked the toolbar is hidden.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>S</accel>ettings</guimenu>
+<guimenuitem>Show <accel>S</accel>tatusbar</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>When checked, this displays a small bar at the bottom of the main window
+containing information about the status of the current document.  When unchecked
+the statusbar is hidden.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>S</accel>ettings</guimenu><guimenuitem>Configure S<accel>h</accel>ortcuts</guimenuitem></menuchoice></term>
+<listitem>
+<para>This command opens a dialog box whereby the  key bindings may be changed.
+A display window at
+the top of the dialog box shows the list of commands (actions) that can have
+keyboard shortcuts.  Below the display are three radio buttons.  The user may choose
+between No Key, Default Key, and Custom Key.  (Note that a set of radio buttons only
+allows the selection of one of the offered items - in the way that buttons on a car
+radio only offer the selection of one preset station.  Also, the Default Key
+selection  is only available for those commands that actually have a 'default'
+shortcut.)  Selecting the Custom Key option activates the three check boxes and key
+button at the bottom of the dialog. The user may then select a key
+combination for the command in question by means of the check boxes and key
+button. For example, with the About KDE command selected in the display window,
+the user could select <keycap>Ctrl</keycap> and <keycap>Alt</keycap>, click on
+the key button, and then press the <keycap>K</keycap> key on the keyboard.  This
+would mean that anytime he or she held down the <keycap>Ctrl</keycap> and
+<keycap>Alt</keycap> buttons and pressed <keycap>K</keycap> (while using
+&kpogre;) the About KDE display box would be called. </para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>S</accel>ettings</guimenu>
+<guimenuitem>Configure Tool<accel>b</accel>ars</guimenuitem>
+</menuchoice></term>
+<listitem><para>This will open the dialog whereby the toolbars configuration may
+be changed.   The user can choose which shortcut buttons should appear on the
+toolbar. A display window on the left lists the commands available to placed
+on the toolbar.  A display on the right lists those commands already on the
+toolbar.  A set of four arrow buttons between the two displays manipulates the
+selections.  The right pointing arrow places any command selected in the left
+pane onto the right pane, <abbrev>i.e.</abbrev>, it is added to the toolbar.
+The left arrow does just the opposite, removing any action selected in the right
+window from the toolbar.  The up and down pointing arrows change the position of
+an action selected in the right window which changes the position of its button
+in the toolbar.</para> </listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>S</accel>ettings</guimenu>
+<guimenuitem><accel>C</accel>onfigure &kpogre;</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This menu item opens a dialog whereby several different <link
+linkend="pref-dialog">settings</link> may be adjusted.</para>
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+</sect1>
+
+<!-- ******************************** Help menu ********************************** -->
+<sect1 id="help">
+<title>The <guimenuitem>Help</guimenuitem> Menu</title>
+<para><variablelist>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>F1</keycap></keycombo></shortcut>
+<guimenu><accel>H</accel>elp</guimenu>
+<guimenuitem><accel>C</accel>ontents</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This invokes the KDE help system starting at the &kpogre; help pages (this document).
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<shortcut><keycombo><keycap>Shift</keycap><keycap>F1</keycap></keycombo></shortcut>
+<guimenu><accel>H</accel>elp</guimenu>
+<guimenuitem>What's <accel>T</accel>his?</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>
+This changes the mouse cursor to a combination arrow and question mark.
+Clicking on items within &kpogre; with this arrow will open a help window (if
+one exists for the particular item) explaining the item's function.
+</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>H</accel>elp</guimenu>
+<guimenuitem><accel>R</accel>eport Bug</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para><action>
+This calls a dialog box to help
+the user help the KDE team to track down and solve any
+problems(bugs) in the program.  The dialog attempts to do this by
+means of email using the information given by the user.
+</action></para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>H</accel>elp</guimenu>
+<guimenuitem><accel>A</accel>bout &kpogre;</guimenuitem>
+</menuchoice></term>
+<listitem>
+<para>This will display version and author information.</para>
+</listitem>
+</varlistentry>
+
+<varlistentry>
+<term><menuchoice>
+<guimenu><accel>H</accel>elp</guimenu><guimenuitem>About <accel>K</accel>DE</guimenuitem></menuchoice></term>
+<listitem>
+<para>This displays the KDE version and other basic information.</para>
+</listitem>
+</varlistentry>
+
+</variablelist></para>
+
+</sect1>
+
+
+</chapter>
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Configuration                                     -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="pref-dialog">
+<title>Configure &kpogre;</title>
+
+<para>Selecting
+<menuchoice><guimenu>Settings</guimenu><guimenuitem>Configure
+&kpogre;</guimenuitem></menuchoice> from the menu brings up the Configure-&kpogre;
+dialog box. This dialog can be used to alter application settings. By means of four buttons
+along the bottom of the box the user can control the process.  She or he may invoke
+the <guilabel>Help</guilabel> system, accept the current settings pressing <guibutton>Apply</guibutton> button,
+accept the current settings and close the dialog by means of the <guibutton>OK</guibutton> button, or
+<guibutton>Cancel</guibutton> the process.
+</para>
+
+<sect1 id="setting_general">
+
+<title>General</title>
+<para>This category allow set general &kpogre; behavior.</para>
+
+<para>
+<variablelist>
+
+<varlistentry>
+<term><guilabel>Automatically load system schemas</guilabel></term>
+<listitem>
+<para>
+When checked, &kpogre; automatically load object from system schema, while opening database.
+You may speed-up opening database by uncheck this option. But remember that in this case the 
+<link linkend="oid_links">OID links</link> will not works to unloaded system objects.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Automatically load user schemas</guilabel></term>
+<listitem>
+<para>
+When checked, &kpogre; automatically load object from all user schemas, while opening database.
+You may speed-up opening database by uncheck this option. Schemas will be loaded later when
+you open it.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Use $$ for functions body definition</guilabel></term>
+<listitem>
+<para>
+When checked, Create funtion wizard use $$ around function body instead of apostrophes.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect1>
+
+<sect1 id="setting_sqleditor">
+
+<title>SQL Editor</title>
+<para>This category allow set SQL editor font and syntax highlighting.</para>
+
+<para>
+<screenshot>
+<screeninfo>SQL Editor</screeninfo>
+	<mediaobject>
+	  <imageobject>
+	    <imagedata fileref="setupsqlteditor.png" format="PNG" />
+	  </imageobject>
+	</mediaobject>
+</screenshot>
+</para>
+
+<para>
+<variablelist>
+
+<varlistentry>
+<term><guilabel>Colors</guilabel></term>
+<listitem>
+<para>
+You may choose various colors for different SQL syntax.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>Font</guilabel></term>
+<listitem>
+<para>
+You may choose font used by SQL input area.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect1>
+
+<sect1 id="setting_datatable">
+
+<title>Datatable</title>
+<para>This category allow set Datatable behavior.</para>
+
+<para>
+<variablelist>
+
+<varlistentry>
+<term><guilabel>Confirm deleting row</guilabel></term>
+<listitem>
+<para>
+When checked, every deleting row must be confirmed by dialog.
+</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term><guilabel>LOB buffer size [MB]:</guilabel></term>
+<listitem>
+<para>
+For load and save large objects (text and bytea fields), temporary buffer must be allocated.
+Set reasonable anmount of memory in megabytes for this buffer - depends from size
+of files stored to text and bytea fields.
+</para></listitem>
+</varlistentry>
+
+</variablelist>
+</para>
+
+</sect1>
+
+</chapter>
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Credits & Licence                                 -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<chapter id="credits">
+
+<!-- Include credits for the programmers, documentation writers, and
+contributors here. The license for your software should then be included below
+the credits with a reference to the appropriate license file included in the KDE
+distribution. -->
+
+<title>Credits and License</title>
+
+<para>
+&kapp; Program copyright 2001-2006 the &kapp; developers:
+</para>
+
+<para><variablelist>
+
+<varlistentry>
+<term>Lumir Vanek <email>lvanek at users.sourceforge.net</email></term>
+<listitem><para>Developer and maintainer</para></listitem>
+</varlistentry>
+
+<varlistentry>
+<term>Dominik Sacher <email>dsacher at users.sourceforge.net</email></term>
+<listitem><para>Former developer</para></listitem>
+</varlistentry>
+
+
+</variablelist></para>
+
+<para>
+Documentation copyright 2004-2006 Lumir Vanek <email>lvanek at users.sourceforge.net</email>
+</para>
+
+<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
+
+&underFDL;               <!-- FDL: do not remove. Commercial development should -->
+<!-- replace this with their copyright and either remove it or re-set this.-->
+
+<!-- Determine which license your application is licensed under, 
+     and delete all the remaining licenses below:
+
+     (NOTE:  All documentation are licensed under the FDL, 
+     regardless of what license the application uses) -->
+
+&underGPL;        	 <!-- GPL License -->
+
+
+</chapter>
+
+<!-- ***************************************************************************** -->
+<!--                                                                               -->
+<!--                             Installation                                      -->
+<!--                                                                               -->
+<!-- ***************************************************************************** -->
+
+<appendix id="installation">
+<title>Installation</title>
+
+<sect1 id="getting-kpogre">
+<title>How to obtain &kpogre;</title>
+
+<para>
+You may obtain &kpogre; from URL:
+<ulink url="http://sourceforge.net/projects/kpogre">http://sourceforge.net/projects/kpogre</ulink>.
+</para>
+
+</sect1>
+
+<sect1 id="requirements">
+<title>Requirements</title>
+
+<!--
+List any special requirements for your application here. This should include:
+.Libraries or other software that is not included in kdesupport,
+kdelibs, or kdebase.
+.Hardware requirements like amount of RAM, disk space, graphics card
+capabilities, screen resolution, special expansion cards, etc.
+.Operating systems the app will run on. If your app is designed only for a
+specific OS, (you wrote a graphical LILO configurator for example) put this
+information here.
+-->
+
+<para>
+In order to successfully use &kpogre;, you need KDE 3.2.x or higher.
+For instructions on acquiring &kde; please see <ulink url="http://www.kde.org">http://www.kde.org</ulink>.
+</para>
+
+<para>
+This application requires libpqxx library. You may obtain it from 
+ <ulink url="http://thaiopensource.org/development/libpqxx"> libpqxx home page</ulink>.
+</para>
+
+</sect1>
+
+<sect1 id="compilation">
+<title>Compilation and Installation</title>
+
+<para>
+In order to compile and install &kpogre; on your system, type the following in the base
+directory:
+<screen width="40">
+<prompt>%</prompt> <userinput>./configure</userinput>
+<prompt>%</prompt> <userinput>make all</userinput>
+<prompt>%</prompt> <userinput>make install</userinput>
+</screen>
+</para>
+
+<para>Since &kpogre; uses autoconf and automake you should have not trouble compiling it.
+Should you run into problems please report them to the KDE mailing lists.</para>
+
+</sect1>
+
+</appendix>
+
+&documentation.index;
+</book>
+<!--
+Local Variables:
+mode: sgml
+sgml-minimize-attributes:nil
+sgml-general-insert-case:lower
+sgml-indent-step:0
+sgml-indent-data:nil
+End:
+-->

Added: kde-extras/kpogre/branches/upstream/current/doc/en/index.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/index.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/language.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/language.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/oid_links3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/operator.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/operator.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/operator_class.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/operator_class.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/primary_key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/primary_key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/privileges1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/privileges1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/privileges2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/privileges2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/privileges3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/privileges3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/privileges4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/privileges4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/query_result1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/query_result1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/query_result2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/query_result2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/query_result3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/query_result3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/rule.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/rule.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/schema.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/schema.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/schema_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/schema_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/schema_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/schema_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/screenshot.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/screenshot.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/sequence.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/sequence.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/server.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/server.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/setupsqlteditor.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/setupsqlteditor.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/statistics1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/statistics1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/statistics2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/statistics2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/table.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/table.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/tblspace_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/toast_table.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/toast_table.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/trigger.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/trigger.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/type.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/type.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/type_base.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/type_base.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/type_composite.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/type_composite.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/type_standalone.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/type_standalone.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/user.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/user.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/user_crt_db.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/user_crt_db.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/user_super.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/user_super.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/view.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/view.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wizard.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wizard.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_analyze_tbl3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_from4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_copy_tbl_to4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_base_typ4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst7.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst8.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst8.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst9.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_cnst9.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_col2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_comp_typ3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_db3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_dom_cnst2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_c6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_fnc_sql6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_grp2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_idx3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_lng3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_rul2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_sch3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_seq2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl10.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl10.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl11.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl11.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl12.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl12.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl13.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl13.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl14.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl14.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl15.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl15.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl16.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl16.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl17.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl17.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl18.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl18.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl19.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl19.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl7.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl8.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl8.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl9.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbl9.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_tbsp3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_trg2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_usr3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw7.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_create_vw7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop0.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_drop2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_dump_db3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify0.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col0.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col10.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col10.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col5.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col5.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col6.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col6.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col7.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col7.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col8.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col8.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col9.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_col9.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom4.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_dom4.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_fnc2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_seq2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_modify_vw2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_db.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_db.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_srv.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_srv.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_tbl.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_objtype_tbl.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename0.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename0.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rename2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_rest_db3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_cluster_tbl2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_owner1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_owner1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_tablespace1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_set_tablespace1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl1.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl1.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl2.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl3.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/doc/en/wzd_vacuum_tbl3.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,15 @@
+INCLUDES = -I$(top_srcdir)/kpogre/XmlSupport $(all_includes)
+METASOURCES = AUTO
+libDataTable_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libDataTable.la
+
+libDataTable_la_SOURCES = kpgdatatable.cpp kpgdatatablechildview.cpp \
+	kpgdatatabledialog.cpp kpgdatatabledialogbase.ui kpgdatatablesettings.cpp \
+	kpgdatatablesettingspage.ui kpgkatexmleditordialogbase.ui kpgkatexmleditordialog.cpp \
+	kpgtexteditdialog.cpp kpgtexteditdialogbase.ui
+
+EXTRA_DIST = 
+
+noinst_HEADERS = kpgdatatable.h kpgdatatablechildview.h kpgdatatabledialog.h \
+	kpgdatatablesettings.h kpgkatexmleditordialog.h kpgtexteditdialog.h
+libDataTable_la_LIBADD = $(PQXX_LIBS)

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,833 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/DataTable
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libDataTable_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libDataTable_la_OBJECTS = kpgdatatable.lo kpgdatatablechildview.lo \
+	kpgdatatabledialog.lo kpgdatatablesettings.lo \
+	kpgkatexmleditordialog.lo kpgtexteditdialog.lo
+#>- libDataTable_la_OBJECTS = $(am_libDataTable_la_OBJECTS)
+#>+ 7
+libDataTable_la_final_OBJECTS = libDataTable_la.all_cpp.lo 
+libDataTable_la_nofinal_OBJECTS = kpgdatatable.lo kpgdatatablechildview.lo \
+	kpgdatatabledialog.lo kpgdatatablesettings.lo \
+	kpgkatexmleditordialog.lo kpgtexteditdialog.lo kpgdatatabledialogbase.lo kpgdatatablesettingspage.lo kpgkatexmleditordialogbase.lo kpgtexteditdialogbase.lo\
+kpgdatatablechildview.moc.lo kpgdatatabledialog.moc.lo kpgtexteditdialog.moc.lo kpgdatatable.moc.lo kpgkatexmleditordialog.moc.lo 
+ at KDE_USE_FINAL_FALSE@libDataTable_la_OBJECTS = $(libDataTable_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libDataTable_la_OBJECTS = $(libDataTable_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libDataTable_la_SOURCES)
+DIST_SOURCES = $(libDataTable_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/XmlSupport $(all_includes)
+#>- METASOURCES = AUTO
+libDataTable_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libDataTable.la
+#>- libDataTable_la_SOURCES = kpgdatatable.cpp kpgdatatablechildview.cpp \
+#>- 	kpgdatatabledialog.cpp kpgdatatabledialogbase.ui kpgdatatablesettings.cpp \
+#>- 	kpgdatatablesettingspage.ui kpgkatexmleditordialogbase.ui kpgkatexmleditordialog.cpp \
+#>- 	kpgtexteditdialog.cpp kpgtexteditdialogbase.ui
+#>+ 4
+libDataTable_la_SOURCES=kpgdatatable.cpp kpgdatatablechildview.cpp \
+	kpgdatatabledialog.cpp  kpgdatatablesettings.cpp \
+	  kpgkatexmleditordialog.cpp \
+	kpgtexteditdialog.cpp  kpgdatatabledialogbase.cpp kpgdatatablesettingspage.cpp kpgkatexmleditordialogbase.cpp kpgtexteditdialogbase.cpp
+
+EXTRA_DIST = 
+noinst_HEADERS = kpgdatatable.h kpgdatatablechildview.h kpgdatatabledialog.h \
+	kpgdatatablesettings.h kpgkatexmleditordialog.h kpgtexteditdialog.h
+
+libDataTable_la_LIBADD = $(PQXX_LIBS)
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/DataTable/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libDataTable.la: $(libDataTable_la_OBJECTS) $(libDataTable_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libDataTable_la_LDFLAGS) $(libDataTable_la_OBJECTS) $(libDataTable_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatatable.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatatablechildview.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatatabledialog.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatatablesettings.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgkatexmleditordialog.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtexteditdialog.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgdatatablechildview.moc.cpp: $(srcdir)/kpgdatatablechildview.h
+	$(MOC) $(srcdir)/kpgdatatablechildview.h -o kpgdatatablechildview.moc.cpp
+
+#>+ 2
+mocs: kpgdatatablechildview.moc.cpp
+
+#>+ 3
+kpgdatatabledialog.moc.cpp: $(srcdir)/kpgdatatabledialog.h
+	$(MOC) $(srcdir)/kpgdatatabledialog.h -o kpgdatatabledialog.moc.cpp
+
+#>+ 2
+mocs: kpgdatatabledialog.moc.cpp
+
+#>+ 3
+kpgtexteditdialog.moc.cpp: $(srcdir)/kpgtexteditdialog.h
+	$(MOC) $(srcdir)/kpgtexteditdialog.h -o kpgtexteditdialog.moc.cpp
+
+#>+ 2
+mocs: kpgtexteditdialog.moc.cpp
+
+#>+ 3
+kpgdatatable.moc.cpp: $(srcdir)/kpgdatatable.h
+	$(MOC) $(srcdir)/kpgdatatable.h -o kpgdatatable.moc.cpp
+
+#>+ 2
+mocs: kpgdatatable.moc.cpp
+
+#>+ 3
+kpgkatexmleditordialog.moc.cpp: $(srcdir)/kpgkatexmleditordialog.h
+	$(MOC) $(srcdir)/kpgkatexmleditordialog.h -o kpgkatexmleditordialog.moc.cpp
+
+#>+ 2
+mocs: kpgkatexmleditordialog.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgdatatablechildview.moc.cpp kpgdatatabledialog.moc.cpp kpgtexteditdialog.moc.cpp kpgdatatable.moc.cpp kpgkatexmleditordialog.moc.cpp
+
+#>+ 2
+KDE_DIST=kpgtexteditdialogbase.ui kpgdatatablesettingspage.ui kpgdatatabledialogbase.ui Makefile.in kpgkatexmleditordialogbase.ui Makefile.am 
+
+#>+ 7
+clean-ui:
+	-rm -f \
+	kpgdatatabledialogbase.cpp kpgdatatabledialogbase.h kpgdatatabledialogbase.moc \
+	kpgdatatablesettingspage.cpp kpgdatatablesettingspage.h kpgdatatablesettingspage.moc \
+	kpgkatexmleditordialogbase.cpp kpgkatexmleditordialogbase.h kpgkatexmleditordialogbase.moc \
+	kpgtexteditdialogbase.cpp kpgtexteditdialogbase.h kpgtexteditdialogbase.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/DataTable/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/DataTable/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libDataTable_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgdatatable.cpp $(srcdir)/kpgdatatablechildview.cpp $(srcdir)/kpgdatatabledialog.cpp $(srcdir)/kpgdatatablesettings.cpp $(srcdir)/kpgkatexmleditordialog.cpp $(srcdir)/kpgtexteditdialog.cpp $(srcdir)/kpgdatatabledialogbase.cpp $(srcdir)/kpgdatatablesettingspage.cpp $(srcdir)/kpgkatexmleditordialogbase.cpp $(srcdir)/kpgtexteditdialogbase.cpp kpgdatatablechildview.moc.cpp kpgkatexmleditordialog.moc.cpp kpgdatatabledialog.moc.cpp kpgtexteditdialog.moc.cpp kpgdatatable.moc.cpp  kpgkatexmleditordialogbase.moc kpgdatatablesettingspage.moc kpgtexteditdialogbase.moc kpgdatatabledialogbase.moc
+	@echo 'creating libDataTable_la.all_cpp.cpp ...'; \
+	rm -f libDataTable_la.all_cpp.files libDataTable_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libDataTable_la.all_cpp.final; \
+	for file in kpgdatatable.cpp kpgdatatablechildview.cpp kpgdatatabledialog.cpp kpgdatatablesettings.cpp kpgkatexmleditordialog.cpp kpgtexteditdialog.cpp kpgdatatabledialogbase.cpp kpgdatatablesettingspage.cpp kpgkatexmleditordialogbase.cpp kpgtexteditdialogbase.cpp kpgdatatablechildview.moc.cpp kpgkatexmleditordialog.moc.cpp kpgdatatabledialog.moc.cpp kpgtexteditdialog.moc.cpp kpgdatatable.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libDataTable_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libDataTable_la.all_cpp.final; \
+	done; \
+	cat libDataTable_la.all_cpp.final libDataTable_la.all_cpp.files > libDataTable_la.all_cpp.cpp; \
+	rm -f libDataTable_la.all_cpp.final libDataTable_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libDataTable_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libDataTable_la_OBJECTS="$(libDataTable_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libDataTable_la_OBJECTS="$(libDataTable_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libDataTable_la_OBJECTS="$(libDataTable_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libDataTable_la_OBJECTS="$(libDataTable_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 9
+nmcheck: 
+$(srcdir)/kpgdatatablesettings.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+$(srcdir)/kpgkatexmleditordialog.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+nmcheck-am: nmcheck
+$(srcdir)/kpgtexteditdialog.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+$(srcdir)/kpgdatatablechildview.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+$(srcdir)/kpgdatatable.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+$(srcdir)/kpgdatatabledialog.cpp: kpgdatatabledialogbase.h kpgdatatablesettingspage.h kpgkatexmleditordialogbase.h kpgtexteditdialogbase.h 
+
+#>+ 60
+kpgdatatabledialogbase.cpp: $(srcdir)/kpgdatatabledialogbase.ui kpgdatatabledialogbase.h kpgdatatabledialogbase.moc
+	rm -f kpgdatatabledialogbase.cpp
+	echo '#include <kdialog.h>' > kpgdatatabledialogbase.cpp
+	echo '#include <klocale.h>' >> kpgdatatabledialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdatatabledialogbase.h $(srcdir)/kpgdatatabledialogbase.ui > kpgdatatabledialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdatatabledialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdatatabledialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdatatabledialogbase.cpp ;\
+	rm -f kpgdatatabledialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdatatabledialogbase.moc"' >> kpgdatatabledialogbase.cpp; else rm -f kpgdatatabledialogbase.cpp ; exit $$ret ; fi
+
+kpgdatatabledialogbase.h: $(srcdir)/kpgdatatabledialogbase.ui
+	rm -rf kpgdatatabledialogbase.h;
+	$(UIC) $(srcdir)/kpgdatatabledialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdatatabledialogbase.h ;
+kpgdatatabledialogbase.moc: kpgdatatabledialogbase.h
+	$(MOC) kpgdatatabledialogbase.h -o kpgdatatabledialogbase.moc
+
+kpgtexteditdialogbase.cpp: $(srcdir)/kpgtexteditdialogbase.ui kpgtexteditdialogbase.h kpgtexteditdialogbase.moc
+	rm -f kpgtexteditdialogbase.cpp
+	echo '#include <kdialog.h>' > kpgtexteditdialogbase.cpp
+	echo '#include <klocale.h>' >> kpgtexteditdialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtexteditdialogbase.h $(srcdir)/kpgtexteditdialogbase.ui > kpgtexteditdialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtexteditdialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtexteditdialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtexteditdialogbase.cpp ;\
+	rm -f kpgtexteditdialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtexteditdialogbase.moc"' >> kpgtexteditdialogbase.cpp; else rm -f kpgtexteditdialogbase.cpp ; exit $$ret ; fi
+
+kpgtexteditdialogbase.h: $(srcdir)/kpgtexteditdialogbase.ui
+	rm -rf kpgtexteditdialogbase.h;
+	$(UIC) $(srcdir)/kpgtexteditdialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtexteditdialogbase.h ;
+kpgtexteditdialogbase.moc: kpgtexteditdialogbase.h
+	$(MOC) kpgtexteditdialogbase.h -o kpgtexteditdialogbase.moc
+
+kpgkatexmleditordialogbase.cpp: $(srcdir)/kpgkatexmleditordialogbase.ui kpgkatexmleditordialogbase.h kpgkatexmleditordialogbase.moc
+	rm -f kpgkatexmleditordialogbase.cpp
+	echo '#include <kdialog.h>' > kpgkatexmleditordialogbase.cpp
+	echo '#include <klocale.h>' >> kpgkatexmleditordialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgkatexmleditordialogbase.h $(srcdir)/kpgkatexmleditordialogbase.ui > kpgkatexmleditordialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgkatexmleditordialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgkatexmleditordialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgkatexmleditordialogbase.cpp ;\
+	rm -f kpgkatexmleditordialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgkatexmleditordialogbase.moc"' >> kpgkatexmleditordialogbase.cpp; else rm -f kpgkatexmleditordialogbase.cpp ; exit $$ret ; fi
+
+kpgkatexmleditordialogbase.h: $(srcdir)/kpgkatexmleditordialogbase.ui
+	rm -rf kpgkatexmleditordialogbase.h;
+	$(UIC) $(srcdir)/kpgkatexmleditordialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgkatexmleditordialogbase.h ;
+kpgkatexmleditordialogbase.moc: kpgkatexmleditordialogbase.h
+	$(MOC) kpgkatexmleditordialogbase.h -o kpgkatexmleditordialogbase.moc
+
+kpgdatatablesettingspage.cpp: $(srcdir)/kpgdatatablesettingspage.ui kpgdatatablesettingspage.h kpgdatatablesettingspage.moc
+	rm -f kpgdatatablesettingspage.cpp
+	echo '#include <kdialog.h>' > kpgdatatablesettingspage.cpp
+	echo '#include <klocale.h>' >> kpgdatatablesettingspage.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdatatablesettingspage.h $(srcdir)/kpgdatatablesettingspage.ui > kpgdatatablesettingspage.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdatatablesettingspage.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdatatablesettingspage,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdatatablesettingspage.cpp ;\
+	rm -f kpgdatatablesettingspage.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdatatablesettingspage.moc"' >> kpgdatatablesettingspage.cpp; else rm -f kpgdatatablesettingspage.cpp ; exit $$ret ; fi
+
+kpgdatatablesettingspage.h: $(srcdir)/kpgdatatablesettingspage.ui
+	rm -rf kpgdatatablesettingspage.h;
+	$(UIC) $(srcdir)/kpgdatatablesettingspage.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdatatablesettingspage.h ;
+kpgdatatablesettingspage.moc: kpgdatatablesettingspage.h
+	$(MOC) kpgdatatablesettingspage.h -o kpgdatatablesettingspage.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,2326 @@
+//
+// C++ Implementation: kpgdatatable
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdatatable.h"
+
+// include files for Qt
+#include <qtextcodec.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kcursor.h>
+#include <kfinddialog.h>
+#include <kfind.h>
+#include <kdebug.h>
+#include <kfiledialog.h>
+
+// include files for libpgxx 
+#include <pqxx/binarystring>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "kpgdatatablechildview.h"
+#include "../kpgconfiguration.h"
+#include "kpgdatatablesettings.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "kpgdatatabledialog.h"
+#include "../kpgsqldialog.h"
+#include "kpgtexteditdialog.h"
+#include "../kpgutil.h"
+//#include "../XmlSupport/kxetexteditordialog.h"
+#include "kpgkatexmleditordialog.h"
+
+
+KPGDataTable::KPGDataTable(KPGDataTableChildView *parent, 
+	KPoGreView *pPoGreView,
+	KXMLGUIFactory *pXmlGuiFactory,
+	KPGConnection *pConnection, 
+	const QString & strNamespaceName,
+	const QString & strTableName,
+	const ListTableColumns & listTableColumns,
+	const MapIndexKey & mapIndexKey,
+	const QString &strWherePredicate,
+	const QString &strOrderByPredicate,
+	KPGKateXmlEditorDialog *pKateXmlEditorDialog
+	)
+ 	: 
+	KXMLGUIClient(pPoGreView),
+	QTable(parent, "DataTable"),
+ 	m_pFind(0),
+ 	m_pKateXmlEditorDialog(pKateXmlEditorDialog)
+{
+	m_bOpeningReload = true;
+	m_state = stateRefresh;
+	m_editedRow = -1;
+	m_bInplaceEditing = false;
+	
+	m_pConnection = pConnection;
+	m_strNamespaceName = strNamespaceName;
+	m_strTableName = strTableName;
+	m_strWherePredicate = strWherePredicate;
+	m_strOrderByPredicate = strOrderByPredicate;
+			
+	// Setup GUI
+	setXMLFile("kpgdatatable.rc", true);
+	m_pXmlGuiFactory = pXmlGuiFactory;
+	m_bIsAddedToGuiFactory = false;
+
+	//-----------------------------------------------------------------
+	// Edit actions    
+	m_pActEditFind = KStdAction::find( this, SLOT(slotEditFind()), actionCollection(), "edit_find" );
+	
+	m_pActEditFindNext = KStdAction::findNext( this, SLOT(slotEditFindNext()), actionCollection(), "edit_find_next" );
+
+	//-----------------------------------------------------------------
+	// Datatable actions       
+	
+	m_pActFirstRow = new KAction(i18n("First row"), "player_start", 0, this, SLOT(slotFirstRow()), actionCollection(), "datatable_first_row");
+  	
+	m_pActPreviousRow = new KAction(i18n("Previous row"), "1leftarrow", 0, this, SLOT(slotPreviousRow()), actionCollection(), "datatable_previous_row");
+	
+	m_pActNextRow = new KAction(i18n("Next row"), "1rightarrow", 0, this, SLOT(slotNextRow()), actionCollection(), "datatable_next_row");
+	
+	m_pActLastRow = new KAction(i18n("Last row"), "player_end", 0, this, SLOT(slotLastRow()), actionCollection(), "datatable_last_row");
+	
+	m_pActEditCell = new KAction(i18n("Edit cell"), "edittool", Key_F2, this, SLOT(slotEditCell()), actionCollection(), "datatable_edit_cell");
+	
+	m_pActClearCell = new KAction(i18n("Clear cell"), "deletecell", Key_Delete, this, SLOT(slotClearCell()), actionCollection(), "datatable_clear_cell");
+	
+	m_pActInsertRow = new KAction(i18n("Insert row"), "insert_table_row", CTRL+Key_Insert, this, SLOT(slotInsertRow()), actionCollection(), "datatable_insert_row");
+	
+	m_pActDeleteRow = new KAction(i18n("Delete row"), "delete_table_row", CTRL+Key_Delete, this, SLOT(slotDeleteRow()), actionCollection(), "datatable_delete_row");
+	
+	m_pActCommitChanges = new KAction(i18n("Update changes"), "ok", CTRL+Key_Return, this, SLOT(slotCommitChanges()), actionCollection(), "datatable_commit_changes");
+	
+	m_pActCancelChanges = new KAction(i18n("Cancel changes"), "cancel", Key_Escape, this, SLOT(slotCancelChanges()), actionCollection(), "datatable_cancel_changes");
+	
+  	m_pActReloadData = new KAction(i18n("Reload data ..."), "reload", Key_F8, this, SLOT(slotReloadData()), actionCollection(), "datatable_reload_data"); 
+  	
+  	m_pActStopReload = new KAction(i18n("Stop reload data"), "stop", 0, this, SLOT(slotStopReload()), actionCollection(), "datatable_stop_reload");
+  	
+  	m_pActLoadLob = new KAction(i18n("Load from file..."), "fileopen", 0, this, SLOT(slotLoadLob()), actionCollection(), "datatable_load_lob");
+    
+    m_pActSaveLob = new KAction(i18n("Save to file..."), "filesaveas", 0, this, SLOT(slotSaveLob()), actionCollection(), "datatable_save_lob");
+    
+    m_pActEditLobInEditor = new KAction(i18n("Edit..."), "pencil", 0, this, SLOT(slotEditLobInEditor()), actionCollection(), "datatable_edit_lob_editor");
+
+	//---------------------------------------------------------------------------------------------
+				
+	//--- Copy info about primary key columns
+	for(MapIndexKey::ConstIterator it = mapIndexKey.begin(); it != mapIndexKey.end(); ++it ) 
+    {
+    	m_mapIndexKey[it.key()] = it.data();
+    }
+    	
+	m_listTableColumns = listTableColumns;
+	
+	//--- Look, if PK is auto generated by sequence
+	m_bAutoGeneratedPrimaryKey = false;
+    
+    if(mapIndexKey.size() == 1)
+    {
+    	MapIndexKey::ConstIterator it = mapIndexKey.begin();
+    	
+    	QString strPKColumnName(it.data());
+    	
+    	for(ListTableColumns::const_iterator cit = m_listTableColumns.begin(); cit != m_listTableColumns.end(); ++cit)
+		{ 
+			if(strPKColumnName == (*cit).name())
+			{
+				if((*cit).hasDefault() && ((*cit).defaultValue().startsWith("nextval")))
+				{
+					m_strNextValueForPrimaryKey = (*cit).defaultValue();
+					m_bAutoGeneratedPrimaryKey = true;
+					m_strPKColumnName = strPKColumnName;
+					kdDebug() << k_funcinfo "Found autogenerated PK: " <<  m_strNextValueForPrimaryKey << endl;
+				}
+				break;
+			}
+        }
+    }
+    	
+	//-------------------------------------------------------------------------
+	setSorting( false );
+  	setSelectionMode( QTable::SingleRow );
+  	
+  	m_ConnectionInThread.setEventReceiver(this, &m_pqxxResult);
+		
+	disableAllActions();
+	
+	connect(this, SIGNAL(currentChanged(int, int)), this, SLOT(slotCurrentChanged(int, int)));
+	
+	connect(this, SIGNAL(valueChanged(int, int)), this, SLOT(slotValueChanged(int, int)));
+	
+	connect(this, SIGNAL(doubleClicked(int, int, int, const QPoint &)), this, SLOT(slotDoubleClicked(int, int, int, const QPoint &)));
+	
+	connect(this, SIGNAL(contextMenuRequested(int, int, const QPoint &)), this, SLOT(slotContextMenuRequested(int, int, const QPoint &)));
+	
+	connect(horizontalHeader(), SIGNAL(clicked(int)), this, SLOT(slotHorzHeaderClicked(int)));
+}
+
+
+KPGDataTable::~KPGDataTable()
+{
+	if(m_pFind != 0) delete m_pFind;
+
+	removeFromGuiFactory();
+}
+
+// Add yourself to GUI factory
+void KPGDataTable::addToGuiFactory()
+{
+	if(!m_bIsAddedToGuiFactory)
+    {
+    	m_pXmlGuiFactory->addClient(this);
+    	m_bIsAddedToGuiFactory = true;
+    	kdDebug() << k_funcinfo << endl;
+    }
+}
+    
+// Remove yourself from GUI factory
+void KPGDataTable::removeFromGuiFactory()
+{
+    if(m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->removeClient(this);
+        m_bIsAddedToGuiFactory = false;
+        kdDebug() << k_funcinfo << endl;
+    }
+}
+
+void KPGDataTable::slotEditFind()
+{
+	findFirst(m_listOfResultQuerySearchHistory);
+}
+
+void KPGDataTable::slotEditFindNext()
+{
+	findNext();
+}
+
+void KPGDataTable::slotFirstRow()
+{
+    firstRow();
+}
+
+void KPGDataTable::slotPreviousRow()
+{
+	previousRow();
+}
+
+void KPGDataTable::slotNextRow()
+{
+	nextRow();
+}
+
+void KPGDataTable::slotLastRow()
+{
+	lastRow();
+}
+
+void KPGDataTable::slotEditCell()
+{
+	editCell();
+}
+
+
+void KPGDataTable::slotClearCell()
+{
+	clearCell();
+}
+
+
+void KPGDataTable::slotInsertRow()
+{
+	insertRow();
+}
+
+
+void KPGDataTable::slotDeleteRow()
+{
+	deleteRow();
+}
+
+void KPGDataTable::slotCommitChanges()
+{
+	commitChanges();
+}
+
+
+void KPGDataTable::slotCancelChanges()
+{
+	cancelChanges();
+}
+
+void KPGDataTable::slotReloadData()
+{
+    reloadData();
+}
+
+void KPGDataTable::slotStopReload()
+{
+    stopReload();
+}
+
+void KPGDataTable::slotLoadLob()
+{
+    KURL url = KFileDialog::getOpenURL(QString::null,	i18n("*.*|All files"), this, i18n("Open File..."));
+		
+	if(!url.isEmpty())
+	{
+		loadLob(url);
+	}
+}
+
+void KPGDataTable::slotSaveLob()
+{
+	KURL url = KFileDialog::getSaveURL(QDir::currentDirPath(),
+        	i18n("*.*|All files"), this, i18n("Save as..."));
+		
+	if(QFile::exists(url.path()))
+	{
+	     // Is it already existing ?
+  	     QString error(url.path()); 	
+		 error.append(i18n(" already exists!\n Do you wish to overwrite it ?"));
+         if (KMessageBox::questionYesNo(this, error, i18n("Overwrite File ?")) != KMessageBox::Yes) 
+         {
+            return;
+         }
+	}
+	
+	if(!url.isEmpty())
+	{
+    	saveLob(url);
+    }
+}
+
+void KPGDataTable::slotEditLobInEditor()
+{
+    editLobInEditor();
+}
+
+
+// Filters events - This is necessary filter moving current row to force call commitChanges()
+// before continuing. If commitChanges() fails, return true to stay on current row
+bool KPGDataTable::eventFilter(QObject *pObject, QEvent *pEvent)
+{
+	switch(pEvent->type()) 
+	{
+		case QEvent::KeyPress: 
+		{
+			QKeyEvent *pKeyEvent = (QKeyEvent*) pEvent;
+				
+			if(pKeyEvent->key() == Key_Up || pKeyEvent->key() == Key_Prior ||
+					pKeyEvent->key() == Key_Home || pKeyEvent->key() == Key_Down ||
+					pKeyEvent->key() == Key_Next || pKeyEvent->key() == Key_End)
+			{
+				if(isEditing())
+				{
+					QWidget *editorWidget = cellWidget(currentRow(), currentColumn());
+					if(editorWidget && pObject == editorWidget)
+					{
+						endEdit(currentRow(), currentColumn(), true, true); // editMode() != Editing
+					}
+				}
+				
+				if((m_state == stateUpdate) || (m_state == stateInsert))
+				{
+					//kdDebug() << "Keyboard event filter fired" << endl;
+					if(commitChanges() == false) return true; // not allow change current cell, if commitChanges() fails
+				}
+			}
+			
+			break;
+		}
+		default: break;
+	}
+	
+
+	bool bResult = QTable::eventFilter(pObject, pEvent);
+	setActions();
+	return bResult;
+}
+
+// This event handler is called whenever the QScrollView receives a mousePressEvent(): the press position in e is translated to be a point on the contents.
+void KPGDataTable::contentsMousePressEvent(QMouseEvent* pMouseEvent)
+{
+    if (! isEditing()) 
+    {
+		int nRow = rowAt( pMouseEvent->pos().y() );
+		fixRow2( nRow, pMouseEvent->pos().y() );
+						
+		// If we in Edit or Insert mode, send dirty row to database
+		if((m_editedRow >= 0) && ((m_state == stateUpdate) || (m_state == stateInsert)) && (m_editedRow != nRow))
+		{
+			//kdDebug() << "Mouse event filter fired" << endl;
+				
+			if(commitChanges() == false)
+			{
+				return; // not allow change current cell, if commitChanges() fails
+			}
+		}
+	}
+	
+	QTable::contentsMousePressEvent(pMouseEvent);
+}
+
+/**
+  * Reimplemented for update KActions state purpose. 
+  * m_bInplaceEditing must be used, because QTable::EditMode is changed after QTable::beginEdit is processed, but this is too late.
+*/ 
+QWidget *KPGDataTable::beginEdit(int nRow, int nCol, bool bReplace)
+{
+	QWidget *pWidget = QTable::beginEdit(nRow, nCol, bReplace);
+	if(pWidget != 0)
+		m_bInplaceEditing = true;
+	
+	setActions();
+	return pWidget;
+}
+
+// Reimplemented for update KActions state purpose
+void KPGDataTable::endEdit(int nRow, int nCol, bool bAccept, bool bReplace)
+{
+	QTable::endEdit(nRow, nCol, bAccept, bReplace);
+	m_bInplaceEditing = false;
+	
+	setActions();
+}
+
+// It's here, because QTable::fixRow is private
+void KPGDataTable::fixRow2( int &row, int y )
+{
+    if ( row == -1 ) 
+    {
+	if ( y < 0 )
+	    row = 0;
+	else
+	    row = numRows() - 1;
+    }
+}
+
+// Disable all Datatable related KActions
+void KPGDataTable::disableAllActions()
+{
+    m_pActFirstRow->setEnabled(false);
+    m_pActPreviousRow->setEnabled(false);
+    m_pActNextRow->setEnabled(false);
+    m_pActLastRow->setEnabled(false);
+    m_pActEditCell->setEnabled(false);
+    m_pActClearCell->setEnabled(false);
+    m_pActInsertRow->setEnabled(false);
+    m_pActDeleteRow->setEnabled(false);
+    m_pActCommitChanges->setEnabled(false);
+    m_pActCancelChanges->setEnabled(false);
+    m_pActReloadData->setEnabled(false);
+    m_pActStopReload->setEnabled(false);
+    m_pActEditFind->setEnabled(false); 
+    m_pActEditFindNext->setEnabled(false);
+}
+
+// Enable/disable Datatable related KActions with regards to datatable state
+void KPGDataTable::setActions()
+{
+	if(m_state == stateRefresh)
+	{
+		disableAllActions();
+		m_pActStopReload->setEnabled(true);
+		return;
+	}
+	else
+	{
+		m_pActStopReload->setEnabled(false);
+	}
+	
+	if(currentRow() >= 0)
+	{
+		m_pActFirstRow->setEnabled((currentRow() > 0) && !m_bInplaceEditing);
+		m_pActPreviousRow->setEnabled((currentRow() > 0) && !m_bInplaceEditing);
+		m_pActNextRow->setEnabled((currentRow() < numRows() - 1) && !m_bInplaceEditing);
+		m_pActLastRow->setEnabled((currentRow() < numRows() - 1) && !m_bInplaceEditing);
+		
+		m_pActEditCell->setEnabled(!m_bInplaceEditing);
+		m_pActClearCell->setEnabled(!m_bInplaceEditing);
+		m_pActDeleteRow->setEnabled(((m_state == stateView) && !m_bInplaceEditing));
+		
+		m_pActCommitChanges->setEnabled((m_state != stateView) && !m_bInplaceEditing);
+		m_pActCancelChanges->setEnabled((m_state != stateView));
+    }
+    else
+    {
+    	disableAllActions();
+    }
+    
+    m_pActInsertRow->setEnabled((m_state == stateView) && !m_bInplaceEditing);
+    m_pActReloadData->setEnabled((m_state == stateView) && !m_bInplaceEditing);
+    
+    m_pActEditFind->setEnabled(numRows() > 0);
+}
+
+void KPGDataTable::reloadData()
+{
+	if(m_bOpeningReload == false)
+	{
+		// If it's not opening load, give chance to user to correct WHERE predicate
+		KPGDataTableDialog dlg(this);
+		dlg.setWherePredicate(m_strWherePredicate);
+		dlg.setOrderByPredicate(m_strOrderByPredicate);
+		if( dlg.exec() != QDialog::Accepted )
+		{
+			return;
+		}
+		m_strWherePredicate = dlg.wherePredicate();
+		m_strOrderByPredicate = dlg.orderByPredicate();
+	}
+	else
+	{
+		m_bOpeningReload = false; // This is first reload, KPGDataTableDialog was already launched
+	}
+	
+	// clear previous result
+	setNumRows(0);
+	setNumCols(0);
+		
+	m_state = stateRefresh;
+	m_editedRow = -1;
+	disableAllActions();
+	m_pActStopReload->setEnabled(true);
+	setEnabled(false);
+	((QWidget *) parent())->setCursor(KCursor::waitCursor());
+		
+	// Run connection in thread
+	m_ConnectionInThread.disconnectFromServer(); // close connection if any
+	
+	try
+	{
+		m_ConnectionInThread.connectToServer(m_pConnection->options());
+	}
+	catch (const std::exception &e)
+    {
+        kdError() << "Failed to open connection " << e.what() << endl;
+        KMessageBox::sorry(this, e.what());
+        return;
+    }
+    
+	QString strSql(sqlForSelectAllRows());
+	m_ConnectionInThread.setSQL(strSql, KPGConnection::eTransNormal);
+	m_ConnectionInThread.start();
+}
+
+void KPGDataTable::customEvent(QCustomEvent *pEvent)
+{
+	KPGQueryResultEvent *pQueryResultEvent = static_cast <KPGQueryResultEvent *> (pEvent);
+	
+	// display result
+	displayResult();
+	
+	if(pQueryResultEvent->error().isEmpty() == false)
+	{
+		KMessageBox::error(this, pQueryResultEvent->error());
+	}
+			
+	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	setEnabled(true);
+	m_ConnectionInThread.wait();
+	
+	m_state = stateView;
+	setActions();
+}
+
+// Display popup menu
+void KPGDataTable::popupContextMenu(const QString & strMenuName, const QPoint & pos)
+{
+	QWidget * pContainer = m_pXmlGuiFactory->container(strMenuName, this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name (" << strMenuName << ")" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}
+
+// Display SQL result
+void KPGDataTable::displayResult()
+{
+	// Fill output area with query result
+	unsigned int nTotalRows = m_pqxxResult.size();
+	unsigned int nTotalCols = m_pqxxResult.columns();
+		
+	setNumRows(nTotalRows);
+	setNumCols(nTotalCols);
+	
+	// Set field names into table header
+	QHeader* hHeader = horizontalHeader();
+	
+	for(unsigned int nCol = 0; nCol < nTotalCols; nCol++)
+	{
+		QString strColumnName(m_pqxxResult.column_name(nCol));
+		
+		QPixmap *pTypePixmap = KPGTableColumn::getPixmapForType(m_listTableColumns[nCol].typName());
+		
+		bool bColumnIsInPrimaryKey = false;
+		
+		for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); ++it ) 
+		{
+			if(it.data() == strColumnName)
+			{
+				bColumnIsInPrimaryKey = true;
+				break;
+			}
+		}
+		
+		if(!bColumnIsInPrimaryKey) // is column part of primary key ?
+		{	
+			// No - set icon for type on header
+			hHeader->setLabel(nCol, QIconSet(*pTypePixmap), strColumnName);
+		}
+		else
+		{
+			// Yes - set icon for type + Primary Key icon on header
+			QPixmap joinedPixmap(32, 16, -1, QPixmap::BestOptim);
+			
+			copyBlt (&joinedPixmap, 0, 0, pTypePixmap);
+			copyBlt (&joinedPixmap, 16, 0, KPGTreeItem::m_pIconPrimaryKeyConstr);
+			
+			QIconSet iconSet(joinedPixmap);
+			iconSet.setIconSize (QIconSet::Small, QSize(32, 16));
+			
+			hHeader->setLabel(nCol, iconSet, strColumnName);
+		}
+	}
+		
+	// Set checkboxes to boolean columns
+	for(int currentCol = 0; currentCol < numCols(); currentCol++)
+	{
+	   // Disallow direct editing BLOBs
+	   if(m_listTableColumns[currentCol].typName() == "text")
+	   {
+	       setColumnReadOnly(currentCol, true);
+	   }
+	   else if(m_listTableColumns[currentCol].typName() == "xml")
+	   {
+	       setColumnReadOnly(currentCol, true);
+	   }
+	   else if(m_listTableColumns[currentCol].typName() == "bytea")
+	   {
+	       setColumnReadOnly(currentCol, true);
+	   }
+	}
+	
+	// data
+	int nTableDataRow = 0;
+	for(unsigned int nRow = 0; nRow < nTotalRows; nRow++)
+	{
+		displayOneRow(nTableDataRow++, nRow, nTotalCols, m_pqxxResult);
+	}
+	
+	for(unsigned int nCol = 0; nCol < nTotalCols; nCol++)
+	{
+		adjustColumn(nCol);
+	}
+	
+	m_pqxxResult.clear(); // free memory
+}
+
+// Display data from one resultset row
+void KPGDataTable::displayOneRow(int nTableDataRow, unsigned int nRow, unsigned int nTotalCols, pqxx::result &pqxxResult)
+{
+	for(unsigned int nCol = 0; nCol < nTotalCols; nCol++)
+	{
+		QString strValue(m_pConnection->textCodec()->toUnicode(pqxxResult[nRow][nCol].c_str()));
+		
+		// Truncate long BLOBs
+	   if((m_listTableColumns[nCol].typName() == "text") ||
+	   		(m_listTableColumns[nCol].typName() == "xml") ||
+	   		(m_listTableColumns[nCol].typName() == "bytea"))
+	   {
+	       if(strValue.length() > 30)
+	       {
+	       		strValue.truncate(30);
+	       		strValue.append(" ...");
+	       }
+	   }
+		
+		setText(nTableDataRow, nCol, strValue);
+	}
+}
+
+void KPGDataTable::stopReload()
+{
+	if(m_ConnectionInThread.running ())
+	{
+		m_ConnectionInThread.terminate();
+		m_ConnectionInThread.wait();
+		m_ConnectionInThread.leaveConnection();
+				
+		m_pqxxResult.clear(); // free memory
+		
+		m_state = stateView;
+		setActions();
+		((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	} 
+}
+
+// Create prepared statement for DML INSERT operation
+void KPGDataTable::prepareInsertStatement(const std::string &stdstrPrepStmtName)
+{
+	QString strDml("INSERT INTO " + KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName) + " VALUES (");
+	
+	bool bFirst = true;
+	int iParameterIndex = 1;
+	for(int currentCol = 0; currentCol < numCols(); currentCol++)
+    { 
+        if(!bFirst) { strDml.append(","); }
+        bFirst = false;
+       	
+       	if((text(m_editedRow, currentCol) == QString::null) || text(m_editedRow, currentCol).isEmpty())
+       	{
+       	    if(m_listTableColumns[currentCol].hasDefault())
+       	    {
+       	        if(m_bAutoGeneratedPrimaryKey && (m_strPKColumnName == m_listTableColumns[currentCol].name()))
+       	        {
+       	        	strDml.append(QString(" $%1").arg(iParameterIndex++));
+       	        }
+       	        else
+       	        {
+       	        	strDml.append(" DEFAULT");
+       	        }
+       	    }
+       	    else if(m_listTableColumns[currentCol].isNotNull() == false)
+       	    {
+       	        strDml.append(" NULL");
+       	    }
+       	    else
+       	    {
+       	        kdError() << k_funcinfo << "Field cannot be DEFAULT or NULL. " << m_listTableColumns[currentCol].name() << endl;
+       	    }
+       	}
+       	else
+       	{
+       	    strDml.append(QString(" $%1").arg(iParameterIndex++));
+       	}
+    }
+	
+	strDml.append(")");
+	kdDebug() << strDml << endl;
+	
+	pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strDml);
+	
+	// Add declaring parameters to prepared statements - INSERTed fields
+	for(int currentCol = 0; currentCol < numCols(); currentCol++)
+    { 
+       	if((text(m_editedRow, currentCol) == QString::null) || text(m_editedRow, currentCol).isEmpty())
+       	{
+       	    if(m_listTableColumns[currentCol].hasDefault())
+       	    {
+       	        if(m_bAutoGeneratedPrimaryKey && (m_strPKColumnName == m_listTableColumns[currentCol].name()))
+       	        {
+       	        	m_pConnection->setPrepareDeclaration(pqxxPrepDecl, m_listTableColumns[currentCol].typName());
+       	        }
+      		}
+      	 }
+       	 else
+       	 {
+       	    	m_pConnection->setPrepareDeclaration(pqxxPrepDecl, m_listTableColumns[currentCol].typName());
+       	 }
+    }
+}
+
+// Create prepared statement for DML UPDATE operation
+void KPGDataTable::prepareUpdateStatement(const std::string &stdstrPrepStmtName)
+{
+	QString strDml("UPDATE " + KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName) + " SET ");
+				
+	// Add dirty field names to strDml
+	int currentCol = 0;
+	bool bFirst = true;
+	int iParamsIndex = 0;
+	int nDirtyFields = 0; // only for debugging
+	
+    for(ListRowFields::iterator it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it)
+    { 
+       	if((*it).isDirty())
+       	{
+       		if(!bFirst) { strDml.append(","); }
+       		bFirst = false;
+       		
+       		if((text(m_editedRow, currentCol) == QString::null) || text(m_editedRow, currentCol).isEmpty())
+            {
+                if(m_listTableColumns[currentCol].isNotNull() == false)
+                {
+                    strDml.append(KPGUtil::quotedName(m_listTableColumns[currentCol].name()) + "=NULL");
+                }
+                else
+                {
+                    kdError()  << k_funcinfo << "Field cannot be DEFAULT or NULL. " << m_listTableColumns[currentCol].name() << endl;
+                }
+            }
+            else
+            {
+                strDml.append(" " + KPGUtil::quotedName(m_listTableColumns[currentCol].name()) + QString("=$%1").arg(++iParamsIndex));
+            }
+            
+            nDirtyFields++;
+       	}
+       	currentCol++;
+    }
+	
+	if(nDirtyFields == 0)
+		kdError() << "Count of dirty fields is 0 !!!" << endl;
+	
+	strDml.append(wherePredicateForPrimaryKey(iParamsIndex));
+	kdDebug() << strDml << endl;
+	
+	pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strDml);
+	
+	// Add declaring parameters to prepared statements - UPDATEd fields
+	currentCol = 0;
+	for(ListRowFields::const_iterator it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it)
+    { 
+       	if((*it).isDirty())
+       	{
+       		if((text(m_editedRow, currentCol) != QString::null) && (text(m_editedRow, currentCol).isEmpty() == false))
+       		{   
+       		   m_pConnection->setPrepareDeclaration(pqxxPrepDecl, m_listTableColumns[currentCol].typName());
+       	    }
+       	}
+       	currentCol++;
+    }
+	
+	// Add declaring parameters to prepared statements - primary key fields
+	for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+    {
+		pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+	}
+}
+
+// Create prepared statement for DML DELETE operation
+void KPGDataTable::prepareDeleteStatement(const std::string &stdstrPrepStmtName)
+{
+	QString strDml("DELETE FROM " + KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+	strDml.append(wherePredicateForPrimaryKey(0));
+	kdDebug() << strDml << endl;
+	
+	pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strDml);
+	
+    // Add declaring parameters to prepared statements - primary key fields
+	for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+    {
+		pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+	}
+}
+
+// Create prepared statement for SQL SELECT operation
+void KPGDataTable::prepareSelectStatement(const std::string &stdstrPrepStmtName)
+{
+	QString strSql(sqlForSelectOneRow());
+	kdDebug() << strSql << endl;
+	
+	pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strSql);
+	
+    // Add declaring parameters to prepared statements - primary key fields
+	for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+    {
+		pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+	}
+}
+
+// Move current row in data table to first
+void KPGDataTable::firstRow()
+{
+    // If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+    if(numRows() > 0)
+        setCurrentCell(0, currentColumn());
+        
+    m_pActFirstRow->setEnabled(false);
+    m_pActPreviousRow->setEnabled(false);
+}
+
+// Move current row in data table to previous
+void KPGDataTable::previousRow()
+{
+    // If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+    if(currentRow() < 0) return;
+    
+    if((numRows() > 0) && (currentRow() > 0))
+        setCurrentCell(currentRow() - 1, currentColumn());
+
+    m_pActPreviousRow->setEnabled(currentRow() > 0);
+}
+
+// Move current row in data table to next
+void KPGDataTable::nextRow()
+{
+    // If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+    if(currentRow() < 0) return;
+    if((numRows() > 0) && (currentRow() < numRows() - 1))
+        setCurrentCell(currentRow() + 1, currentColumn());
+
+    m_pActNextRow->setEnabled(currentRow() < numRows() - 1);
+}
+
+// Move current row in data table to last
+void KPGDataTable::lastRow()
+{
+    // If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+    if(numRows() > 0)
+        setCurrentCell(numRows(), currentColumn());
+        
+    m_pActNextRow->setEnabled(false);
+    m_pActLastRow->setEnabled(false);
+}
+
+// Edit selected cell in data table
+void KPGDataTable::editCell()
+{
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	if(nCol < 0) return;
+	
+	if((m_listTableColumns[nCol].typName() == "text") || 
+		(m_listTableColumns[nCol].typName() == "xml") ||
+		(m_listTableColumns[nCol].typName() == "bytea"))
+	{
+		slotDoubleClicked(nRow, nCol, 0, QPoint(0, 0));
+	}
+	else
+	{
+		QTable::editCell(nRow, nCol);
+	}
+}
+
+// Clear selected cell in data table
+void KPGDataTable::clearCell()
+{
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	if(nCol < 0) return;
+	
+	setText(nRow, nCol, "");
+	slotValueChanged(nRow, nCol);
+}
+    
+// Insert new row into data table
+void KPGDataTable::insertRow()
+{
+	if(m_state != stateView)
+	{
+		kdError()  << k_funcinfo << "Wrong state, expect stateView" <<  endl;
+		return;
+	}
+	
+	int nRows = numRows();
+	
+	// Insert new row at end of table
+	insertRows(nRows);
+	
+	setCurrentCell(nRows, 0);
+	m_state = stateInsert;
+	m_editedRow = nRows;
+	
+	setActions();
+}
+    
+// Delete selected row from data table
+void KPGDataTable::deleteRow()
+{
+	if(m_state != stateView)
+	{
+		kdError() << k_funcinfo "Wrong state, expect stateView" <<  endl;
+		return;
+	}
+	
+	bool bConfirmDelRow = KPoGreView::configuration()->datatable()->confirmDelRow();
+	if(bConfirmDelRow && (KMessageBox::questionYesNo(this, i18n("Really delete row ?")) != KMessageBox::Yes)) return ;
+		
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	
+	bool bSuccess = runDml(dmlDelete);
+	if(bSuccess)
+	{
+		removeRow(currentRow());
+		
+		if((numRows() > 0) && (nRow < numRows() - 1))
+		{
+			setCurrentCell(nRow, nCol);
+		}
+	}
+}
+    
+// UPDATE or INSERT changes from data table current row to database
+bool KPGDataTable::commitChanges()
+{
+	bool bSuccess = true;
+	
+	// If current row is changed, commit changed row to DB
+    if(m_state == stateView)
+    {
+    	kdError() << k_funcinfo "Wrong state: stateView" <<  endl;
+    }
+    else if(m_state == stateUpdate)
+    {
+    	//--- UPDATE m_editedRow to database table 
+    	
+    	// Look at dirty fields, check nullability
+		int nCol = 0;
+		for(ListRowFields::const_iterator cit = m_listRowFields.begin(); cit != m_listRowFields.end(); ++cit)
+        { 
+        	if((*cit).isDirty()) 
+        	{
+        	   if((text(m_editedRow, nCol) == QString::null) || text(m_editedRow, nCol).isEmpty())
+                {
+                    if(m_listTableColumns[nCol].isNotNull())
+                    {
+                        KMessageBox::sorry(this, i18n("Field %1 can't be NULL !").arg(m_listTableColumns[nCol].name()));
+                        setCurrentCell(m_editedRow, nCol);
+                        return false;
+                    }
+                }
+        	}
+        	
+        	nCol++;
+        }
+		
+		bSuccess = runDml(dmlUpdate);
+		if(bSuccess)
+		{
+			// Sucessfully updated - clear dirty flags
+			for(ListRowFields::iterator it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it) 
+			{ 
+				(*it).clearDirty();
+			}
+		}
+		else
+		{
+			return false;
+		}
+	}
+	else
+	{
+		// INSERT m_editedRow into database table
+		
+		// Check fields for nullability
+		for(int nCol = 0; nCol < numCols(); nCol++)
+        { 
+            if((text(m_editedRow, nCol) == QString::null) || text(m_editedRow, nCol).isEmpty())
+            {
+                if((m_listTableColumns[nCol].hasDefault() == false) &&                                            m_listTableColumns[nCol].isNotNull())
+                {
+                    KMessageBox::sorry(this, i18n("Field %1 can't be NULL !").arg(m_listTableColumns[nCol].name()));
+                        setCurrentCell(m_editedRow, nCol);
+                    setCurrentCell(m_editedRow, nCol);
+                    return false;
+                }
+            }
+        }
+		
+		bSuccess = runDml(dmlInsert);
+		if(!bSuccess)
+		{
+		     return false;
+		}
+		else
+		{
+		    // Reload current row from database
+		    refreshRow();
+		}
+	}
+	
+	m_state = stateView;
+	m_editedRow = -1;
+	
+	setActions();
+	return bSuccess;
+}
+
+// Generate new primary key value from sequence
+int KPGDataTable::generateSerialPrimaryKeyValue(pqxx::work &pqxxXaction)
+{
+	int iSerial;
+	
+	if(m_bAutoGeneratedPrimaryKey == false)
+	{
+		kdError() << k_funcinfo "PK is not autogenerated !" <<  endl;
+		return 0;
+	}
+	
+	QString strSql("SELECT ");
+	strSql.append(m_strNextValueForPrimaryKey);
+	kdDebug() << strSql << endl;
+	
+	try
+	{
+		pqxx::result pqxxResult = pqxxXaction.exec((std::string) strSql);
+	
+		if(pqxxResult.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return false;
+		}
+		
+		pqxxResult[0][0].to(iSerial);
+		
+		pqxxXaction.commit();
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strSql, e.what());
+		dlg.exec();
+		throw;
+	}
+	
+	return iSerial;
+}
+
+// Generate new primary key value from sequence
+long KPGDataTable::generateBigSerialPrimaryKeyValue(pqxx::work &pqxxXaction)
+{
+	long lSerial;
+
+	if(m_bAutoGeneratedPrimaryKey == false)
+	{
+		kdError() << k_funcinfo "PK is not autogenerated !" <<  endl;
+		return 0;
+	}
+	
+	QString strSql("SELECT ");
+	strSql.append(m_strNextValueForPrimaryKey);
+	kdDebug() << strSql << endl;
+	
+	try
+	{
+		pqxx::result pqxxResult = pqxxXaction.exec((std::string) strSql);
+	
+		if(pqxxResult.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return false;
+		}
+		
+		pqxxResult[0][0].to(lSerial);
+		
+		pqxxXaction.commit();
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strSql, e.what());
+		dlg.exec();
+		throw;
+	}
+	
+	return lSerial;
+}
+
+// Refresh the current row from database
+void KPGDataTable::refreshRow()
+{
+    int nRow = currentRow();
+	if(nRow < 0) return;
+	
+	std::string stdstrPrepStmtName("S_" + m_strNamespaceName + "_" + m_strTableName);
+	
+	bool bNeedUnprepare = false;
+	try
+	{	
+		((QWidget *) parent())->setCursor(KCursor::waitCursor());
+		
+		prepareSelectStatement(stdstrPrepStmtName);
+		bNeedUnprepare = true;
+				
+		work pqxxXaction(*m_pConnection, stdstrPrepStmtName);
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+				
+		// Append primary key values to vParams
+		fillParametersForPrimaryKey(nRow, pqxxInvocation);
+		
+		// Execute query
+		pqxx::result pqxxResult = pqxxInvocation.exec();
+		
+		// Fill output area with query result - one row
+		unsigned int nTotalRows = pqxxResult.size();
+		unsigned int nTotalCols = pqxxResult.columns();
+		
+		if(nTotalRows != 1)
+		{
+			kdError() << k_funcinfo "Expect one row !" <<  endl;
+			throw PGSTD::runtime_error(i18n("Expect one row !"));
+		}
+		
+		if(nTotalCols != (unsigned int) numCols())
+		{
+			kdError() << k_funcinfo "Columns numbers not match !" <<  endl;
+			throw PGSTD::runtime_error("Columns numbers not match ! Table structure was changed ?");
+		}
+		
+		displayOneRow(nRow, 0, nTotalCols, pqxxResult);
+		
+		bNeedUnprepare = false;
+		m_pConnection->unprepare(stdstrPrepStmtName);
+		 
+		// Refresh also undo buffer
+		m_listRowFields.clear();
+    	for(int nCol = 0; nCol < numCols(); nCol++)
+		{
+			m_listRowFields.append(KPGDataTableField(text(nRow, nCol)));
+		} 
+		 
+		((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	}
+	catch (const std::exception &e)
+    {
+    	if(bNeedUnprepare)
+		{
+		     m_pConnection->unprepare(stdstrPrepStmtName); 
+		}
+		
+    	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+        KMessageBox::error(this, e.what());
+        return;
+	} 
+}
+ 
+// Cancel changes in data table
+void KPGDataTable::cancelChanges()
+{
+	if(m_state == stateInsert)
+	{
+		// Remove last row
+		removeRow(numRows() - 1);
+	}
+	else if(m_state == stateUpdate)
+	{
+		// Get back old values 
+		ListRowFields::iterator it;
+		int currentCol = 0;
+    	for(it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it)
+        { 
+        	if((*it).isDirty())
+        	{
+        		setText(m_editedRow, currentCol, (*it).oldValue());
+        		(*it).clearDirty();
+        	}
+        	currentCol++;
+        }
+	}
+	else
+	{
+		kdError() << k_funcinfo "Wrong state: stateView" <<  endl;
+	}
+	
+	// Clear dirty flags
+	for(ListRowFields::iterator it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it) 
+	{ 
+		(*it).clearDirty();
+	}
+			
+	m_editedRow = -1;
+	m_state = stateView;
+	
+	setActions();
+}
+
+// Load LOB from file
+void KPGDataTable::loadLob(const KURL& url)
+{
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	if(nCol < 0) return;
+	
+	if((m_listTableColumns[nCol].typName() != "text") &&
+	(m_listTableColumns[nCol].typName() != "xml") &&
+	(m_listTableColumns[nCol].typName() != "bytea"))
+	{
+		kdError() << k_funcinfo << "Field is not text, xml or bytea " << endl;
+		return;
+	}
+	
+	QString strPrepStmtName("LB_" + m_strNamespaceName + "_" + m_strTableName);
+	std::string stdstrPrepStmtName(strPrepStmtName.latin1());
+	
+	try
+	{
+		((QWidget *) parent())->setCursor(KCursor::waitCursor());
+		
+		work pqxxXaction(*m_pConnection, stdstrPrepStmtName);
+		
+		pqxx::largeobject pqxxLargeObject(pqxxXaction);
+		pqxxLargeObject = largeobject(pqxxXaction, url.path());
+		
+		// NOTE: Loaded file is expected in Connection encoding !
+		if(setLargeObject(pqxxLargeObject, nRow, nCol, stdstrPrepStmtName, pqxxXaction) == false)
+		{
+		  pqxxXaction.abort();
+		  return;
+		}
+		
+		refreshRow();
+	}
+	catch (const std::exception &e)
+    {
+    	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+        KMessageBox::error(this, e.what());
+        return;
+	} 
+}
+
+// Save LOB to file
+void KPGDataTable::saveLob(const KURL& url)
+{
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	if(nCol < 0) return;
+	
+	if((m_listTableColumns[nCol].typName() != "text") &&
+	(m_listTableColumns[nCol].typName() != "xml") &&
+	(m_listTableColumns[nCol].typName() != "bytea"))
+	{
+		kdError() << k_funcinfo << "Field is not text, xml or bytea " << endl;
+		return;
+	}
+	
+	QString strPrepStmtName("SB_" + KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strTableName));
+	std::string stdstrPrepStmtName(strPrepStmtName.latin1());
+	
+	try
+	{
+		((QWidget *) parent())->setCursor(KCursor::waitCursor());
+		
+		work pqxxXaction(*m_pConnection, stdstrPrepStmtName);
+		pqxx::largeobject pqxxLargeObject = getLargeObject(nRow, nCol, stdstrPrepStmtName, pqxxXaction);
+		
+		// TODO: Warn when LOB IS NULL
+		
+		// NOTE: File is saved in Connection encoding !
+		pqxxLargeObject.to_file(pqxxXaction, url.path());
+		
+		((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	}
+	catch (const std::exception &e)
+    {
+    	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+        KMessageBox::error(this, e.what());
+        return;
+	} 
+}
+
+// Edit text LOB in build in editor
+void KPGDataTable::editLobInEditor()
+{
+	int nRow = currentRow();
+	int nCol = currentColumn();
+	if(nRow < 0) return;
+	if(nCol < 0) return;
+	
+	if((m_listTableColumns[nCol].typName() != "text") &&
+	(m_listTableColumns[nCol].typName() != "xml") &&
+	(m_listTableColumns[nCol].typName() != "bytea"))
+	{
+		kdError() << k_funcinfo << "Field is not text, xml or bytea " << endl;
+		return;
+	}
+	
+	QString strPrepStmtName("EB_" + KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strTableName));
+	std::string stdstrPrepStmtName(strPrepStmtName.latin1());
+	
+	try
+	{
+		work pqxxXaction(*m_pConnection, stdstrPrepStmtName);
+		
+		pqxx::largeobject pqxxLargeObjectIn = getLargeObject(nRow, nCol, stdstrPrepStmtName, pqxxXaction);
+		largeobjectaccess pqxxLargeObjectAccessIn(pqxxXaction, pqxxLargeObjectIn, PGSTD::ios::in);
+		
+		// Get LOB buffer size in MB from settings
+		int iLobBufferSize = KPoGreView::configuration()->datatable()->lobBufferSize();
+		
+		char buffer[iLobBufferSize * 1048576]; 
+		const largeobjectaccess::size_type bufSize = sizeof(buffer) - 1;
+		largeobjectaccess::size_type nBytes = pqxxLargeObjectAccessIn.read(buffer, bufSize);
+		buffer[nBytes] = '\0';
+		
+		if(nBytes >= bufSize)
+		{
+		    ((QWidget *) parent())->setCursor(KCursor::arrowCursor());  
+            KMessageBox::sorry(this, i18n("Insufficient buffer space ! Inscrease buffer size in settings."));
+            return;
+		}
+		
+		QString strText(m_pConnection->textCodec()->toUnicode(buffer));
+		
+		if(m_listTableColumns[nCol].typName() == "text")
+		{
+			/*KPGTextEditDialog dlg(this, strText);
+			if( dlg.exec() != QDialog::Accepted )
+        	{
+            	return;
+        	}
+        	strText = dlg.text();*/
+        	
+        	m_pKateXmlEditorDialog->setEditorText(strText, false);
+			if(m_pKateXmlEditorDialog->exec() != QDialog::Accepted)
+        	{
+            	return;
+        	}
+        	strText = m_pKateXmlEditorDialog->editorText();
+        }
+       	else if (m_listTableColumns[nCol].typName() == "xml")
+       	{
+			//KXETextEditorDialog dlg(this);
+			//dlg.setEditorText(strText);
+			
+			//KPGKateXmlEditorDialog dlg(this, (static_cast <KPoGreView *> (parentWidget()->parentWidget()))->createKatePartFactory());
+			
+			m_pKateXmlEditorDialog->setEditorText(strText, true);
+			if(m_pKateXmlEditorDialog->exec() != QDialog::Accepted)
+        	{
+            	return;
+        	}
+        	strText = m_pKateXmlEditorDialog->editorText();
+       	}
+       
+       	pqxx::largeobject pqxxLargeObjectOut(pqxxXaction);
+		largeobjectaccess pqxxLargeObjectAccessOut(pqxxXaction, pqxxLargeObjectOut, PGSTD::ios::out);
+			
+		pqxxLargeObjectAccessOut.write((std::string) m_pConnection->textCodec()->fromUnicode(strText));
+		
+		if(setLargeObject(pqxxLargeObjectOut, nRow, nCol, stdstrPrepStmtName, pqxxXaction) == false)
+		{
+			pqxxXaction.abort();
+			return;
+		}
+		
+       	refreshRow();
+	}
+	catch (const std::exception &e)
+    {
+    	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+        KMessageBox::error(this, e.what());
+        return;
+	} 
+}
+
+// Called, when the current cell in m_pTableData has changed to row, col
+void KPGDataTable::slotCurrentChanged (int nRow, int)
+{
+	if(m_pConnection == 0)
+    {
+        disableAllActions();
+        return;
+    }
+        
+    // Copy row to m_listRowFields to have field values before user edit it
+    if((m_state == stateInsert) || (m_state == stateUpdate))
+    {
+    	if(m_editedRow != nRow)
+		{
+			// NOTE: this situation occured, when user starts edit cell by typing, and leave it and keyboard or mouse filter not detect it 
+			kdError()  << k_funcinfo << "nRow != currentRow()" << endl;
+			commitChanges(); 
+		}
+    }
+    
+    if(m_state == stateView)
+    {
+    	m_listRowFields.clear();
+    	for(int nCol = 0; nCol < numCols(); nCol++)
+		{
+			m_listRowFields.append(KPGDataTableField(text(nRow, nCol)));
+		}
+    }
+    
+    setActions();
+}
+
+// Called, when user changed the value in the m_pTableData
+void KPGDataTable::slotValueChanged(int row, int col)
+{
+	if(m_state == stateRefresh)
+	{
+		return;
+	}
+	else if(m_state == stateInsert)
+	{
+		if(m_editedRow != row)
+		{
+			kdError() << k_funcinfo "Rows not match !" <<  endl;
+		}
+	}
+	else if(m_state == stateUpdate)
+	{
+		if(m_editedRow != row)
+		{
+			kdError() << k_funcinfo "Rows not match !" <<  endl;
+		}
+		
+		m_listRowFields[col].setDirty();
+	}
+	else // stateView
+	{
+		m_state = stateUpdate;
+		m_editedRow = row;
+		m_listRowFields[col].setDirty();
+	}
+	
+	setActions();
+}
+
+// Called when mouse button button is double-clicked over m_pTableData
+void KPGDataTable::slotDoubleClicked(int row, int col, int, const QPoint &)
+{
+	if(m_state == stateRefresh)
+	{
+		return;
+	}
+	
+	// Make correction to display context menu on proper place
+	QRect r = cellGeometry(row, col);
+		
+	if(m_listTableColumns[col].typName() == "text")
+	{
+		if(m_state != stateView)
+		{
+			KMessageBox::sorry(this, i18n("Can't edit text field during editing or inserting row !"));
+			return;
+		}
+							
+		popupContextMenu("popupDataTableText", viewport()->mapToGlobal(contentsToViewport(r.center())));
+	}
+	else if(m_listTableColumns[col].typName() == "xml")
+	{
+		if(m_state != stateView)
+		{
+			KMessageBox::sorry(this, i18n("Can't edit xml field during editing or inserting row !"));
+			return;
+		}
+							
+		popupContextMenu("popupDataTableText", viewport()->mapToGlobal(contentsToViewport(r.center())));
+	}	   
+   	else if(m_listTableColumns[col].typName() == "bytea")
+   	{
+       if(m_state != stateView)
+		{
+			KMessageBox::sorry(this, i18n("Can't edit binary field during editing or inserting row !"));
+			return;
+		}
+		
+		popupContextMenu("popupDataTableBytea", viewport()->mapToGlobal(contentsToViewport(r.center())));
+   	}
+}
+
+// Called, when user make right click over data table. Display popup menu
+void KPGDataTable::slotContextMenuRequested(int, int, const QPoint & pos)
+{
+	popupContextMenu("popupDataTable", pos);
+}
+
+// Called when user click on horizontal header 
+void KPGDataTable::slotHorzHeaderClicked(int iSection)
+{
+	kdDebug() << k_funcinfo << iSection << endl;
+	
+	if(iSection >= 0)
+	{
+		KPGDataTableColumn &column = m_listTableColumns[iSection];
+		
+		QString strInfo(column.name() + " " + column.typName());
+		if(column.isNotNull())
+		{
+			strInfo.append(" NOT NULL\n");
+		}
+		else
+		{
+			strInfo.append(" NULL\n");
+		}
+		
+		if(column.createdAs().length() > 0)
+		{
+			strInfo.append(i18n("Created as: ") + column.createdAs() + "\n");
+		}
+		
+		if(column.defaultValue().length() > 0)
+		{
+			strInfo.append(i18n("Default value: ") + column.defaultValue() + "\n");
+		}
+		
+		if(column.description().length() > 0)
+		{
+			strInfo.append(i18n("Description: ") + column.description() + "\n");
+		}
+		
+		KMessageBox::information(this, strInfo);
+	}
+}
+
+
+// Build WHERE predicate for primary key columns. 
+const QString KPGDataTable::wherePredicateForPrimaryKey(int iParamsIndex) const
+{
+    QString strWhere(" WHERE ");
+    
+    // field names
+	QHeader* pHeader = horizontalHeader();
+	
+    for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); ) 
+    {
+    	// Obtain column index in m_pTableData for this column name     	
+    	int nCol = -1;
+    	for(int i = 0; i < pHeader->count(); i++)
+    	{
+    		if(pHeader->label(i) == it.data()) // If column names match, we found nCol
+    		{
+    			nCol = i; 
+    			break;
+    		}
+    	}
+    	
+    	if(nCol < 0)
+    	{
+    		kdDebug() << k_funcinfo "Can't obtain column index for field:" <<  it.data() << endl;
+    		return QString::null;
+    	}
+    	
+    	strWhere.append(KPGUtil::quotedName(it.data())); // column name
+    	strWhere.append(QString("=$%1").arg(++iParamsIndex));
+                
+        		
+    	if(++it != m_mapIndexKey.end())
+    	{
+    		strWhere.append(" AND ");
+    	}
+    }
+    
+    return strWhere;
+}
+
+//  Fill key values into vParams, from iParamsIndex position
+void KPGDataTable::fillParametersForPrimaryKey(int nRow, prepare::invocation &pqxxInvocation) const
+{
+    // field names
+	QHeader* pHeader = horizontalHeader();
+	
+    for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+    {
+    	// Obtain column index in m_pTableData for this column name     	
+    	int nCol = -1;
+    	for(int i = 0; i < pHeader->count(); i++)
+    	{
+    		if(pHeader->label(i) == it.data()) // If column names match, we found nCol
+    		{
+    			nCol = i; 
+    			break;
+    		}
+    	}
+    	
+    	if(nCol < 0)
+    	{
+    		kdDebug() << k_funcinfo "Can't obtain column index for field:" <<  it.data() << endl;
+    		return;
+    	}
+        		
+        pqxxInvocation((std::string) m_pConnection->textCodec()->fromUnicode(text(nRow, nCol)));
+    }
+}
+
+// Run DML on DB server. Return true, if command succesfully performed
+bool KPGDataTable::runDml(EDmlType dmlType)
+{
+	if(m_pConnection == 0)
+	{
+		KMessageBox::error(this, i18n("Not connected"));
+	 	return false;
+	}
+	
+	bool bNeedUnprepare = false;
+    std::string stdstrPrepStmtName; 
+           	
+	try
+    { 
+        ((QWidget *) parent())->setCursor(KCursor::waitCursor());
+        
+        // Create prepared statement, if not yet
+       	switch(dmlType)
+		{
+			case dmlInsert:	
+			{
+				stdstrPrepStmtName = "I_" +  KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strTableName);
+				// INSERT statement is cached, it is the same every time
+				prepareInsertStatement(stdstrPrepStmtName); 
+				bNeedUnprepare = true; 
+				break;
+			}
+			case dmlUpdate:	
+			{
+				stdstrPrepStmtName = "U_" + KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strTableName);
+				// UPDATE statement is prepared each time, because updated columns varies 
+				prepareUpdateStatement(stdstrPrepStmtName); 
+				bNeedUnprepare = true; 
+				break; 
+			}
+			case dmlDelete:	
+			{
+				stdstrPrepStmtName = "D_" + KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strTableName);
+				// DELETE statement is cached, it is the same every time
+				prepareDeleteStatement(stdstrPrepStmtName); 
+				bNeedUnprepare = true; 
+				break;
+			}
+		}
+        
+        work pqxxXaction(*m_pConnection, stdstrPrepStmtName);
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+		
+		if(dmlType == dmlUpdate)
+		{
+			// Set dirty field values to vParams
+			int currentCol = 0;
+			for(ListRowFields::iterator it = m_listRowFields.begin(); it != m_listRowFields.end(); ++it)
+			{ 
+				if((*it).isDirty())
+				{
+					if((text(m_editedRow, currentCol) == QString::null) 
+					|| text(m_editedRow, currentCol).isEmpty()) continue;
+					
+					bool bSuccess = m_pConnection->setInvocationValue(pqxxInvocation, m_listTableColumns[currentCol].typName(), text(m_editedRow, currentCol));
+					if(!bSuccess)
+					{
+						setCurrentCell(m_editedRow, currentCol);
+						m_pConnection->unprepare(stdstrPrepStmtName);
+						throw PGSTD::runtime_error(i18n("Conversion for column %1 failed !").arg(m_listTableColumns[currentCol].name()));
+					}
+				}
+				currentCol++;
+			}
+		}
+		else if(dmlType == dmlInsert)
+		{
+			for(int currentCol = 0; currentCol < numCols(); currentCol++)
+        	{
+				if((text(m_editedRow, currentCol) == QString::null) || text(m_editedRow, currentCol).isEmpty())
+				{
+					if(m_bAutoGeneratedPrimaryKey && (m_strPKColumnName == m_listTableColumns[currentCol].name()))
+					{
+						// Get primary key value from sequencer
+						if(m_listTableColumns[currentCol].typName() == "int4")
+						{
+							int iNextValue = generateSerialPrimaryKeyValue(pqxxXaction);
+													
+							// Set PK value to datatable
+							QString strNextValue;
+							strNextValue.setNum(iNextValue);
+							setText(m_editedRow, currentCol, strNextValue);
+							
+							pqxxInvocation(iNextValue); 
+						}
+						else if(m_listTableColumns[currentCol].typName() == "int8")
+						{
+							long lNextValue = generateBigSerialPrimaryKeyValue(pqxxXaction);
+							
+							// Set PK value to datatable
+							QString strNextValue;
+							strNextValue.setNum(lNextValue);
+							setText(m_editedRow, currentCol, strNextValue);
+							
+							pqxxInvocation(lNextValue); 
+						}
+						else
+						{
+							kdDebug() << k_funcinfo "Uncovered datatype: " <<  m_listTableColumns[currentCol].typName() << ", " << m_listTableColumns[currentCol].name() << endl;	
+							m_pConnection->unprepare(stdstrPrepStmtName);
+							return false;
+						}
+					}
+					else continue;
+				}
+				else
+				{
+					bool bSuccess = m_pConnection->setInvocationValue(pqxxInvocation, m_listTableColumns[currentCol].typName(), text(m_editedRow, currentCol));
+					if(!bSuccess)
+					{
+						setCurrentCell(m_editedRow, currentCol);
+						m_pConnection->unprepare(stdstrPrepStmtName);
+						throw PGSTD::runtime_error(i18n("Conversion failed !"));
+					}
+				}
+        	}
+		}
+		
+		if(dmlType == dmlUpdate)
+		{
+			// Append primary key values to pqxxInvocation
+			fillParametersForPrimaryKey(m_editedRow, pqxxInvocation);
+		}
+		else if(dmlType == dmlDelete)
+		{
+			// Append primary key values to pqxxInvocation
+			fillParametersForPrimaryKey(currentRow(), pqxxInvocation);
+		}
+		
+		pqxxInvocation.exec();
+		pqxxXaction.commit();
+		
+		bNeedUnprepare = false;      
+		m_pConnection->unprepare(stdstrPrepStmtName);
+		
+		
+        ((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        return true;
+    }
+    catch (const std::exception &e)
+    {	
+        ((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+        kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+        KMessageBox::error(this, e.what());
+	}
+	 
+	if(bNeedUnprepare)
+	{
+		try
+	    {	
+	     	m_pConnection->unprepare(stdstrPrepStmtName); 
+	    }
+	    catch (const std::exception &e)
+		{	
+			kdDebug() << k_funcinfo "Exception: " <<  e.what() << endl;
+		}
+	}
+		
+	return false;
+}
+
+// Return SQL query for selecting edited row
+const QString KPGDataTable::sqlForSelectOneRow() const
+{
+    QString strSql("SELECT ");
+    
+    bool bFirst = true;
+    for(ListTableColumns::const_iterator it = m_listTableColumns.begin(); it != m_listTableColumns.end(); ++it)
+    { 
+        if(!bFirst) { strSql.append(","); }
+        bFirst = false;
+        
+        strSql.append(KPGUtil::quotedName((*it).name()));
+    }
+    
+    strSql.append(" FROM " + KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+    strSql.append(wherePredicateForPrimaryKey(0));
+        
+    return strSql;
+}
+
+// Return SQL query for selecting edited row
+const QString KPGDataTable::sqlForSelectAllRows() const
+{
+    QString strSql("SELECT ");
+    
+    bool bFirst = true;
+    for(ListTableColumns::const_iterator it = m_listTableColumns.begin(); it != m_listTableColumns.end(); ++it)
+    { 
+        if(!bFirst) { strSql.append(", "); }
+        bFirst = false;
+        
+        strSql.append(KPGUtil::quotedName((*it).name()));
+    }
+    
+    strSql.append(" FROM " + KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+    
+    if(m_strWherePredicate.length() > 0)
+	{
+		strSql.append(" WHERE " + m_strWherePredicate);
+	}
+	
+	if(m_strOrderByPredicate.length() > 0)
+	{
+		strSql.append(" ORDER BY " + m_strOrderByPredicate);
+	}
+        
+    return strSql;
+}
+
+// Retreive largeobject of LOB for given row and column
+pqxx::largeobject KPGDataTable::getLargeObject(int nRow, int nCol, std::string &stdstrPrepStmtName, work &pqxxXaction)
+{
+	QString strSql("SELECT ");
+	strSql.append(KPGUtil::quotedName(m_listTableColumns[nCol].name()));
+	strSql.append(" FROM ");
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+	strSql.append(wherePredicateForPrimaryKey(0));
+	kdDebug() << strSql << endl;
+		
+	bool bNeedUnprepare = false;	
+		
+	try
+	{
+		// Select LOB
+		pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strSql);
+		bNeedUnprepare = true;
+		
+		// Add declaring parameters to prepared statements - primary key fields
+		for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+		{
+			pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+		}
+							
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+					
+		// Append primary key values to vParams
+		fillParametersForPrimaryKey(nRow, pqxxInvocation);
+			
+		// Execute query
+		pqxx::result pqxxResult = pqxxInvocation.exec();
+					
+		// And unprepare it
+		bNeedUnprepare = false;
+		m_pConnection->unprepare(stdstrPrepStmtName);
+		
+		// Check query result - one row, one column
+		unsigned int nTotalRows = pqxxResult.size();
+		unsigned int nTotalCols = pqxxResult.columns();
+			
+		if(nTotalRows != 1)
+		{
+			kdError() << k_funcinfo "Expect one row !" <<  endl;
+			throw PGSTD::runtime_error(i18n("Expect one row !"));
+		}
+			
+		if(nTotalCols != 1)
+		{
+			kdError() << k_funcinfo "Expect one column !" <<  endl;
+			throw PGSTD::runtime_error(i18n("Expect one column !"));
+		}
+			
+		pqxx::largeobject pqxxLargeObject(pqxxXaction);
+		largeobjectaccess pqxxLargeObjectAccess(pqxxXaction, pqxxLargeObject, PGSTD::ios::out);
+		
+		if(m_listTableColumns[nCol].typName() == "bytea")
+		{
+			pqxx::binarystring pqxxBinaryString(pqxxResult[0][0]);
+			pqxxLargeObjectAccess.write((const char *) pqxxBinaryString.data(), pqxxBinaryString.size());
+			
+			kdDebug() << "Readed bytea size: " + to_string(pqxxBinaryString.size()) << endl;
+		}
+		else if((m_listTableColumns[nCol].typName() == "text") ||
+				(m_listTableColumns[nCol].typName() == "xml"))
+		{
+			pqxxLargeObjectAccess << pqxxResult[0][0];
+		}
+		
+		return pqxxLargeObject;
+	}
+	catch (const std::exception &e)
+	{
+		if(bNeedUnprepare)
+		{
+			m_pConnection->unprepare(stdstrPrepStmtName);
+		}
+		
+		kdError() << k_funcinfo << e.what() << endl;
+		throw;
+	}
+}
+
+
+// Store largeobject of LOB to database, for given row and column
+/*bool KPGDataTable::setLargeObject(pqxx::largeobject &pqxxLargeObject, int nRow, int nCol, std::string &stdstrPrepStmtName, work &pqxxXaction)
+{
+	QString strSql("UPDATE ");
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+	strSql.append(" SET ");
+	strSql.append("\"" + m_listTableColumns[nCol].name() + "\"");
+		
+	bool bNeedUnprepare = false;	
+		
+	try
+	{
+		largeobjectaccess pqxxLargeObjectAccess(pqxxXaction, pqxxLargeObject, PGSTD::ios::in);
+		
+		// Get LOB buffer size in MB from settings
+		int iLobBufferSize = KPoGreView::configuration()->datatable()->lobBufferSize();
+		
+		char buffer[iLobBufferSize * 1048576]; 
+		const size_t bufSize = sizeof(buffer) - 1;
+		largeobjectaccess::size_type nBytes = pqxxLargeObjectAccess.read(buffer, bufSize);
+		buffer[nBytes] = '\0';
+		
+		if(nBytes >= bufSize)
+		{
+		    ((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+            KMessageBox::sorry(this, i18n("Insufficient buffer space ! Inscrease buffer size in settings."));
+            return false;
+		}
+		
+		if(m_listTableColumns[nCol].typName() == "bytea")
+		{
+			const std::string stdstrEscaped = pqxxXaction.esc_raw(reinterpret_cast <const unsigned char *> (buffer), nBytes);
+			kdDebug() << "Writed bytea size: " + to_string(nBytes) << endl;
+			strSql.append("='" + stdstrEscaped + "'");
+		}
+		else if(m_listTableColumns[nCol].typName() == "text")
+		{
+			const std::string stdstrText = buffer;
+			strSql.append("='" + stdstrText + "'");
+		}
+		
+		strSql.append(wherePredicateForPrimaryKey(0));
+		kdDebug() << strSql << endl;
+		
+		// ---
+		pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strSql);
+		
+		bNeedUnprepare = true;
+		
+		// Add declaring parameters to prepared statements - primary key fields
+		for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+		{
+			pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+		}
+							
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+				
+		// Append primary key values to vParams
+		fillParametersForPrimaryKey(nRow, pqxxInvocation);
+			
+		// Execute query
+		pqxxInvocation.exec();
+		pqxxXaction.commit();
+					
+		// And unprepare it
+		bNeedUnprepare = false;
+		m_pConnection->unprepare(stdstrPrepStmtName);
+	
+		return true;
+	}
+	catch (const std::exception &e)
+	{
+		if(bNeedUnprepare)
+		{
+			m_pConnection->unprepare(stdstrPrepStmtName);
+		}
+		
+		kdError() << k_funcinfo << e.what() << endl;
+		throw;
+	}
+}
+
+*/
+
+// Store largeobject of LOB to database, for given row and column
+bool KPGDataTable::setLargeObject(pqxx::largeobject &pqxxLargeObject, int nRow, int nCol, std::string &stdstrPrepStmtName, work &pqxxXaction)
+{
+	QString strSql("UPDATE ");
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+	strSql.append(" SET ");
+	strSql.append(KPGUtil::quotedName(m_listTableColumns[nCol].name()));
+	strSql.append("=$1");
+	strSql.append(wherePredicateForPrimaryKey(1));
+	kdDebug() << strSql << endl;
+		
+	bool bNeedUnprepare = false;	
+		
+	try
+	{
+		// Update LOB
+		pqxx::prepare::declaration pqxxPrepDecl = m_pConnection->prepare(stdstrPrepStmtName, strSql);
+		
+		m_pConnection->setPrepareDeclaration(pqxxPrepDecl, m_listTableColumns[nCol].typName());
+		bNeedUnprepare = true;
+		
+		// Add declaring parameters to prepared statements - primary key fields
+		for(MapIndexKey::ConstIterator it = m_mapIndexKey.begin(); it != m_mapIndexKey.end(); it++) 
+		{
+			pqxxPrepDecl("varchar", pqxx::prepare::treat_string);
+		}
+							
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+	
+		largeobjectaccess pqxxLargeObjectAccess(pqxxXaction, pqxxLargeObject, PGSTD::ios::in);
+		
+		// Get LOB buffer size in MB from settings
+		int iLobBufferSize = KPoGreView::configuration()->datatable()->lobBufferSize();
+		
+		char buffer[iLobBufferSize * 1048576]; 
+		const largeobjectaccess::size_type bufSize = sizeof(buffer) - 1;
+		
+		// Read LOB from pqxxLargeObjectAccess into buffer 
+		largeobjectaccess::size_type nBytes = pqxxLargeObjectAccess.read(buffer, bufSize);
+		buffer[nBytes] = '\0';
+		
+		if(nBytes >= bufSize)
+		{
+		    ((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+            KMessageBox::sorry(this, i18n("Insufficient buffer space ! Inscrease buffer size in settings."));
+            return false;
+		}
+		
+		if(m_listTableColumns[nCol].typName() == "bytea")
+		{
+			const std::string stdstrText(buffer, nBytes);
+			pqxxInvocation(stdstrText, nBytes);
+			
+			kdDebug() << "Writed bytea size: " + to_string(nBytes) << endl;
+		}
+		else if((m_listTableColumns[nCol].typName() == "text") ||
+				(m_listTableColumns[nCol].typName() == "xml"))
+		{
+			const std::string stdstrText = buffer;
+			pqxxInvocation(stdstrText);
+		}
+				
+		// Append primary key values to vParams
+		fillParametersForPrimaryKey(nRow, pqxxInvocation);
+			
+		// Execute query
+		pqxxInvocation.exec();
+		pqxxXaction.commit();
+					
+		// And unprepare it
+		bNeedUnprepare = false;
+		m_pConnection->unprepare(stdstrPrepStmtName);
+	
+		return true;
+	}
+	catch (const std::exception &e)
+	{
+		/*if(bNeedUnprepare)
+		{
+			m_pConnection->unprepare(stdstrPrepStmtName);
+		} L.V. cause exception: current TX is aborted */
+		
+		kdError() << k_funcinfo << e.what() << endl;
+		throw;
+	}
+}
+
+// Find first occurence of text
+void KPGDataTable::findFirst(QStringList &listOfSearchHistory)
+{
+	// If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+	KFindDialog dlg(this, "", 0, listOfSearchHistory, false);
+    dlg.setHasCursor(false);
+        
+    int c = dlg.exec();
+    
+    if(c != QDialog::Accepted)
+        return;
+
+    listOfSearchHistory = dlg.findHistory();
+        
+    
+    if(m_pFind != 0) delete m_pFind;
+    m_pFind = new KFind(dlg.pattern(), dlg.options(), this);
+
+    // Connect highlight signal to code which handles highlighting
+    // of found text.
+    connect( m_pFind, SIGNAL( highlight( const QString &, int, int ) ),
+             this, SLOT( slotHighlight( const QString &, int, int ) ) );
+             
+    // Connect findNext signal - called when pressing the button in the dialog
+    connect( m_pFind, SIGNAL( findNext() ), this, SLOT( slotFindNext() ) );
+
+    m_iRowToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? numRows() - 1 : 0;
+    m_iColToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? numCols() - 1 : 0;
+    m_pFind->setData(text(m_iRowToSearch, m_iColToSearch));
+
+    slotFindNext();
+}
+
+// Find first occurence of text
+void KPGDataTable::findNext()
+{
+	m_iRowToSearch = currentRow();
+	m_iColToSearch = currentColumn();
+	if(m_iRowToSearch < 0) return;
+	if(m_iColToSearch < 0) return;
+	
+	slotFindNext();
+}
+
+// Find next occurence of text
+void KPGDataTable::slotFindNext()
+{
+	// If current row is changed, commit changed row to DB
+    if((m_state == stateUpdate) || (m_state == stateInsert))
+    {
+    	if(commitChanges() == false) return;
+    }
+    
+    if (!m_pFind) // shouldn't be called before find is activated
+        return;
+
+
+    KFind::Result res = KFind::NoMatch;
+    while ( res == KFind::NoMatch &&
+    		((m_pFind->options() & KFindDialog::FindBackwards) ? 
+    				(m_iRowToSearch >= 0) : (m_iRowToSearch < numRows())
+    		) 
+          ) 
+    	{
+    		//kdDebug() << "searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+        	
+        	Q_ASSERT(m_iRowToSearch >= 0);
+            Q_ASSERT(m_iRowToSearch < numRows());
+            Q_ASSERT(m_iColToSearch >= 0);
+            Q_ASSERT(m_iColToSearch < numCols());
+            	
+        	if(m_pFind->needData()) 
+        	{
+            	m_pFind->setData(text(m_iRowToSearch, m_iColToSearch));
+        	}
+        
+        	// Let KFind inspect the text fragment, and display a dialog if a match is found
+        	res = m_pFind->find();
+        
+        	if( res == KFind::NoMatch ) 
+        	{
+            	if((m_pFind->options() & KFindDialog::FindBackwards))
+            	{
+            		if(m_iColToSearch == 0)
+            		{
+            			m_iColToSearch = numCols() - 1;
+            			m_iRowToSearch--;
+            		}
+            		else
+            		{
+            			m_iColToSearch--;
+            		}
+            	}
+            	else
+            	{
+            		if(m_iColToSearch == numCols() - 1)
+            		{
+            			m_iColToSearch = 0;
+            			m_iRowToSearch++;
+            		}
+            		else
+            		{
+            			m_iColToSearch++;
+            		}
+            	}
+        	}
+        	//kdDebug() << "2searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+		}
+
+    if( res == KFind::NoMatch ) 
+    { // i.e. at end
+        m_pFind->displayFinalDialog();
+        m_pFind->resetCounts();
+        removeSelection(0);
+    }
+}
+
+// Highligth found text
+void KPGDataTable::slotHighlight( const QString &, int, int)
+{
+    //kdDebug() << "highlight: " << index << " " << length << endl;
+    setCurrentCell(m_iRowToSearch, m_iColToSearch);
+}
+
+void KPGDataTable::virtual_hook(int id, void* data)
+{ 
+	KXMLGUIClient::virtual_hook(id, data); 
+}
+    
+/* TESTING 
+bool KPGDataTable::setLargeObject(pqxx::largeobject &pqxxLargeObject, int nRow, int nCol, std::string &stdstrPrepStmtName, work &T)
+ {
+   //T.exec("DROP TABLE pqxxbin");
+ 
+    const int bufSize = 6;
+    char buffer1[bufSize]; // some raw data - begin of PNG file
+    buffer1[0] = 0x89; //  \211
+    buffer1[1] = 0x50; //  P
+    buffer1[2] = 0x4E; //  N
+    buffer1[3] = 0x47; //  G
+    buffer1[4] = 0x00; //  0x0
+    buffer1[5] = '.';  //  .  
+  
+    T.exec("CREATE TEMP TABLE pqxxbin (binfield bytea)");
+  
+    // Make string from buffer data
+    const std::string myStr(buffer1, bufSize);
+    const std::string prepStmtName = "test";
+    ASSERT(myStr[myStr.size() - 1] == '.');
+  
+    pqxx::prepare::declaration D = m_pConnection->prepare(prepStmtName, "INSERT INTO pqxxbin VALUES ($1)");
+    D("bytea", pqxx::prepare::treat_binary);
+  
+    prepare::invocation I = T.prepared(prepStmtName);
+    I(myStr); // pass string as invocation parameter for $1. 
+  
+    I.exec();
+  
+    result R = T.exec("SELECT binfield from pqxxbin");
+  
+    binarystring B(R.at(0).at(0));
+  
+    kdDebug() << "original: " << T.esc_raw(reinterpret_cast <const unsigned char *> (&buffer1), bufSize) << endl << "returned: " << R.at(0).at(0).c_str() << endl;
+  
+    if (B.size() != bufSize)
+      kdError() << "Binary string got changed from " + to_string(bufSize) + " to " + to_string(B.size()) + " bytes"  << endl;
+  
+  	// Output is:
+  	// original: \\211PNG\\000.
+	// returned: \211PNG
+	// Binary string got changed from 6 to 4 bytes
+  	  
+  	T.commit();
+  	return true;
+ }
+ */

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatable.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,429 @@
+//
+// C++ Interface: kpgdatatable
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDATATABLE_H
+#define KPGDATATABLE_H
+
+// Note that for new code which you wish to be strictly Unicode-clean, you can define the macro QT_NO_ASCII_CAST when compiling your code.
+#define QT_NO_ASCII_CAST
+
+// include files for Qt
+#include <qtable.h>
+#include <qvaluelist.h>
+
+// include files for KDE
+#include <kurl.h>
+#include <kxmlguiclient.h>
+
+// application specific includes
+#include "../kpgconnectioninthread.h"
+#include "../DbObjects/kpgtableindex.h"
+
+// include files for libpgxx 
+#include <pqxx/largeobject.hxx>
+
+class QTextCodec;
+class QTable;
+class KFind;
+class KXMLGUIFactory;
+
+class KPoGreView;
+class KPGConnection;
+class KPGDatabase;
+class KPGDataTableChildView;
+class KPGKateXmlEditorDialog;
+
+/**
+ * Stores information about column in data table
+ *
+ */
+class KPGDataTableColumn
+{
+public:
+	KPGDataTableColumn() {};
+	KPGDataTableColumn(const QString &strName, const QString &strTypName, bool bNotNull, bool bHasDef, const QString &strAdSrc, const QString &strDescription, const QString &strCreatedAs)
+	{
+		m_strName = strName;
+		m_strTypName = strTypName;
+		m_bNotNull = bNotNull;
+		m_bHasDef = bHasDef;
+		m_strAdSrc = strAdSrc;
+		m_strDescription = strDescription;
+		m_strCreatedAs = strCreatedAs;
+	}
+	
+	const QString &name() const { return m_strName; }
+	const QString &typName() const { return m_strTypName; }
+	bool hasDefault() const { return m_bHasDef; }
+	bool isNotNull() const { return m_bNotNull; }
+	const QString &defaultValue() const { return m_strAdSrc; }
+	const QString &description() const { return m_strDescription; }
+	const QString createdAs() const { return m_strCreatedAs; }
+	
+protected:
+    QString m_strName;
+    QString m_strTypName;
+	bool m_bNotNull;
+	bool m_bHasDef;
+	QString m_strAdSrc;
+	QString m_strDescription;
+	QString m_strCreatedAs;
+};
+
+/**
+ * Stores information about field in data table
+ *
+ */
+class KPGDataTableField
+{
+public:
+	KPGDataTableField() {};
+	KPGDataTableField(const QString &strOldValue)
+	{
+		m_strOldValue = strOldValue;
+		m_bIsDirty = false;
+	}
+	
+	void setDirty() { m_bIsDirty = true; }
+	void clearDirty() { m_bIsDirty = false; }
+	
+	const QString & oldValue() const { return m_strOldValue; }
+	const bool isDirty() const { return m_bIsDirty; }
+	
+protected:
+
+	QString m_strOldValue; 	// Old value of field, used for cancelChanges()
+	bool m_bIsDirty;		// Is field changed by user ?
+};
+
+// List of fields for edited row 	
+typedef QValueList<KPGDataTableField> ListRowFields;
+     
+   // List of table columns 	
+typedef QValueList<KPGDataTableColumn> ListTableColumns;
+
+/**
+  * Editable datatable to edit database table content
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDataTable : public QTable, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public:
+    KPGDataTable(KPGDataTableChildView *, 
+		KPoGreView *, 
+		KXMLGUIFactory *, 
+		KPGConnection *, 
+		const QString &, 
+		const QString &, 
+		const ListTableColumns &,
+		const MapIndexKey &, 
+		const QString &, 
+		const QString &, 
+		KPGKateXmlEditorDialog *);
+    
+    ~KPGDataTable();
+   
+	// Add yourself to GUI factory
+    void addToGuiFactory();
+    
+    // Remove yourself from GUI factory
+    void removeFromGuiFactory();
+
+     // Datatable states
+     enum EState { 	
+     				stateView = 0, 	// default state
+     				stateUpdate, 	// current row is edited (at least one field is dirty), we pending for UPDATE
+     				stateInsert, 	// last row is edited, we pending for INSERT 
+     				stateRefresh	// refreshing data, waiting for resultset
+     			};
+     			
+     // DML types
+     enum EDmlType { 	
+     				dmlInsert = 0, 
+     				dmlUpdate, 	
+     				dmlDelete 
+     			};
+	
+	// Filters events
+	bool eventFilter(QObject *, QEvent *);
+	
+	// Run SQL query for reload data from database table
+	void reloadData();
+	
+	// Terminate thread that run SQL query
+	void stopReload();
+	
+	// Returns TRUE if the connection thread is running; otherwise returns FALSE.
+	bool running() const { return  m_ConnectionInThread.running(); }
+	
+	// Set connection. Don't forget to set 0 if it is disconnected
+	void setConnection(KPGConnection* pConnection) 
+	{  
+	   m_pConnection = pConnection; 
+	   if(pConnection == 0)
+	   {
+	       disableAllActions();
+	   }
+	}
+			
+	// Get connection.
+	KPGConnection* connection() const { return m_pConnection; }
+	
+	// Move current row in data table
+	void firstRow();
+	void previousRow();
+	void nextRow();
+	void lastRow();
+	
+	// Edit selected cell in data table
+	void editCell();
+	
+	// Clear selected cell in data table
+    void clearCell();
+    
+    // Insert new row into data table
+    void insertRow();
+    
+    // Delete selected row from data table
+    void deleteRow();
+    
+    // UPDATE or INSERT changes from data table current row to database
+    bool commitChanges();
+    
+    // Cancel changes in data table
+    void cancelChanges();
+	
+	// LOB manipulation functions
+	void loadLob(const KURL &);
+	void saveLob(const KURL &);
+	void editLobInEditor();
+	
+	// Find first occurence of text
+    void findFirst(QStringList &);
+    
+    // Find next occurence of text
+    void findNext();
+	
+protected:
+
+	// This event handler is called whenever the QScrollView receives a mousePressEvent(): the press position in e is translated to be a point on the contents.
+	virtual void contentsMousePressEvent( QMouseEvent* );
+	
+	// Reimplemented for update actions state purpose
+	virtual QWidget *beginEdit(int, int, bool);
+    virtual void endEdit(int, int, bool, bool);
+
+    // Disable all actions
+    void disableAllActions();
+    
+    // Enable/disable actions with regards to datatable state
+    void setActions();
+    
+    // Receive event from KPGConnectionInThread
+    virtual void customEvent( QCustomEvent * );
+    
+    // Display popup menu
+	void popupContextMenu(const QString &, const QPoint &);
+
+    // Display SQL result
+    void displayResult();  
+    
+    // Display data from one reultset row
+    void displayOneRow(int, unsigned int, unsigned int, pqxx::result &);
+    
+    // Refresh current row from database
+    void refreshRow();
+    
+    // Generate new primary key value from sequence
+	int generateSerialPrimaryKeyValue(pqxx::work &);
+	long generateBigSerialPrimaryKeyValue(pqxx::work &);
+    
+    // Prepare DML statements
+    void prepareInsertStatement(const std::string &);
+    void prepareUpdateStatement(const std::string &);
+    void prepareDeleteStatement(const std::string &);
+    void prepareSelectStatement(const std::string &);
+        
+    // Build WHERE predicate for primary key columns. 
+    const QString wherePredicateForPrimaryKey(int) const;
+    
+    // Fill key values into vParams, from iParamsIndex position
+    void fillParametersForPrimaryKey(int, pqxx::prepare::invocation &) const;
+    
+    // Run DML string on DB server
+	bool runDml(EDmlType);
+	
+	// Return SQL query for selecting edited row
+    const QString sqlForSelectOneRow() const;
+	
+	// Return SQL query for selecting edited row
+    const QString sqlForSelectAllRows() const;
+    
+    // Retrieve largeobject of LOB for given row and column
+    pqxx::largeobject getLargeObject(int, int, std::string &, work &);
+    
+    // Store largeobject of LOB to database, for given row and column
+    bool setLargeObject(pqxx::largeobject &, int, int, std::string &, work &);
+      
+    virtual void virtual_hook( int id, void* data );
+    
+private:
+	
+	void fixRow2( int &row, int y );
+    
+protected:
+
+	// Edit actions
+	KAction* m_pActEditFind;
+	KAction* m_pActEditFindNext;
+	
+	// Data table actions
+    KAction* m_pActCopyCell;
+	KAction* m_pActCopyRow;
+	KAction* m_pActCopyTableCsv;
+	KAction* m_pActCopyTableXml;
+    KAction* m_pActFirstRow;
+    KAction* m_pActPreviousRow;
+    KAction* m_pActNextRow;
+    KAction* m_pActLastRow;
+    KAction* m_pActEditCell;
+    KAction* m_pActClearCell;
+    KAction* m_pActInsertRow;
+    KAction* m_pActDeleteRow;
+    KAction* m_pActCommitChanges;
+    KAction* m_pActCancelChanges;
+    KAction* m_pActReloadData;
+    KAction* m_pActStopReload;
+    KAction* m_pActLoadLob;
+    KAction* m_pActSaveLob;
+    KAction* m_pActEditLobInEditor;
+    
+	// XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // True, if this is in GUI factory
+    bool m_bIsAddedToGuiFactory;
+
+	// Datatable state
+	EState m_state;
+	
+	// True, if current cell is edited
+	bool m_bInplaceEditing;
+
+	// Number of row with edited data
+	int m_editedRow;
+	
+	// List of fields for m_editedRow - that user edited it's value
+	ListRowFields m_listRowFields;
+		
+	// List of columns in table
+	ListTableColumns m_listTableColumns;	
+	    
+    // Connection to database
+    KPGConnection* m_pConnection;
+    
+    // Database table to edit its data
+    QString m_strTableName;
+        
+    // Table namespace
+    QString m_strNamespaceName;
+          	
+  	// Map of primary key index columns - pair of <int iColumnNum, QString strColumnName> 
+  	MapIndexKey m_mapIndexKey;
+  	
+  	// Is PK autogenerated using sequence ?
+  	bool m_bAutoGeneratedPrimaryKey;
+  	
+  	// If m_bAutoGeneratedPrimaryKey = true, contain SQL for generate new PK value
+  	QString m_strNextValueForPrimaryKey;
+    
+    // If m_bAutoGeneratedPrimaryKey = true, contain PK column name
+    QString m_strPKColumnName;
+    
+    // Thread that run queries on background
+	KPGConnectionInThread m_ConnectionInThread;
+	
+	// The WHERE predicate, used to reduce anmount of edited data
+	QString m_strWherePredicate;
+	
+	// The ORDER BY predicate, used to sort edited data
+	QString m_strOrderByPredicate;
+	
+	// True, is show DML statements for user inspection, before executing it
+	bool m_bShowDml;
+	
+	// True, if it's first load data 
+	bool m_bOpeningReload;
+	
+	// Resultset to display
+	pqxx::result m_pqxxResult;
+	
+	// For searching in data tables and result tables
+	QStringList m_listOfResultQuerySearchHistory;
+	
+private:
+	// A generic implementation of the "find" function
+	KFind *m_pFind;
+	
+	int m_iRowToSearch;
+	int m_iColToSearch;
+	
+	// Dialog for editing XML datatypes
+	KPGKateXmlEditorDialog *m_pKateXmlEditorDialog;
+	
+protected slots:
+
+	//--- Edit main menu actions
+	void slotEditFind();
+    void slotEditFindNext();
+
+	//--- Datatable actions
+    void slotFirstRow();
+    void slotPreviousRow();
+    void slotNextRow();
+    void slotLastRow();
+    void slotEditCell();
+    void slotClearCell();
+    void slotInsertRow();
+    void slotDeleteRow();
+    void slotCommitChanges();
+    void slotCancelChanges();
+    void slotReloadData();
+    void slotStopReload();
+    void slotLoadLob();
+    void slotSaveLob();
+    void slotEditLobInEditor();
+
+    // Called, when the current cell in m_pTableData has changed to row, col
+    void slotCurrentChanged(int, int);
+    
+    // Called, when user changed the value in the m_pTableData
+	void slotValueChanged (int, int);
+	
+	// Called when mouse button button is double-clicked over m_pTableData
+	void slotDoubleClicked(int, int, int, const QPoint &);
+	
+	// Called, when user make right-clickj over DataTable
+	void slotContextMenuRequested(int, int, const QPoint &);
+	
+	// Called when user click on horizontal header 
+	void slotHorzHeaderClicked(int);
+    
+    // Highligth found text
+    void slotHighlight( const QString &, int, int);
+    
+    // Find next occurence of text
+    void slotFindNext();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+//
+// C++ Implementation: kpgdatatablechildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdatatablechildview.h"
+
+#include <qlayout.h>
+
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgtable.h"
+#include "../kpogreview.h"
+#include "kpgdatatable.h"
+#include "kpgkatexmleditordialog.h"
+
+KPGDataTableChildView::KPGDataTableChildView(KPoGreView *pPoGreView, 
+	KXMLGUIFactory *pXmlGuiFactory,
+	KPGConnection *pConnection,
+	const QString & strNamespace,
+	const QString & strTableName,
+	const ListTableColumns & listTableColumns,
+	const MapIndexKey & mapIndexKey,
+	const QString &strWherePredicate,
+	const QString & strOrderByPredicate,
+	KPGKateXmlEditorDialog *pKateXmlEditorDialog)
+ : KMdiChildView(strTableName, pPoGreView, "KPGDataTableChildView")
+{
+	m_pPoGreView = pPoGreView;
+	m_pDataTable = new KPGDataTable(this, 
+		pPoGreView,
+		pXmlGuiFactory,
+		pConnection, 
+		strNamespace, 
+		strTableName, 
+		listTableColumns,
+		mapIndexKey,
+		strWherePredicate, 
+		strOrderByPredicate,
+		pKateXmlEditorDialog);
+	
+	m_pLayout = new QHBoxLayout(this, 0, -1, "layout" );
+	m_pLayout->addWidget( m_pDataTable, 0, 0 );
+	
+	setIcon(SmallIcon("data"));
+}
+
+KPGDataTableChildView::~KPGDataTableChildView()
+{
+}
+
+// Add DataTableChildView GUI client to factory
+void KPGDataTableChildView::slotActivated()
+{
+	m_pDataTable->addToGuiFactory();
+}
+
+// Remove DataTableChildView GUI client from factory
+void KPGDataTableChildView::slotDeactivated()
+{
+	m_pDataTable->removeFromGuiFactory();
+}
+
+bool KPGDataTableChildView::requestClose()
+{
+	if(m_pDataTable->running())
+	{
+		KMessageBox::sorry(this, i18n("Reload query is running, cannot close !"));	 
+		return false;
+	}
+	
+	
+	if(KMessageBox::questionYesNo(this, i18n("Really close data table window ?")) == KMessageBox::Yes) 
+	{
+		return true;
+	}
+	return false;
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablechildview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,70 @@
+//
+// C++ Interface: kpgdatatablechildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDATATABLECHILDVIEW_H
+#define KPGDATATABLECHILDVIEW_H
+
+#include <kmdichildview.h>
+
+#include "../DbObjects/kpgtableindex.h"
+#include "kpgdatatable.h"
+
+class QBoxLayout;
+class KXMLGUIFactory;
+class KPoGreView;
+class KPGConnection;
+class KPGDataTable;
+class KPGKateXmlEditorDialog;
+
+/**
+  * MDI child view for editable data table
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDataTableChildView : public KMdiChildView
+{
+	Q_OBJECT
+public:
+    KPGDataTableChildView(KPoGreView *, 
+		KXMLGUIFactory *, 
+		KPGConnection *, 
+		const QString&, 
+		const QString &, 
+		const ListTableColumns &,
+		const MapIndexKey &, 
+		const QString &, 
+		const QString &, 
+		KPGKateXmlEditorDialog *);
+    
+    ~KPGDataTableChildView();
+	
+	KPGDataTable* getDataTable() const { return m_pDataTable; }
+	
+	// Return true, if window can be closed
+	bool requestClose();
+	
+private:
+	// Editable data table window
+	KPGDataTable*	m_pDataTable;
+	
+	QBoxLayout* m_pLayout;
+	KPoGreView* m_pPoGreView;
+
+public slots:
+
+	// Add KPGDataTable GUI client to factory
+	void slotActivated();
+
+	// Remove KPGDataTable GUI client from factory
+	void slotDeactivated();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Implementation: kpgdatatabledialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdatatabledialog.h"
+
+#include <ktextedit.h>
+#include <qcheckbox.h>
+
+KPGDataTableDialog::KPGDataTableDialog(QWidget* parent)
+ : KPGDataTableDialogBase(parent, "KPGDataTableDialog", true)
+{
+}
+
+
+KPGDataTableDialog::~KPGDataTableDialog()
+{
+}
+
+void KPGDataTableDialog::setWherePredicate(const QString & strWherePredicate)
+{ 
+	m_strWherePredicate = strWherePredicate; 
+	m_pTextEditWherePredicate->setText(m_strWherePredicate);
+}
+
+void KPGDataTableDialog::setOrderByPredicate(const QString & strOrderByPredicate)
+{ 
+	m_strOrderByPredicate = strOrderByPredicate; 
+	m_pTextEditOrderByPredicate->setText(m_strOrderByPredicate);
+}
+
+void KPGDataTableDialog::accept()
+{
+	m_strWherePredicate = m_pTextEditWherePredicate->text();
+	m_strOrderByPredicate = m_pTextEditOrderByPredicate->text();
+	
+	KPGDataTableDialogBase::accept();
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgdatatabledialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDATATABLEDIALOG_H
+#define KPGDATATABLEDIALOG_H
+
+#include "kpgdatatabledialogbase.h"
+
+/**
+Dialog for setting initial infor for data table
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGDataTableDialog : public KPGDataTableDialogBase
+{
+	Q_OBJECT
+public:
+    KPGDataTableDialog(QWidget *);
+    ~KPGDataTableDialog();
+
+	const QString & wherePredicate() const { return m_strWherePredicate; }
+	const QString & orderByPredicate() const { return m_strOrderByPredicate; }
+	
+	void setWherePredicate(const QString &);
+	
+	void setOrderByPredicate(const QString &);
+	
+protected:
+	// The WHERE predicate, used to reduce anmount of edited data
+	QString m_strWherePredicate;
+
+	// The ORDER BY predicate, used to sort edited data
+	QString m_strOrderByPredicate;
+	
+protected slots:
+
+	virtual void accept();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,111 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/DataTable/kpgdatatabledialogbase.ui'
+**
+** Created: Út dub 1 13:07:14 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdatatabledialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGDataTableDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGDataTableDialogBase::KPGDataTableDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGDataTableDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KPGDataTableDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDataTableDialogBaseLayout"); 
+
+    buttonOk = new QPushButton( this, "buttonOk" );
+    buttonOk->setAutoDefault( TRUE );
+    buttonOk->setDefault( TRUE );
+
+    KPGDataTableDialogBaseLayout->addWidget( buttonOk, 2, 0 );
+
+    buttonCancel = new QPushButton( this, "buttonCancel" );
+    buttonCancel->setAutoDefault( TRUE );
+
+    KPGDataTableDialogBaseLayout->addWidget( buttonCancel, 2, 1 );
+    spacer2 = new QSpacerItem( 201, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGDataTableDialogBaseLayout->addItem( spacer2, 2, 2 );
+
+    layout12 = new QVBoxLayout( 0, 0, 6, "layout12"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout12->addWidget( textLabel3 );
+
+    m_pTextEditWherePredicate = new KTextEdit( this, "m_pTextEditWherePredicate" );
+    layout12->addWidget( m_pTextEditWherePredicate );
+
+    KPGDataTableDialogBaseLayout->addMultiCellLayout( layout12, 0, 0, 0, 2 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout2->addWidget( textLabel1 );
+
+    m_pTextEditOrderByPredicate = new KTextEdit( this, "m_pTextEditOrderByPredicate" );
+    layout2->addWidget( m_pTextEditOrderByPredicate );
+
+    KPGDataTableDialogBaseLayout->addMultiCellLayout( layout2, 1, 1, 0, 2 );
+    languageChange();
+    resize( QSize(469, 317).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+    // tab order
+    setTabOrder( m_pTextEditWherePredicate, m_pTextEditOrderByPredicate );
+    setTabOrder( m_pTextEditOrderByPredicate, buttonOk );
+    setTabOrder( buttonOk, buttonCancel );
+
+    // buddies
+    textLabel3->setBuddy( m_pTextEditWherePredicate );
+    textLabel1->setBuddy( m_pTextEditOrderByPredicate );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDataTableDialogBase::~KPGDataTableDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDataTableDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Edit table content" ) );
+    buttonOk->setText( tr2i18n( "&OK" ) );
+    buttonOk->setAccel( QKeySequence( QString::null ) );
+    buttonCancel->setText( tr2i18n( "&Cancel" ) );
+    buttonCancel->setAccel( QKeySequence( QString::null ) );
+    textLabel3->setText( tr2i18n( "&WHERE predicate:" ) );
+    textLabel1->setText( tr2i18n( "&ORDER BY predicate:" ) );
+}
+
+#include "kpgdatatabledialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatabledialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,154 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDataTableDialogBase</class>
+<comment>Dialog for setting initial info for data table </comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGDataTableDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>469</width>
+            <height>317</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Edit table content</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QPushButton" row="2" column="0">
+            <property name="name">
+                <cstring>buttonOk</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;OK</string>
+            </property>
+            <property name="accel">
+                <string></string>
+            </property>
+            <property name="autoDefault">
+                <bool>true</bool>
+            </property>
+            <property name="default">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QPushButton" row="2" column="1">
+            <property name="name">
+                <cstring>buttonCancel</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Cancel</string>
+            </property>
+            <property name="accel">
+                <string></string>
+            </property>
+            <property name="autoDefault">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <spacer row="2" column="2">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>201</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>layout12</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;WHERE predicate:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pTextEditWherePredicate</cstring>
+                    </property>
+                </widget>
+                <widget class="KTextEdit">
+                    <property name="name">
+                        <cstring>m_pTextEditWherePredicate</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;ORDER BY predicate:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pTextEditOrderByPredicate</cstring>
+                    </property>
+                </widget>
+                <widget class="KTextEdit">
+                    <property name="name">
+                        <cstring>m_pTextEditOrderByPredicate</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDataTableDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>buttonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDataTableDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pTextEditWherePredicate</tabstop>
+    <tabstop>m_pTextEditOrderByPredicate</tabstop>
+    <tabstop>buttonOk</tabstop>
+    <tabstop>buttonCancel</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,106 @@
+//
+// C++ Implementation: kpgdatatablesettings
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdatatablesettings.h"
+
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+
+
+#include <qframe.h>
+#include <qcheckbox.h>
+#include <qspinbox.h>
+
+#include "kpgdatatablesettingspage.h"
+
+#define CONF_ENTRY_NAME_CONFIRM_DEL_ROW "ConfirmDeleteRow"
+#define DFLT_VALUE_CONFIRM_DEL_ROW true
+
+#define CONF_ENTRY_NAME_LOB_BUFFER_SIZE "LOB_BufferSize"
+#define DFLT_VALUE_LOB_BUFFER_SIZE 1
+
+KPGDataTableSettings::KPGDataTableSettings( QObject * pParent, const char * pszName )
+ : KPGSettings( "Datatable", pParent, pszName ),
+   m_bConfirmDelRow( DFLT_VALUE_CONFIRM_DEL_ROW ),
+   m_iLobBufferSize( DFLT_VALUE_LOB_BUFFER_SIZE ),
+   m_pDialogPage(0)
+{
+}
+
+KPGDataTableSettings::~KPGDataTableSettings()
+{
+}
+
+void KPGDataTableSettings::write( KConfig * pConfig ) const
+{
+	pConfig->writeEntry( CONF_ENTRY_NAME_CONFIRM_DEL_ROW, m_bConfirmDelRow );
+	pConfig->writeEntry( CONF_ENTRY_NAME_LOB_BUFFER_SIZE, m_iLobBufferSize );
+}
+
+void KPGDataTableSettings::read( const KConfig * pConfig )
+{
+	m_bConfirmDelRow = pConfig->readBoolEntry( CONF_ENTRY_NAME_CONFIRM_DEL_ROW, DFLT_VALUE_CONFIRM_DEL_ROW );
+	m_iLobBufferSize = pConfig->readNumEntry( CONF_ENTRY_NAME_LOB_BUFFER_SIZE, DFLT_VALUE_LOB_BUFFER_SIZE );
+}
+
+QString KPGDataTableSettings::dialogPageName() const
+{
+  	return i18n( "Datatable" );
+}
+
+QString KPGDataTableSettings::dialogPageHeader() const
+{
+  	return i18n( "Datatable setting" );
+}
+
+QString KPGDataTableSettings::dialogPageIcon() const
+{
+  	return "data";
+}
+
+
+QWidget * KPGDataTableSettings::dialogPage( QFrame * pParent )
+{
+	if ( ! m_pDialogPage )
+	{
+		// create the page if necessary
+		m_pDialogPage = new KPGDataTableSettingsPage( pParent, "datatable setting config.dialog page" );
+	
+		// and fill its widgets with the corresponding values
+		updatePage();
+	
+		connect( m_pDialogPage->m_pCheckBoxConfirmDelRow, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pSpinBoxLobBufferSize, SIGNAL(valueChanged(int)), this, SIGNAL(sigDialogPageChanged()) );
+	}
+	
+	return m_pDialogPage;
+}
+
+void KPGDataTableSettings::setFromPage()
+{
+	if ( m_pDialogPage )
+	{
+		m_bConfirmDelRow = m_pDialogPage->m_pCheckBoxConfirmDelRow->isChecked();
+		m_iLobBufferSize = m_pDialogPage->m_pSpinBoxLobBufferSize->value();
+	}
+}
+
+void KPGDataTableSettings::updatePage() const
+{
+	if ( m_pDialogPage )
+	{
+		m_pDialogPage->m_pCheckBoxConfirmDelRow->setChecked( m_bConfirmDelRow );
+		m_pDialogPage->m_pSpinBoxLobBufferSize->setValue( m_iLobBufferSize );
+	}
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettings.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,86 @@
+//
+// C++ Interface: kpgdatatablesettings
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDATATABLESETTINGS_H
+#define KPGDATATABLESETTINGS_H
+
+#include "../kpgsettings.h"
+
+class KPGDataTableSettingsPage;
+
+/**
+Data table settings
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGDataTableSettings : public KPGSettings
+{
+public:
+    KPGDataTableSettings( QObject * pParent = 0, const char * pszName = 0 );
+    ~KPGDataTableSettings();
+    
+	bool confirmDelRow() const { return m_bConfirmDelRow; }
+    int lobBufferSize() const { return m_iLobBufferSize; }
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageName() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageHeader() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageIcon() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QWidget * dialogPage( QFrame * pParent );
+
+protected:
+
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void write( KConfig * ) const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void read( const KConfig * );
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void setFromPage();
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void updatePage() const;
+
+    // the settings itself
+    bool m_bConfirmDelRow;
+    int m_iLobBufferSize;
+    
+    /**
+     * the corresponding configuration dialog page
+     * It is created on demand by @ref dialogPage.
+     */
+    KPGDataTableSettingsPage * m_pDialogPage;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/DataTable/kpgdatatablesettingspage.ui'
+**
+** Created: Út dub 1 13:07:14 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdatatablesettingspage.h"
+
+#include <qvariant.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qspinbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGDataTableSettingsPage as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDataTableSettingsPage::KPGDataTableSettingsPage( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDataTableSettingsPage" );
+    KPGDataTableSettingsPageLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDataTableSettingsPageLayout"); 
+
+    m_pCheckBoxConfirmDelRow = new QCheckBox( this, "m_pCheckBoxConfirmDelRow" );
+    m_pCheckBoxConfirmDelRow->setChecked( TRUE );
+
+    KPGDataTableSettingsPageLayout->addWidget( m_pCheckBoxConfirmDelRow, 0, 0 );
+
+    layout3 = new QHBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout3->addWidget( textLabel1 );
+
+    m_pSpinBoxLobBufferSize = new QSpinBox( this, "m_pSpinBoxLobBufferSize" );
+    m_pSpinBoxLobBufferSize->setMaxValue( 2048 );
+    m_pSpinBoxLobBufferSize->setMinValue( 1 );
+    layout3->addWidget( m_pSpinBoxLobBufferSize );
+    spacer1 = new QSpacerItem( 71, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout3->addItem( spacer1 );
+
+    KPGDataTableSettingsPageLayout->addLayout( layout3, 1, 0 );
+    spacer2 = new QSpacerItem( 20, 50, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGDataTableSettingsPageLayout->addItem( spacer2, 2, 0 );
+    languageChange();
+    resize( QSize(252, 128).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pSpinBoxLobBufferSize );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDataTableSettingsPage::~KPGDataTableSettingsPage()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDataTableSettingsPage::languageChange()
+{
+    setCaption( tr2i18n( "Datatable settings" ) );
+    m_pCheckBoxConfirmDelRow->setText( tr2i18n( "&Confirm deleting row" ) );
+    m_pCheckBoxConfirmDelRow->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    QWhatsThis::add( m_pCheckBoxConfirmDelRow, tr2i18n( "If checked, user will be prompted before delete row in datatable." ) );
+    textLabel1->setText( tr2i18n( "LOB buffer &size [MB]:" ) );
+    QWhatsThis::add( m_pSpinBoxLobBufferSize, tr2i18n( "Buffer size in megabytes for manipulate with large objects - text and bytea." ) );
+}
+
+#include "kpgdatatablesettingspage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgdatatablesettingspage.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,113 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDataTableSettingsPage</class>
+<comment>Settings for data table</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDataTableSettingsPage</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>252</width>
+            <height>128</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Datatable settings</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QCheckBox" row="0" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxConfirmDelRow</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Confirm deleting row</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+            <property name="whatsThis" stdset="0">
+                <string>If checked, user will be prompted before delete row in datatable.</string>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>LOB buffer &amp;size [MB]:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxLobBufferSize</cstring>
+                    </property>
+                </widget>
+                <widget class="QSpinBox">
+                    <property name="name">
+                        <cstring>m_pSpinBoxLobBufferSize</cstring>
+                    </property>
+                    <property name="maxValue">
+                        <number>2048</number>
+                    </property>
+                    <property name="minValue">
+                        <number>1</number>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>Buffer size in megabytes for manipulate with large objects - text and bytea.</string>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>71</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>50</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,235 @@
+//
+// C++ Implementation: kpgkatexmleditordialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgkatexmleditordialog.h"
+
+#include <qlayout.h>
+
+// include files for KDE
+#include <kmessagebox.h>
+#include <kdialog.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+#include <ktoolbarbutton.h>
+#include <kactioncollection.h>
+
+// include files for KatePart
+#include <kate/document.h>  // Katepart document
+
+// application specific includes
+#include "../kpogreview.h"
+
+KPGKateXmlEditorDialog::KPGKateXmlEditorDialog(KPoGreView *pParent,
+	KParts::Factory* pKatePartFactory)
+ : KPGKateXmlEditorDialogBase(pParent, "KPGKateXmlEditorDialog"),
+   KXMLGUIBuilder( this )
+{
+	m_pKateView = createKatePart(pKatePartFactory);
+    
+	m_pKateView->setLineNumbersOn(true);
+    m_pKateView->setIconBorder(true);
+
+	// Setup highlighting
+	KTextEditor::HighlightingInterface *pHighlightIface = KTextEditor::highlightingInterface(m_pKateView->document());
+        
+    for(uint i = 0; i < pHighlightIface->hlModeCount(); i++) 
+    {
+    	//kdDebug() << "hlmode("<<i<<"): " << pHighlightIface->hlModeName(i) << endl;
+        if (pHighlightIface->hlModeName(i).contains("XML", false))
+        {
+        	pHighlightIface->setHlMode(i);
+        	break;
+        }
+     }
+     
+    // Setup marker icon
+    KIconLoader *loader = KGlobal::iconLoader();
+	
+	// Setup highlighting
+	//KTextEditor::MarkInterface *pMarkIface = KTextEditor::markInterface(m_pKateView->document());
+	
+	
+	// pMarkIface->setMarkPixmap
+	m_pKateView->getDoc()->setPixmap(KTextEditor::MarkInterface::Error, loader->loadIcon("stop", KIcon::Small));
+	
+	connect( m_pKateView->document(), SIGNAL(textChanged()), this, SLOT(slotTextChanged()) );
+			
+  	setXMLFile("kpgkateui.rc");
+	
+	// 
+  	/*if (static_cast<Kate::View*>(m_pKateView->qt_cast("Kate::View")))
+  	{
+    	KActionCollection *actions = m_pKateView->actionCollection();
+    	actions->setXMLFile("kpgkateui.rc");
+  	}*/
+
+	m_pXmlGuiFactory = new KXMLGUIFactory(this, this, "kpgkateui");
+	m_pXmlGuiFactory->addClient(this);	
+	m_pXmlGuiFactory->addClient(m_pKateView);		
+  			
+  	KToolBar * pToolBar = (KToolBar*) child("mainToolBar", "KToolBar");	
+  	if(!pToolBar)
+  	{
+  		pToolBar = new KToolBar( this, "mainToolBar", true);
+  	}
+  	else
+  	{
+  		pToolBar->reparent( this, QPoint() );
+  	}
+  	  	
+	pToolBar->setFlat(true);
+		
+	KMenuBar *pMenuBar = (KMenuBar*) child(0, "KMenuBar");
+	if(!pMenuBar)
+	{
+		kdDebug() << "mainMenu not found" << endl;
+	}
+		
+	QVBoxLayout* pToolbarLayout = new QVBoxLayout(this, 0, KDialog::spacingHint());
+	if(pMenuBar)
+	{
+		pToolbarLayout->addWidget(pMenuBar);
+	}
+	pToolbarLayout->addWidget(pToolBar, AlignTop);  
+	pToolbarLayout->addWidget(m_pKateView);
+	pToolbarLayout->addWidget(m_pFrameButtons);
+		
+			
+	// install a working kate part popup dialog thingy
+  	if (static_cast<Kate::View*>(m_pKateView->qt_cast("Kate::View")))
+  	{
+    	static_cast <Kate::View*> (m_pKateView->qt_cast("Kate::View"))->installPopup ((QPopupMenu*)(m_pXmlGuiFactory->container("ktexteditor_popup", this)) );
+    	
+    	KActionCollection *actions = m_pKateView->actionCollection();
+    	KAction *a = actions->action("file_reload");
+    	if(a) a->setEnabled(false);
+    	
+    	//foreach(QAction *pAction, actions)
+    	/*for (int i = 0; i < actions->count(); ++i)
+    	{	
+    		KAction* pAction = actions->action(i);
+    		
+    		//if(pAction->name() == QString("edit_cut"))
+    		//{
+    			kdDebug() << pAction->name() << endl;
+    		//}
+    	}*/
+  	}
+  	
+  	pToolBar->setIconText(KToolBar::IconOnly);
+	pToolBar->setBarPos(KToolBar::Top);
+	pToolBar->setMovingEnabled(false);
+	pToolBar->adjustSize();
+}
+
+KPGKateXmlEditorDialog::~KPGKateXmlEditorDialog()
+{
+	if(m_pKateView)
+    {
+        // remove the view's XML GUI client
+        m_pXmlGuiFactory->removeClient(m_pKateView);
+
+        // remove the view, then the doc
+        Kate::Document *pDoc = m_pKateView->getDoc();
+        delete m_pKateView;
+        delete pDoc;
+    }
+}
+
+
+// Create Kate part view
+Kate::View* KPGKateXmlEditorDialog::createKatePart(KParts::Factory* pKatePartFactory)
+{
+    // The library was found, so create the Kate::Document
+    KTextEditor::Document *doc = (KTextEditor::Document *) pKatePartFactory->createPart(this, "KatePartEditor", this, "", "KTextEditor::Document");
+
+    // The document only represents the document, to view
+    // the document's content
+    // we have to create a view for the document.
+    Kate::View *view = (Kate::View *) doc->createView( this, 0L );
+
+    // all went well, so return the view
+    return view;
+}
+
+void KPGKateXmlEditorDialog::slotTextChanged()
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+
+	if (pEditIface->text().isEmpty())
+		m_pButtonOk->setEnabled(false);
+	else
+		m_pButtonOk->setEnabled(true);
+}
+
+void KPGKateXmlEditorDialog::slotValidate()
+{
+    validateXml(true);
+}
+
+void KPGKateXmlEditorDialog::accept()
+{
+    if(!m_bIsXml || validateXml(false))
+        KPGKateXmlEditorDialogBase::accept();
+}
+
+bool KPGKateXmlEditorDialog::validateXml(bool bInfoIfOK)
+{
+	m_pKateView->getDoc()->clearMarks();
+	QString strXML = editorText();
+
+	// create XML documemt from text
+	QString strErrorMsg;
+  	int iErrorLine, iErrorColumn;
+	QDomDocument doc;
+
+ 	if(!doc.setContent(strXML, true, &strErrorMsg, &iErrorLine, &iErrorColumn) )
+ 	{ 
+		KMessageBox::error(this,
+					 		i18n("%1 in line %2, column %3").arg(strErrorMsg).arg(iErrorLine).arg(iErrorColumn),
+					 		i18n("Parsing error !"));
+
+    	m_pKateView->setCursorPosition(iErrorLine - 1, iErrorColumn - 1);
+    	m_pKateView->getDoc()->setMark(iErrorLine - 1, KTextEditor::MarkInterface::Error);
+    	return false;
+	}
+
+  	if(bInfoIfOK)
+    	KMessageBox::information(this, i18n("OK"));
+
+  	return true;
+}
+
+void KPGKateXmlEditorDialog::setEditorText(const QString &strTest, bool bIsXml)
+{
+	// Setup edited text
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+	pEditIface->setText(strTest);
+	m_bIsXml = bIsXml;
+	m_pButtonValidate->setEnabled(bIsXml);
+	
+	KTextEditor::UndoInterface *pUndoIface = KTextEditor::undoInterface(m_pKateView->document());
+	pUndoIface->clearUndo();
+	pUndoIface->clearRedo();
+}
+
+const QString KPGKateXmlEditorDialog::editorText() const 
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+    return pEditIface->text();
+}
+
+void KPGKateXmlEditorDialog::virtual_hook(int id, void* data)
+{ 
+	KXMLGUIBuilder::virtual_hook(id, data);
+  	KXMLGUIClient::virtual_hook(id, data); 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Interface: kpgkatexmleditordialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGKATEXMLEDITORDIALOG_H
+#define KPGKATEXMLEDITORDIALOG_H
+
+#include "kpgkatexmleditordialogbase.h"
+
+#include <kparts/factory.h> // KPart Factory
+#include <kate/view.h>      // Katepart view
+
+#include <kxmlguibuilder.h>
+
+class KPoGreView;
+
+
+/**
+  * Dialog for editing XML as raw text using Kate part
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGKateXmlEditorDialog : public KPGKateXmlEditorDialogBase, public KXMLGUIBuilder, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public:
+    KPGKateXmlEditorDialog(KPoGreView *, KParts::Factory*);
+    ~KPGKateXmlEditorDialog();
+    
+    // Set editor text
+    void setEditorText(const QString &, bool);
+    
+    // Get editor text
+    const QString editorText() const;
+    
+protected:
+    
+	// Kate part editor
+    Kate::View* m_pKateView;
+    
+    // XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // Is edited text XML ?
+    bool m_bIsXml;
+    
+protected:
+
+	// Create Kate part view
+	Kate::View * createKatePart(KParts::Factory*);
+
+	bool validateXml(bool);
+  
+  	virtual void virtual_hook( int id, void* data );
+  
+protected slots:
+	
+	// Kate documents signals handling
+  	virtual void slotTextChanged();
+	
+	// Fired, when user press Validate button
+  	virtual void slotValidate();
+
+	// Fired, when user press OK button
+	virtual void accept();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,115 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/DataTable/kpgkatexmleditordialogbase.ui'
+**
+** Created: Út dub 1 13:07:14 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgkatexmleditordialogbase.h"
+
+#include <qvariant.h>
+#include <qframe.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGKateXmlEditorDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGKateXmlEditorDialogBase::KPGKateXmlEditorDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGKateXmlEditorDialogBase" );
+
+    m_pFrameButtons = new QFrame( this, "m_pFrameButtons" );
+    m_pFrameButtons->setGeometry( QRect( 10, 370, 520, 50 ) );
+    m_pFrameButtons->setFrameShape( QFrame::StyledPanel );
+    m_pFrameButtons->setFrameShadow( QFrame::Raised );
+    m_pFrameButtons->setLineWidth( 0 );
+    m_pFrameButtonsLayout = new QGridLayout( m_pFrameButtons, 1, 1, 11, 6, "m_pFrameButtonsLayout"); 
+
+    m_pButtonValidate = new QPushButton( m_pFrameButtons, "m_pButtonValidate" );
+
+    m_pFrameButtonsLayout->addWidget( m_pButtonValidate, 0, 0 );
+
+    m_pButtonOk = new QPushButton( m_pFrameButtons, "m_pButtonOk" );
+    m_pButtonOk->setEnabled( TRUE );
+    m_pButtonOk->setAutoDefault( TRUE );
+    m_pButtonOk->setDefault( TRUE );
+
+    m_pFrameButtonsLayout->addWidget( m_pButtonOk, 0, 2 );
+
+    m_pButtonCancel = new QPushButton( m_pFrameButtons, "m_pButtonCancel" );
+    m_pButtonCancel->setAutoDefault( TRUE );
+
+    m_pFrameButtonsLayout->addWidget( m_pButtonCancel, 0, 3 );
+    spacer1 = new QSpacerItem( 111, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    m_pFrameButtonsLayout->addItem( spacer1, 0, 1 );
+    languageChange();
+    resize( QSize(545, 428).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pButtonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( m_pButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+    connect( m_pButtonValidate, SIGNAL( clicked() ), this, SLOT( slotValidate() ) );
+
+    // tab order
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGKateXmlEditorDialogBase::~KPGKateXmlEditorDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGKateXmlEditorDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Edit CLOB content" ) );
+    m_pButtonValidate->setText( tr2i18n( "&Validate" ) );
+    m_pButtonValidate->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    QWhatsThis::add( m_pButtonValidate, tr2i18n( "<b>Validate</b><br/>\n"
+"						Press this button, if you want your XML document in the above editor to be validated." ) );
+    m_pButtonOk->setText( tr2i18n( "&OK" ) );
+    m_pButtonOk->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    m_pButtonCancel->setText( tr2i18n( "&Cancel" ) );
+    m_pButtonCancel->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGKateXmlEditorDialogBase::slotValidate()
+{
+    qWarning( "KPGKateXmlEditorDialogBase::slotValidate(): Not implemented yet" );
+}
+
+void KPGKateXmlEditorDialogBase::slotEditorUndo()
+{
+    qWarning( "KPGKateXmlEditorDialogBase::slotEditorUndo(): Not implemented yet" );
+}
+
+void KPGKateXmlEditorDialogBase::slotEditorRedo()
+{
+    qWarning( "KPGKateXmlEditorDialogBase::slotEditorRedo(): Not implemented yet" );
+}
+
+void KPGKateXmlEditorDialogBase::slotEditorBookmark()
+{
+    qWarning( "KPGKateXmlEditorDialogBase::slotEditorBookmark(): Not implemented yet" );
+}
+
+#include "kpgkatexmleditordialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgkatexmleditordialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,144 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGKateXmlEditorDialogBase</class>
+<comment>Dialog for editing CLOB</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGKateXmlEditorDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>545</width>
+            <height>428</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Edit CLOB content</string>
+    </property>
+    <widget class="QFrame">
+        <property name="name">
+            <cstring>m_pFrameButtons</cstring>
+        </property>
+        <property name="geometry">
+            <rect>
+                <x>10</x>
+                <y>370</y>
+                <width>520</width>
+                <height>50</height>
+            </rect>
+        </property>
+        <property name="frameShape">
+            <enum>StyledPanel</enum>
+        </property>
+        <property name="frameShadow">
+            <enum>Raised</enum>
+        </property>
+        <property name="lineWidth">
+            <number>0</number>
+        </property>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QPushButton" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pButtonValidate</cstring>
+                </property>
+                <property name="text">
+                    <string>&amp;Validate</string>
+                </property>
+                <property name="accel">
+                    <string>Alt+V</string>
+                </property>
+                <property name="whatsThis" stdset="0">
+                    <string>&lt;b&gt;Validate&lt;/b&gt;&lt;br/&gt;
+						Press this button, if you want your XML document in the above editor to be validated.</string>
+                </property>
+            </widget>
+            <widget class="QPushButton" row="0" column="2">
+                <property name="name">
+                    <cstring>m_pButtonOk</cstring>
+                </property>
+                <property name="enabled">
+                    <bool>true</bool>
+                </property>
+                <property name="text">
+                    <string>&amp;OK</string>
+                </property>
+                <property name="accel">
+                    <string>Alt+O</string>
+                </property>
+                <property name="autoDefault">
+                    <bool>true</bool>
+                </property>
+                <property name="default">
+                    <bool>true</bool>
+                </property>
+            </widget>
+            <widget class="QPushButton" row="0" column="3">
+                <property name="name">
+                    <cstring>m_pButtonCancel</cstring>
+                </property>
+                <property name="text">
+                    <string>&amp;Cancel</string>
+                </property>
+                <property name="accel">
+                    <string>Alt+C</string>
+                </property>
+                <property name="autoDefault">
+                    <bool>true</bool>
+                </property>
+            </widget>
+            <spacer row="0" column="1">
+                <property name="name">
+                    <cstring>spacer1</cstring>
+                </property>
+                <property name="orientation">
+                    <enum>Horizontal</enum>
+                </property>
+                <property name="sizeType">
+                    <enum>Expanding</enum>
+                </property>
+                <property name="sizeHint">
+                    <size>
+                        <width>111</width>
+                        <height>21</height>
+                    </size>
+                </property>
+            </spacer>
+        </grid>
+    </widget>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pButtonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGKateXmlEditorDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGKateXmlEditorDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonValidate</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGKateXmlEditorDialogBase</receiver>
+        <slot>slotValidate()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pButtonValidate</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotValidate()</slot>
+    <slot access="protected">slotEditorUndo()</slot>
+    <slot access="protected">slotEditorRedo()</slot>
+    <slot access="protected">slotEditorBookmark()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,33 @@
+//
+// C++ Implementation: kpgtexteditdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtexteditdialog.h"
+
+#include <ktextedit.h>
+
+
+KPGTextEditDialog::KPGTextEditDialog(QWidget* parent, const QString & strText)
+ : KPGTextEditDialogBase(parent, "KPGTextEditDialog", true)
+{
+    m_pTextEdit->setText(strText);
+}
+
+
+KPGTextEditDialog::~KPGTextEditDialog()
+{
+}
+
+void KPGTextEditDialog::accept()
+{
+	m_strText = m_pTextEdit->text();
+	
+	KPGTextEditDialogBase::accept();
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: kpgtexteditdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTEXTEDITDIALOG_H
+#define KPGTEXTEDITDIALOG_H
+
+#include "kpgtexteditdialogbase.h"
+
+/**
+Simple text editor in dialog
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGTextEditDialog : public KPGTextEditDialogBase
+{
+    Q_OBJECT
+
+public:
+    KPGTextEditDialog(QWidget *, const QString &);
+    ~KPGTextEditDialog();
+	
+	const QString & text() const { return m_strText; }
+	
+protected:
+    QString m_strText;
+	
+protected slots:
+
+	virtual void accept();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,89 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/DataTable/kpgtexteditdialogbase.ui'
+**
+** Created: Út dub 1 13:07:15 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtexteditdialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGTextEditDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGTextEditDialogBase::KPGTextEditDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGTextEditDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KPGTextEditDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTextEditDialogBaseLayout"); 
+
+    Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1"); 
+    Horizontal_Spacing2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    Layout1->addItem( Horizontal_Spacing2 );
+
+    buttonOk = new QPushButton( this, "buttonOk" );
+    buttonOk->setAutoDefault( TRUE );
+    buttonOk->setDefault( TRUE );
+    Layout1->addWidget( buttonOk );
+
+    buttonCancel = new QPushButton( this, "buttonCancel" );
+    buttonCancel->setAutoDefault( TRUE );
+    Layout1->addWidget( buttonCancel );
+
+    KPGTextEditDialogBaseLayout->addLayout( Layout1, 1, 0 );
+
+    m_pTextEdit = new KTextEdit( this, "m_pTextEdit" );
+
+    KPGTextEditDialogBaseLayout->addWidget( m_pTextEdit, 0, 0 );
+    languageChange();
+    resize( QSize(511, 282).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+    // tab order
+    setTabOrder( m_pTextEdit, buttonOk );
+    setTabOrder( buttonOk, buttonCancel );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTextEditDialogBase::~KPGTextEditDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTextEditDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Edit text" ) );
+    buttonOk->setText( tr2i18n( "&OK" ) );
+    buttonOk->setAccel( QKeySequence( QString::null ) );
+    buttonCancel->setText( tr2i18n( "&Cancel" ) );
+    buttonCancel->setAccel( QKeySequence( QString::null ) );
+}
+
+#include "kpgtexteditdialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DataTable/kpgtexteditdialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,121 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTextEditDialogBase</class>
+<comment>Simple text editor in dialog</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGTextEditDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>511</width>
+            <height>282</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Edit text</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>Layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>Horizontal Spacing2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>buttonOk</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;OK</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                    <property name="default">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>buttonCancel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Cancel</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="KTextEdit" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTextEdit</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGTextEditDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>buttonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGTextEditDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pTextEdit</tabstop>
+    <tabstop>buttonOk</tabstop>
+    <tabstop>buttonCancel</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,35 @@
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+libDbObjects_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES =  libDbObjects.la
+
+libDbObjects_la_SOURCES = kpgaggregate.cpp kpgaggregatesfolder.cpp kpgcast.cpp \
+	kpgcastsfolder.cpp kpgcheckconstr.cpp kpgconnection.cpp kpgconversion.cpp \
+	kpgconversionsfolder.cpp kpgdatabase.cpp kpgdomain.cpp kpgdomainconstraint.cpp \
+	kpgdomainconstraintsfolder.cpp kpgdomainsfolder.cpp kpgforeignkeyconstr.cpp kpgfunction.cpp \
+	kpgfunctionsfolder.cpp kpggroup.cpp kpggroupsfolder.cpp kpgindex.cpp kpgitemsfolder.cpp \
+	kpglanguage.cpp kpglanguagesfolder.cpp kpgobject.cpp kpgoperator.cpp \
+	kpgoperatorclass.cpp kpgoperatorclassesfolder.cpp kpgoperatorsfolder.cpp kpgprimarykey.cpp \
+	kpgprimarykeyconstr.cpp kpgrule.cpp kpgrulesfolder.cpp kpgschema.cpp kpgsequence.cpp \
+	kpgsequencesfolder.cpp kpgserver.cpp kpgtable.cpp kpgtablecolumn.cpp kpgtablecolumnsfolder.cpp \
+	kpgtableconstraint.cpp kpgtableconstraintsfolder.cpp kpgtableindex.cpp \
+	kpgtableindexesfolder.cpp kpgtableitemsfolder.cpp kpgtablesfolder.cpp kpgtablespace.cpp \
+	kpgtablespacesfolder.cpp kpgtreeitem.cpp kpgtrigger.cpp kpgtriggersfolder.cpp kpgtype.cpp \
+	kpgtypeattribute.cpp kpgtypesfolder.cpp kpguniqueconstr.cpp kpguser.cpp kpgusersfolder.cpp \
+	kpgview.cpp kpgviewsfolder.cpp
+
+EXTRA_DIST = 
+
+noinst_HEADERS = kpgaggregate.h kpgaggregatesfolder.h kpgcast.h \
+	kpgcastsfolder.h kpgcheckconstr.h kpgconversion.h kpgconversionsfolder.h kpgdomain.h \
+	kpgdomainconstraint.h kpgdomainconstraintsfolder.h kpgdomainsfolder.h kpgforeignkeyconstr.h \
+	kpgfunction.h kpgfunctionsfolder.h kpggroup.h kpggroupsfolder.h kpgindex.h \
+	kpglanguage.h kpglanguagesfolder.h kpgobject.h kpgoperator.h kpgoperatorclass.h \
+	kpgoperatorclassesfolder.h kpgoperatorsfolder.h kpgprimarykey.h kpgprimarykeyconstr.h kpgrule.h \
+	kpgrulesfolder.h kpgschema.h kpgsequence.h kpgsequencesfolder.h kpgtablecolumn.h \
+	kpgtablecolumnsfolder.h kpgtableconstraint.h kpgtableconstraintsfolder.h kpgtableindex.h \
+	kpgtableindexesfolder.h kpgtableitemsfolder.h kpgtablesfolder.h kpgtablespace.h \
+	kpgtablespacesfolder.h kpgtrigger.h kpgtriggersfolder.h kpgtype.h kpgtypeattribute.h \
+	kpgtypesfolder.h kpguniqueconstr.h kpguser.h kpgusersfolder.h kpgviewsfolder.h
+
+libDbObjects_la_LIBADD = $(PQXX_LIBS)

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,817 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/DbObjects
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libDbObjects_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libDbObjects_la_OBJECTS = kpgaggregate.lo kpgaggregatesfolder.lo \
+	kpgcast.lo kpgcastsfolder.lo kpgcheckconstr.lo \
+	kpgconnection.lo kpgconversion.lo kpgconversionsfolder.lo \
+	kpgdatabase.lo kpgdomain.lo kpgdomainconstraint.lo \
+	kpgdomainconstraintsfolder.lo kpgdomainsfolder.lo \
+	kpgforeignkeyconstr.lo kpgfunction.lo kpgfunctionsfolder.lo \
+	kpggroup.lo kpggroupsfolder.lo kpgindex.lo kpgitemsfolder.lo \
+	kpglanguage.lo kpglanguagesfolder.lo kpgobject.lo \
+	kpgoperator.lo kpgoperatorclass.lo kpgoperatorclassesfolder.lo \
+	kpgoperatorsfolder.lo kpgprimarykey.lo kpgprimarykeyconstr.lo \
+	kpgrule.lo kpgrulesfolder.lo kpgschema.lo kpgsequence.lo \
+	kpgsequencesfolder.lo kpgserver.lo kpgtable.lo \
+	kpgtablecolumn.lo kpgtablecolumnsfolder.lo \
+	kpgtableconstraint.lo kpgtableconstraintsfolder.lo \
+	kpgtableindex.lo kpgtableindexesfolder.lo \
+	kpgtableitemsfolder.lo kpgtablesfolder.lo kpgtablespace.lo \
+	kpgtablespacesfolder.lo kpgtreeitem.lo kpgtrigger.lo \
+	kpgtriggersfolder.lo kpgtype.lo kpgtypeattribute.lo \
+	kpgtypesfolder.lo kpguniqueconstr.lo kpguser.lo \
+	kpgusersfolder.lo kpgview.lo kpgviewsfolder.lo
+#>- libDbObjects_la_OBJECTS = $(am_libDbObjects_la_OBJECTS)
+#>+ 23
+libDbObjects_la_final_OBJECTS = libDbObjects_la.all_cpp.lo 
+libDbObjects_la_nofinal_OBJECTS = kpgaggregate.lo kpgaggregatesfolder.lo \
+	kpgcast.lo kpgcastsfolder.lo kpgcheckconstr.lo \
+	kpgconnection.lo kpgconversion.lo kpgconversionsfolder.lo \
+	kpgdatabase.lo kpgdomain.lo kpgdomainconstraint.lo \
+	kpgdomainconstraintsfolder.lo kpgdomainsfolder.lo \
+	kpgforeignkeyconstr.lo kpgfunction.lo kpgfunctionsfolder.lo \
+	kpggroup.lo kpggroupsfolder.lo kpgindex.lo kpgitemsfolder.lo \
+	kpglanguage.lo kpglanguagesfolder.lo kpgobject.lo \
+	kpgoperator.lo kpgoperatorclass.lo kpgoperatorclassesfolder.lo \
+	kpgoperatorsfolder.lo kpgprimarykey.lo kpgprimarykeyconstr.lo \
+	kpgrule.lo kpgrulesfolder.lo kpgschema.lo kpgsequence.lo \
+	kpgsequencesfolder.lo kpgserver.lo kpgtable.lo \
+	kpgtablecolumn.lo kpgtablecolumnsfolder.lo \
+	kpgtableconstraint.lo kpgtableconstraintsfolder.lo \
+	kpgtableindex.lo kpgtableindexesfolder.lo \
+	kpgtableitemsfolder.lo kpgtablesfolder.lo kpgtablespace.lo \
+	kpgtablespacesfolder.lo kpgtreeitem.lo kpgtrigger.lo \
+	kpgtriggersfolder.lo kpgtype.lo kpgtypeattribute.lo \
+	kpgtypesfolder.lo kpguniqueconstr.lo kpguser.lo \
+	kpgusersfolder.lo kpgview.lo kpgviewsfolder.lo
+ at KDE_USE_FINAL_FALSE@libDbObjects_la_OBJECTS = $(libDbObjects_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libDbObjects_la_OBJECTS = $(libDbObjects_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libDbObjects_la_SOURCES)
+DIST_SOURCES = $(libDbObjects_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = $(all_includes)
+#>- METASOURCES = AUTO
+libDbObjects_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libDbObjects.la
+libDbObjects_la_SOURCES = kpgaggregate.cpp kpgaggregatesfolder.cpp kpgcast.cpp \
+	kpgcastsfolder.cpp kpgcheckconstr.cpp kpgconnection.cpp kpgconversion.cpp \
+	kpgconversionsfolder.cpp kpgdatabase.cpp kpgdomain.cpp kpgdomainconstraint.cpp \
+	kpgdomainconstraintsfolder.cpp kpgdomainsfolder.cpp kpgforeignkeyconstr.cpp kpgfunction.cpp \
+	kpgfunctionsfolder.cpp kpggroup.cpp kpggroupsfolder.cpp kpgindex.cpp kpgitemsfolder.cpp \
+	kpglanguage.cpp kpglanguagesfolder.cpp kpgobject.cpp kpgoperator.cpp \
+	kpgoperatorclass.cpp kpgoperatorclassesfolder.cpp kpgoperatorsfolder.cpp kpgprimarykey.cpp \
+	kpgprimarykeyconstr.cpp kpgrule.cpp kpgrulesfolder.cpp kpgschema.cpp kpgsequence.cpp \
+	kpgsequencesfolder.cpp kpgserver.cpp kpgtable.cpp kpgtablecolumn.cpp kpgtablecolumnsfolder.cpp \
+	kpgtableconstraint.cpp kpgtableconstraintsfolder.cpp kpgtableindex.cpp \
+	kpgtableindexesfolder.cpp kpgtableitemsfolder.cpp kpgtablesfolder.cpp kpgtablespace.cpp \
+	kpgtablespacesfolder.cpp kpgtreeitem.cpp kpgtrigger.cpp kpgtriggersfolder.cpp kpgtype.cpp \
+	kpgtypeattribute.cpp kpgtypesfolder.cpp kpguniqueconstr.cpp kpguser.cpp kpgusersfolder.cpp \
+	kpgview.cpp kpgviewsfolder.cpp
+
+EXTRA_DIST = 
+noinst_HEADERS = kpgaggregate.h kpgaggregatesfolder.h kpgcast.h \
+	kpgcastsfolder.h kpgcheckconstr.h kpgconversion.h kpgconversionsfolder.h kpgdomain.h \
+	kpgdomainconstraint.h kpgdomainconstraintsfolder.h kpgdomainsfolder.h kpgforeignkeyconstr.h \
+	kpgfunction.h kpgfunctionsfolder.h kpggroup.h kpggroupsfolder.h kpgindex.h \
+	kpglanguage.h kpglanguagesfolder.h kpgobject.h kpgoperator.h kpgoperatorclass.h \
+	kpgoperatorclassesfolder.h kpgoperatorsfolder.h kpgprimarykey.h kpgprimarykeyconstr.h kpgrule.h \
+	kpgrulesfolder.h kpgschema.h kpgsequence.h kpgsequencesfolder.h kpgtablecolumn.h \
+	kpgtablecolumnsfolder.h kpgtableconstraint.h kpgtableconstraintsfolder.h kpgtableindex.h \
+	kpgtableindexesfolder.h kpgtableitemsfolder.h kpgtablesfolder.h kpgtablespace.h \
+	kpgtablespacesfolder.h kpgtrigger.h kpgtriggersfolder.h kpgtype.h kpgtypeattribute.h \
+	kpgtypesfolder.h kpguniqueconstr.h kpguser.h kpgusersfolder.h kpgviewsfolder.h
+
+libDbObjects_la_LIBADD = $(PQXX_LIBS)
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/DbObjects/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libDbObjects.la: $(libDbObjects_la_OBJECTS) $(libDbObjects_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libDbObjects_la_LDFLAGS) $(libDbObjects_la_OBJECTS) $(libDbObjects_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgaggregate.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgaggregatesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcast.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcastsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcheckconstr.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconnection.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconversion.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconversionsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatabase.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomain.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainconstraint.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainconstraintsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgforeignkeyconstr.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgfunction.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgfunctionsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpggroup.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpggroupsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgindex.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgitemsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpglanguage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpglanguagesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgobject.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperator.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorclass.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorclassesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgprimarykey.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgprimarykeyconstr.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrule.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrulesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgschema.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsequence.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsequencesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgserver.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtable.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablecolumn.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablecolumnsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableconstraint.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableconstraintsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableindex.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableindexesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableitemsfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablespace.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablespacesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtreeitem.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtrigger.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtriggersfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtype.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtypeattribute.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtypesfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpguniqueconstr.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpguser.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgusersfolder.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgview.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgviewsfolder.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=kpgtreeitem.h kpgconnection.h Makefile.in kpgtable.h kpgdatabase.h kpgserver.h kpgitemsfolder.h kpgview.h Makefile.am 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/DbObjects/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/DbObjects/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libDbObjects_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgaggregate.cpp $(srcdir)/kpgaggregatesfolder.cpp $(srcdir)/kpgcast.cpp $(srcdir)/kpgcastsfolder.cpp $(srcdir)/kpgcheckconstr.cpp $(srcdir)/kpgconnection.cpp $(srcdir)/kpgconversion.cpp $(srcdir)/kpgconversionsfolder.cpp $(srcdir)/kpgdatabase.cpp $(srcdir)/kpgdomain.cpp $(srcdir)/kpgdomainconstraint.cpp $(srcdir)/kpgdomainconstraintsfolder.cpp $(srcdir)/kpgdomainsfolder.cpp $(srcdir)/kpgforeignkeyconstr.cpp $(srcdir)/kpgfunction.cpp $(srcdir)/kpgfunctionsfolder.cpp $(srcdir)/kpggroup.cpp $(srcdir)/kpggroupsfolder.cpp $(srcdir)/kpgindex.cpp $(srcdir)/kpgitemsfolder.cpp $(srcdir)/kpglanguage.cpp $(srcdir)/kpglanguagesfolder.cpp $(srcdir)/kpgobject.cpp $(srcdir)/kpgoperator.cpp $(srcdir)/kpgoperatorclass.cpp $(srcdir)/kpgoperatorclassesfolder.cpp $(srcdir)/kpgoperatorsfolder.cpp $(srcdir)/kpgprimarykey.cpp $(srcdir)/kpgprimarykeyconstr.cpp $(srcdir)/kpgrule.cpp $(srcdir)/kpgrulesfolder.cpp $(srcdir)/kpgschema.cpp $(srcdir)/kpgsequence.cpp $(srcdir)/kpgsequencesfolder.cpp $(srcdir)/kpgserver.cpp $(srcdir)/kpgtable.cpp $(srcdir)/kpgtablecolumn.cpp $(srcdir)/kpgtablecolumnsfolder.cpp $(srcdir)/kpgtableconstraint.cpp $(srcdir)/kpgtableconstraintsfolder.cpp $(srcdir)/kpgtableindex.cpp $(srcdir)/kpgtableindexesfolder.cpp $(srcdir)/kpgtableitemsfolder.cpp $(srcdir)/kpgtablesfolder.cpp $(srcdir)/kpgtablespace.cpp $(srcdir)/kpgtablespacesfolder.cpp $(srcdir)/kpgtreeitem.cpp $(srcdir)/kpgtrigger.cpp $(srcdir)/kpgtriggersfolder.cpp $(srcdir)/kpgtype.cpp $(srcdir)/kpgtypeattribute.cpp $(srcdir)/kpgtypesfolder.cpp $(srcdir)/kpguniqueconstr.cpp $(srcdir)/kpguser.cpp $(srcdir)/kpgusersfolder.cpp $(srcdir)/kpgview.cpp $(srcdir)/kpgviewsfolder.cpp 
+	@echo 'creating libDbObjects_la.all_cpp.cpp ...'; \
+	rm -f libDbObjects_la.all_cpp.files libDbObjects_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libDbObjects_la.all_cpp.final; \
+	for file in kpgaggregate.cpp kpgaggregatesfolder.cpp kpgcast.cpp kpgcastsfolder.cpp kpgcheckconstr.cpp kpgconnection.cpp kpgconversion.cpp kpgconversionsfolder.cpp kpgdatabase.cpp kpgdomain.cpp kpgdomainconstraint.cpp kpgdomainconstraintsfolder.cpp kpgdomainsfolder.cpp kpgforeignkeyconstr.cpp kpgfunction.cpp kpgfunctionsfolder.cpp kpggroup.cpp kpggroupsfolder.cpp kpgindex.cpp kpgitemsfolder.cpp kpglanguage.cpp kpglanguagesfolder.cpp kpgobject.cpp kpgoperator.cpp kpgoperatorclass.cpp kpgoperatorclassesfolder.cpp kpgoperatorsfolder.cpp kpgprimarykey.cpp kpgprimarykeyconstr.cpp kpgrule.cpp kpgrulesfolder.cpp kpgschema.cpp kpgsequence.cpp kpgsequencesfolder.cpp kpgserver.cpp kpgtable.cpp kpgtablecolumn.cpp kpgtablecolumnsfolder.cpp kpgtableconstraint.cpp kpgtableconstraintsfolder.cpp kpgtableindex.cpp kpgtableindexesfolder.cpp kpgtableitemsfolder.cpp kpgtablesfolder.cpp kpgtablespace.cpp kpgtablespacesfolder.cpp kpgtreeitem.cpp kpgtrigger.cpp kpgtriggersfolder.cpp kpgtype.cpp kpgtypeattribute.cpp kpgtypesfolder.cpp kpguniqueconstr.cpp kpguser.cpp kpgusersfolder.cpp kpgview.cpp kpgviewsfolder.cpp ; do \
+	  echo "#include \"$$file\"" >> libDbObjects_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libDbObjects_la.all_cpp.final; \
+	done; \
+	cat libDbObjects_la.all_cpp.final libDbObjects_la.all_cpp.files > libDbObjects_la.all_cpp.cpp; \
+	rm -f libDbObjects_la.all_cpp.final libDbObjects_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libDbObjects_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libDbObjects_la_OBJECTS="$(libDbObjects_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libDbObjects_la_OBJECTS="$(libDbObjects_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libDbObjects_la_OBJECTS="$(libDbObjects_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libDbObjects_la_OBJECTS="$(libDbObjects_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,56 @@
+//
+// C++ Implementation: kpgaggregate
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgaggregate.h"
+
+// include files for KDE
+#include <kdebug.h>
+
+#include "kpgaggregatesfolder.h"
+
+KPGAggregate::KPGAggregate(KPGAggregatesFolder *parent, const QString name)
+  : KPGTreeItem(parent, name)
+{
+	setPixmap(0, *m_pIconAggregate);
+}
+
+KPGAggregate::KPGAggregate(KPGAggregatesFolder *parent, KPGAggregate *after, const QString name)
+  : KPGTreeItem(parent, after, name)
+{
+    setPixmap(0, *m_pIconAggregate);
+}
+
+KPGAggregate::~KPGAggregate()
+{
+}
+
+void KPGAggregate::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["aggegfnoid"].to(m_oidAggregateFn);
+	pqxxTuple["aggtransfnoid"].to(m_oidTransFn);
+	pqxxTuple["aggfinalfnoid"].to(m_oidFinalFn);
+	pqxxTuple["inputtypoid"].to(m_oidInputType);
+	pqxxTuple["transtypoid"].to(m_oidTransType);
+	pqxxTuple["returntypoid"].to(m_oidRetType);
+		
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strAggregateFn = pqxxTuple["aggfnname"].c_str();
+	m_strOwner = pqxxTuple["aggrowner"].c_str();
+	m_strTransFn = pqxxTuple["aggtransfn"].c_str();
+	m_strFinalFn = pqxxTuple["aggfinalfn"].c_str();
+	m_strInputTypName = pqxxTuple["inputtypname"].c_str();
+	m_strTransTypName = pqxxTuple["transtypname"].c_str();
+	m_strRetTypName = pqxxTuple["returntypname"].c_str();
+	m_strInitVal = pqxxTuple["agginitval"].c_str();
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregate.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,89 @@
+//
+// C++ Interface: kpgaggregate
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGAGGREGATE_H
+#define KPGAGGREGATE_H
+
+#include "kpgtreeitem.h"
+
+class KPGAggregatesFolder;
+
+/**
+  * Aggregate function. An aggregate function is a function that operates on a * set of values (typically one column from each row that matches a query 
+  * condition) and returns a single value computed from all these values.
+  *
+  * Typical aggregate functions are sum, count, and max. Each entry in
+  * pg_aggregate is an extension of an entry in pg_proc. The pg_proc entry
+  * carries the aggregate's name, input and output data types, and other
+  * information that is similar to ordinary functions. 
+  *
+  * @author Lumir Vanek
+  */
+class KPGAggregate : public KPGTreeItem
+{
+public:
+    KPGAggregate(KPGAggregatesFolder *, const QString);
+	KPGAggregate(KPGAggregatesFolder *, KPGAggregate *, const QString);
+    ~KPGAggregate();
+
+    virtual eNodeType type() const { return nodeAggregate; }
+	void setProperties(const pqxx::result::tuple &);
+			 
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+		
+	/*
+	 * Functions for accessing properties
+	 */
+	 
+	pqxx::oid oidAggregateFn() const { return m_oidAggregateFn; }
+	const QString & aggregateFn() const { return m_strAggregateFn; }	
+	const QString & description() const { return m_strDescription; }
+	const QString & owner() const { return m_strOwner; }
+	pqxx::oid oidTransFn() const { return m_oidTransFn; }
+	const QString & transFn() const { return m_strTransFn; }
+	pqxx::oid oidFinalFn() const { return m_oidFinalFn; }
+	const QString & finalFn() const { return m_strFinalFn; }
+		
+	pqxx::oid oidInputType() const { return m_oidInputType; }
+	const QString & inputTypName() const { return m_strInputTypName; }
+	pqxx::oid oidTransType() const { return m_oidTransType; }
+	const QString & transTypName() const { return m_strTransTypName; }
+	pqxx::oid oidRetType() const { return m_oidRetType; }
+	const QString & retTypName() const { return m_strRetTypName; }
+		
+	const QString & initVal() const { return m_strInitVal; }
+	
+protected:
+
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oidAggregateFn;
+	QString m_strAggregateFn;
+	QString m_strDescription;
+	QString m_strOwner;
+	pqxx::oid m_oidTransFn;
+	QString m_strTransFn;
+	pqxx::oid m_oidFinalFn;
+	QString m_strFinalFn;
+		
+	pqxx::oid m_oidInputType;
+	QString m_strInputTypName;
+	pqxx::oid m_oidTransType;
+	QString m_strTransTypName;
+	pqxx::oid m_oidRetType;
+	QString m_strRetTypName;
+		
+	QString m_strInitVal;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,80 @@
+//
+// C++ Implementation: kpgaggregatesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgaggregatesfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgaggregate.h"
+
+KPGAggregatesFolder::KPGAggregatesFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Aggregates"))
+{
+	setPixmap(0, *m_pIconFolderYellow);
+	m_oidNameSpace = oidNameSpace;
+}
+
+KPGAggregatesFolder::~KPGAggregatesFolder()
+{
+}
+
+void KPGAggregatesFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (databases)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+
+	// obtain list of aggregates
+    QString strQuery("SELECT pr.proname AS aggrname, aggfnoid::oid AS aggegfnoid, aggfnoid AS aggfnname, pg_get_userbyid(proowner) AS aggrowner, description, aggtransfn::oid AS \
+    aggtransfnoid, aggtransfn, aggfinalfn::oid AS aggfinalfnoid, aggfinalfn, "); // proargtypes[0] AS aggbasetype,
+		
+	strQuery.append("ti.oid AS inputtypoid, ti.typname AS inputtypname, ");
+	strQuery.append("tt.oid AS transtypoid, tt.typname AS transtypname, ");
+	strQuery.append("tf.oid AS returntypoid, tf.typname AS returntypname, ");
+		
+	strQuery.append("agginitval ");
+	strQuery.append("FROM pg_catalog.pg_aggregate ag ");
+	strQuery.append("JOIN pg_catalog.pg_proc pr ON pr.oid = ag.aggfnoid::oid ");
+	strQuery.append("JOIN pg_catalog.pg_type ti on ti.oid=pr.proargtypes[0] ");
+	strQuery.append("JOIN pg_catalog.pg_type tt on tt.oid=aggtranstype ");
+	strQuery.append("JOIN pg_catalog.pg_type tf on tf.oid=prorettype ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=aggfnoid::oid ");
+	strQuery.append("WHERE pr.pronamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY aggrname");
+			
+    try
+    {
+        m_pqxxResultAggregates = connection()->runQuery(strQuery);
+
+        KPGAggregate *pAggregate = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultAggregates.size(); ++i)
+        {
+            if(pAggregate == 0)
+                pAggregate = new KPGAggregate(this, m_pqxxResultAggregates[i]["aggrname"].c_str());
+            else
+                pAggregate = new KPGAggregate(this, pAggregate, m_pqxxResultAggregates[i]["aggrname"].c_str());
+                
+            pAggregate->setProperties(m_pqxxResultAggregates[i]);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgaggregatesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: kpgaggregatesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGAGGREGATESFOLDER_H
+#define KPGAGGREGATESFOLDER_H
+
+#include <kpgitemsfolder.h>
+
+class KPGSchema;
+
+/**
+  * Folder for aggregates functions
+  *
+  * @author Lumir Vanek
+  */
+class KPGAggregatesFolder : public KPGItemsFolder
+{
+public:
+    KPGAggregatesFolder(KPGSchema *, pqxx::oid);
+    ~KPGAggregatesFolder();
+
+	virtual eNodeType type() const { return nodeFolderAggregates; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	
+	const pqxx::result & resultAggregates() const { return m_pqxxResultAggregates; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultAggregates;
+		
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,53 @@
+//
+// C++ Implementation: kpgcast
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcast.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+
+#include "kpgcastsfolder.h"
+#include "../kpgsqlexception.h"
+
+KPGCast::KPGCast(KPGCastsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    setPixmap(0, *m_pIconCast);
+}
+
+KPGCast::KPGCast(KPGCastsFolder *parent, KPGCast *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconCast);
+}
+
+KPGCast::~KPGCast()
+{
+}
+
+void KPGCast::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+    pqxxTuple["castsource"].to(m_oidSourceType);
+    pqxxTuple["casttarget"].to(m_oidTargetType);
+    pqxxTuple["castfunc"].to(m_oidCastFunc);
+    pqxxTuple["pronamespace"].to(m_oidNameSpace);
+            
+	m_strContext = pqxxTuple["castcontext"].c_str();
+	m_strSourceType = pqxxTuple["srctype"].c_str();
+	m_strTargetType = pqxxTuple["trgtype"].c_str();
+	m_strCastFunc = pqxxTuple["proname"].c_str();
+	m_strNameSpace = pqxxTuple["nspname"].c_str();
+}
+
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcast.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,71 @@
+//
+// C++ Interface: kpgcast
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCAST_H
+#define KPGCAST_H
+
+#include "kpgobject.h"
+
+class KPGCastsFolder;
+
+/**
+  * Item that represent cast. A cast specifies how to perform 
+  * a conversion between two data types.
+  *
+  * @author Lumir Vanek
+  */
+class KPGCast : public KPGObject
+{
+public:
+    KPGCast(KPGCastsFolder *, const QString, pqxx::oid);
+	KPGCast(KPGCastsFolder *, KPGCast *, const QString, pqxx::oid);
+    ~KPGCast();
+
+	virtual eNodeType type() const { return nodeCast; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "CAST"; }
+	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, and also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & context() const { return m_strContext; }
+	pqxx::oid oidSourceType() const { return m_oidSourceType; }
+	const QString & sourceType() const { return m_strSourceType; }
+	pqxx::oid oidTargetType() const { return m_oidTargetType; }
+	const QString & targetType() const { return m_strTargetType; }
+	pqxx::oid oidCastFunc() const { return m_oidCastFunc; }
+	const QString & castFunc() const { return m_strCastFunc; }
+	pqxx::oid oidNameSpace() const { return m_oidNameSpace; }
+	const QString & nameSpace() const { return m_strNameSpace; }
+	
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strContext;
+	pqxx::oid m_oidSourceType;
+	QString m_strSourceType;
+	pqxx::oid m_oidTargetType;
+	QString m_strTargetType;
+	pqxx::oid m_oidCastFunc;
+	QString m_strCastFunc;
+	pqxx::oid m_oidNameSpace;
+	QString m_strNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Implementation: kpgcastsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcastsfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgcast.h"
+#include "kpgdatabase.h"
+
+
+KPGCastsFolder::KPGCastsFolder(KPGDatabase *parent)
+ : KPGItemsFolder(parent, i18n("Casts"))
+{
+	setPixmap(0, *m_pIconFolderGreen);
+}
+
+
+KPGCastsFolder::~KPGCastsFolder()
+{
+}
+
+void KPGCastsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    // obtain list of casts
+    QString strQuery("SELECT ca.oid, st.typname || ' -> ' || tt.typname AS name, CASE WHEN ca.castcontext = 'e' THEN 'explicit' WHEN ca.castcontext = 'a' THEN 'implicitly in \
+    assignment' WHEN ca.castcontext = 'i' THEN 'implicitly in expressions' END AS castcontext, castsource, st.typname AS srctype, casttarget, tt.typname AS trgtype, castfunc, \
+    pr.proname, pr.pronamespace, nspname ");
+	strQuery.append("FROM pg_catalog.pg_cast ca ");
+	strQuery.append("JOIN pg_catalog.pg_type st ON st.oid=castsource ");
+	strQuery.append("JOIN pg_catalog.pg_type tt ON tt.oid=casttarget ");
+	strQuery.append("LEFT JOIN pg_catalog.pg_proc pr ON pr.oid=castfunc ");
+	strQuery.append("LEFT JOIN pg_catalog.pg_namespace na ON na.oid=pr.pronamespace ");
+	strQuery.append("ORDER BY st.typname, tt.typname");
+		
+	try
+    {
+        m_pqxxResultCasts = connection()->runQuery(strQuery);
+    
+        KPGCast *pCast = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultCasts.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultCasts[i][0].to(oid);
+            
+            if(pCast == 0)
+                pCast = new KPGCast(this, QString(m_pqxxResultCasts[i]["name"].c_str()), oid);
+            else
+                pCast = new KPGCast(this, pCast, QString(m_pqxxResultCasts[i]["name"].c_str()), oid);
+                    
+            pCast->setProperties(m_pqxxResultCasts[i]);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcastsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: kpgcastsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCASTSFOLDER_H
+#define KPGCASTSFOLDER_H
+
+#include <kpgitemsfolder.h>
+
+class KPGDatabase;
+
+/**
+  * Folder that hold casts
+  *
+  * @author Lumir Vanek
+  */
+class KPGCastsFolder : public KPGItemsFolder
+{
+public:
+    KPGCastsFolder(KPGDatabase *);
+    ~KPGCastsFolder();
+				
+	virtual eNodeType type() const { return nodeFolderCasts; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultCasts() const { return m_pqxxResultCasts; }
+		
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultCasts;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+//
+// C++ Implementation: kpgcheckconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcheckconstr.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableconstraintsfolder.h"
+
+
+
+KPGCheckConstr::KPGCheckConstr(KPGTableConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, name, _oid)
+{
+  setPixmap(0, *m_pIconCheckConstr);
+}
+
+KPGCheckConstr::KPGCheckConstr(KPGTableConstraintsFolder *parent, KPGTableConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, after, name, _oid)
+{
+  	setPixmap(0, *m_pIconCheckConstr);
+}
+
+KPGCheckConstr::~KPGCheckConstr()
+{
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgcheckconstr.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgcheckconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCHECKCONSTR_H
+#define KPGCHECKCONSTR_H
+
+#include "kpgtableconstraint.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Table Check constraint
+  *
+  * @author Lumir Vanek
+  */
+class KPGCheckConstr : public KPGTableConstraint
+{
+public:
+    KPGCheckConstr(KPGTableConstraintsFolder *, const QString, pqxx::oid);
+	KPGCheckConstr(KPGTableConstraintsFolder *, KPGTableConstraint *, const QString, pqxx::oid);
+    ~KPGCheckConstr();
+		
+	virtual eNodeType type() const { return nodeCheckConstr; }
+	
+	void setExpression(const QString strExpression) { m_strExpression = strExpression; }
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & expression() const { return m_strExpression; }
+		
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strExpression;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,409 @@
+/***************************************************************************
+                          kpgconnection.cpp  -  description
+                             -------------------
+    begin                : � led 13 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : dsacher at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgconnection.h"
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../kpggeneralsettings.h"
+
+// include files for libpgxx 
+#include <pqxx/nontransaction> 
+#include <pqxx/robusttransaction> 
+ 
+// include files for Qt
+#include <qstring.h>
+#include <qtextcodec.h>
+#include <qstringlist.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <qtextcodec.h>
+ 
+
+void KPGNoticer::operator()(const char Msg[]) throw ()
+{
+  if(!m_pListOfNotifications)
+	{
+		kdError() << k_funcinfo << ": m_pListOfNotifications is NULL !" << endl;
+		return;
+	}
+	
+	// Add notification to list
+	*m_pListOfNotifications << Msg;
+}
+
+//--------------------------------------------------------------------------
+
+KPGConnection::KPGConnection(const QString strConnectString)
+  : connection(strConnectString.latin1())
+{
+    KPGNoticer *pMyNoticer = new KPGNoticer;
+	pMyNoticer->m_pListOfNotifications = &m_listOfNotifications;
+  
+    // This is not a memory leak: C stores MyNoticer in an auto_ptr that will delete the object on destruction.
+    set_noticer(PGSTD::auto_ptr<noticer> (pMyNoticer));
+    
+    m_pFileTrace = 0;
+    
+    // Try obtain codec for connection client encoding
+    m_pTextCodec = QTextCodec::codecForName(encoderName().latin1());
+    if(m_pTextCodec == 0)
+    {
+        // If not found, force UTF8
+        kdDebug() << k_funcinfo << "Unknown codec: " << encoderName() << " - trying UTF8"  << endl;  
+        set_client_encoding("utf8"); 
+        
+        // Get codec for connection client encoding
+		m_pTextCodec = QTextCodec::codecForName(encoderName().latin1());
+		if(!m_pTextCodec)
+		{	
+			kdDebug() << k_funcinfo << "Unknown codec: " << encoderName() << endl;  
+			m_pTextCodec = QTextCodec::codecForLocale(); // hope that correct codec is returned
+		}
+    }
+}
+
+
+KPGConnection::~KPGConnection() throw ()
+{
+	if(is_open())
+		disconnect();
+    
+	if(m_pFileTrace)
+	{
+		fclose(m_pFileTrace);
+	}
+}
+
+// Run SQL statement, make conversion regard connection encoding,
+// Get XAct type from global setting. Don't make commit, use it
+// only for SELECT
+pqxx::result KPGConnection::runQuery(const QString& strQuery)
+{
+    KPGConnection::ETransType transType = KPoGreView::configuration()->general()->transactionType();
+    
+    QCString cstrDecodedQuery(m_pTextCodec->fromUnicode(strQuery));
+ 	QString strDecodedQuery(cstrDecodedQuery);
+    
+    if(transType == KPGConnection::eTransNormal)
+    {    
+        //kdDebug() << k_funcinfo << "eTransNormal"  << endl;  
+        pqxx::transaction<> pqxxXaction(*this, "runQuery");
+        return pqxxXaction.exec(strDecodedQuery);
+    }
+    else if(transType == eTransNone)
+	{
+		//kdDebug() << k_funcinfo << "eTransNone"  << endl;  
+		pqxx::nontransaction pqxxXaction(*this, "runQuery");
+		return pqxxXaction.exec(strDecodedQuery);
+	}	
+    
+    //	eTransRobust:
+    //kdDebug() << k_funcinfo << "eTransRobust"  << endl;  
+    pqxx::robusttransaction<> pqxxXaction(*this, "runQuery"); // name.operator std::string()
+    return pqxxXaction.exec(strDecodedQuery);
+}
+
+// Run SQL statement, make conversion regard connection encoding
+pqxx::result KPGConnection::runQuery(const QString& strQuery, ETransType transType)
+{
+ 	QCString cstrDecodedQuery(m_pTextCodec->fromUnicode(strQuery));
+ 	QString strDecodedQuery(cstrDecodedQuery);
+ 	
+ 	// run query
+    if(transType == eTransNormal)
+	{
+		pqxx::transaction<> pqxxXaction(*this, "runQuery");
+		result pqxxResult(pqxxXaction.exec(strDecodedQuery));
+		pqxxXaction.commit();
+  		return pqxxResult;
+	}
+	else if(transType == eTransNone)
+	{
+		pqxx::nontransaction pqxxXaction(*this, "runQuery");
+		return pqxxXaction.exec(strDecodedQuery);
+	}	
+		
+	//	eTransRobust:
+	pqxx::robusttransaction<> pqxxXaction(*this, "runQuery");
+	result pqxxResult(pqxxXaction.exec(strDecodedQuery));
+	pqxxXaction.commit();
+	return pqxxResult;
+}
+
+// Run prepared SQL statement
+pqxx::result KPGConnection::runPreparedStatement(const std::string &stdstrPrepStmtName, const ListArgumentsWithValues & listArgumentsWithValues, ETransType transType)
+{
+ 	// run query
+    if(transType == eTransNormal)
+	{
+		pqxx::transaction<> pqxxXaction(*this, stdstrPrepStmtName);
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+		
+		for(ListArgumentsWithValues::const_iterator cit = listArgumentsWithValues.begin(); cit != listArgumentsWithValues.end(); ++cit)
+		{
+			bool bSuccess = setInvocationValue(pqxxInvocation, (*cit).typName(), (*cit).value());
+			if(!bSuccess)
+			{
+				unprepare(stdstrPrepStmtName);
+				
+				if((*cit).name().length() > 0)
+				{			
+					throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).name())); 
+				}
+				else
+				{			
+					throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).sequence())); 
+				}
+			}
+		}
+		
+		result pqxxResult(pqxxInvocation.exec());
+		pqxxXaction.commit();
+		unprepare(stdstrPrepStmtName);
+		return pqxxResult;
+	}
+	else if(transType == eTransNone)
+	{
+		pqxx::nontransaction pqxxXaction(*this, "runQuery");
+		prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+		
+		for(ListArgumentsWithValues::const_iterator cit = listArgumentsWithValues.begin(); cit != listArgumentsWithValues.end(); ++cit)
+		{
+			bool bSuccess = setInvocationValue(pqxxInvocation, (*cit).typName(), (*cit).value());
+			if(!bSuccess)
+			{
+				unprepare(stdstrPrepStmtName);
+					
+				if((*cit).name().length() > 0)
+				{			
+					throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).name())); 
+				}
+				else
+				{			
+					throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).sequence())); 
+				}
+			}
+		}
+			
+		result pqxxResult(pqxxInvocation.exec());
+		unprepare(stdstrPrepStmtName);
+		return pqxxResult;
+	}	
+		
+	//	eTransRobust:
+	pqxx::robusttransaction<> pqxxXaction(*this, "runQuery");
+	prepare::invocation pqxxInvocation = pqxxXaction.prepared(stdstrPrepStmtName);
+		
+	for(ListArgumentsWithValues::const_iterator cit = listArgumentsWithValues.begin(); cit != listArgumentsWithValues.end(); ++cit)
+	{
+		bool bSuccess = setInvocationValue(pqxxInvocation, (*cit).typName(), (*cit).value());
+		if(!bSuccess)
+		{
+			unprepare(stdstrPrepStmtName);
+				
+			if((*cit).name().length() > 0)
+			{			
+				throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).name())); 
+			}
+			else
+			{			
+				throw PGSTD::invalid_argument(i18n("Conversion for argument %1 failed !").arg((*cit).sequence())); 
+			}
+		}
+	}
+		
+	result pqxxResult(pqxxInvocation.exec());
+	pqxxXaction.commit();
+	unprepare(stdstrPrepStmtName);
+	return pqxxResult;
+}
+
+
+// Return encoder name for QTextCodec regards to connection client encoding
+// Source
+// http://doc.trolltech.com/3.3/qtextcodec.html
+// http://www.postgresql.org/docs/8.1/static/multibyte.html
+const QString KPGConnection::encoderName()
+{
+    QString strEncoding(clientEncoding());
+    
+	if(strEncoding == "LATIN1") return "ISO8859-1";
+	if(strEncoding == "LATIN2") return "ISO8859-2";
+	if(strEncoding == "LATIN3") return "ISO8859-3";
+	if(strEncoding == "LATIN4") return "ISO8859-4";
+	if(strEncoding == "LATIN5") return "ISO8859-9";	
+	if(strEncoding == "LATIN6") return "ISO8859-10";
+	if(strEncoding == "LATIN7") return "ISO8859-13";
+	if(strEncoding == "LATIN8") return "ISO8859-14";
+	if(strEncoding == "LATIN9") return "ISO8859-15";
+	if(strEncoding == "LATIN10") return "ISO8859-16";
+	
+	if(strEncoding == "ISO_8859_5") return "ISO8859-5";
+	if(strEncoding == "ISO_8859_6") return "ISO8859-6";
+	if(strEncoding == "ISO_8859_7") return "ISO8859-7";
+	if(strEncoding == "ISO_8859_8") return "ISO8859-8";
+	
+	if(strEncoding == "WIN1250") return "CP1250";
+	if(strEncoding == "WIN1251") return "CP1251";
+	if(strEncoding == "WIN1252") return "CP1252";
+	if(strEncoding == "WIN1256") return "CP1256";
+	if(strEncoding == "WIN1258") return "CP1258";
+	
+	if(strEncoding == "UNICODE") return "utf8";
+	
+	return QString(strEncoding);
+}
+
+// Enable tracing to file
+void KPGConnection::setTrace()
+{
+  if(m_pFileTrace)
+  {
+    kdError() << "KPGConnection::setTrace : trace already set" << endl;
+    return;
+  }
+  
+  m_pFileTrace = fopen("/tmp/KPoGre.log","w");
+  
+  trace((FILE *) m_pFileTrace);
+}
+
+// Clear notifications
+void KPGConnection::clearNotifications()
+{
+	m_listOfNotifications.clear();
+}
+
+// Set prepare declaration for column, regards of its datatype
+void KPGConnection::setPrepareDeclaration(pqxx::prepare::declaration &pqxxPrepDecl, const QString &strTypName)
+{
+	//QString strTypName = m_listArguments[numArgument].typName();
+	
+	if((strTypName == "varchar") || (strTypName == "bpchar") || (strTypName == "text"))
+	{	
+		pqxxPrepDecl(strTypName, pqxx::prepare::treat_string);
+		return;
+	}
+	
+	if((strTypName == "int2") || (strTypName == "int4") || (strTypName == "int8") || (strTypName == "float4") || (strTypName == "float8"))
+	{	
+		pqxxPrepDecl(strTypName, pqxx::prepare::treat_direct);
+		return;
+	}
+	
+	if((strTypName == "bool"))
+	{	
+		pqxxPrepDecl(strTypName, pqxx::prepare::treat_bool);
+		return;
+	}
+	
+	if((strTypName == "bytea"))
+	{	
+		pqxxPrepDecl(strTypName, pqxx::prepare::treat_binary);
+		return;
+	}
+	
+	pqxxPrepDecl(strTypName, pqxx::prepare::treat_string);
+}
+
+// Set value to prepared statement invocation, regards of its datatype. Return false, if conversion fails
+bool KPGConnection::setInvocationValue(prepare::invocation &pqxxInvocation, const QString &strTypName, const QString &strValue)
+{
+	if((strTypName == "varchar") || (strTypName == "bpchar"))
+	{	
+		pqxxInvocation((std::string) m_pTextCodec->fromUnicode(strValue)); 
+		return true;
+	}
+	
+	if(strTypName == "int2")
+	{	
+		bool bOk;
+		short sValue = strValue.toShort(&bOk);
+		if(!bOk) return false;
+		pqxxInvocation(sValue); 
+		return true;
+	}
+	
+	if(strTypName == "int4")
+	{	
+		bool bOk;
+		int iValue = strValue.toInt(&bOk);
+		if(!bOk) return false;
+		pqxxInvocation(iValue); 
+		return true;
+	}
+	
+	if(strTypName == "int8")
+	{	
+		bool bOk;
+		long lValue = strValue.toLong(&bOk);
+		if(!bOk) return false;
+		pqxxInvocation(lValue); 
+		return true;
+	}
+	
+	if(strTypName == "float4")
+	{	
+		bool bOk;
+		float fValue = strValue.toFloat(&bOk);
+		if(!bOk) return false;
+		pqxxInvocation(fValue); 
+		return true;
+	}
+	
+	if(strTypName == "float8")
+	{	
+		bool bOk;
+		double dValue = strValue.toDouble(&bOk);
+		if(!bOk) return false;
+		pqxxInvocation(dValue); 
+		return true;
+	}
+	
+	if((strTypName == "bool"))
+	{	
+		bool bValue = false;
+		
+		if((strValue == "t") || (strValue == "T") || (strValue == "y") || (strValue == "Y") || (strValue == "1"))
+		{
+			bValue = true;
+		} 
+		else if((strValue == "f") || (strValue == "F") || (strValue == "n") || (strValue == "N") || (strValue == "0"))
+		{
+			bValue = false;
+		}
+		else
+		{
+			 return false;
+		}
+		pqxxInvocation(bValue);
+		return true;
+	}
+		
+	//kdDebug() << k_funcinfo "Uncovered datatype: " <<  strTypName << ", " << m_listArguments[numRow].name() << endl;	
+
+    std::string stdstrValue((std::string) m_pTextCodec->fromUnicode(strValue));
+	pqxxInvocation(stdstrValue);
+	
+	return true;
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconnection.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,107 @@
+/***************************************************************************
+                          kpgconnection.h  -  description
+                             -------------------
+    begin                : � led 13 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGCONNECTION_H
+#define KPGCONNECTION_H
+
+// Note that for new code which you wish to be strictly Unicode-clean, you can define the macro QT_NO_ASCII_CAST when compiling your code.
+#define QT_NO_ASCII_CAST
+
+// include files for libpgxx 
+#include <pqxx/connection>
+#include <pqxx/transaction_base> 
+
+#include "kpgfunction.h"
+
+using namespace pqxx;
+
+class QString;
+class QStringList;
+class QTextCodec;
+ 
+/**
+  * Define a pqxx::noticer to process warnings generated by 
+  * the database server 
+  *
+  * @author Lumir Vanek
+  */
+struct KPGNoticer : noticer
+{
+    virtual void operator()(const char Msg[]) throw ();
+	QStringList *m_pListOfNotifications;
+};
+
+
+/**
+  * Item that represent connection to PostgreSQL server
+  *
+  * @author Lumir Vanek
+  */
+class KPGConnection : public connection
+{
+public: 
+	KPGConnection(const QString);
+	virtual ~KPGConnection() throw ();
+	
+	// Various transactions types
+	enum ETransType { eTransNormal = 0, eTransNone, eTransRobust };
+	
+    void setPassword(const QString & strPassword) { m_strPassword = strPassword; }
+    
+    const QString & password() const { return m_strPassword; }
+  
+	// Return encoder name for QTextCodec regards to connection client encoding
+	const QString encoderName();
+	
+	// Return connection encoding
+	const QString clientEncoding() { return QString(get_variable("CLIENT_ENCODING")); }
+	
+	// Return text codec
+	QTextCodec *textCodec() const  { return m_pTextCodec; }
+	
+	// Return list of notifications
+	const QStringList & notifications() const { return m_listOfNotifications; }
+	
+	void clearNotifications();
+	
+	// Run SQL statement, make conversion regard connection encoding
+	pqxx::result runQuery(const QString&);
+
+	// Run SQL statement, make conversion regard connection encoding
+	pqxx::result runQuery(const QString &, ETransType);
+	
+	// Run prepared SQL statement
+	pqxx::result runPreparedStatement(const std::string &, const ListArgumentsWithValues &, ETransType = eTransNormal);
+	
+    void setTrace();
+  
+  	// Set prepare declaration for argument, regards of its datatype
+    void setPrepareDeclaration(pqxx::prepare::declaration &, const QString &);
+      
+  	// Set value to prepared statement invocation, regards of its datatype. Return false, if conversion fails
+  	bool setInvocationValue(prepare::invocation &, const QString &, const QString &);
+
+protected:
+    QStringList m_listOfNotifications;
+    FILE *m_pFileTrace;
+    QString m_strPassword; // remember password, that is used for connection
+    
+    // Codec for encode/decode strings from/to database
+    QTextCodec *m_pTextCodec;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Implementation: kpgconversion
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgconversion.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconversionsfolder.h"
+
+
+KPGConversion::KPGConversion(KPGConversionsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    setPixmap(0, *m_pIconConversion);
+}
+
+KPGConversion::KPGConversion(KPGConversionsFolder *parent, KPGConversion *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconConversion);
+}
+
+KPGConversion::~KPGConversion()
+{
+}
+
+void KPGConversion::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["condefault"].to(m_bIsDefault);
+    pqxxTuple["conprocoid"].to(m_oidConversionProcedure);
+            
+    m_strSourceEncoding = pqxxTuple["fromencoding"].c_str();
+	m_strDestinationEncoding = pqxxTuple["toencoding"].c_str();
+ 	m_strConversionProcedure = pqxxTuple["proname"].c_str();
+	m_strOwner = pqxxTuple["owner"].c_str();	
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversion.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,65 @@
+//
+// C++ Interface: kpgconversion
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCONVERSION_H
+#define KPGCONVERSION_H
+
+#include "kpgobject.h"
+
+class KPGConversionsFolder;
+
+/**
+Item that represent encoding conversion
+
+ at author Lumir Vanek
+*/
+
+class KPGConversion : public KPGObject
+{
+public:
+    KPGConversion(KPGConversionsFolder *, const QString, pqxx::oid);
+	KPGConversion(KPGConversionsFolder *, KPGConversion *, const QString, pqxx::oid);
+    ~KPGConversion();
+
+	virtual eNodeType type() const { return nodeConversion; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "CONVERSION"; }
+  	
+	void setProperties(const pqxx::result::tuple &);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	bool isDefault() const { return m_bIsDefault; }
+  	const QString & sourceEncoding() const { return m_strSourceEncoding; }
+	const QString & destinationEncoding() const { return m_strDestinationEncoding; }
+ 	pqxx::oid oidConversionProcedure() const { return m_oidConversionProcedure; }
+	const QString & conversionProcedure() const { return m_strConversionProcedure; }
+	const QString & owner() const { return m_strOwner; }
+	 
+protected:
+	
+	/*
+	 * Properties
+	 */
+	bool m_bIsDefault;
+  	QString m_strSourceEncoding;
+	QString m_strDestinationEncoding;
+ 	pqxx::oid m_oidConversionProcedure;
+	QString m_strConversionProcedure;
+	QString m_strOwner;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+//
+// C++ Implementation: kpgconversionsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgconversionsfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgconversion.h"
+#include "kpgschema.h"
+#include "../kpgutil.h"
+
+KPGConversionsFolder::KPGConversionsFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Conversions"))
+{
+	setPixmap(0, *m_pIconFolderGrey);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGConversionsFolder::~KPGConversionsFolder()
+{
+}
+
+void KPGConversionsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items 
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    // obtain list of conversions
+    QString strQuery("SELECT co.oid, co.conname, co.condefault, pg_encoding_to_char(conforencoding) as fromencoding, pg_encoding_to_char(contoencoding) as toencoding, \
+    conproc::oid AS conprocoid, pr.proname, pg_get_userbyid(conowner) as owner ");
+		
+	strQuery.append("FROM pg_catalog.pg_conversion co ");
+	strQuery.append("JOIN pg_catalog.pg_proc pr ON pr.oid=conproc ");
+	strQuery.append("JOIN pg_catalog.pg_namespace na ON na.oid=pr.pronamespace ");
+	strQuery.append("WHERE connamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY conname");
+			
+    try
+    {
+        m_pqxxResultConversions = connection()->runQuery(strQuery);
+    
+        KPGConversion *pConversion = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultConversions.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultConversions[i][0].to(oid);
+            
+            if(pConversion == 0)
+                pConversion = new KPGConversion(this, m_pqxxResultConversions[i]["conname"].c_str(), oid);
+            else
+                pConversion = new KPGConversion(this, pConversion, m_pqxxResultConversions[i]["conname"].c_str(), oid);
+                
+            pConversion->setProperties(m_pqxxResultConversions[i]); 
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgconversionsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: kpgconversionsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCONVERSIONSFOLDER_H
+#define KPGCONVERSIONSFOLDER_H
+
+#include <kpgitemsfolder.h>
+
+class KPGSchema;
+
+/**
+  * Folder that hold conversions
+  *
+  * @author Lumir Vanek
+  */
+class KPGConversionsFolder : public KPGItemsFolder
+{
+public:
+    KPGConversionsFolder(KPGSchema *, pqxx::oid);
+    ~KPGConversionsFolder();
+				
+	virtual eNodeType type() const { return nodeFolderConversions; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultConversions() const { return m_pqxxResultConversions; }
+		
+protected:
+
+    // results that will be displaied in properties window
+    pqxx::result m_pqxxResultConversions;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,535 @@
+/***************************************************************************
+                          kpgdatabase.cpp  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lummir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <kcursor.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "kpgitemsfolder.h"
+#include "kpgdatabase.h"
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgschema.h"
+#include "kpgcastsfolder.h"
+#include "kpglanguagesfolder.h"
+#include "../kpglinklabel.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../kpggeneralsettings.h"
+#include "../kpgutil.h"
+#include "../kpgsqldialog.h"
+
+
+KPGDatabase::KPGDatabase(KPGServer *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+  	setPixmap(0, *m_pIconDatabase);
+	m_pDbConnection = 0;
+	
+	m_pFolderCasts = 0;
+	m_pFolderLanguages = 0;
+  
+  	m_bIsSystemObject = false;	
+  	m_bConnectionStateChanged = false;
+}
+
+KPGDatabase::KPGDatabase(
+  KPGServer *parent,
+  KPGDatabase *after,
+  const QString name,
+  pqxx::oid _oid
+  )
+  : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconDatabase);
+	m_pDbConnection = 0;
+	
+	m_pFolderCasts = 0;
+	m_pFolderLanguages = 0; 
+	
+	m_bIsSystemObject = false;
+	m_bConnectionStateChanged = false;
+}
+
+KPGDatabase::~KPGDatabase()
+{
+  	if(m_pDbConnection)
+   		delete m_pDbConnection;
+}
+
+void KPGDatabase::activate()
+{
+  	if(!m_pDbConnection && m_bAllowConnections)
+  	{ 
+		listView()->setCursor(KCursor::waitCursor());
+		
+		try
+		{
+            connectToDB();
+            if(m_bIsTemplate)
+            {
+                setPixmap(0, *m_pIconDatabaseSys);
+                m_bIsSystemObject = true;
+            }
+            else
+                setPixmap(0, *m_pIconDatabaseUsr);
+		}
+		catch (const KPGSqlException &e)
+		{
+			listView()->setCursor(KCursor::arrowCursor());
+			KPGSqlDialog dlg(0, e.getSql(), e.what());
+			dlg.exec();
+		}
+		catch(const std::exception &e)
+		{
+		    KMessageBox::sorry(0, e.what());
+		}
+		
+		listView()->setCursor(KCursor::arrowCursor());
+	}
+}
+
+// Connect to PostgreSQL database server
+void KPGDatabase::connectToDB() throw(const std::exception)
+{
+	if(m_pDbConnection)
+		return; // already connected
+	
+	try
+	{
+		m_pDbConnection = new KPGConnection(connectionString());
+		
+		KPGServer *parentServer = static_cast <KPGServer *> (parent());
+		m_pDbConnection->setPassword(parentServer->connection()->password()); // store password for future use
+		
+		m_bConnectionStateChanged = true;
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << "Failed to open database " << endl;
+		throw;
+	}  
+	
+	refresh();
+}
+
+void KPGDatabase::disconnectFromDB()
+{
+	setPixmap(0, *m_pIconDatabase);
+	
+	// delete all child items
+  	while(QListViewItem * pItem = firstChild())
+    	delete pItem;
+		
+	if(!m_pDbConnection)
+    	return; // already disconnected
+		
+	delete m_pDbConnection;
+	m_pDbConnection = 0;
+	m_bConnectionStateChanged = true;
+}
+
+const QString KPGDatabase::connectionString()
+{
+	KPGTreeItem *parentItem = static_cast <KPGTreeItem *> (parent());
+	if(parentItem->type() != nodeServer)
+	{
+		kdError() << k_funcinfo << " Cannot find parent server." << endl;
+		return "";
+	}
+		
+	KPGServer *parentServer = static_cast <KPGServer *> (parentItem);
+	KPGConnection *pConnection = parentServer->connection();
+	if(!pConnection)
+	{
+		kdError() << k_funcinfo << " Parent server has no connection." << endl;
+		return "";
+	}
+	
+	
+	QString strConnectString = makeConnectionString(
+		pConnection->hostname(),
+		pConnection->port(),
+		QString("'" + text(0) + "'"),
+		pConnection->username(),
+		pConnection->password()
+		);
+		
+	return strConnectString;
+}
+
+void KPGDatabase::refresh() throw(const KPGSqlException &)
+{
+	// delete all child items
+	while(QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	if(m_pDbConnection == 0)
+		return;	
+				
+	//--- Folders for casts and languages
+	m_pFolderCasts = new KPGCastsFolder(this);
+	m_pFolderLanguages = new KPGLanguagesFolder(this);	
+	
+	// Get pointer to server for version info
+	//KPGServer *pServer = static_cast <KPGServer *> (parent());
+		
+	// obtain list of schemas
+	QString strQuery("SELECT nsp.oid, nsp.nspname, description, nspacl, has_schema_privilege(nsp.oid, 'CREATE') as cancreate, pg_get_userbyid(nspowner) AS owner ");
+	
+	strQuery.append("FROM pg_catalog.pg_namespace nsp ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=nsp.oid ");
+		
+	strQuery.append("ORDER BY nspname");
+				
+	try
+	{
+	   m_pqxxResultSchemas = m_pDbConnection->runQuery(strQuery);
+	   KPGSchema *pSchema = 0;
+			
+	   for (result::size_type i = 0; i != m_pqxxResultSchemas.size(); ++i)
+	   {
+	       pqxx::oid oid;
+		   m_pqxxResultSchemas[i][0].to(oid);
+		   
+		   if(pSchema == 0)
+		      pSchema = new KPGSchema(this, m_pqxxResultSchemas[i]["nspname"].c_str(), oid);
+		   else
+              pSchema = new KPGSchema(this, pSchema, m_pqxxResultSchemas[i]["nspname"].c_str(), oid);
+				
+			pSchema->setProperties(m_pqxxResultSchemas[i]);
+									
+			//kdDebug() << "------- START: " << m_pqxxResultSchemas[i]["nspname"].c_str() << endl;	
+			if(pSchema->isSystemObject())
+		    {
+		      if(KPoGreView::configuration()->general()->autoLoadSysSchemas())
+		          pSchema->refresh();
+		    }
+            else
+            {
+                if(KPoGreView::configuration()->general()->autoLoadUsrSchemas())
+                  pSchema->refresh();
+            }
+		
+			//kdDebug() << "--------END: " << m_pqxxResultSchemas[i]["nspname"].c_str() << endl;
+		}
+			
+		//--- Folders for casts and languages
+		m_pFolderCasts->refresh();
+		m_pFolderLanguages->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		kdError() << k_funcinfo << "Routing exception up. Database: " << text(0) << endl;
+		throw; // if it is KPGSqlException re-throw it
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+		
+	setOpen(true);
+}
+
+// Refresh only database info, without childs objects
+void KPGDatabase::refreshItem() throw(const KPGSqlException &)
+{
+    KPGServer *pServer = static_cast <KPGServer *> (parent());
+    
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+    
+    QString strQuery("SELECT datname, pg_get_userbyid(datdba) AS datowner");
+    
+    if(!bVersion80_OrNewer)
+        strQuery.append(", datpath "); // deprecated in PostgreSQL 8
+    else
+        strQuery.append(", dattablespace, spcname ");
+        
+    strQuery.append(", pg_encoding_to_char(encoding) AS serverencoding");
+    
+    if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(db.oid)) AS size_pretty");
+	}
+    
+    strQuery.append(", has_database_privilege(db.oid, 'CREATE') as cancreate, datconfig, datallowconn, datistemplate, datacl ");
+           
+    if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_database_size(db.oid) AS database_size ");
+	}
+           
+    strQuery.append("FROM pg_catalog.pg_database db ");
+    
+    if(bVersion80_OrNewer)
+        strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON db.dattablespace=ts.oid ");
+    
+    strQuery.append("WHERE db.oid = " + QString("%1").arg(m_oid));  
+        
+    try
+    {
+        pqxx::result pqxxResultDatabases = m_pDbConnection->runQuery(strQuery);
+        
+        if(pqxxResultDatabases.size() != 1)
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+        } 
+        
+        setProperties(pqxxResultDatabases[0], bVersion80_OrNewer, bVersion81_OrNewer); 
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    refresh();
+}
+
+pqxx::result KPGDatabase::runQuery(const QString strQuery, KPGConnection::ETransType transType)
+{
+ 	if(m_pDbConnection == 0)
+	{
+		kdError() << k_funcinfo << " Database not connected to server !" << endl;
+   	    KMessageBox::sorry(0, i18n("Database not connected to server !"));
+		pqxx::result R;
+		return R;
+	}
+		
+    return m_pDbConnection->runQuery(strQuery, transType);
+}
+
+// Set database propertie
+void KPGDatabase::setProperties(const pqxx::result::tuple & pqxxTuple, 
+    bool bVersion80_OrNewer, bool bVersion81_OrNewer)
+{
+    m_strOwner = pqxxTuple["datowner"].c_str(), 
+    m_strACL = pqxxTuple["datacl"].c_str(), 
+    m_strEncoding = pqxxTuple["serverencoding"].c_str();
+	m_strDefaultVariables = pqxxTuple["datconfig"].c_str();
+	pqxxTuple["cancreate"].to(m_bCanCreate);
+    pqxxTuple["datallowconn"].to(m_bAllowConnections);
+    pqxxTuple["datistemplate"].to(m_bIsTemplate);
+    
+	if(!bVersion80_OrNewer)
+	{
+	   m_strPath = pqxxTuple["datpath"].c_str();
+	   m_oidTablespace = 0;
+	}
+	else
+	{
+	   pqxxTuple["dattablespace"].to(m_oidTablespace);
+       m_strTablespace = pqxxTuple["spcname"].c_str();
+	}
+	
+	if(bVersion81_OrNewer)
+	{
+		pqxxTuple["database_size"].to(m_llSize);
+		m_strPrettySize = pqxxTuple["size_pretty"].c_str(); 
+	}
+}
+
+const QString KPGDatabase::queryStatistics() const
+{	
+	// obtain list of statistics	
+	QString strQuery(QString("SELECT numbackends, xact_commit, xact_rollback, blks_read, blks_hit FROM pg_catalog.pg_stat_database WHERE datid = '%1'").arg(m_oid));
+	
+	return strQuery;
+}
+
+const pqxx::result & KPGDatabase::resultCasts() const
+{
+	return m_pFolderCasts->resultCasts();
+}
+
+const pqxx::result & KPGDatabase::resultLanguages() const
+{
+	return m_pFolderLanguages->resultLanguages();
+}
+
+const pqxx::result & KPGDatabase::resultSchemas() const
+{
+	return m_pqxxResultSchemas;
+}
+
+const QString KPGDatabase::queryExtendedStatistics(int currentItem) const
+{
+	
+	QString strQuery;
+	
+	switch(currentItem)
+	{
+		case 0:
+			strQuery = "SELECT relid, relname, schemaname, seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, n_tup_ins, n_tup_upd, n_tup_del FROM pg_catalog.pg_stat_all_tables";
+			break;
+				
+		case 1:
+			strQuery = "SELECT relid, relname, schemaname, seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, n_tup_ins, n_tup_upd, n_tup_del FROM pg_catalog.pg_stat_sys_tables";
+			break;
+			
+		case 2:
+			strQuery = "SELECT relid, relname, schemaname, seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, n_tup_ins, n_tup_upd, n_tup_del FROM pg_catalog.pg_stat_user_tables";
+			break;
+			
+		case 3:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_catalog.pg_stat_all_indexes";
+			break;
+	
+		case 4:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_catalog.pg_stat_sys_indexes";
+			break;
+	
+		case 5:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_catalog.pg_stat_user_indexes";
+			break;
+	
+		case 6:
+			strQuery = "SELECT relid, relname, schemaname, heap_blks_read, heap_blks_hit, idx_blks_read, idx_blks_hit, toast_blks_read, toast_blks_hit, tidx_blks_read, \
+tidx_blks_hit FROM pg_catalog.pg_statio_all_tables";
+			break;      
+			
+		case 7:
+			strQuery = "SELECT relid, relname, schemaname, heap_blks_read, heap_blks_hit, idx_blks_read, idx_blks_hit, toast_blks_read, toast_blks_hit, tidx_blks_read, \
+tidx_blks_hit FROM pg_catalog.pg_statio_sys_tables";
+			break;
+			
+		case 8:
+			strQuery = "SELECT relid, relname, schemaname, heap_blks_read, heap_blks_hit, idx_blks_read, idx_blks_hit, toast_blks_read, toast_blks_hit, tidx_blks_read, \
+tidx_blks_hit FROM pg_catalog.pg_statio_user_tables";
+			break;
+			
+		case 9:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_blks_read, idx_blks_hit FROM pg_catalog.pg_statio_all_indexes";
+			break;
+	
+		case 10:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_blks_read, idx_blks_hit FROM pg_catalog.pg_statio_sys_indexes";
+			break;
+	
+		case 11:
+			strQuery = "SELECT relid, relname, schemaname, indexrelid, indexrelname, idx_blks_read, idx_blks_hit FROM pg_catalog.pg_statio_user_indexes";
+			break;
+				
+		case 12:
+			strQuery = "SELECT relid, relname, schemaname, blks_read, blks_hit FROM pg_catalog.pg_statio_all_sequences";
+			break;
+	
+		case 13:
+			strQuery = "SELECT relid, relname, schemaname, blks_read, blks_hit FROM pg_catalog.pg_statio_sys_sequences";
+			break;
+	
+		case 14:
+			strQuery = "SELECT relid, relname, schemaname, blks_read, blks_hit FROM pg_catalog.pg_statio_user_sequences";
+			break;
+	
+		default:
+			kdError() << k_funcinfo << " Unknown choice" << endl;
+			return "";
+	}
+	
+	return strQuery;
+}
+
+const QString KPGDatabase::queryLocks() const
+{
+	KPGServer *pServer = static_cast <KPGServer *> (parent());
+    
+    // Is it 8.1 or newer ? If not, return
+	if(((pServer->versionMajor() < 8) || (pServer->versionMiddle() <= 1)) && ((pServer->versionMajor() == 8))) 
+	{
+		throw PGSTD::runtime_error(i18n("Works only with PostgresQL 8.1 or newer !"));
+	}
+		
+	QString strQuery("SELECT l.locktype, l.relation, rel.relname, l.transactionid, l.pid, l.mode, l.granted ");
+ 
+    strQuery.append("FROM  pg_catalog.pg_locks l ");
+    strQuery.append("INNER JOIN pg_catalog.pg_class rel ON l.relation=rel.oid ");
+	strQuery.append(QString("WHERE l.database = %1").arg(m_oid));
+		
+	return strQuery;
+}
+
+const QString KPGDatabase::queryDiskUsage() const
+{
+	KPGServer *pServer = static_cast <KPGServer *> (parent());
+    
+    // Is it 8.1 or newer ? If not, return
+	if(((pServer->versionMajor() < 8) || (pServer->versionMiddle() <= 1)) && ((pServer->versionMajor() == 8))) 
+	{
+		throw PGSTD::runtime_error(i18n("Works only with PostgresQL 8.1 or newer !"));
+	}
+		
+	QString strQuery("SELECT ns.nspname, cls.oid, cls.relname, CASE cls.relkind WHEN 'r' THEN 'table' WHEN 't' THEN 'toast table' WHEN 'i' THEN 'index' END AS kind, ts.spcname, ");
+ 
+    strQuery.append("pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(cls.oid)) AS size_pretty, ");
+    strQuery.append("pg_catalog.pg_relation_size(cls.oid) AS size ");
+    strQuery.append("FROM pg_catalog.pg_class cls ");
+    strQuery.append("LEFT JOIN pg_catalog.pg_namespace ns ON cls.relnamespace=ns.oid ");
+    
+    strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON CASE cls.reltablespace ");
+	strQuery.append(QString("WHEN 0 THEN (SELECT dattablespace FROM pg_catalog.pg_database WHERE datname='%1') ").arg(text(0)));
+	strQuery.append("ELSE cls.reltablespace ");
+    strQuery.append("END=ts.oid ");
+    
+    strQuery.append("WHERE pg_catalog.pg_relation_size(cls.oid) > 0 AND ");
+    strQuery.append("relkind IN('r', 'i', 't') ");
+    strQuery.append("ORDER BY size DESC");
+		
+	return strQuery;
+}
+
+void KPGDatabase::fillListOfObjectsForCodeCompletion(KPGOidNameList & listOfObjectOids)
+{
+    QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+	   KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+		
+	   if(pTreeItem->type() == KPGTreeItem::nodeSchema)
+	   {
+		  KPGSchema *pSchema = static_cast <KPGSchema *> (pTreeItem);
+		
+		  listOfObjectOids.append(KPGOidName((static_cast <KPGObject *> (pSchema))->oid(), pSchema->text(0), pSchema->type(), pSchema->pixmap(0), pSchema->description()));
+		  
+		  if(pSchema->text(0) == "public")
+		  {
+		      pSchema->fillListOfObjectsForCodeCompletion(listOfObjectOids);
+		  }
+	   }
+		
+		pItem = pItem->nextSibling();
+	}
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdatabase.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,150 @@
+/***************************************************************************
+                          kpgdatabase.h  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGDATABASE_H
+#define KPGDATABASE_H
+
+#include "kpgobject.h"
+#include "kpgconnection.h"
+
+class KPGServer;
+class KPGCastsFolder;
+class KPGLanguagesFolder;
+class KComboBox;
+
+/**
+  * The database
+  *
+  * @author Lumir Vanek
+  */
+class KPGDatabase : public KPGObject
+{
+public: 
+	KPGDatabase(KPGServer *, const QString, pqxx::oid);
+  	KPGDatabase(KPGServer *, KPGDatabase *, const QString, pqxx::oid);
+	~KPGDatabase();
+    
+    virtual eNodeType type() const { return nodeDatabase; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "DATABASE"; }
+	
+	virtual bool isSystemObject() const { return m_bIsSystemObject; }
+		
+	void connectToDB() throw(const std::exception);
+	
+	void disconnectFromDB();
+	
+	bool isConnected() const { return (m_pDbConnection != 0); }
+  	pqxx::result runQuery(const QString, KPGConnection::ETransType = KPGConnection::eTransNormal);
+  
+	void setProperties(const pqxx::result::tuple &, bool, bool);
+      
+    // Return connection to database. All items childs to KPGDatabase tells your parents for connection  
+	virtual KPGConnection * connection() const { return m_pDbConnection; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	// This same behavior as refreshItem(), but for some objects, may be optimalized to run faster
+	void smartRefresh() throw(const KPGSqlException &) { return refreshItem(); }
+  	
+  	const QString connectionString();
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & owner() const { return m_strOwner; }
+	const QString & tablespace() const { return m_strTablespace; }
+	const QString & encoding() const { return m_strEncoding; }
+    const QString & acl() const { return m_strACL; }
+    const QString & path() const { return m_strPath; }
+    pqxx::oid oidTablespace() const { return m_oidTablespace; }
+    bool canCreate() const { return m_bCanCreate; }
+    const QString & defaultVariables() const { return m_strDefaultVariables; }
+    bool allowConnections() const { return m_bAllowConnections; } 
+    bool isTemplate() const { return m_bIsTemplate; }
+    long long size() const { return m_llSize; }
+    const QString & prettySize() const { return m_strPrettySize; }
+    	
+	/*
+	 * Functions for accessing nested folders
+	 */
+	KPGCastsFolder * getCastsFolder() const { return m_pFolderCasts; }
+	KPGLanguagesFolder * getLanguagesFolder() const { return m_pFolderLanguages; }
+	
+	/*
+	 * Functions for accessing nested results
+	 */
+	const pqxx::result & resultCasts() const;
+	const pqxx::result & resultLanguages() const;
+	const pqxx::result & resultSchemas() const;
+	const QString queryStatistics() const;
+  	const QString queryExtendedStatistics(int) const;
+  	
+  	const QString queryDiskUsage() const;
+  	const QString queryLocks() const;
+	
+	void fillListOfObjectsForCodeCompletion(KPGOidNameList &);
+   
+   	bool isConnectionStateChanged() const { return m_bConnectionStateChanged; }
+   	void clearConnectionStateChanged() { m_bConnectionStateChanged = false; }
+   
+    // Return encoder name for QTextCodec regards to connection client encoding
+	const QString encoderName() { return m_pDbConnection->encoderName(); }
+	    
+protected:
+
+  	virtual void activate();
+
+protected:
+  	KPGConnection *m_pDbConnection;
+
+	// Set true after connect/disconnect, signals that database list need refresh 
+	bool m_bConnectionStateChanged;
+
+  	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	QString m_strACL;
+	QString m_strPath;           // For PostgreSQL 7.x or older
+	pqxx::oid m_oidTablespace;   // For PostgreSQL 8 or newer 
+	QString m_strTablespace;     // For PostgreSQL 8 or newer
+	QString	m_strEncoding;
+	bool m_bCanCreate;
+	QString m_strDefaultVariables;
+  	bool m_bAllowConnections;
+	bool m_bIsTemplate;
+	long long m_llSize;
+  	QString m_strPrettySize;
+  
+  	bool m_bIsSystemObject;
+	
+	// Folders
+	KPGCastsFolder *m_pFolderCasts;
+	KPGLanguagesFolder *m_pFolderLanguages;
+	
+protected:
+	// results that will be displaied in properties window
+	pqxx::result m_pqxxResultSchemas;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Implementation: kpgdomain
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomain.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgdomainsfolder.h"
+#include "kpgdomainconstraintsfolder.h"
+
+
+KPGDomain::KPGDomain(KPGDomainsFolder *parent, const QString name, pqxx::oid _oid)
+	: KPGObject(parent, name, _oid)
+{
+    setPixmap(0, *m_pIconDomain);
+    m_pFolderConstraints = new KPGDomainConstraintsFolder(this);
+}
+
+KPGDomain::KPGDomain(KPGDomainsFolder *parent, KPGDomain *after, const QString name, pqxx::oid _oid)
+	: KPGObject(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconDomain);
+    m_pFolderConstraints = new KPGDomainConstraintsFolder(this);
+}
+
+KPGDomain::~KPGDomain()
+{
+}
+
+void KPGDomain::refresh() throw(const KPGSqlException &)
+{
+    m_pFolderConstraints->refresh(m_oid);
+}
+
+void KPGDomain::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+    pqxxTuple["basetypeoid"].to(m_oidBaseType);
+    pqxxTuple["typlen"].to(m_iTypLen);
+    pqxxTuple["typnotnull"].to(m_bNotNull);
+    pqxxTuple["typndims"].to(m_iTypNDims);
+                
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strBaseType = pqxxTuple["basetype"].c_str();
+	m_strDefault = pqxxTuple["typdefault"].c_str(); 
+	m_strTypDelim = pqxxTuple["typdelim"].c_str();
+	m_strOwner = pqxxTuple["owner"].c_str();
+}
+
+void KPGDomain::refreshConstraints()
+{
+  m_pFolderConstraints->refresh(m_oid);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomain.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+//
+// C++ Interface: kpgdomain
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAIN_H
+#define KPGDOMAIN_H
+
+#include "kpgobject.h"
+
+class KPGDomainsFolder;
+class KPGDomainConstraintsFolder;
+
+/**
+  *Item that represent domain. Domains are useful for abstracting common
+  * fields between tables into a single location for maintenance. For
+  * example, an email address column may be used in several tables, all with
+  * the same properties. Define a domain and use that rather than setting up
+  * each table's constraints individually. 
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomain : public KPGObject
+{
+public:
+    KPGDomain(KPGDomainsFolder *, const QString, pqxx::oid);
+	KPGDomain(KPGDomainsFolder *, KPGDomain *, const QString, pqxx::oid);
+    ~KPGDomain();
+
+	virtual eNodeType type() const { return nodeDomain; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "DOMAIN"; }
+  	
+	void setProperties(const pqxx::result::tuple &);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+    void refreshConstraints();
+    
+    KPGDomainConstraintsFolder * getDomainConstraintsFolder() { return m_pFolderConstraints; }
+
+	/*
+	 * Functions for accessing properties
+	 */
+	pqxx::oid oidBaseType() const { return m_oidBaseType; }
+	const QString & baseType() const { return m_strBaseType; }
+	int typLen() const { return m_iTypLen; }
+    bool hasDefault() const { return ! m_strDefault.isEmpty(); }
+    bool isNotNull() const { return m_bNotNull; }
+    const QString &defaultValue() const { return m_strDefault; }
+    int typNDims() const { return m_iTypNDims; }
+	const QString & typDelim() const { return m_strTypDelim; }
+    const QString & owner() const { return m_strOwner; }
+    		
+protected:
+
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oidBaseType;
+	QString m_strBaseType;
+	int m_iTypLen;
+	bool m_bNotNull;
+	QString m_strDefault;
+	int m_iTypNDims;
+	QString m_strTypDelim;
+	QString m_strOwner;
+      
+    // Folder with owned objects
+    KPGDomainConstraintsFolder *m_pFolderConstraints;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainconstraint.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdomainconstraintsfolder.h"
+
+
+KPGDomainConstraint::KPGDomainConstraint(KPGDomainConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    setPixmap(0, *m_pIconCheckConstr);
+}
+
+KPGDomainConstraint::KPGDomainConstraint(KPGDomainConstraintsFolder *parent, KPGDomainConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconCheckConstr);
+}
+
+KPGDomainConstraint::~KPGDomainConstraint()
+{
+}
+
+void KPGDomainConstraint::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+    m_strDescription = pqxxTuple["description"].c_str();
+    m_strExpression = pqxxTuple["consrc"].c_str();
+    m_strNspName = pqxxTuple["nspname"].c_str();
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraint.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINCONSTRAINT_H
+#define KPGDOMAINCONSTRAINT_H
+
+#include "kpgobject.h"
+
+class KPGDomainConstraintsFolder;
+
+
+/**
+  * Domain check constraint
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomainConstraint : public KPGObject
+{
+public:
+    KPGDomainConstraint(KPGDomainConstraintsFolder *, const QString, pqxx::oid);
+    KPGDomainConstraint(KPGDomainConstraintsFolder *, KPGDomainConstraint *, const QString, pqxx::oid);
+    ~KPGDomainConstraint();
+    
+    virtual eNodeType type() const { return nodeDomainConstr; }
+    
+    // Get SQL object type 
+  	virtual const char * getObjectType() const { return "DOMAIN CONSTRAINT"; }
+    
+    void setProperties(const pqxx::result::tuple &);
+        
+    // Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+ 
+ 	/*
+	 * Functions for accessing properties
+	 */
+ 	const QString & expression() const { return m_strExpression; }
+	const QString & namespaceName() const { return  m_strNspName; }
+	
+protected:
+	
+	/*
+	 * Properties
+	 */
+	QString m_strExpression;
+	QString m_strNspName;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,91 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainconstraintsfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgdomain.h"
+#include "kpgdomainconstraint.h"
+
+
+
+KPGDomainConstraintsFolder::KPGDomainConstraintsFolder(KPGDomain *parent)
+ : KPGTreeItem(parent, i18n("Constraints"))
+{
+	setPixmap(0, *m_pIconFolderGreen);
+}
+
+KPGDomainConstraintsFolder::~KPGDomainConstraintsFolder()
+{
+}
+
+void KPGDomainConstraintsFolder::refresh() throw(const KPGSqlException &)
+{
+	KPGTreeItem * pItemParent = static_cast <KPGTreeItem *> (parent());
+	if(!pItemParent)
+	{ 
+		kdError() << "Failed to find DB connection " << endl;
+		return;
+	}
+	
+	refresh((static_cast <KPGDomain *> (pItemParent))->oid());
+}
+
+void KPGDomainConstraintsFolder::refresh(pqxx::oid oidDomain) throw(const KPGSqlException &)
+{
+    // delete all child items
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    QString strQuery("SELECT c.oid, conname, consrc, description, nspname "); 
+    
+    strQuery.append("FROM pg_catalog.pg_constraint c ");
+    
+    strQuery.append("JOIN pg_catalog.pg_type ty ON ty.oid=contypid ");
+    strQuery.append("JOIN pg_catalog.pg_namespace nl ON nl.oid=connamespace ");
+    strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=c.oid ");
+    
+    strQuery.append("WHERE contypid = ");
+    strQuery.append(QString("%1").arg(oidDomain));
+    strQuery.append(" ORDER BY conname;");
+        
+    try
+    {
+        m_pqxxResultConstraints = connection()->runQuery(strQuery);
+        
+        KPGDomainConstraint * pDomainConstraint = 0;
+        
+        for (result::size_type i = 0; i != m_pqxxResultConstraints.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultConstraints[i][0].to(oid);
+            
+            if(pDomainConstraint == 0)
+                pDomainConstraint = new KPGDomainConstraint(this, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+            else
+                pDomainConstraint = new KPGDomainConstraint(this, pDomainConstraint, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+                
+            pDomainConstraint->setProperties(m_pqxxResultConstraints[i]);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    return;
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainconstraintsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINCONSTRAINTSFOLDER_H
+#define KPGDOMAINCONSTRAINTSFOLDER_H
+
+#include "kpgtreeitem.h"
+
+class KPGDomain;
+
+
+/**
+  * Folder for domain constraints
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomainConstraintsFolder : public KPGTreeItem
+{
+public:
+    KPGDomainConstraintsFolder(KPGDomain *);
+    ~KPGDomainConstraintsFolder();
+
+    virtual eNodeType type() const { return nodeFolderDomainConstraints; }
+    
+    // Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+    void refresh(pqxx::oid) throw(const KPGSqlException &);
+    
+    const pqxx::result & resultConstraints() const { return m_pqxxResultConstraints; }
+      
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultConstraints; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+//
+// C++ Implementation: kpgdomainsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainsfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgdomain.h"
+
+
+KPGDomainsFolder::KPGDomainsFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Domains"))
+{
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGDomainsFolder::~KPGDomainsFolder()
+{
+}
+
+void KPGDomainsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items 
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+        // obtain list of domains
+    QString strQuery("SELECT d.oid, d.typname as domname, description, b.oid AS basetypeoid, b.typname as basetype, d.typlen, d.typnotnull, d.typdefault, d.typndims, d.typdelim, \
+    pg_get_userbyid(d.typowner) as owner ");
+	strQuery.append("FROM pg_catalog.pg_type d ");
+	strQuery.append("JOIN pg_catalog.pg_type b ON b.oid = CASE WHEN d.typndims > 0 THEN d.typelem ELSE d.typbasetype END ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=d.oid ");
+	strQuery.append("WHERE d.typtype = 'd' ");
+	strQuery.append("AND d.typnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY d.typname");
+			
+    try
+    {
+        m_pqxxResultDomains = connection()->runQuery(strQuery);
+    
+        KPGDomain *pDomain = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultDomains.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultDomains[i][0].to(oid);
+            
+            if(pDomain == 0)
+                pDomain = new KPGDomain(this, m_pqxxResultDomains[i]["domname"].c_str(), oid);
+            else
+                pDomain = new KPGDomain(this, pDomain, m_pqxxResultDomains[i]["domname"].c_str(), oid);
+            
+            pDomain->setProperties(m_pqxxResultDomains[i]);
+            pDomain->refreshConstraints(); 
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgdomainsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: kpgdomainsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINSFOLDER_H
+#define KPGDOMAINSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+
+/**
+  * Folder that hold domains
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomainsFolder : public KPGItemsFolder
+{
+public:
+    KPGDomainsFolder(KPGSchema *, pqxx::oid);
+    ~KPGDomainsFolder();
+				
+	virtual eNodeType type() const { return nodeFolderDomains; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultDomains() const { return m_pqxxResultDomains; }
+		
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultDomains;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+//
+// C++ Implementation: kpgforeignkeyconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgforeignkeyconstr.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+
+#include "kpgtableconstraintsfolder.h"
+
+
+KPGForeignKeyConstr::KPGForeignKeyConstr(KPGTableConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, name, _oid)
+{
+ 	setPixmap(0, *m_pIconForeignKeyConstr);
+}
+
+KPGForeignKeyConstr::KPGForeignKeyConstr(KPGTableConstraintsFolder *parent, KPGTableConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, after, name, _oid)
+{
+ 	setPixmap(0, *m_pIconForeignKeyConstr);
+}
+
+KPGForeignKeyConstr::~KPGForeignKeyConstr()
+{
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgforeignkeyconstr.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,63 @@
+//
+// C++ Interface: kpgforeignkeyconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGFOREIGNKEYCONSTR_H
+#define KPGFOREIGNKEYCONSTR_H
+
+#include "kpgtableconstraint.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Table Foreign key constraint
+  *
+  * @author Lumir Vanek
+  */
+class KPGForeignKeyConstr : public KPGTableConstraint
+{
+public:
+    KPGForeignKeyConstr(KPGTableConstraintsFolder *, const QString, pqxx::oid);
+	KPGForeignKeyConstr(KPGTableConstraintsFolder *, KPGTableConstraint *, const QString, pqxx::oid);
+    ~KPGForeignKeyConstr();
+		
+	virtual eNodeType type() const { return nodeForeignKeyConstr; }
+	void setUpdType(const QString strUpdType) { m_strUpdType = strUpdType; }
+	void setDelType(const QString strDelType) { m_strDelType = strDelType; }
+	void setConstrKey(const QString strConstrKey) { m_strConstrKey = strConstrKey; }
+	void setForeignKey(const QString strForeignKey) { m_strForeignKey = strForeignKey; }
+	void setReferencedTable(pqxx::oid oidReferencedTable, const QString strReferencedTable) { m_oidReferencedTable = oidReferencedTable; m_strReferencedTable = strReferencedTable; }
+				
+	/*
+	 * Functions for accessing properties
+	 */			
+	const QString & updType() const { return m_strUpdType; }
+	const QString & delType() const { return m_strDelType; }
+	const QString & constrKey() const { return m_strConstrKey; }
+		
+	pqxx::oid oidReferencedTable() const { return m_oidReferencedTable; }
+	const QString & referencedTable() const { return m_strReferencedTable; }
+	const QString & foreignKey() const { return m_strForeignKey; }
+				
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strUpdType;
+	QString m_strDelType;
+	QString m_strConstrKey;
+		
+	pqxx::oid m_oidReferencedTable;
+	QString m_strReferencedTable;
+	QString m_strForeignKey;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,261 @@
+//
+// C++ Implementation: kpgfunction
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgfunction.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "kpgserver.h"
+#include "kpgdatabase.h"
+#include "../kpglinklabel.h"
+#include "kpgfunctionsfolder.h"
+#include "../kpgutil.h"
+
+KPGFunction::KPGFunction(KPGFunctionsFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconFunction);
+}
+
+KPGFunction::KPGFunction(KPGFunctionsFolder *parent, KPGFunction *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconFunction);
+}
+
+
+KPGFunction::~KPGFunction()
+{
+}
+
+void KPGFunction::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["proisagg"].to(m_bIsAgg);
+	pqxxTuple["prosecdef"].to(m_bIsSecdef);
+	pqxxTuple["proisstrict"].to(m_bIsStrict);
+	pqxxTuple["proretset"].to(m_bRetSet);
+	pqxxTuple["pronargs"].to(m_iNArgs);
+    pqxxTuple["prorettype"].to(m_oidReturnType);
+				
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strVolatile = pqxxTuple["provolatile"].c_str();
+	m_strBin = pqxxTuple["probin"].c_str();
+	m_strACL = pqxxTuple["proacl"].c_str();
+	m_strReturnTypName = pqxxTuple["typname"].c_str();
+	m_strLanName = pqxxTuple["lanname"].c_str();
+	m_strFuncOwner = pqxxTuple["funcowner"].c_str();
+	
+	//--- Set icon for function type
+	if(m_strLanName == "c")
+		setPixmap(0, *m_pIconFunctionC);
+	else
+		if(m_strLanName == "sql")
+			setPixmap(0, *m_pIconFunctionSql);
+		else
+			if(m_strLanName == "plpgsql")
+				setPixmap(0, *m_pIconFunctionPl);
+}
+
+// Set arguments list. All parameters come in form: {aaa, bbb, ccc}
+void KPGFunction::setListArguments(const QString &strArgTypes, const QString &strAllArgTypes, const QString &strArgModes, const QString &strArgNames)
+{
+	m_listArguments.clear();
+	
+	QStringList strListNames;
+	if(strArgNames.length() > 2)
+	 	strListNames = QStringList::split (",", strArgNames.mid(1, strArgNames.length() - 2), true);
+	
+	QStringList strListModes;
+	if(strArgModes.length() > 2)
+	 	strListModes = QStringList::split (",", strArgModes.mid(1, strArgModes.length() - 2), true);
+	
+	// Use m_strArgTypes, when strListAllArgTypes is empty
+	QStringList strListArgTypesOids;
+	if(strAllArgTypes.length() > 2)
+       strListArgTypesOids = QStringList::split (",", strAllArgTypes.mid(1, strAllArgTypes.length() - 2), true);
+	else
+		strListArgTypesOids = QStringList::split (" ", strArgTypes);		
+	
+	// Number of all arguments - max list size
+	unsigned int nArguments = m_iNArgs;
+	if(strListNames.count() > nArguments) nArguments = strListNames.count();
+	if(strListModes.count() > nArguments) nArguments = strListModes.count();
+	if(strListArgTypesOids.count() > nArguments) nArguments = strListArgTypesOids.count();
+	
+	if((strListNames.count() > 0) && (nArguments != strListNames.count())) 
+	{
+		kdDebug() << text(0) << QString(" - Names count %1, num of args %2").arg(strListNames.count()).arg(nArguments) << endl;
+		kdDebug() << "strAllArgTypes " << strAllArgTypes << endl;
+		kdDebug() << "strArgModes " << strArgModes << endl;
+		kdDebug() << "strArgNames " << strArgNames << endl;
+	}
+	if((strListModes.count() > 0) && (nArguments != strListModes.count())) 
+	{
+		kdDebug() << text(0) << QString(" - Modes count %1, num of args %2").arg(strListModes.count()).arg(nArguments) << endl;
+		kdDebug() << "strAllArgTypes " << strAllArgTypes << endl;
+		kdDebug() << "strArgModes " << strArgModes << endl;
+		kdDebug() << "strArgNames " << strArgNames << endl;
+	}
+	if((strListArgTypesOids.count() > 0) && (nArguments != strListArgTypesOids.count())) 
+	{
+		kdDebug() << text(0) << QString(" - Types count %1, num of args %2").arg(strListArgTypesOids.count()).arg(nArguments) << endl;
+		kdDebug() << "strArgTypes " << strArgTypes << endl;
+		kdDebug() << "strAllArgTypes " << strAllArgTypes << endl;
+		kdDebug() << "strArgModes " << strArgModes << endl;
+		kdDebug() << "strArgNames " << strArgNames << endl;
+	}
+	
+	for(unsigned int i = 0; i < nArguments; i++)
+	{
+        QString strName;
+         
+        if(strListNames.count() > 0)
+        { 
+         	strName = strListNames[i]; 
+			if(strName == "\"\"") strName.truncate(0);
+        }
+        
+        QString strMode;
+        if(strListModes.count() > 0)
+        {
+        	strMode = strListModes[i];
+        }
+        
+        QString strArgTypeOid;
+        QString strArgTypeName;
+        if(strListArgTypesOids.count() > 0)
+        {
+        	strArgTypeOid = strListArgTypesOids[i];
+        	QString strQuery("SELECT typname FROM pg_catalog.pg_type typ WHERE oid=" + strArgTypeOid);
+        	//QString strQuery("SELECT pg_catalog.format_type(" + strArgTypeOid + ", NULL)");
+        	
+        	try
+        	{
+        		pqxx::result pqxxResult = connection()->runQuery(strQuery);
+	
+				if(pqxxResult.size() != 1)
+				{
+					kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+					continue;
+				}
+				
+				strArgTypeName = pqxxResult[0][0].c_str();
+			}
+			catch (const std::exception &e)
+			{
+				kdError() << k_funcinfo << e.what() << endl;
+				throw KPGSqlException(e.what(), strQuery);
+			} 
+        }
+        
+        
+        m_listArguments.append(KPGFunctionArgument(i + 1, strName, strMode, strArgTypeName));
+    }
+}
+
+// Return name with arguments
+const QString KPGFunction::nameWithArguments() const
+{
+	QString strFunctionName = text(0);
+	
+    strFunctionName.append("(");
+	bool bFirst = true;
+	for(KPGFunction::ListArguments::const_iterator cit = m_listArguments.begin(); cit != m_listArguments.end(); ++cit)
+	{ 
+		if(bFirst)
+			bFirst = false;
+		else
+			strFunctionName.append(", ");
+		
+		if((*cit).mode() == "i") strFunctionName.append("IN ");
+		else if((*cit).mode() == "o") strFunctionName.append("OUT ");
+		else if((*cit).mode() == "b") strFunctionName.append("INOUT ");
+		
+		if((*cit).name().length() > 0)
+		{
+			strFunctionName.append((*cit).name());
+			strFunctionName.append(" ");
+		}
+		
+		strFunctionName.append((*cit).typName());
+	}
+	strFunctionName.append(")");
+	
+	return strFunctionName;
+}
+    
+// Refresh only function info, without childs objects
+void KPGFunction::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to server for version info
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	// obtain function info
+	QString strQuery("SELECT pr.oid, pr.proname, description, pr.proisagg, pr.prosecdef, pr.proisstrict, proretset, pr.provolatile, pr.pronargs, pr.probin, pr.proacl, prorettype, \
+typ.typname, lanname, pg_catalog.pg_get_userbyid(proowner) AS funcowner, pr.proargtypes, pg_catalog.oidvectortypes(pr.proargtypes) AS arguments, pr.prosrc");
+	
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || (pServer->versionMajor() > 8))
+    {
+  		strQuery.append(", pr.proallargtypes, pr.proargmodes, pr.proargnames ");
+  	}
+  	else
+  		strQuery.append(" ");
+	
+	strQuery.append("FROM pg_catalog.pg_proc pr ");
+	strQuery.append("JOIN pg_catalog.pg_type typ ON typ.oid=prorettype ");
+	strQuery.append("JOIN pg_catalog.pg_language LNG ON LNG.oid=prolang ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=pr.oid ");
+	
+	strQuery.append("WHERE pr.oid = " + QString("%1").arg(m_oid));
+		
+	try
+	{
+		pqxx::result pqxxResult = connection()->runQuery(strQuery);
+	
+		if(pqxxResult.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+				
+		setProperties(pqxxResult[0]);
+		
+		setArgTypes(pqxxResult[0]["arguments"].c_str());
+		setSrc(pqxxResult[0]["prosrc"].c_str());
+			
+		if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || (pServer->versionMajor() > 8))
+    	{	
+			setListArguments(pqxxResult[0]["proargtypes"].c_str(),
+			    pqxxResult[0]["proallargtypes"].c_str(),
+				pqxxResult[0]["proargmodes"].c_str(),
+				pqxxResult[0]["proargnames"].c_str());
+		}
+		else
+		{
+			setListArguments(pqxxResult[0]["proargtypes"].c_str(),
+			    QString::null,
+				QString::null,
+				QString::null);
+		}
+	
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunction.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,161 @@
+//
+// C++ Interface: kpgfunction
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGFUNCTION_H
+#define KPGFUNCTION_H
+
+// include files for Qt
+#include <qvaluelist.h>
+
+#include "kpgobject.h"
+
+class KPGFunctionsFolder;
+
+
+/**
+  * Function argument
+  *
+  * @author Lumir Vanek
+  */
+class KPGFunctionArgument
+{
+public:
+	KPGFunctionArgument() {;}
+	KPGFunctionArgument(unsigned int iSequence, const QString & strName, const QString & strMode, const QString & strTypName)
+	{
+		m_iSequence = iSequence;
+		m_strName = strName;
+		m_strMode = strMode;
+		m_strTypName = strTypName;
+	}
+
+	const unsigned int sequence() const { return m_iSequence; }
+	const QString &name() const { return m_strName; }
+	const QString &mode() const { return m_strMode; }
+	const QString &typName() const { return m_strTypName; }
+
+protected:
+	unsigned int m_iSequence; // Starts from 1
+	QString m_strName;
+	QString m_strMode;
+	QString m_strTypName;
+};
+
+/**
+  * Function argument vith value
+  *
+  * @author Lumir Vanek
+  */
+class KPGFunctionArgumentWithValue : public KPGFunctionArgument
+{
+public:	
+	KPGFunctionArgumentWithValue() {;}
+	KPGFunctionArgumentWithValue(unsigned int iSequence, const QString & strName, const QString & strMode, const QString & strTypName, const QString & strValue)
+	: KPGFunctionArgument(iSequence, strName, strMode, strTypName) 
+	{
+		m_strValue = strValue;
+	}
+	
+	const QString &value() const { return m_strValue; }
+
+protected:
+	QString m_strValue;
+};
+
+typedef QValueList<KPGFunctionArgumentWithValue> ListArgumentsWithValues;
+
+
+/**
+  * Database function
+  *
+  * @author Lumir Vanek
+  */
+class KPGFunction : public KPGObject
+{
+public:
+    KPGFunction(KPGFunctionsFolder *, const QString, pqxx::oid);
+	KPGFunction(KPGFunctionsFolder *, KPGFunction *, const QString, pqxx::oid);
+    ~KPGFunction();
+
+	typedef QValueList<KPGFunctionArgument> ListArguments;
+
+	virtual eNodeType type() const { return nodeFunction; }
+		
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "FUNCTION"; }
+  	
+	void setProperties(const pqxx::result::tuple &);
+	void setArgTypes(const QString strArgTypes) { m_strArgTypes = strArgTypes; }
+	void setSrc(const QString &strSrc) { m_strSrc = strSrc; }
+	void setListArguments(const QString &, const QString &, const QString &, const QString &);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+    
+    /*
+	 * Functions for accessing properties
+	 */
+	bool isAggregate() const { return m_bIsAgg; }	 
+	bool isSecdef() const { return m_bIsSecdef; }
+	bool isStrict() const { return m_bIsStrict; }
+	bool returnSet() const { return m_bRetSet; }
+	const QString & getVolatile() const { return m_strVolatile; }
+	int nArgs() const { return m_iNArgs; }
+	const QString & bin() const { return m_strBin; }
+	const QString langName() const { return m_strLanName; }
+	const QString & argTypes() const { return  m_strArgTypes; }
+	const QString & source() const { return m_strSrc; }
+	const QString & returnTypName() const { return m_strReturnTypName; }
+	pqxx::oid oidReturnType() const { return m_oidReturnType; }
+	const QString & acl() const { return m_strACL; }
+	const QString & owner() const { return m_strFuncOwner; }
+		    
+    // Return arguments. Old variant, based on pg_proc.proargtypes
+    const QString argumentTypes() const { return "(" + argTypes() + ")"; }
+    
+    // Return name with arguments. New variant, based on info since PostgreSQL 8.1
+    const QString nameWithArguments() const;
+    
+    // Get list of arguments
+    const KPGFunction::ListArguments & listArguments() const { return m_listArguments; }
+    
+protected:
+	
+	/*
+	 * Properties
+	 */
+	bool m_bIsAgg;
+	bool m_bIsSecdef;
+	bool m_bIsStrict;
+	bool m_bRetSet;
+	QString m_strVolatile;
+	int m_iNArgs;
+	QString m_strBin;
+	QString m_strACL;
+	pqxx::oid m_oidReturnType;
+	QString m_strReturnTypName;
+	QString m_strLanName;
+	QString m_strFuncOwner;	
+	
+	// This includes only input arguments (including INOUT arguments), and thus represents the call signature of the function.
+	QString m_strArgTypes;
+	
+	// It might be the actual source code of the function for interpreted languages, a link symbol, a file name, or just about anything else, depending on the implementation language/call convention.
+	QString m_strSrc;
+	
+	// List of argument informations, available since PostgreSQL 8.1
+	ListArguments m_listArguments;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,142 @@
+/***************************************************************************
+                          kpgfunctionsfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgfunctionsfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgschema.h"
+#include "kpgfunction.h"
+
+
+KPGFunctionsFolder::KPGFunctionsFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Functions"))
+{
+	setPixmap(0, *m_pIconFolderRed);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGFunctionsFolder::~KPGFunctionsFolder()
+{
+}
+
+void KPGFunctionsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items
+  	while (QListViewItem * pItem = firstChild())
+    	delete pItem;
+
+	// Get pointer to server for version info       schema ->database->server 
+	KPGServer *pServer = static_cast <KPGServer *> (parent()->parent()->parent());
+
+	// obtain list of functions
+	QString strQuery("SELECT pr.oid, pr.proname, description, pr.proisagg, pr.prosecdef, pr.proisstrict, proretset, pr.provolatile, pr.pronargs, pr.probin, pr.proacl, prorettype, \
+typ.typname, lanname, pg_catalog.pg_get_userbyid(proowner) as funcowner, pr.proargtypes, pg_catalog.oidvectortypes(pr.proargtypes) AS arguments, pr.prosrc");
+  
+  	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || (pServer->versionMajor() > 8))
+    {
+  		strQuery.append(", pr.proallargtypes, pr.proargmodes, pr.proargnames ");
+  	}
+  	else
+  		strQuery.append(" ");
+  	
+	strQuery.append("FROM pg_catalog.pg_proc pr ");
+	strQuery.append("JOIN pg_catalog.pg_type typ ON typ.oid=prorettype ");
+	strQuery.append("JOIN pg_catalog.pg_language LNG ON LNG.oid=prolang ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=pr.oid ");
+	strQuery.append("WHERE pronamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY proname");
+			
+  try
+  {
+    	m_pqxxResultFunctions = connection()->runQuery(strQuery);
+
+		KPGFunction *pFunction = 0;
+		
+		for (result::size_type i = 0; i != m_pqxxResultFunctions.size(); ++i)
+		{
+				pqxx::oid oid;
+				m_pqxxResultFunctions[i][0].to(oid);
+			
+				if(pFunction == 0)
+					pFunction = new KPGFunction(this, m_pqxxResultFunctions[i]["proname"].c_str(), oid);
+				else
+					pFunction = new KPGFunction(this, pFunction, m_pqxxResultFunctions[i]["proname"].c_str(), oid);
+				
+				pFunction->setProperties(m_pqxxResultFunctions[i]);
+				
+				pFunction->setArgTypes(m_pqxxResultFunctions[i]["arguments"].c_str());
+				pFunction->setSrc(m_pqxxResultFunctions[i]["prosrc"].c_str());
+					
+				if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || (pServer->versionMajor() > 8))
+    			{	
+					pFunction->setListArguments(m_pqxxResultFunctions[i]["proargtypes"].c_str(),
+					    m_pqxxResultFunctions[i]["proallargtypes"].c_str(),
+						m_pqxxResultFunctions[i]["proargmodes"].c_str(),
+						m_pqxxResultFunctions[i]["proargnames"].c_str());
+				}
+				else
+				{
+					pFunction->setListArguments(m_pqxxResultFunctions[i]["proargtypes"].c_str(),
+						QString::null,
+						QString::null,
+						QString::null);
+				}
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+void KPGFunctionsFolder::fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+        
+        if(pTreeItem->type() != nodeFunction)
+        {
+            kdError() << k_funcinfo << "Logic error !" << endl;
+            return;
+        }
+        
+        KPGFunction *pFunction = static_cast <KPGFunction *> (pItem);
+        
+        KPGOidName oidName(pFunction->oid(), pFunction->text(0),
+			pFunction->type(), 
+			pFunction->pixmap(0),
+			pFunction->description(),
+			pFunction->argumentTypes());
+        
+        if(pFunction->returnSet())
+        {
+            oidName.setOidUnderlyingType(pFunction->oidReturnType()); 
+        }
+        
+        listOfObjectOids.append(oidName);
+        
+        pItem = pItem->nextSibling();
+    }
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgfunctionsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,54 @@
+/***************************************************************************
+                          kpgfunctionsfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGFUNCTIONSFOLDER_H
+#define KPGFUNCTIONSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+class KPGConnection;
+
+
+/**
+  * Item that hold functions list
+  *
+  * @author Lumir Vanek
+  */
+class KPGFunctionsFolder : public KPGItemsFolder
+{
+public:
+    KPGFunctionsFolder(KPGSchema *, pqxx::oid);
+    ~KPGFunctionsFolder();
+		
+	virtual eNodeType type() const { return nodeFolderFunctions; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultFunctions() const { return m_pqxxResultFunctions; }
+	
+	virtual void fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids);
+		
+protected:
+    // results that will be displaied in properties window
+    pqxx::result m_pqxxResultFunctions;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Implementation: kpggroup
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpggroup.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+
+#include "kpggroupsfolder.h"
+
+
+KPGGroup::KPGGroup(KPGGroupsFolder *parent, const QString name)
+  : KPGTreeItem(parent, name)
+{
+  setPixmap(0, *m_pIconGroup);
+}
+
+
+KPGGroup::KPGGroup(KPGGroupsFolder *parent, KPGGroup *after, const QString name)
+  : KPGTreeItem(parent, after, name)
+{
+  	setPixmap(0, *m_pIconGroup);
+}
+
+
+KPGGroup::~KPGGroup()
+{
+}
+
+void KPGGroup::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["grosysid"].to(m_iSysId);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroup.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+//
+// C++ Interface: kpggroup
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGGROUP_H
+#define KPGGROUP_H
+
+#include "kpgtreeitem.h"
+
+#include <qstringlist.h> 
+
+class KPGGroupsFolder;
+
+/**
+  * Group of users
+  *
+  * @author Lumir Vanek
+  */
+class KPGGroup : public KPGTreeItem
+{
+public:
+    KPGGroup(KPGGroupsFolder *, const QString);
+	KPGGroup(KPGGroupsFolder *, KPGGroup *, const QString);
+    ~KPGGroup();
+
+	virtual eNodeType type() const { return nodeGroup; }
+	
+	void setProperties(const pqxx::result::tuple &);
+	
+	QStringList & getListOfUsers() { return m_strListOfUsers; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	int sysId() const { return m_iSysId; }
+	const QStringList & listOfUsers() const { return m_strListOfUsers; }
+		
+protected:
+
+	/*
+	 * Properties
+	 */
+	int m_iSysId; 
+	QStringList m_strListOfUsers;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: kpggroupsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpggroupsfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpggroup.h"
+
+KPGGroupsFolder::KPGGroupsFolder(KPGServer *parent)
+ : KPGItemsFolder(parent, i18n("Groups"))
+{
+	setPixmap(0, *m_pIconFolderGrey);
+}
+
+
+KPGGroupsFolder::~KPGGroupsFolder()
+{
+}
+
+void KPGGroupsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (databases)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+        // obtain list of tables
+    QString strQuery("SELECT groname, grosysid FROM pg_catalog.pg_group ORDER BY groname;");
+                
+    try
+    {
+        m_pqxxResultGroups = connection()->runQuery(strQuery);
+    
+        KPGGroup *pGroup = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultGroups.size(); ++i)
+        {
+            if(pGroup == 0)
+                pGroup = new KPGGroup(this, m_pqxxResultGroups[i]["groname"].c_str());
+            else
+                pGroup = new KPGGroup(this, pGroup, m_pqxxResultGroups[i]["groname"].c_str());
+                
+            pGroup->setProperties(m_pqxxResultGroups[i]);
+                
+            //-- Get users list
+            strQuery = QString("SELECT grolist FROM pg_catalog.pg_group WHERE grosysid=%1;").arg(pGroup->sysId());
+            pqxx::result pqxxResultUsersList = connection()->runQuery(strQuery);
+            
+            if(pqxxResultUsersList.size() > 0)
+            {
+                //fieldstream fs(pqxxResultUsersList[0]["grolist"]);
+                QString strUsrList(pqxxResultUsersList[0]["grolist"].c_str());
+                    
+                if(strUsrList.length() > 2) // void list is "{}"
+                {
+                    strUsrList.remove('{');
+                    strUsrList.remove('}');
+                                                       
+                    strQuery = QString("SELECT usename FROM pg_catalog.pg_user WHERE usesysid IN (%1);").arg(strUsrList);
+                    pqxx::result pqxxResultUser = connection()->runQuery(strQuery);
+                            
+                    for(result::size_type j = 0; j != pqxxResultUser.size(); ++j)
+                    {
+                        pGroup->getListOfUsers().append(pqxxResultUser[j]["usename"].c_str());
+                    }
+                }
+            } 
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpggroupsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: kpggroupsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGGROUPSFOLDER_H
+#define KPGGROUPSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGServer;
+class KPGConnection;
+
+
+/**
+  * Folder that holds groups
+  *
+  * @author Lumir Vanek
+  */
+class KPGGroupsFolder : public KPGItemsFolder
+{
+public:
+    KPGGroupsFolder(KPGServer *);
+    ~KPGGroupsFolder();
+
+	virtual eNodeType type() const { return nodeFolderGroups; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultGroups() const { return m_pqxxResultGroups; }
+			
+protected:
+
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultGroups;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+//
+// C++ Implementation: kpgindex
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgindex.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableindexesfolder.h"
+
+
+KPGIndex::KPGIndex(KPGTableIndexesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGTableIndex(parent, name, _oid)
+{
+  	setPixmap(0, *m_pIconIndex);
+}
+
+KPGIndex::KPGIndex(KPGTableIndexesFolder *parent, KPGTableIndex *after, const QString name, pqxx::oid _oid)
+  : KPGTableIndex(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconIndex);
+}
+
+KPGIndex::~KPGIndex()
+{
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgindex.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: kpgindex
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGINDEX_H
+#define KPGINDEX_H
+
+#include "kpgtableindex.h"
+
+class KPGTableIndexesFolder;
+
+/**
+  * Regular table index
+  *
+  * @author Lumir Vanek
+  */
+class KPGIndex : public KPGTableIndex
+{
+public:
+    KPGIndex(KPGTableIndexesFolder *, const QString, pqxx::oid);
+	KPGIndex(KPGTableIndexesFolder *, KPGTableIndex *, const QString, pqxx::oid);
+    ~KPGIndex();
+		
+	virtual eNodeType type() const { return nodeIndex ; }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,127 @@
+/***************************************************************************
+                          kpgitemsfolder.cpp  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgitemsfolder.h"
+
+// include files for KDE
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <klistview.h>
+
+#include "kpgconnection.h"
+#include "kpgobject.h"
+
+KPGItemsFolder::KPGItemsFolder(KPGTreeItem *parent, const QString name)
+  : KPGTreeItem(parent, name)
+{
+    setPixmap(0, *m_pIconFolderBlue);
+}
+
+KPGItemsFolder::~KPGItemsFolder()
+{
+}
+
+/*
+// if parent item is KPGSchema that is not public, reurn its name
+const QString KPGItemsFolder::getParentNameIfNamespace() const
+{
+  KPGTreeItem *pParentItem = static_cast <KPGTreeItem *> (parent()); 
+  if(pParentItem && pParentItem->type() == KPGTreeItem::nodeSchema)
+  {
+    QString strNamespace(pParentItem->text(0));
+    if(strNamespace == "public") strNamespace.truncate(0);
+    return strNamespace;
+  }
+  return ""; 
+}
+*/
+
+void KPGItemsFolder::fillListBoxWithChildItems(QListBox *pListBox)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem); 
+        
+        pListBox->insertItem(new KPGListBoxItem(* pTreeItem->pixmap(0), pTreeItem->text(0), pTreeItem->type()));    
+        
+        pItem = pItem->nextSibling();
+    }
+}
+
+void KPGItemsFolder::fillListBoxWithChildItems(KListBox *pListBox)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem); 
+    
+    pListBox->insertItem(new KPGListBoxItem(* pTreeItem->pixmap(0), pTreeItem->text(0), pTreeItem->type()));		
+	  
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGItemsFolder::fillComboBoxWithChildItems(KComboBox *pComboBox)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        pComboBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+        
+        pItem = pItem->nextSibling();
+  }
+}
+
+void KPGItemsFolder::fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+        
+        if(pTreeItem->hasOid()) 
+        {
+        	KPGObject *pPGObject = static_cast <KPGObject *> (pItem);
+        	 
+            listOfObjectOids.append(KPGOidName(pPGObject->oid(), pPGObject->text(0), pPGObject->type(), pPGObject->pixmap(0), pPGObject->description()));
+        }
+        
+        pItem = pItem->nextSibling();
+    }
+}
+
+// Try find child object by given OID
+KPGObject * KPGItemsFolder::getChildItemByOid(pqxx::oid _oid)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+        
+        if(pTreeItem->hasOid()) 
+        { 
+            KPGObject *pObject = static_cast <KPGObject *> (pTreeItem);
+            if(pObject->oid() == _oid)
+            	return pObject;
+        }
+        
+        pItem = pItem->nextSibling();
+    }
+    
+    return 0;
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgitemsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+/***************************************************************************
+                          kpgitemsfolder.h  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGITEMSFOLDER_H
+#define KPGITEMSFOLDER_H
+
+#include "kpgtreeitem.h"
+
+class QListBox;
+class KListBox;
+class KComboBox;
+class KPGOidName;
+class KPGObject;
+
+#include <qlistbox.h>
+
+#include "../kpgsqlexception.h"
+
+#define RTTI_KPGLISTBOXITEM 1001
+
+class KPGListBoxItem : public QListBoxPixmap
+{
+public:
+    KPGListBoxItem(const QPixmap &pixmap, const QString& text, KPGTreeItem::eNodeType eNodeType)
+        : QListBoxPixmap(pixmap, text) 
+    {
+        m_eNodeType = eNodeType;
+    }  
+  
+    virtual int rtti() const { return RTTI_KPGLISTBOXITEM; } 
+    KPGTreeItem::eNodeType type() const { return m_eNodeType; } // return tree node type
+
+protected:
+    KPGTreeItem::eNodeType m_eNodeType;
+};
+
+
+/**
+  * Item, that represent folder for tables, views, procedures ....
+  * 
+  * @author Lumir Vanek
+  */
+class KPGItemsFolder : public KPGTreeItem
+{
+public: 
+	KPGItemsFolder(KPGTreeItem *, const QString);
+	~KPGItemsFolder();
+
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) = 0;
+	    	
+    void fillListBoxWithChildItems(QListBox *);
+	void fillListBoxWithChildItems(KListBox *);
+    void fillComboBoxWithChildItems(KComboBox *);
+    
+    virtual void fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids);
+    
+    // Try find child object by given OID
+    KPGObject * getChildItemByOid(pqxx::oid);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,85 @@
+//
+// C++ Implementation: kpglanguage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpglanguage.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+
+#include "../kpglinklabel.h"
+#include "kpglanguagesfolder.h"
+#include "kpgdatabase.h"
+#include "../kpgutil.h"
+
+
+KPGLanguage::KPGLanguage(KPGLanguagesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+  	setPixmap(0, *m_pIconLanguage);
+}
+
+KPGLanguage::KPGLanguage(KPGLanguagesFolder *parent, KPGLanguage *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+  setPixmap(0, *m_pIconLanguage);
+}
+
+KPGLanguage::~KPGLanguage()
+{
+}
+
+void KPGLanguage::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["lanpltrusted"].to(m_bIsTrusted);
+    pqxxTuple["procoid"].to(m_oidLanguageProc);
+    pqxxTuple["validoid"].to(m_oidValidatorProc);
+            	
+    m_strACL = pqxxTuple["lanacl"].c_str();
+	m_strLanguageProcName = pqxxTuple["langproc"].c_str();
+	m_strValidatorProcName = pqxxTuple["langvalidator"].c_str();
+}
+
+// Refresh only language info, without childs objects
+void KPGLanguage::refreshItem() throw(const KPGSqlException &)
+{
+    // Get pointer to server for version info
+    //KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent());
+    
+    // obtain list of languages
+    QString strQuery("SELECT lan.oid, lan.lanname, lanpltrusted, lanacl, hp.oid AS procoid, hp.proname as langproc, vp.oid AS validoid, vp.proname as langvalidator ");
+    strQuery.append("FROM pg_catalog.pg_language lan ");
+    strQuery.append("JOIN pg_catalog.pg_proc hp on hp.oid=lanplcallfoid ");
+    strQuery.append("LEFT OUTER JOIN pg_catalog.pg_proc vp on vp.oid=lanvalidator ");
+    
+    strQuery.append("WHERE lan.oid = " + QString("%1").arg(m_oid));
+        
+    try
+    {
+        pqxx::result pqxxResultLanguages = connection()->runQuery(strQuery);
+        
+        if(pqxxResultLanguages.size() != 1)
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+        }
+        
+        setProperties(pqxxResultLanguages[0]); 
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+//
+// C++ Interface: kpglanguage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGLANGUAGE_H
+#define KPGLANGUAGE_H
+
+#include "kpgobject.h"
+
+class KPGLanguagesFolder;
+
+/**
+  * Item that represent procedural language
+  *
+  * @author Lumir Vanek
+  */
+class KPGLanguage : public KPGObject
+{
+public:
+    KPGLanguage(KPGLanguagesFolder *, const QString, pqxx::oid);
+	KPGLanguage(KPGLanguagesFolder *, KPGLanguage *, const QString, pqxx::oid);
+    ~KPGLanguage();
+
+	virtual eNodeType type() const { return nodeLanguage; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "LANGUAGE"; }
+	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+    
+    // Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	bool isTrusted() const { return m_bIsTrusted; }	
+	const QString & acl() const { return m_strACL; }
+	pqxx::oid oidLanguageProc() const { return m_oidLanguageProc; }
+	const QString & languageProcName() const { return m_strLanguageProcName; }
+	pqxx::oid oidValidatorProc() const { return m_oidValidatorProc; }
+	const QString & validatorProcName() const { return m_strValidatorProcName; }
+	 
+protected:
+
+	/*
+	 * Properties
+	 */
+	bool m_bIsTrusted;	
+	QString m_strACL;
+	pqxx::oid m_oidLanguageProc;
+	QString m_strLanguageProcName;
+	pqxx::oid m_oidValidatorProc;
+	QString m_strValidatorProcName;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+//
+// C++ Implementation: kpglanguagesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpglanguagesfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpglanguage.h"
+#include "kpgdatabase.h"
+
+
+KPGLanguagesFolder::KPGLanguagesFolder(KPGDatabase *parent)
+ : KPGItemsFolder(parent, i18n("Languages"))
+{
+	setPixmap(0, *m_pIconFolderYellow);
+}
+
+
+KPGLanguagesFolder::~KPGLanguagesFolder()
+{
+}
+
+void KPGLanguagesFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items 
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+
+	// obtain list of languages
+    QString strQuery("SELECT lan.oid, lan.lanname, lanpltrusted, lanacl, hp.oid AS procoid, hp.proname as langproc, vp.oid AS validoid, vp.proname as langvalidator ");
+	strQuery.append("FROM pg_catalog.pg_language lan ");
+	strQuery.append("JOIN pg_catalog.pg_proc hp on hp.oid=lanplcallfoid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_proc vp on vp.oid=lanvalidator ");
+	strQuery.append("WHERE lanispl IS TRUE ");
+	strQuery.append("ORDER BY lanname");
+			
+    try
+    {
+        m_pqxxResultLanguages = connection()->runQuery(strQuery);
+    
+        KPGLanguage *pLanguage = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultLanguages.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultLanguages[i][0].to(oid);
+            
+            if(pLanguage == 0)
+                pLanguage = new KPGLanguage(this, m_pqxxResultLanguages[i]["lanname"].c_str(), oid);
+            else
+                pLanguage = new KPGLanguage(this, pLanguage, m_pqxxResultLanguages[i]["lanname"].c_str(), oid);
+                    
+            pLanguage->setProperties(m_pqxxResultLanguages[i]); 
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpglanguagesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: kpglanguagesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGLANGUAGESFOLDER_H
+#define KPGLANGUAGESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGDatabase;
+
+/**
+  * Folder that hold languages
+  *
+  * @author Lumir Vanek
+  */
+class KPGLanguagesFolder : public KPGItemsFolder
+{
+public:
+    KPGLanguagesFolder(KPGDatabase *);
+    ~KPGLanguagesFolder();
+		
+	virtual eNodeType type() const { return nodeFolderLanguages; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+		
+	const pqxx::result & resultLanguages() const { return m_pqxxResultLanguages; }
+		
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultLanguages;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+/***************************************************************************
+                          kpgobject  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgobject.h"
+
+KPGObject::KPGObject(KPGTreeItem *parent, const QString name, pqxx::oid _oid)
+ : KPGTreeItem(parent, name)
+{
+	m_oid = _oid;
+}
+
+KPGObject::KPGObject(KPGTreeItem *parent, KPGTreeItem *after, const QString name, pqxx::oid _oid)
+ : KPGTreeItem(parent, after, name)
+{
+	m_oid = _oid;
+}
+
+KPGObject::~KPGObject()
+{
+}
+
+// search object with given path and OID
+KPGTreeItem * KPGObject::searchObject(const QString &strPath, pqxx::oid _oid)
+{
+	int iPos = strPath.find('/');
+	if(iPos <= 0) 
+	{
+		// path contain only one item name, it must match and OID too
+		if((strPath == text(0)) && (_oid == m_oid))
+			return this;
+		else
+			return 0;
+	}
+		
+	return KPGTreeItem::searchObject(strPath, _oid);	
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgobject.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+/***************************************************************************
+                          kpgobject  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGOBJECT_H
+#define KPGOBJECT_H
+
+#include "kpgtreeitem.h"
+
+/**
+  * Base class for all DB objects, that have OID
+  *
+  * @author Lumir Vanek
+  */
+class KPGObject : public KPGTreeItem
+{
+public:
+    KPGObject(KPGTreeItem *, const QString, pqxx::oid);
+	KPGObject(KPGTreeItem *, KPGTreeItem *, const QString, pqxx::oid);
+    ~KPGObject();
+	
+	// Return false from KPGTreeItem's, and true for KPGObject's
+	virtual bool hasOid() const { return true; }
+	
+	virtual KPGTreeItem * searchObject(const QString &, pqxx::oid); // search object with given path and OID
+    
+    virtual bool isSystemObject() const { return false; }
+			
+	// Get SQL object type (TABLE, VIEW ... )
+	virtual const char * getObjectType() const = 0;
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	 
+	 // Return PostgreSQL row identifier
+	const pqxx::oid oid() const { return m_oid; } 
+	const QString & description() const { return m_strDescription; }
+
+protected:
+
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oid; // PostgreSQL row identifier
+	QString m_strDescription;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+//
+// C++ Implementation: kpgoperator
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperator.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgoperatorsfolder.h"
+
+
+KPGOperator::KPGOperator(KPGOperatorsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+  setPixmap(0, *m_pIconOperator);
+}
+
+KPGOperator::KPGOperator(KPGOperatorsFolder *parent, KPGOperator *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+  setPixmap(0, *m_pIconOperator);
+}
+
+
+KPGOperator::~KPGOperator()
+{
+}
+
+void KPGOperator::setProperties(const pqxx::result::tuple &pqxxTuple, bool bVersion83_OrNewer)
+{
+    pqxxTuple["oprcanhash"].to(m_bCanHash);
+	pqxxTuple["oprleft"].to(m_oidLeftType);
+	pqxxTuple["oprright"].to(m_oidRightType);
+	pqxxTuple["oprresult"].to(m_oidResultType);
+			
+	pqxxTuple["oprcom"].to(m_oidComutatorOpr);
+	pqxxTuple["oprnegate"].to(m_oidNegatorOpr);
+	
+	if(bVersion83_OrNewer)
+	{
+		m_strLeftSortOprName = "N/A";
+		m_strRightSortOprName = "N/A";
+		m_strLessThanOprName = "N/A";
+		m_strGreatherThanOprName = "N/A";
+	}
+	else
+	{
+		pqxxTuple["oprlsortop"].to(m_oidLeftSortOpr);
+		pqxxTuple["oprrsortop"].to(m_oidRightSortOpr);
+		pqxxTuple["oprltcmpop"].to(m_oidLessThanOpr);
+		pqxxTuple["oprgtcmpop"].to(m_oidGreatherThanOpr);
+		
+		m_strLeftSortOprName = pqxxTuple["leftsortop"].c_str();
+		m_strRightSortOprName = pqxxTuple["rightsortop"].c_str();
+		m_strLessThanOprName = pqxxTuple["lessthancmpop"].c_str();
+		m_strGreatherThanOprName = pqxxTuple["greatherthancmpop"].c_str();
+	}
+	pqxxTuple["oprcodeoid"].to(m_oidOperatorFunc);
+	pqxxTuple["oprrestoid"].to(m_oidRestrictionFunc);
+	pqxxTuple["oprjoinoid"].to(m_oidJoinFunc);
+					
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strOwner = pqxxTuple["opowner"].c_str();
+	m_strKind = pqxxTuple["oprkind"].c_str();
+	m_strLeftType = pqxxTuple["lefttype"].c_str();
+	m_strRightType = pqxxTuple["righttype"].c_str();
+	m_strResultType = pqxxTuple["resulttype"].c_str();
+	m_strComutatorOprName = pqxxTuple["compop"].c_str();
+	m_strNegatorOprName = pqxxTuple["negop"].c_str();
+	m_strOperatorFunc = pqxxTuple["operproc"].c_str();
+	m_strRestrictionFunc = pqxxTuple["restrproc"].c_str();
+	m_strJoinFunc = pqxxTuple["joinproc"].c_str();
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperator.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,111 @@
+//
+// C++ Interface: kpgoperator
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATOR_H
+#define KPGOPERATOR_H
+
+#include "kpgobject.h"
+
+class KPGOperatorsFolder;
+
+/**
+Operator
+
+ at author Lumir Vanek
+*/
+
+class KPGOperator : public KPGObject
+{
+public:
+    KPGOperator(KPGOperatorsFolder *, const QString, pqxx::oid);
+	KPGOperator(KPGOperatorsFolder *, KPGOperator *, const QString, pqxx::oid);
+    ~KPGOperator();
+		
+	virtual eNodeType type() const { return nodeOperator; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "OPERATOR"; }
+	
+	void setProperties(const pqxx::result::tuple &, bool);
+		 
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+		
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & owner() const { return m_strOwner; }
+	const QString & kind() const { return m_strKind; }
+	bool canHash() const { return m_bCanHash; }
+	pqxx::oid oidLeftType() const { return m_oidLeftType; }
+	const QString & leftType() const { return m_strLeftType; }
+	pqxx::oid oidRightType() const { return m_oidRightType; }
+	const QString & rightType() const { return m_strRightType; }
+	pqxx::oid oidResultType() const { return m_oidResultType; }
+	const QString & resultType() const { return m_strResultType; }
+		
+	pqxx::oid oidComutatorOpr() const { return m_oidComutatorOpr; }
+	const QString & comutatorOprName() const { return m_strComutatorOprName; }
+	pqxx::oid oidNegatorOpr() const { return m_oidNegatorOpr; }
+	const QString & negatorOprName() const { return m_strNegatorOprName; }
+	pqxx::oid oidLeftSortOpr() const { return m_oidLeftSortOpr; }
+	const QString & leftSortOprName() const { return m_strLeftSortOprName; }
+	pqxx::oid oidRightSortOpr() const { return m_oidRightSortOpr; }
+	const QString & rightSortOprName() const { return m_strRightSortOprName; }
+	pqxx::oid oidLessThanOpr() const { return m_oidLessThanOpr; }
+	const QString & lessThanOprName() const { return m_strLessThanOprName; }
+	pqxx::oid oidGreatherThanOpr() const { return m_oidGreatherThanOpr; }
+	const QString & greatherThanOprName() const { return m_strGreatherThanOprName; }
+		
+	pqxx::oid oidOperatorFunc() const { return m_oidOperatorFunc; }
+	const QString & operatorFunc() const { return m_strOperatorFunc; }
+	pqxx::oid oidRestrictionFunc() const { return m_oidRestrictionFunc; }
+	const QString & restrictionFunc() const { return m_strRestrictionFunc; }
+	pqxx::oid oidJoinFunc() const { return m_oidJoinFunc; }
+	const QString & joinFunc() const { return m_strJoinFunc; }
+	
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	QString m_strKind;
+	bool m_bCanHash;
+	pqxx::oid m_oidLeftType;
+	QString m_strLeftType;
+	pqxx::oid m_oidRightType;
+	QString m_strRightType;
+	pqxx::oid m_oidResultType;
+	QString m_strResultType;
+		
+	pqxx::oid m_oidComutatorOpr;
+	QString m_strComutatorOprName;
+	pqxx::oid m_oidNegatorOpr;
+	QString m_strNegatorOprName;
+	pqxx::oid m_oidLeftSortOpr;
+	QString m_strLeftSortOprName;
+	pqxx::oid m_oidRightSortOpr;
+	QString m_strRightSortOprName;
+	pqxx::oid m_oidLessThanOpr;
+	QString m_strLessThanOprName;
+	pqxx::oid m_oidGreatherThanOpr;
+	QString m_strGreatherThanOprName;
+		
+	pqxx::oid m_oidOperatorFunc;
+	QString m_strOperatorFunc;
+	pqxx::oid m_oidRestrictionFunc;
+	QString m_strRestrictionFunc;
+	pqxx::oid m_oidJoinFunc;
+	QString m_strJoinFunc;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Implementation: kpgoperatorclass
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorclass.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgoperatorclassesfolder.h"
+
+
+KPGOperatorClass::KPGOperatorClass(KPGOperatorClassesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    setPixmap(0, *m_pIconOperatorClass);
+}
+
+KPGOperatorClass::KPGOperatorClass(KPGOperatorClassesFolder *parent, KPGOperatorClass *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    setPixmap(0, *m_pIconOperatorClass);
+}
+
+
+KPGOperatorClass::~KPGOperatorClass()
+{
+}
+
+
+void KPGOperatorClass::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+    pqxxTuple["opcdefault"].to(m_bIsDefault);
+    pqxxTuple["opcintype"].to(m_oidDataType);
+    pqxxTuple["opckeytype"].to(m_oidKeyType);
+                
+	m_strDataType = pqxxTuple["intypename"].c_str();
+	m_strKeyType = pqxxTuple["keytypename"].c_str();
+	m_strAccessMethodName = pqxxTuple["amname"].c_str();
+	m_strOwner = pqxxTuple["opowner"].c_str();
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclass.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,70 @@
+//
+// C++ Interface: kpgoperatorclass
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORCLASS_H
+#define KPGOPERATORCLASS_H
+
+#include <kpgobject.h>
+
+class KPGOperatorClassesFolder;
+
+/**
+  * Operator Class defines index access method operator classes. 
+  * Each operator class defines semantics for index columns of a particular 
+  * data type and a particular index access method. Note that there can 
+  * be multiple operator classes for a given data type/access method combination, 
+  * thus supporting multiple behaviors. 
+  *
+  * @author Lumir Vanek
+  */
+class KPGOperatorClass : public KPGObject
+{
+public:
+    KPGOperatorClass(KPGOperatorClassesFolder *, const QString, pqxx::oid);
+	KPGOperatorClass(KPGOperatorClassesFolder *, KPGOperatorClass *, const QString, pqxx::oid);
+    ~KPGOperatorClass();
+
+	virtual eNodeType type() const { return nodeOperatorClass; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "OPERATOR CLASS"; }
+	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+		
+	/*
+	 * Functions for accessing properties
+	 */
+	bool isDefault() const { return m_bIsDefault; }
+	pqxx::oid oidDataType() const { return m_oidDataType; }
+	const QString & dataType() const { return m_strDataType; }
+	pqxx::oid oidKeyType() const { return m_oidKeyType; }
+	const QString & keyType() const { return m_strKeyType; }
+	const QString & accessMethodName() const { return m_strAccessMethodName; }
+	const QString & owner() const { return m_strOwner; }
+	 
+protected:
+
+	/*
+	 * Properties
+	 */
+	bool m_bIsDefault;
+	pqxx::oid m_oidDataType;
+	QString m_strDataType;
+	pqxx::oid m_oidKeyType;
+	QString m_strKeyType;
+	QString m_strAccessMethodName;
+	QString m_strOwner;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,96 @@
+//
+// C++ Implementation: kpgoperatorclasesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorclassesfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgoperatorclass.h"
+#include "kpgserver.h"
+
+
+KPGOperatorClassesFolder::KPGOperatorClassesFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Operator Classes"))
+{
+	setPixmap(0, *m_pIconFolderViolet);
+	m_oidNameSpace = oidNameSpace;
+}
+
+KPGOperatorClassesFolder::~KPGOperatorClassesFolder()
+{
+}
+
+void KPGOperatorClassesFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items 
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    // Get pointer to server for version info
+    KPGServer *pServer = static_cast <KPGServer *> (parent()->parent()->parent());
+    
+    bool bVersion83_OrNewer = false;
+    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 3)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion83_OrNewer = true;
+	}
+	
+    // obtain list of operator classes
+    QString strQuery("SELECT op.oid, op.opcname, op.opcdefault, opcintype, it.typname as intypename, opckeytype, dt.typname as keytypename, amname, pg_get_userbyid(op.opcowner) \
+    as opowner ");
+            
+	strQuery.append("FROM pg_catalog.pg_opclass op ");
+	
+	if(bVersion83_OrNewer)
+	{
+		strQuery.append("JOIN pg_catalog.pg_am am ON am.oid=opcmethod ");
+	}
+	else
+	{
+		strQuery.append("JOIN pg_catalog.pg_am am ON am.oid=opcamid ");
+	}
+		
+	strQuery.append("JOIN pg_catalog.pg_type it ON it.oid=opcintype ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_type dt ON dt.oid=opckeytype ");
+	strQuery.append("WHERE opcnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY op.opcname");
+			
+    try
+    {
+        m_pqxxResultOperatorClasses = connection()->runQuery(strQuery);
+    
+        KPGOperatorClass *pOperatorClass = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultOperatorClasses.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultOperatorClasses[i][0].to(oid);
+            
+            if(pOperatorClass == 0)
+                pOperatorClass = new KPGOperatorClass(this, m_pqxxResultOperatorClasses[i]["opcname"].c_str(), oid);
+            else
+                pOperatorClass = new KPGOperatorClass(this, pOperatorClass, m_pqxxResultOperatorClasses[i]["opcname"].c_str(), oid);
+             
+            pOperatorClass->setProperties(m_pqxxResultOperatorClasses[i]);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorclassesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: kpgoperatorclassesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORCLASSESFOLDER_H
+#define KPGOPERATORCLASSESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+
+/**
+  * Folder that hold operator classes
+  *
+  * @author Lumir Vanek
+  */
+class KPGOperatorClassesFolder : public KPGItemsFolder
+{
+public:
+    KPGOperatorClassesFolder(KPGSchema *, pqxx::oid);
+    ~KPGOperatorClassesFolder();
+
+	virtual eNodeType type() const { return nodeFolderOperatorClasses; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultOperatorClasses() const { return m_pqxxResultOperatorClasses; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultOperatorClasses;
+		
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,106 @@
+//
+// C++ Implementation: kpgoperatorsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorsfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgoperator.h"
+#include "kpgserver.h"
+
+
+KPGOperatorsFolder::KPGOperatorsFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Operators"))
+{
+	setPixmap(0, *m_pIconFolderYellow);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGOperatorsFolder::~KPGOperatorsFolder()
+{
+}
+
+void KPGOperatorsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items 
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    // Get pointer to server for version info
+    KPGServer *pServer = static_cast <KPGServer *> (parent()->parent()->parent());
+    
+    bool bVersion83_OrNewer = false;
+    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 3)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion83_OrNewer = true;
+	}
+    
+    // obtain list of operators
+    QString strQuery("SELECT op.oid, op.oprname, description, op.oprkind, op.oprcanhash, op.oprleft, lt.typname as lefttype, op.oprright, rt.typname as righttype, op.oprresult, \
+ret.typname as resulttype, op.oprcom, co.oprname as compop, op.oprnegate, ne.oprname as negop, op.oprcode::oid AS oprcodeoid, op.oprcode as \
+    operproc, op.oprrest::oid AS oprrestoid, op.oprrest as restrproc, op.oprjoin::oid AS oprjoinoid, op.oprjoin as joinproc, pg_get_userbyid(op.oprowner) as opowner ");
+            
+    if(bVersion83_OrNewer == false)
+    {
+    	strQuery.append(", op.oprlsortop, lso.oprname as leftsortop, op.oprrsortop, rso.oprname as rightsortop, op.oprltcmpop, lco.oprname as lessthancmpop, op.oprgtcmpop, gco.oprname as greatherthancmpop ");
+    }        
+            
+	strQuery.append("FROM pg_catalog.pg_operator op ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_type lt ON lt.oid=op.oprleft ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_type rt ON rt.oid=op.oprright ");
+	strQuery.append("JOIN pg_catalog.pg_type ret on ret.oid=op.oprresult ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=op.oid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator co ON co.oid=op.oprcom ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator ne ON ne.oid=op.oprnegate ");
+	
+	if(bVersion83_OrNewer == false)
+    {
+		strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator lso ON lso.oid=op.oprlsortop ");
+		strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator rso ON rso.oid=op.oprrsortop ");
+		strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator lco ON lco.oid=op.oprltcmpop ");
+		strQuery.append("LEFT OUTER JOIN pg_catalog.pg_operator gco ON gco.oid=op.oprgtcmpop ");
+	}
+	
+	strQuery.append("WHERE op.oprnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY op.oprname");
+			
+    try
+    {
+        m_pqxxResultOperators = connection()->runQuery(strQuery);
+    
+        KPGOperator *pOperator = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultOperators.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultOperators[i][0].to(oid);
+            
+            if(pOperator == 0)
+                pOperator = new KPGOperator(this, m_pqxxResultOperators[i]["oprname"].c_str(), oid);
+            else
+                pOperator = new KPGOperator(this, pOperator, m_pqxxResultOperators[i]["oprname"].c_str(), oid);
+                        
+            pOperator->setProperties(m_pqxxResultOperators[i], bVersion83_OrNewer);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgoperatorsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgoperatorsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORSFOLDER_H
+#define KPGOPERATORSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+
+/**
+Folder that hold operators
+
+ at author Lumir Vanek
+*/
+
+class KPGConnection;
+
+class KPGOperatorsFolder : public KPGItemsFolder
+{
+public:
+    KPGOperatorsFolder(KPGSchema *, pqxx::oid);
+    ~KPGOperatorsFolder();
+
+	virtual eNodeType type() const { return nodeFolderOperators; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultOperators() const { return m_pqxxResultOperators; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultOperators;
+		
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+//C++ Implementation: kpgprimarykey
+//
+// Description:
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comeswith this distribution
+//
+//
+#include "kpgprimarykey.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableindexesfolder.h"
+
+
+KPGPrimaryKey::KPGPrimaryKey(KPGTableIndexesFolder * parent, const QString &name, pqxx::oid _oid)
+	: KPGTableIndex(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconPrimaryKey);
+}
+
+KPGPrimaryKey::KPGPrimaryKey(KPGTableIndexesFolder * parent, KPGTableIndex * after, const QString &name, pqxx::oid _oid)
+	:KPGTableIndex(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconPrimaryKey);
+}
+
+KPGPrimaryKey::~KPGPrimaryKey()
+{
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykey.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: kpgprimarykey
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPRIMARYKEY_H
+#define KPGPRIMARYKEY_H
+
+#include "kpgtableindex.h"
+
+class KPGTableIndexesFolder;
+
+/**
+  * Table index that ensures the primary key
+  *
+  * @author Lumir Vanek
+  */
+class KPGPrimaryKey : public KPGTableIndex
+{
+public:
+    KPGPrimaryKey(KPGTableIndexesFolder *, const QString&, pqxx::oid);
+	KPGPrimaryKey(KPGTableIndexesFolder *, KPGTableIndex *, const QString&, pqxx::oid);
+    ~KPGPrimaryKey();
+
+	virtual eNodeType type() const { return nodePrimaryKey; }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Implementation: kpgprimarykeyconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgprimarykeyconstr.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableconstraintsfolder.h"
+
+
+
+KPGPrimaryKeyConstr::KPGPrimaryKeyConstr(KPGTableConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconPrimaryKeyConstr);
+}
+
+KPGPrimaryKeyConstr::KPGPrimaryKeyConstr(KPGTableConstraintsFolder *parent, KPGTableConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconPrimaryKeyConstr);
+}
+
+KPGPrimaryKeyConstr::~KPGPrimaryKeyConstr()
+{
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgprimarykeyconstr.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: kpgprimarykeyconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPRIMARYKEYCONSTR_H
+#define KPGPRIMARYKEYCONSTR_H
+
+#include "kpgtableconstraint.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Table Primary key constraint
+  *
+  * @author Lumir Vanek
+  */
+class KPGPrimaryKeyConstr : public KPGTableConstraint
+{
+public:
+    KPGPrimaryKeyConstr(KPGTableConstraintsFolder *, const QString, pqxx::oid);
+	KPGPrimaryKeyConstr(KPGTableConstraintsFolder *, KPGTableConstraint *, const QString, pqxx::oid);
+    ~KPGPrimaryKeyConstr();
+		
+	virtual eNodeType type() const { return nodePrimaryKeyConstr; }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Implementation: kpgrule
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrule.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+
+#include "kpgrulesfolder.h"
+#include "kpgdatabase.h"
+
+
+KPGRule::KPGRule(KPGRulesFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconRule);
+}
+
+KPGRule::KPGRule(KPGRulesFolder *parent, KPGRule *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconRule);
+}
+
+KPGRule::~KPGRule()
+{
+}
+
+// Refresh only constraint info, without childs objects
+void KPGRule::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to owner table and database
+	KPGTable *pTable = static_cast <KPGTable *> (parent()->parent());
+	//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pTable->parent()->parent()->parent());
+		
+	QString strQuery("SELECT rw.oid, rulename, description, is_instead, ev_type, ev_qual, nspname ");
+	strQuery.append("FROM pg_catalog.pg_rewrite rw ");
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=rw.ev_class ");
+	strQuery.append("JOIN pg_catalog.pg_namespace nsp ON nsp.oid=cl.relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=rw.oid ");
+	strQuery.append("WHERE ev_class = ");
+	strQuery.append(QString("%1").arg(pTable->oid()));
+	strQuery.append(" AND rw.oid=");
+	strQuery.append(QString("%1").arg(m_oid));
+	
+	try
+	{
+    	pqxx::result pqxxResultRules = connection()->runQuery(strQuery);
+
+		if(pqxxResultRules.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		setProperties(pqxxResultRules[0]);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+void KPGRule::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	m_strDescription = pqxxTuple["description"].c_str();
+	pqxxTuple["is_instead"].to(m_bIsInstead);
+	m_strEvType = pqxxTuple["ev_type"].c_str();
+	m_strEvQual = pqxxTuple["ev_qual"].c_str();
+	m_strNameSpace = pqxxTuple["nspname"].c_str();
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrule.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Interface: kpgrule
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRULE_H
+#define KPGRULE_H
+
+#include "kpgobject.h"
+
+class KPGRulesFolder;
+
+/**
+  * Table rule
+  *
+  * @author Lumir Vanek
+  */
+class KPGRule : public KPGObject
+{
+public:
+    KPGRule(KPGRulesFolder *, const QString, pqxx::oid);
+	KPGRule(KPGRulesFolder *, KPGRule *, const QString, pqxx::oid);
+    ~KPGRule();
+
+	virtual eNodeType type() const { return nodeRule; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "RULE"; }
+	
+	void setProperties(const pqxx::result::tuple &);
+	void setDefinition(const QString strDefinition) { m_strDefinition = strDefinition; }
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & nameSpace() const { return m_strNameSpace; }
+	bool isInstead() const { return m_bIsInstead; }
+	const QString & evType() const { return m_strEvType; }
+	const QString & evQual() const { return m_strEvQual; }
+	const QString & definition() const { return m_strDefinition; }
+	 
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strNameSpace;
+	bool m_bIsInstead;
+	QString m_strEvType;
+	QString m_strEvQual;
+	QString m_strDefinition;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: kpgrulesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrulesfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+
+#include "kpgconnection.h"
+#include "kpgrule.h"
+
+
+KPGRulesFolder::KPGRulesFolder(KPGTable *parent)
+ : KPGTableItemsFolder(parent, i18n("Rules"))
+{
+	setPixmap(0, *m_pIconFolderYellow);
+}
+
+KPGRulesFolder::KPGRulesFolder(KPGTable *parent, KPGTableItemsFolder *after)
+ : KPGTableItemsFolder(parent, after, i18n("Rules"))
+{
+	setPixmap(0, *m_pIconFolderYellow);
+}
+
+KPGRulesFolder::~KPGRulesFolder()
+{
+}
+
+void KPGRulesFolder::refresh(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	// delete all child items (databases)
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	QString strQuery("SELECT rw.oid, rulename, description, is_instead, ev_type, ev_qual, nspname ");
+	strQuery.append("FROM pg_catalog.pg_rewrite rw ");
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=rw.ev_class ");
+	strQuery.append("JOIN pg_catalog.pg_namespace nsp ON nsp.oid=cl.relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=rw.oid ");
+	strQuery.append("WHERE ev_class = ");
+	strQuery.append(QString("%1").arg(oidTable));
+	strQuery.append(" ORDER BY rulename");
+			
+	try
+	{
+		m_pqxxResultRules = connection()->runQuery(strQuery);
+			
+		KPGRule *pRule = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultRules.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultRules[i][0].to(oid);
+				
+			if(pRule == 0)
+				pRule = new KPGRule(this, m_pqxxResultRules[i]["rulename"].c_str(), oid);
+			else
+				pRule = new KPGRule(this, pRule, m_pqxxResultRules[i]["rulename"].c_str(), oid);
+				
+			pRule->setProperties(m_pqxxResultRules[i]);
+					
+			//-- Get definition
+			strQuery = QString("SELECT pg_catalog.pg_get_ruledef(%1) AS definition;").arg(oid);
+			pqxx::result pqxxResultDefinition = connection()->runQuery(strQuery);
+			
+			if (pqxxResultDefinition.size() > 0)
+			{ 
+				pRule->setDefinition(pqxxResultDefinition[0][0].c_str());
+			}
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgrulesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: kpgrulesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRULESFOLDER_H
+#define KPGRULESFOLDER_H
+
+#include "kpgtableitemsfolder.h"
+
+/**
+  * Folder that holds table rules
+  *
+  * @author Lumir Vanek
+  */
+class KPGRulesFolder : public KPGTableItemsFolder
+{
+public:
+    KPGRulesFolder(KPGTable *);
+	KPGRulesFolder(KPGTable *, KPGTableItemsFolder *);
+    ~KPGRulesFolder();
+
+	virtual eNodeType type() const { return nodeFolderRules; }
+	
+	void refresh(pqxx::oid) throw(const KPGSqlException &);
+	
+	const pqxx::result & resultRules() const { return m_pqxxResultRules; }
+			
+protected:
+
+  // results that will be displaied in properties window
+  pqxx::result m_pqxxResultRules; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,229 @@
+//
+// C++ Implementation: kpgschema
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgschema.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <kcursor.h>
+
+#include "kpgdatabase.h"
+#include "kpgserver.h"
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "kpgconnection.h"
+#include "kpgtablesfolder.h"
+#include "kpgviewsfolder.h"
+#include "kpgsequencesfolder.h"
+#include "kpgfunctionsfolder.h"
+#include "kpgoperatorsfolder.h"
+#include "kpgoperatorclassesfolder.h"
+#include "kpgaggregatesfolder.h"
+#include "kpgdomainsfolder.h"
+#include "kpgtypesfolder.h"
+#include "kpgconversionsfolder.h"
+
+#include "../kpgsqldialog.h"
+
+
+KPGSchema::KPGSchema(KPGDatabase *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    m_bIsLoaded = false;
+    setPixmap(0, *m_pIconSchemaUnl);
+  
+    if((name.left(3) == "pg_") || (name == "information_schema"))
+        m_bIsSystemObject = true;
+    else
+        m_bIsSystemObject = false;
+  
+    m_pFolderViews = new KPGViewsFolder(this, _oid);
+    m_pFolderSequences = new KPGSequencesFolder(this, _oid);
+    m_pFolderTypes = new KPGTypesFolder(this, _oid);
+    m_pFolderTables = new KPGTablesFolder(this, _oid);
+    m_pFolderOperatorClasses = new KPGOperatorClassesFolder(this, _oid);
+	m_pFolderOperators = new KPGOperatorsFolder(this, _oid);
+    m_pFolderFunctions = new KPGFunctionsFolder(this, _oid);
+    m_pFolderDomains = new KPGDomainsFolder(this, _oid);
+	m_pFolderConversions = new KPGConversionsFolder(this, _oid);
+	m_pFolderAggregates = new KPGAggregatesFolder(this, _oid);
+}
+
+KPGSchema::KPGSchema(KPGDatabase *parent, KPGSchema *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    m_bIsLoaded = false;
+    setPixmap(0, *m_pIconSchemaUnl);
+    
+    if((name.left(3) == "pg_") || (name == "information_schema"))
+            m_bIsSystemObject = true;
+    else
+        m_bIsSystemObject = false;
+  	
+	m_pFolderViews = new KPGViewsFolder(this, _oid);
+    m_pFolderSequences = new KPGSequencesFolder(this, _oid);
+    m_pFolderTypes = new KPGTypesFolder(this, _oid);
+    m_pFolderTables = new KPGTablesFolder(this, _oid);
+    m_pFolderOperatorClasses = new KPGOperatorClassesFolder(this, _oid);
+    m_pFolderOperators = new KPGOperatorsFolder(this, _oid);
+    m_pFolderFunctions = new KPGFunctionsFolder(this, _oid);
+    m_pFolderDomains = new KPGDomainsFolder(this, _oid);
+    m_pFolderConversions = new KPGConversionsFolder(this, _oid);
+    m_pFolderAggregates = new KPGAggregatesFolder(this, _oid);
+}
+
+KPGSchema::~KPGSchema()
+{
+}
+
+void KPGSchema::activate()
+{
+	if(!m_bIsLoaded)
+	{ 
+		listView()->setCursor(KCursor::waitCursor());
+		
+		try
+		{
+			refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			listView()->setCursor(KCursor::arrowCursor());
+			KPGSqlDialog dlg(0, e.getSql(), e.what());
+			dlg.exec();
+		}
+		listView()->setCursor(KCursor::arrowCursor());
+		setOpen(true);
+	}
+}
+
+
+void KPGSchema::refresh() throw(const KPGSqlException &)
+{	
+	m_pFolderTables->refresh();
+	m_pFolderViews->refresh();
+	m_pFolderFunctions->refresh();
+	m_pFolderSequences->refresh();
+	m_pFolderOperators->refresh();
+	m_pFolderOperatorClasses->refresh();
+	m_pFolderAggregates->refresh();
+	m_pFolderDomains->refresh();
+	m_pFolderTypes->refresh();
+	m_pFolderConversions->refresh();
+				
+    m_bIsLoaded = true;
+  
+    if(m_bIsSystemObject)
+        setPixmap(0, *m_pIconSchemaSys);
+    else
+        setPixmap(0, *m_pIconSchemaUsr);
+}
+
+// Refresh only schema info, without childs objects
+void KPGSchema::refreshItem() throw(const KPGSqlException &)
+{
+    // Get pointer to server for version info
+    //KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent());
+    //KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+    
+    // obtain schema
+    QString strQuery("SELECT nsp.nspname, description, nspacl, has_schema_privilege(nsp.oid, 'CREATE') as cancreate, pg_get_userbyid(nspowner) AS owner ");
+    
+    strQuery.append("FROM pg_catalog.pg_namespace nsp ");
+    strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=nsp.oid ");
+    
+    strQuery.append("WHERE nsp.oid = " + QString("%1").arg(m_oid));
+        
+    try
+    {
+        pqxx::result pqxxResultSchemas = connection()->runQuery(strQuery);
+    
+        if(pqxxResultSchemas.size() != 1)
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+        }
+        
+        setProperties(pqxxResultSchemas[0]);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+
+
+void KPGSchema::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	m_strOwner = pqxxTuple["owner"].c_str();
+	pqxxTuple["cancreate"].to(m_bCanCreate);
+	m_strACL = pqxxTuple["nspacl"].c_str();
+	m_strDescription = pqxxTuple["description"].c_str();
+}
+
+const pqxx::result & KPGSchema::resultAggregates() const
+{
+	return m_pFolderAggregates->resultAggregates();
+}
+
+const pqxx::result & KPGSchema::resultConversions() const
+{
+	return m_pFolderConversions->resultConversions();
+}
+
+const pqxx::result & KPGSchema::resultDomains() const
+{
+	return m_pFolderDomains->resultDomains();
+}
+
+const pqxx::result & KPGSchema::resultFunctions() const
+{
+	return m_pFolderFunctions->resultFunctions();
+}
+
+const pqxx::result & KPGSchema::resultOperatorClasses() const
+{
+	return m_pFolderOperatorClasses->resultOperatorClasses();
+}
+
+const pqxx::result & KPGSchema::resultOperators() const
+{
+	return m_pFolderOperators->resultOperators();
+}
+
+const pqxx::result & KPGSchema::resultSequences() const
+{
+	return m_pFolderSequences->resultSequences();
+}
+
+const pqxx::result & KPGSchema::resultTables() const
+{
+	return m_pFolderTables->resultTables();
+}
+
+const pqxx::result & KPGSchema::resultTypes() const
+{
+	return m_pFolderTypes->resultTypes();
+}
+
+const pqxx::result & KPGSchema::resultViews() const
+{
+	return m_pFolderViews->resultViews();
+}
+
+void KPGSchema::fillListOfObjectsForCodeCompletion(KPGOidNameList & listOfObjectOids)
+{
+    m_pFolderTables->fillListOfObjectOidsWithChildItems(listOfObjectOids);
+	m_pFolderViews->fillListOfObjectOidsWithChildItems(listOfObjectOids);
+	m_pFolderFunctions->fillListOfObjectOidsWithChildItems(listOfObjectOids);
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgschema.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,135 @@
+//
+// C++ Interface: kpgschema
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSCHEMA_H
+#define KPGSCHEMA_H
+
+#include "kpgobject.h"
+
+/**
+  * Forward references
+  */
+class KPGTablesFolder;
+class KPGViewsFolder;
+class KPGSequencesFolder;
+class KPGFunctionsFolder;
+class KPGOperatorsFolder;
+class KPGOperatorClassesFolder;
+class KPGAggregatesFolder;
+class KPGDomainsFolder;
+class KPGTypesFolder;
+class KPGConversionsFolder;
+class KPGSchemaPropPage;
+class KPGDatabase;
+class QTable;
+
+/**
+  * Database schema (aka namespace). A schema is essentially a namespace: 
+  * it contains named objects (tables, data types, functions, and operators) 
+  * whose names may duplicate those of other objects existing in other schemas. 
+  * Named objects are accessed either by "qualifying" their names with the schema 
+  * name as a prefix, or by setting a search path that includes the desired schema(s).
+  * Unqualified objects are created in the current schema (the one at the front of 
+  * the search path, which can be determined with the function current_schema). 
+  *
+  * @author Lumir Vanek
+  */
+class KPGSchema : public KPGObject
+{
+public:
+    KPGSchema(KPGDatabase *, const QString, pqxx::oid);
+	KPGSchema(KPGDatabase *, KPGSchema *, const QString, pqxx::oid);
+    ~KPGSchema();
+		
+	virtual eNodeType type() const { return nodeSchema; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "SCHEMA"; }
+	
+    virtual bool isSystemObject() const { return m_bIsSystemObject; }
+	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+		    
+	/*
+	 * Functions for accessing nested folders
+	 */
+		  
+    KPGTablesFolder * getTablesFolder() { return m_pFolderTables; }
+    KPGViewsFolder * getViewsFolder() { return m_pFolderViews; }
+    KPGSequencesFolder * getSequencesFolder() { return m_pFolderSequences; }
+    KPGFunctionsFolder * getFunctionsFolder() { return m_pFolderFunctions; }
+    KPGOperatorsFolder * getOperatorsFolder() { return m_pFolderOperators; }
+    KPGOperatorClassesFolder * getOperatorClassesFolder() { return m_pFolderOperatorClasses; }
+    KPGAggregatesFolder * getAggregatesFolder() { return m_pFolderAggregates; }
+    KPGDomainsFolder * getDomainsFolder() { return m_pFolderDomains; }
+    KPGTypesFolder * getTypesFolder() { return m_pFolderTypes;  }
+    KPGConversionsFolder * getConversionsFolder() { return m_pFolderConversions; }
+    
+    /*
+	 * Functions for accessing nested results
+	 */
+	 
+    const pqxx::result & resultAggregates() const;
+    const pqxx::result & resultConversions() const;
+    const pqxx::result & resultDomains() const;
+    const pqxx::result & resultFunctions() const;
+    const pqxx::result & resultOperatorClasses() const;
+    const pqxx::result & resultOperators() const;
+    const pqxx::result & resultSequences() const;
+    const pqxx::result & resultTables() const;
+    const pqxx::result & resultTypes() const;
+    const pqxx::result & resultViews() const;
+    
+    /*
+	 * Functions for accessing properties
+	 */
+	 
+    const QString & owner() const { return m_strOwner; }
+    bool isLoaded() const { return m_bIsLoaded; }
+    bool canCreate() const { return m_bCanCreate; }
+    const QString & acl() const { return m_strACL; }
+    
+    void fillListOfObjectsForCodeCompletion(KPGOidNameList &);
+    
+protected:
+	
+  	virtual void activate();
+    
+protected:
+	KPGTablesFolder *m_pFolderTables;
+	KPGViewsFolder *m_pFolderViews;
+	KPGSequencesFolder *m_pFolderSequences;
+  	KPGFunctionsFolder *m_pFolderFunctions;
+	KPGOperatorsFolder *m_pFolderOperators;
+	KPGOperatorClassesFolder *m_pFolderOperatorClasses;
+	KPGAggregatesFolder *m_pFolderAggregates;
+	KPGDomainsFolder *m_pFolderDomains;
+	KPGTypesFolder *m_pFolderTypes;	
+	KPGConversionsFolder *m_pFolderConversions;
+
+	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	bool m_bCanCreate;
+	QString m_strACL;
+  
+	bool m_bIsSystemObject;
+  	bool m_bIsLoaded;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,151 @@
+//
+// C++ Implementation: kpgsequence
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsequence.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgdatabase.h"
+#include "kpgschema.h"
+#include "kpgsequencesfolder.h"
+
+
+
+KPGSequence::KPGSequence(KPGSequencesFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconSequence);
+	
+	m_llLastValue = 0;
+	m_llMinValue = 0; 
+	m_llMaxValue = 0; 
+	m_llCacheValue = 0; 
+	m_bIsCycled = false; 
+	m_iIncrementBy = 1;
+}
+
+KPGSequence::KPGSequence(KPGSequencesFolder *parent, KPGSequence *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconSequence);
+	
+	m_llLastValue = 0;
+	m_llMinValue = 0; 
+	m_llMaxValue = 0; 
+	m_llCacheValue = 0; 
+	m_bIsCycled = false; 
+	m_iIncrementBy = 1;
+}
+
+
+KPGSequence::~KPGSequence()
+{
+}
+
+void KPGSequence::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	m_strOwner = pqxxTuple["seqowner"].c_str();
+	m_strACL = pqxxTuple["relacl"].c_str();
+	m_strDescription = pqxxTuple["description"].c_str();
+}
+
+void KPGSequence::setSeqValues(const pqxx::result::tuple &pqxxTuple)
+{
+	QString strLastValue(pqxxTuple["last_value"].c_str());
+    QString strMinValue(pqxxTuple["min_value"].c_str()); 
+    QString strMaxValue(pqxxTuple["max_value"].c_str()); 
+    QString strCacheValue(pqxxTuple["cache_value"].c_str()); 
+                                
+    m_llLastValue = strLastValue.toLongLong();
+    m_llMinValue = strMinValue.toLongLong(); 
+    m_llMaxValue = strMaxValue.toLongLong(); 
+    m_llCacheValue = strCacheValue.toLongLong(); 
+        
+    /*pqxxTuple["last_value"].to(iLastValue);
+    pqxxTuple["min_value"].to(iMinValue);
+    pqxxTuple["max_value"].to(iMaxValue);
+    pqxxTuple["cache_value"].to(iCacheValue);*/
+    pqxxTuple["is_cycled"].to(m_bIsCycled);
+    pqxxTuple["increment_by"].to(m_iIncrementBy);
+}
+
+// Refresh only view info, without childs objects
+void KPGSequence::refreshItem() throw(const KPGSqlException &)
+{
+    // Get pointer to server for version info
+    KPGSchema *pSchema = static_cast <KPGSchema *> (parent()->parent());
+    KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+    if(pServer->type() != nodeServer)
+    {
+        kdError() << "KPGSequence::refreshItem cannot find parent server." << endl;
+    }
+    
+    // obtain sequence info
+    QString strQuery("SELECT cl.oid, relname, description, pg_get_userbyid(relowner) AS seqowner, relacl ");
+    strQuery.append("FROM pg_catalog.pg_class cl ");
+    strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cl.oid ");
+    
+    strQuery.append("WHERE cl.oid = " + QString("%1").arg(m_oid));
+        
+    try
+    {
+        pqxx::result pqxxResultSequences = connection()->runQuery(strQuery);
+    
+        if(pqxxResultSequences.size() != 1)
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+        }
+            
+        setProperties(pqxxResultSequences[0]);
+        
+        
+        if((pServer->versionMajor() >= 8) || ((pServer->versionMajor() == 7) && (pServer->versionMiddle() >= 4)))
+        {           
+            //-- Get seq. values
+            strQuery = QString("SELECT last_value, min_value, max_value, cache_value, is_cycled, increment_by \
+            FROM \"%1\".\"%2\";").arg(pSchema->text(0)).arg(pqxxResultSequences[0]["relname"].c_str());
+            pqxx::result pqxxResultSeqValues = connection()->runQuery(strQuery);
+                
+            if (pqxxResultSeqValues.size() == 1)
+            { 
+                setSeqValues(pqxxResultSeqValues[0]);
+            }  
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+
+const pqxx::result KPGSequence::queryIoStatistics() throw(const KPGSqlException &)
+{
+	QString strQuery("SELECT relname, blks_read, blks_hit FROM pg_catalog.pg_statio_all_sequences WHERE relid = ");
+    strQuery.append(QString("%1;").arg(m_oid));
+    
+    try
+    {
+        KPGConnection *pDbConnection = connection();
+        pqxx::work pqxxXaction(*pDbConnection, "refresh sequence statistics");
+        return pqxxXaction.exec(strQuery.latin1());
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequence.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Interface: kpgsequence
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSEQUENCE_H
+#define KPGSEQUENCE_H
+
+#include "kpgobject.h"
+
+class KPGSequencesFolder;
+
+/**
+  * Sequence
+  *
+  * @author Lumir Vanek
+  */
+class KPGSequence : public KPGObject
+{
+public:
+    KPGSequence(KPGSequencesFolder *, const QString, pqxx::oid);
+	KPGSequence(KPGSequencesFolder *, KPGSequence *, const QString, pqxx::oid);
+    ~KPGSequence();
+	
+	virtual eNodeType type() const { return nodeSequence; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "SEQUENCE"; }
+  	
+	void setProperties(const pqxx::result::tuple &);
+	void setSeqValues(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+  	
+  	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	const pqxx::result queryIoStatistics() throw(const KPGSqlException &);
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & acl() const { return m_strACL; }
+	const QString & owner() const { return m_strOwner; }
+	long long lastValue() const { return m_llLastValue; }
+	long long minValue() const { return m_llMinValue; }
+	long long maxValue() const { return m_llMaxValue; }
+	long long cacheValue() const { return m_llCacheValue; }
+	bool isCycled() const { return m_bIsCycled; }
+	int incrementBy() const { return m_iIncrementBy; }
+	
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	QString m_strACL;
+	
+	long long m_llLastValue;
+	long long m_llMinValue; 
+	long long m_llMaxValue; 
+	long long m_llCacheValue; 
+	bool m_bIsCycled; 
+	int m_iIncrementBy;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,101 @@
+/***************************************************************************
+                          kpgsequencesfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgsequencesfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgschema.h"
+#include "kpgsequence.h"
+
+KPGSequencesFolder::KPGSequencesFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Sequences"))
+{
+	setPixmap(0, *m_pIconFolderViolet);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGSequencesFolder::~KPGSequencesFolder()
+{
+}
+
+void KPGSequencesFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (databases)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+    KPGSchema *pSchema = static_cast <KPGSchema *> (parent());	
+    //                                              schema -> database -> server    
+    KPGServer *pServer = static_cast <KPGServer *> (pSchema->parent()->parent());
+    if(pServer->type() != nodeServer)
+    {
+        kdError() << k_funcinfo << " cannot find parent server." << endl;
+        return;
+    }
+
+	// obtain list of sequences
+    QString strQuery("SELECT cl.oid, relname, description, pg_get_userbyid(relowner) AS seqowner, relacl ");
+	strQuery.append("FROM pg_catalog.pg_class cl ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=cl.oid ");
+	strQuery.append("WHERE relkind = 'S' AND relnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY relname");
+			
+    try
+    {
+        m_pqxxResultSequences = connection()->runQuery(strQuery);
+    
+        KPGSequence *pSequence = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultSequences.size(); ++i)
+        {
+            pqxx::oid oid;
+            m_pqxxResultSequences[i][0].to(oid);
+            
+            if(pSequence == 0)
+                pSequence = new KPGSequence(this, m_pqxxResultSequences[i]["relname"].c_str(), oid);
+            else
+                pSequence = new KPGSequence(this, pSequence, m_pqxxResultSequences[i]["relname"].c_str(), oid);
+                            
+            pSequence->setProperties(m_pqxxResultSequences[i]);
+                
+        
+            if((pServer->versionMajor() >= 8) || ((pServer->versionMajor() == 7) && (pServer->versionMiddle() >= 4)))
+            {          	
+                //-- Get seq. values
+                strQuery = QString("SELECT last_value, min_value, max_value, cache_value, is_cycled, increment_by \
+                FROM \"%1\".\"%2\";").arg(pSchema->text(0)).arg(m_pqxxResultSequences[i]["relname"].c_str());
+                pqxx::result pqxxResultSeqValues = connection()->runQuery(strQuery);
+                
+                if (pqxxResultSeqValues.size() == 1)
+                {
+                    pSequence->setSeqValues(pqxxResultSeqValues[0]);
+                }	
+            }	
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgsequencesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,52 @@
+/***************************************************************************
+                          kpgsequencesfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGSEQUENCESFOLDER_H
+#define KPGSEQUENCESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+
+/**
+  * Item that hold sequences list
+  *
+  * @author Lumir Vanek
+  */
+class KPGConnection;
+
+class KPGSequencesFolder : public KPGItemsFolder
+{
+public:
+    KPGSequencesFolder(KPGSchema *, pqxx::oid);
+    ~KPGSequencesFolder();
+		
+	virtual eNodeType type() const { return nodeFolderSequences; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultSequences() const { return m_pqxxResultSequences; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultSequences;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,427 @@
+/***************************************************************************
+                          kpgserver.cpp  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgserver.h"
+
+// include files for Qt
+#include <qstringlist.h>
+#include <qregexp.h>
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdatabase.h"
+#include "kpgconnection.h"
+#include "kpgusersfolder.h"
+#include "kpggroupsfolder.h"
+#include "kpgtablespacesfolder.h"
+
+
+KPGServer::KPGServer(QListView *parent)
+  : KPGTreeItem(parent)
+{
+  	setPixmap(0, *m_pIconServer);
+
+  	m_pDbConnection = 0;
+	
+	m_pFolderUsers = 0;
+	m_pFolderGroups = 0;
+	m_pFolderTableSpaces = 0;
+  
+	m_uiVersionMinor = 0;
+	m_uiVersionMiddle = 0;
+	m_uiVersionMajor = 0;
+}
+
+KPGServer::~KPGServer()
+{
+    if(m_pDbConnection)
+    {
+        if(m_pDbConnection->is_open() == true)
+                m_pDbConnection->disconnect();
+    
+        delete m_pDbConnection;
+    }
+}
+
+bool KPGServer::connectToServer(
+  const QString strHost,
+  const QString strPort,
+  const QString strDatabase,
+  const QString strUser,
+  const QString strPassword
+ )
+{
+    QString strConnectString = (strDatabase.length() == 0) ?
+        makeConnectionString(strHost, strPort, strUser, strPassword)
+        :
+        makeConnectionString(strHost, strPort, strDatabase, strUser, strPassword)
+        ;
+    
+    try
+    {
+        m_pDbConnection = new KPGConnection(strConnectString);
+        m_pDbConnection->setPassword(strPassword); // store password for future use
+    }
+    catch(const std::exception &e)
+    {
+        kdError() << k_funcinfo << " Failed to open connection "  << endl << e.what() << endl;
+        throw;
+    }
+    
+    if(m_pDbConnection->is_open() == false)
+    {
+        kdError() << k_funcinfo << " Failed to open connection !!!" << endl;
+        return false;
+    }
+    
+    setText(0, strHost);
+    
+    getVersionInfo();
+    
+    return true;
+}
+
+void KPGServer::refresh() throw(const KPGSqlException &)
+{
+	// delete all child items
+    while(QListViewItem * pItem = firstChild())
+        delete pItem; 
+	
+	refreshDatabaseList(false);
+	
+	m_pFolderUsers = new KPGUsersFolder(this);
+	m_pFolderGroups = new KPGGroupsFolder(this);
+		
+	m_pFolderUsers->refresh();
+	m_pFolderGroups->refresh();
+	
+	if(m_uiVersionMajor >= 8)
+	{
+	   m_pFolderTableSpaces = new KPGTablespacesFolder(this); // Tablespaces suppor introduced in PostgreSQL 8
+	   m_pFolderTableSpaces->refresh();
+	}
+		
+    setOpen(true);
+}
+
+// Intelligent refresh - find new or removed databases
+void KPGServer::smartRefresh() throw(const KPGSqlException &)
+{
+	// obtain list of tables
+    refreshDatabaseList(true);
+}
+
+// Obtain PostgreSQL version info
+void KPGServer::getVersionInfo()
+{
+    QString strQuery("SELECT version();");
+	
+	pqxx::result pqxxResult; 
+    try
+    {
+        pqxxResult = connection()->runQuery(strQuery);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    if (pqxxResult.size() >= 1)
+    {
+        m_strVersionInfo = pqxxResult[0][0].c_str();
+    }
+  
+    // Parse version
+    
+    //--- major
+    QRegExp patternMajor("PostgreSQL \\d+", false); // major version
+                
+    int pos=patternMajor.search(m_strVersionInfo, 0);
+    if(pos >= 0)
+    {
+        int l = patternMajor.matchedLength();
+        QString s(m_strVersionInfo.mid(pos + 11, l - 11));
+        
+        m_uiVersionMajor = s.toInt();
+        
+        //--- middle
+        QRegExp patternNumber("\\d+", false); // middle version
+                    
+        pos=patternNumber.search(m_strVersionInfo, pos + l);
+        if(pos >= 0)
+        {
+			l = patternNumber.matchedLength();
+			s = m_strVersionInfo.mid(pos, l);
+			
+			m_uiVersionMiddle = s.toInt();
+			
+			// minor
+			pos=patternNumber.search(m_strVersionInfo, pos + l);
+			if(pos >= 0)
+			{
+				l = patternNumber.matchedLength();
+				s = m_strVersionInfo.mid(pos, l);
+			
+				m_uiVersionMinor = s.toInt();
+			}
+        }
+    } 
+    else
+    {
+        kdError() << "Cannot parse Version info" << endl;
+        throw PGSTD::runtime_error("Cannot parse Version info");
+    } 
+}
+
+// Force PostgreSQL server to reload configuration
+bool KPGServer::reloadConfig()
+{
+	QString strQuery("SELECT pg_reload_conf();");
+	
+	pqxx::result pqxxResult; 
+    try
+    {
+        pqxxResult = connection()->runQuery(strQuery);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    if (pqxxResult.size() >= 1)
+    {
+        bool bResult;
+        pqxxResult[0][0].to(bResult);
+        return bResult;
+    }
+    
+    return false;
+}
+
+// Force PostgreSQL server to rotate log file
+bool KPGServer::rotateLogFile()
+{
+	QString strQuery("SELECT pg_rotate_logfile();");
+	
+	pqxx::result pqxxResult; 
+    try
+    {
+        pqxxResult = connection()->runQuery(strQuery);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    if (pqxxResult.size() >= 1)
+    {
+        bool bResult;
+        pqxxResult[0][0].to(bResult);
+        return bResult;
+    }
+    
+    return false;
+}
+
+// Cancel a backed's current query on PostgreSQL
+bool KPGServer::cancelBackend(int iPID)
+{
+	QString strQuery(QString("SELECT pg_cancel_backend(%1);").arg(iPID));
+	
+	pqxx::result pqxxResult; 
+    try
+    {
+        pqxxResult = connection()->runQuery(strQuery);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    if (pqxxResult.size() >= 1)
+    {
+        bool bResult;
+        pqxxResult[0][0].to(bResult);
+        return bResult;
+    }
+    
+    return false;
+}
+
+void KPGServer::refreshDatabaseList(bool bSmart) throw(const KPGSqlException &)
+{
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	
+	// Is it 8.0 or newer ?
+	if(versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((versionMajor() == 8) && (versionMiddle() >= 1)) || ((versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+	    
+    // obtain list of databases
+    QString strQuery("SELECT db.oid, datname, pg_get_userbyid(datdba) AS datowner");
+   	    
+    if(!bVersion80_OrNewer)
+        strQuery.append(", datpath "); // deprecated in PostgreSQL 8
+    else
+        strQuery.append(", dattablespace, spcname ");
+        
+    strQuery.append(", pg_encoding_to_char(encoding) AS serverencoding");
+    
+    if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(db.oid)) AS size_pretty");
+	}
+    
+    strQuery.append(", has_database_privilege(db.oid, 'CREATE') as cancreate, datconfig, datallowconn, datistemplate, datacl ");
+        
+    if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_database_size(db.oid) AS database_size ");
+	}
+        
+    strQuery.append("FROM pg_catalog.pg_database db ");
+    
+    if(bVersion80_OrNewer)
+        strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON db.dattablespace=ts.oid ");
+    
+    strQuery.append("ORDER BY datname");  
+        
+    try
+    {
+        m_pqxxResultDatabases = connection()->runQuery(strQuery);
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+    
+    // Remove deleted databases from Server childrens list
+    QStringList strListOfExistingDatabases;
+    for (result::size_type i = 0; i != m_pqxxResultDatabases.size(); ++i)
+    strListOfExistingDatabases.append(QString(m_pqxxResultDatabases[i]["datname"].c_str()));
+        
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+        {
+            if(strListOfExistingDatabases.contains(pItem->text(0)) == false)
+            {
+                delete pItem; // database not exists - delete it
+                pItem = firstChild(); // restart cycle
+                continue;
+            }
+        }			
+        pItem = pItem->nextSibling();
+    }
+        
+    KPGDatabase *pDatabase = 0;
+    
+    // Append databases to Server childrens list
+    for (result::size_type i = 0; i != m_pqxxResultDatabases.size(); ++i)
+    {
+            pqxx::oid oid;
+            m_pqxxResultDatabases[i][0].to(oid);
+            
+            bool bCreateNew = true; // default
+            if(bSmart)
+            {
+                // look, if this database already exists
+                pItem = firstChild();
+                while(pItem)
+                {
+                    if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+                    {
+                        if(pItem->text(0) == QString(m_pqxxResultDatabases[i]["datname"].c_str()))
+                        {
+                            bCreateNew = false; // database exists, skip creation
+                            break;
+                        }
+                    }			
+                    pItem = pItem->nextSibling();
+                }
+            }
+            
+            if(bCreateNew)
+            {
+                if(pDatabase == 0)
+                    pDatabase = new KPGDatabase(
+                            this,
+                            m_pqxxResultDatabases[i]["datname"].c_str(),
+                            oid
+                            );
+                else
+                    pDatabase = new KPGDatabase(
+                        this,
+                        pDatabase,
+                        m_pqxxResultDatabases[i]["datname"].c_str(),
+                        oid
+                        );
+            
+                pDatabase->setProperties(m_pqxxResultDatabases[i], bVersion80_OrNewer, bVersion81_OrNewer);
+        }
+    }
+}
+
+result KPGServer::runQuery(const QString &strQuery)
+{
+  // run query
+  return connection()->runQuery(strQuery);
+}
+
+const QString KPGServer::url() const 
+{ 
+  if(m_pDbConnection == 0) return "";
+  
+  return QString("host=" + QString(m_pDbConnection->hostname()) +
+	               " port=" + QString(m_pDbConnection->port()) +
+                 " dbname=" + QString(m_pDbConnection->dbname()) +
+	               " user=" + QString(m_pDbConnection->username())
+                ); 
+}
+
+// Query server activity 
+pqxx::result KPGServer::queryActivity() throw(const KPGSqlException &)
+{
+	QString strQuery("SELECT datname, procpid, usename, current_query, query_start FROM pg_catalog.pg_stat_activity");
+	
+	try
+	{
+		return m_pDbConnection->runQuery(strQuery);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgserver.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+/***************************************************************************
+                          kpgserver.h  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGSERVER_H
+#define KPGSERVER_H
+
+#include "kpgtreeitem.h"
+
+// forward references
+class KPGConnection;
+class QPixmap;
+class QString;
+class KPGUsersFolder;
+class KPGGroupsFolder;
+class KPGTablespacesFolder;
+class QStringList;
+
+/**
+  * Item, that represent PostgreSQL DB server
+  *
+  * @author Lumir Vanek
+  */
+class KPGServer : public KPGTreeItem
+{
+
+public: 
+	KPGServer(QListView *);
+	~KPGServer();
+
+public:
+    virtual eNodeType type() const { return nodeServer; }
+    bool connectToServer(const QString, const QString, const QString, const QString, const QString);
+    
+    // Return connection to database. All items childs to KPGDatabase tells your parents for connection
+    virtual KPGConnection * connection() const { return m_pDbConnection; }
+    
+    pqxx::result runQuery(const QString &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	// This same behavior as refreshItem(), but for some objects, may be optimalized to run faster
+	void smartRefresh() throw(const KPGSqlException &) ;
+	
+	const QString url() const;
+	KPGUsersFolder * getUsersFolder() { return m_pFolderUsers; }
+	KPGGroupsFolder * getGroupsFolder() { return m_pFolderGroups; }
+	KPGTablespacesFolder *getTablespacesFolder() { return  m_pFolderTableSpaces; }
+  	  
+  	// Force PostgreSQL server to reload configuration
+	bool reloadConfig();
+	
+	// Force PostgreSQL server to rotate log file
+	bool rotateLogFile();
+	
+	// Cancel a backed's current query on PostgreSQL server
+	bool cancelBackend(int);
+
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & versionInfo() const { return m_strVersionInfo; }
+	
+	// Return PostgreSQL server version numbers
+	unsigned int versionMinor() const { return m_uiVersionMinor; }
+	unsigned int versionMiddle()  const { return m_uiVersionMiddle; }
+	unsigned int versionMajor()  const { return m_uiVersionMajor; }
+  
+  	const pqxx::result & resultDatabases() const { return m_pqxxResultDatabases; }
+  
+  	// Query server activity 
+	pqxx::result queryActivity() throw(const KPGSqlException &);
+  
+protected:
+
+    void getVersionInfo();
+	void refreshDatabaseList(bool) throw(const KPGSqlException &);
+  
+    // PostgreSQL server version info 
+    unsigned int m_uiVersionMinor;
+    unsigned int m_uiVersionMiddle;
+    unsigned int m_uiVersionMajor;
+    
+  
+protected:
+
+    KPGConnection *m_pDbConnection;
+    QString m_strVersionInfo; // Info about PostgreSQL server
+            
+    // results that will be displaied in properties window
+    pqxx::result m_pqxxResultDatabases; 
+	
+	KPGUsersFolder *m_pFolderUsers;
+	KPGGroupsFolder *m_pFolderGroups;
+	KPGTablespacesFolder *m_pFolderTableSpaces;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,293 @@
+/***************************************************************************
+                          kpgtable.cpp  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgtable.h"
+
+ 
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kcursor.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../kpggeneralsettings.h"
+#include "kpgserver.h"
+#include "kpgdatabase.h"
+#include "kpgtablesfolder.h"
+#include "kpgtablecolumnsfolder.h"
+#include "kpgtableconstraintsfolder.h"
+#include "kpgtableindexesfolder.h"
+#include "kpgrulesfolder.h"
+#include "kpgtriggersfolder.h"
+#include "../kpgsqldialog.h"
+
+
+KPGTable::KPGTable(KPGTablesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+    m_bIsLoaded = false;
+    setPixmap(0, *m_pIconTable);
+	
+	m_pFolderColumns = new KPGTableColumnsFolder(this);
+	m_pFolderConstraints = new KPGTableConstraintsFolder(this, m_pFolderColumns);
+	m_pFolderIndexes = new KPGTableIndexesFolder(this, m_pFolderConstraints);
+	m_pFolderRules = new KPGRulesFolder(this, m_pFolderIndexes);
+	m_pFolderTriggers = new KPGTriggersFolder(this, m_pFolderRules);
+}
+
+KPGTable::KPGTable(KPGTablesFolder *parent, KPGTable *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+    m_bIsLoaded = false;
+    setPixmap(0, *m_pIconTable);
+	
+	m_pFolderColumns = new KPGTableColumnsFolder(this);
+	m_pFolderConstraints = new KPGTableConstraintsFolder(this, m_pFolderColumns);
+	m_pFolderIndexes = new KPGTableIndexesFolder(this, m_pFolderConstraints);
+	m_pFolderRules = new KPGRulesFolder(this, m_pFolderIndexes);
+	m_pFolderTriggers = new KPGTriggersFolder(this, m_pFolderRules);
+}
+
+KPGTable::~KPGTable()
+{
+}
+
+void KPGTable::activate()
+{
+	if(!m_bIsLoaded)
+	{ 
+		listView()->setCursor(KCursor::waitCursor());
+		try
+		{
+			refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			listView()->setCursor(KCursor::arrowCursor());
+			KPGSqlDialog dlg(0, e.getSql(), e.what());
+			dlg.exec();
+		}
+		listView()->setCursor(KCursor::arrowCursor());
+		setOpen(true);
+	}
+}
+
+void KPGTable::refresh() throw(const KPGSqlException &)
+{
+    //kdDebug() << "Refreshing table: " << text(0) << endl;
+    refreshItem();
+    
+    refreshChildItems();
+			
+	m_bIsLoaded = true;
+}
+
+void KPGTable::refreshChildItems() throw(const KPGSqlException &)
+{
+    try
+    {
+		m_pFolderColumns->refresh(m_oid);
+		m_pFolderConstraints->refresh(m_oid);
+		m_pFolderIndexes->refresh(m_oid);
+		m_pFolderRules->refresh(m_oid);
+		m_pFolderTriggers->refresh(m_oid);
+	}
+	catch (const KPGSqlException &e)
+	{
+		kdError() << k_funcinfo << "Routing exception up. Table: " << text(0) << endl;
+		throw; // if it is KPGSqlException re-throw it
+	}
+}
+
+// Refresh only table info, without childs objects
+void KPGTable::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to server for version info
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+		
+	// obtain table info
+	QString strQuery("SELECT rel.oid, rel.relname, rel.reltype, description, pg_get_userbyid(rel.relowner) AS relowner");
+	strQuery.append(", rel.relhasoids, rel.relhassubclass, rel.reltuples, c.conname, c.conkey, rel.relacl");
+    strQuery.append(", CASE rel.relkind WHEN 'r' THEN 'Ordinary table' WHEN 't' THEN 'Toast table' END AS kind");
+    strQuery.append(", toast.oid AS toast_table_oid, toast.relname AS toast_table");
+	
+	if(bVersion80_OrNewer)
+	{
+		strQuery.append(QString(", CASE rel.reltablespace WHEN 0 THEN %1 ELSE rel.reltablespace END AS reltablespace, ts.spcname").arg(pDatabase->oidTablespace()));
+	}
+		
+	if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(rel.oid)) AS size_pretty");
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_total_relation_size(rel.oid)) AS size_pretty_total");
+		strQuery.append(", pg_catalog.pg_relation_size(rel.oid) AS table_size");
+		strQuery.append(", pg_catalog.pg_total_relation_size(rel.oid) AS table_size_total");
+	}
+		
+	strQuery.append(" FROM pg_catalog.pg_class rel ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=rel.oid AND des.objsubid=0 ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_constraint c ON c.conrelid=rel.oid AND c.contype='p' ");
+	
+	strQuery.append("LEFT JOIN pg_catalog.pg_class toast ON rel.reltoastrelid=toast.oid ");
+	
+	if(bVersion80_OrNewer)
+	{	
+		strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON CASE rel.reltablespace ");
+    	strQuery.append(QString("WHEN 0 THEN %1 ELSE rel.reltablespace END=ts.oid ").arg(pDatabase->oidTablespace()));
+	}	
+	strQuery.append("WHERE rel.oid = " + QString("%1").arg(m_oid));
+
+	try
+	{
+		pqxx::result pqxxResultTables = pDatabase->connection()->runQuery(strQuery);
+		
+		if(pqxxResultTables.size() != 1)
+		{
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+		}
+		
+		setProperties(pqxxResultTables[0], bVersion80_OrNewer, bVersion81_OrNewer);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+// Set table properties
+void KPGTable::setProperties(const pqxx::result::tuple & pqxxTuple, 
+    bool bVersion80_OrNewer, bool bVersion81_OrNewer)
+{
+    pqxxTuple["reltype"].to(m_oidReltype);
+	m_strOwner = pqxxTuple["relowner"].c_str();
+	m_strACL = pqxxTuple["relacl"].c_str();
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strPrimaryKeyName = pqxxTuple["conname"].c_str();
+	m_strPrimaryKeyColNumbers = pqxxTuple["conkey"].c_str(); 
+	pqxxTuple["relhasoids"].to(m_bHasOids);
+	pqxxTuple["relhassubclass"].to(m_bHasSubclass);
+	pqxxTuple["reltuples"].to(m_dEstimatedRows);
+	m_strKind = pqxxTuple["kind"].c_str();
+	
+	pqxxTuple["toast_table_oid"].to(m_oidToastTable);   
+    m_strToastTable = pqxxTuple["toast_table"].c_str(); 
+	
+	if(m_strKind == "Toast table")
+	   setPixmap(0, *m_pIconToastTable);
+	
+	if(!bVersion80_OrNewer)
+	{
+	   m_oidTablespace = 0;
+	}
+	else
+	{   
+	   pqxxTuple["reltablespace"].to(m_oidTablespace);
+	   m_strTablespace = pqxxTuple["spcname"].c_str(); 
+    }
+    
+    if(bVersion81_OrNewer)
+	{
+		pqxxTuple["table_size"].to(m_llSize);
+		m_strPrettySize = pqxxTuple["size_pretty"].c_str();
+		pqxxTuple["table_size_total"].to(m_llSizeTotal);
+		m_strPrettySizeTotal = pqxxTuple["size_pretty_total"].c_str(); 
+	}
+}
+
+const pqxx::result & KPGTable::resultColumns() const
+{
+	return m_pFolderColumns->resultColumns();
+}
+
+const pqxx::result & KPGTable::resultConstraints() const
+{
+	return m_pFolderConstraints->resultConstraints();
+}
+
+const pqxx::result & KPGTable::resultIndexes() const
+{
+	return m_pFolderIndexes->resultIndexes();
+}
+
+
+const pqxx::result & KPGTable::resultRules() const
+{
+	return m_pFolderRules->resultRules();
+}
+
+
+const pqxx::result & KPGTable::resultTriggers() const
+{
+	return m_pFolderTriggers->resultTriggers();
+}
+
+const pqxx::result KPGTable::queryStatistics() const
+{
+	QString strQuery("SELECT relname, seq_scan, seq_tup_read, idx_scan, idx_tup_fetch, n_tup_ins, n_tup_upd, n_tup_del FROM pg_catalog.pg_stat_all_tables WHERE relid = ");
+    strQuery.append(QString("%1;").arg(m_oid));
+    
+    try
+	{
+		return connection()->runQuery(strQuery);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	}
+}
+
+
+const pqxx::result KPGTable::queryIoStatistics() const
+{
+	QString strQuery("SELECT relname, heap_blks_read, heap_blks_hit, idx_blks_read, idx_blks_hit, toast_blks_read, toast_blks_hit, tidx_blks_read, tidx_blks_hit FROM \
+pg_catalog.pg_statio_all_tables WHERE relid = ");
+    strQuery.append(QString("%1;").arg(m_oid));
+    
+    try
+	{
+		return connection()->runQuery(strQuery);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	}
+}
+
+    

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtable.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,143 @@
+/***************************************************************************
+                          kpgtable.h  -  description
+                             -------------------
+    begin                : � led 6 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGTABLE_H
+#define KPGTABLE_H
+
+#include "kpgobject.h"
+
+#include "kpgconnection.h"
+
+class KPGTablesFolder;
+class KPGTableColumnsFolder;
+class KPGTableConstraintsFolder;
+class KPGTableIndexesFolder;
+class KPGRulesFolder;
+class KPGTriggersFolder;
+
+/**
+  * Item, that represent database table
+  *
+  * @author Lumir Vanek
+  */
+class KPGTable : public KPGObject
+{
+public: 
+	KPGTable(KPGTablesFolder *, const QString, pqxx::oid);
+	KPGTable(KPGTablesFolder *, KPGTable *, const QString, pqxx::oid);
+	~KPGTable();
+
+  	virtual eNodeType type() const { return nodeTable; }
+  	
+  	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "TABLE"; }
+  	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+  	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	// Refresh childs
+	void refreshChildItems() throw(const KPGSqlException &);
+	
+	void setProperties(const pqxx::result::tuple &, bool, bool);
+	
+	/*
+	 * Functions for accessing nested folders
+	 */
+		  
+	KPGTableColumnsFolder * getTableColumnsFolder() { return m_pFolderColumns; }
+	KPGTableConstraintsFolder * getTableConstraintsFolder() { return m_pFolderConstraints; }
+	KPGTableIndexesFolder * getTableIndexesFolder() { return m_pFolderIndexes; }
+	KPGRulesFolder * getRulesFolder() { return m_pFolderRules; }
+	KPGTriggersFolder * getTriggersFolder() { return m_pFolderTriggers; }
+	
+	/*
+	 * Functions for accessing nested results
+	 */
+		
+  	const pqxx::result & resultColumns() const;
+  	const pqxx::result & resultConstraints() const;
+    const pqxx::result & resultIndexes() const;
+    const pqxx::result & resultRules() const;
+    const pqxx::result & resultTriggers() const;
+    
+    const pqxx::result queryStatistics() const;
+    const pqxx::result queryIoStatistics() const;
+    
+	/*
+	 * Functions for accessing properties
+	 */
+		
+	pqxx::oid oidReltype() const { return m_oidReltype; }
+	const QString & primaryKeyName() const { return m_strPrimaryKeyName; }
+	const QString & owner() const { return m_strOwner; }
+	const QString & tablespace() const { return m_strTablespace; }
+	bool isToastTable() const { return m_strKind == "Toast table"; }
+	const QString & acl() const { return m_strACL; }
+	const QString & kind() const { return m_strKind; }
+	long long size() const { return m_llSize; }
+    const QString & prettySize() const { return m_strPrettySize; }
+    long long sizeTotal() const { return m_llSizeTotal; }
+    const QString & prettySizeTotal() const { return m_strPrettySizeTotal; }
+    bool hasOids() const { return m_bHasOids; }
+    bool hasSubclass() const { return m_bHasSubclass; }
+	double estimatedRows() const { return m_dEstimatedRows; }
+	const QString & primaryKeyColNumbers() const { return m_strPrimaryKeyColNumbers; }
+	pqxx::oid oidTablespace() const { return m_oidTablespace; }
+	pqxx::oid oidToastTable() const { return m_oidToastTable; } 
+	const QString & toastTable() const { return m_strToastTable; }
+  	  
+protected:
+	  
+	virtual void activate();
+	
+protected:
+	
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oidReltype;
+	QString m_strOwner;
+	QString m_strACL;
+	bool m_bHasOids;
+	bool m_bHasSubclass;
+	double m_dEstimatedRows;
+	QString m_strPrimaryKeyName;
+	QString m_strPrimaryKeyColNumbers;
+	pqxx::oid m_oidTablespace;   // For PostgreSQL 8 or newer 
+	QString m_strTablespace;     // For PostgreSQL 8 or newer
+	pqxx::oid m_oidToastTable; 
+	QString m_strToastTable;  
+	long long m_llSize;
+  	QString m_strPrettySize;
+	long long m_llSizeTotal;
+  	QString m_strPrettySizeTotal;
+  	QString m_strKind;
+	
+	// Folders with owned objects
+  	KPGTableColumnsFolder *m_pFolderColumns;
+	KPGTableConstraintsFolder *m_pFolderConstraints;
+	KPGTableIndexesFolder *m_pFolderIndexes;
+	KPGRulesFolder *m_pFolderRules;
+	KPGTriggersFolder *m_pFolderTriggers;
+	
+	bool m_bIsLoaded;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,355 @@
+/***************************************************************************
+                          kpgtablecolumn  -  description
+                             -------------------
+    begin                : So no 7 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgtablecolumn.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdatabase.h"
+#include "kpgtablecolumnsfolder.h"
+
+
+KPGTableColumn::KPGTableColumn(KPGTableColumnsFolder *parent, const QString name)
+  : KPGTreeItem(parent, name)
+{
+ 	setPixmap(0, *m_pIconColumnOther);
+}
+
+KPGTableColumn::KPGTableColumn(KPGTableColumnsFolder *parent, KPGTableColumn *after, const QString name)
+  : KPGTreeItem(parent, after, name)
+{
+ 	setPixmap(0, *m_pIconColumnOther);
+}
+
+KPGTableColumn::~KPGTableColumn()
+{
+}
+
+// Refresh only column info, without childs objects
+void KPGTableColumn::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to owner table and database
+	KPGTable *pTable = static_cast <KPGTable *> (parent()->parent());
+	
+	QString strQuery("SELECT a.attname, atttypid, ty.typname, ty.typbasetype, a.attlen, ");
+		
+	strQuery.append("description, a.attstattarget, a.attnum, a.attndims, a.atttypmod, a.attbyval, a.attnotnull, a.atthasdef, a.attisdropped, a.attislocal, CASE WHEN a.attstorage = 'p' THEN 'PLAIN' WHEN a.attstorage = 'e' THEN 'EXTERNAL' WHEN a.attstorage = 'm' THEN 'MAIN' WHEN a.attstorage = 'x' THEN 'EXTENDED' END AS attstorage, a.attinhcount, ");
+	
+	strQuery.append("def.adsrc, tn.nspname");
+	
+	strQuery.append(" FROM pg_catalog.pg_attribute a");
+	strQuery.append(" JOIN pg_catalog.pg_type ty ON ty.oid=a.atttypid");
+	strQuery.append(" JOIN pg_catalog.pg_namespace tn ON tn.oid=ty.typnamespace");
+	strQuery.append(" JOIN pg_catalog.pg_class cl ON cl.oid=a.attrelid");
+	//strQuery.append(" JOIN pg_catalog.pg_namespace na ON na.oid=cl.relnamespace");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=ty.typelem");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_attrdef def ON adrelid=a.attrelid AND adnum=a.attnum");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=attrelid AND des.objsubid=attnum");
+	strQuery.append(" WHERE attrelid = ");
+	strQuery.append(QString("%1").arg(pTable->oid()));
+	strQuery.append(" AND a.attname='" + text(0) + "'");
+	
+	try
+	{
+    	pqxx::result pqxxResultColumns = connection()->runQuery(strQuery);
+
+		if(pqxxResultColumns.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		setProperties(pqxxResultColumns[0]);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+void KPGTableColumn::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["atttypid"].to(m_oidType);
+	pqxxTuple["typbasetype"].to(m_oidBaseType);
+	pqxxTuple["attbyval"].to(m_bByVal);
+	pqxxTuple["attnotnull"].to(m_bNotNull);
+	pqxxTuple["atthasdef"].to(m_bHasDef);
+	pqxxTuple["attisdropped"].to(m_bIsDropped);
+	pqxxTuple["attislocal"].to(m_bIsLocal);
+	pqxxTuple["attstattarget"].to(m_lStatTarget);
+	pqxxTuple["attlen"].to(m_iAttLen);
+	pqxxTuple["attnum"].to(m_iAttNum);
+	pqxxTuple["attndims"].to(m_iAttNdims);
+	pqxxTuple["atttypmod"].to(m_iAttTypmod);
+	pqxxTuple["attinhcount"].to(m_iInhCount);
+			
+	m_strTypName = pqxxTuple["typname"].c_str();
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strStorage = pqxxTuple["attstorage"].c_str();
+	m_strAdSrc = pqxxTuple["adsrc"].c_str();
+	m_strNspName = pqxxTuple["nspname"].c_str();
+	
+	//--- Set column type icon ---------------------------------------------------
+	if((m_strTypName == "bpchar") || (m_strTypName == "varchar") || (m_strTypName == "text"))
+	{
+		setPixmap(0, *m_pIconColumnChar);
+		return;
+	}
+	
+	if((m_strTypName == "int") || (m_strTypName == "int2") || (m_strTypName == "int4") || (m_strTypName == "int8") || (m_strTypName == "float4") || (m_strTypName == "float8") || (m_strTypName == "numeric") || (m_strTypName == "serial4") || (m_strTypName == "serial8") || (m_strTypName == "money"))
+	{
+		setPixmap(0, *m_pIconColumnNum);
+		return;
+	}
+			
+	if((m_strTypName == "bool"))
+	{
+		setPixmap(0, *m_pIconColumnBool);
+		return;
+	}
+	
+	if((m_strTypName == "time") || (m_strTypName == "timetz") || (m_strTypName == "interval"))
+	{
+		setPixmap(0, *m_pIconColumnTime);
+		return;
+	}
+	
+	if((m_strTypName == "date") || (m_strTypName == "timestamp") || (m_strTypName == "timestamptz"))
+	{
+		setPixmap(0, *m_pIconColumnDate);
+		return;
+	}
+	
+	if((m_strTypName == "point") || (m_strTypName == "line") || (m_strTypName == "lseg") || (m_strTypName == "box") || (m_strTypName == "path") || (m_strTypName == "polygon") || (m_strTypName == "circle"))
+	{
+		setPixmap(0, *m_pIconColumnGeo);
+		return;
+	}
+	
+	if((m_strTypName == "bit") || (m_strTypName == "varbit"))
+	{
+		setPixmap(0, *m_pIconColumnBit);
+		return;
+	}
+	
+	if((m_strTypName == "bytea"))
+	{
+		setPixmap(0, *m_pIconColumnBin);
+		return;
+	}
+	
+	if((m_strTypName == "cidr") || (m_strTypName == "inet") || (m_strTypName == "macaddr"))
+	{
+		setPixmap(0, *m_pIconColumnNet);
+		return;
+	}
+	
+	if((m_strTypName == "xml"))
+	{
+		setPixmap(0, *m_pIconColumnXml);
+		return;
+	}
+	
+	if((m_strTypName == "uuid"))
+	{
+		setPixmap(0, *m_pIconColumnUuid);
+		return;
+	}
+	
+	//----------------------------------------------------------------------------
+	
+	if((m_strTypName == "oid"))
+	{
+		setPixmap(0, *m_pIconColumnOid);
+		return;
+	}
+	
+	if((m_strTypName == "xid"))
+	{
+		setPixmap(0, *m_pIconColumnXid);
+		return;
+	}
+	
+	if((m_strTypName == "tid"))
+	{
+		setPixmap(0, *m_pIconColumnTid);
+		return;
+	}
+	
+	if((m_strTypName == "cid"))
+	{
+		setPixmap(0, *m_pIconColumnCid);
+		return;
+	}
+  
+    if(m_oidBaseType != 0)
+    {
+        setPixmap(0, *m_pIconDomain);
+    }
+}
+
+QPixmap *KPGTableColumn::getPixmapForType(const QString &strTypName)
+{
+	//--- Set column type icon ---------------------------------------------------
+	if((strTypName == "bpchar") || (strTypName == "varchar") || (strTypName == "text"))
+	{
+		return m_pIconColumnChar;
+	}
+	
+	if((strTypName == "xml"))
+	{
+		return m_pIconColumnXml;
+	}
+	
+	if((strTypName == "int") || (strTypName == "int2") || (strTypName == "int4") || (strTypName == "int8") || (strTypName == "float4") || (strTypName == "float8") || (strTypName == "numeric") || (strTypName == "serial4") || (strTypName == "serial8") || (strTypName == "money"))
+	{
+		return m_pIconColumnNum;
+	}
+	
+	if((strTypName == "uuid"))
+	{
+		return m_pIconColumnUuid;
+	}
+			
+	if((strTypName == "bool"))
+	{
+		return m_pIconColumnBool;
+	}
+	
+	if((strTypName == "time") || (strTypName == "timetz") || (strTypName == "interval"))
+	{
+		return m_pIconColumnTime;
+	}
+	
+	if((strTypName == "date") || (strTypName == "timestamp") || (strTypName == "timestamptz"))
+	{
+		return m_pIconColumnDate;
+	}
+	
+	if((strTypName == "point") || (strTypName == "line") || (strTypName == "lseg") || (strTypName == "box") || (strTypName == "path") || (strTypName == "polygon") || (strTypName == "circle"))
+	{
+		return m_pIconColumnGeo;
+	}
+	
+	if((strTypName == "bit") || (strTypName == "varbit"))
+	{
+		return m_pIconColumnBit;
+	}
+	
+	if((strTypName == "bytea"))
+	{
+		return m_pIconColumnBin;
+	}
+	
+	if((strTypName == "cidr") || (strTypName == "inet") || (strTypName == "macaddr"))
+	{
+		return m_pIconColumnNet;
+	}
+	
+	//----------------------------------------------------------------------------
+	
+	if((strTypName == "oid"))
+	{
+		return m_pIconColumnOid;
+	}
+	
+	if((strTypName == "xid"))
+	{
+		return m_pIconColumnXid;
+	}
+	
+	if((strTypName == "tid"))
+	{
+		return m_pIconColumnTid;
+	}
+	
+	if((strTypName == "cid"))
+	{
+		return m_pIconColumnCid;
+	}
+  
+  	//kdDebug() << "KPGTableColumn::getPixmapForType - Unknown column type: " + strTypName << endl;
+	return m_pIconColumnOther;
+}
+
+const QString KPGTableColumn::createdAs() const
+{
+	QString strType(m_strTypName);
+	
+	if(m_iAttNdims > 0)
+		strType = strType.mid(1, strType.length() - 1); // remove trailing _
+	
+	if(strType == "bpchar") 
+	{
+		strType = QString("char(%1)").arg(m_iAttTypmod - 4);
+	}
+	else if(strType == "varchar") 
+	{
+		strType = QString("varchar(%1)").arg(m_iAttTypmod - 4);
+	}	
+	else if(strType == "int2") 
+	{
+		strType = "smallint";
+	}
+	else if(strType == "int4") 
+	{
+		strType = "int";
+	}
+	else if(strType == "int8") 
+	{
+		strType = "bigint";
+	}
+	else if(strType == "float4") 
+	{
+		strType = "real";
+	}
+	if(strType == "float8") 
+	{
+		strType = "float";
+	}
+	else if(strType == "numeric") 
+	{
+		strType = QString("decimal(%1, %2)").arg((m_iAttTypmod - 4)  / 65536).arg((m_iAttTypmod - 4)  % 65536);
+	}	
+	else if(strType == "serial") 
+	{
+		strType = "serial";
+	} 
+	else if(strType == "serial8") 
+	{
+		strType = "bigserial";
+	}
+	else if(strType == "bit") 
+	{
+		strType = QString("bit(%1)").arg(m_iAttTypmod);
+	}
+	else if(strType == "varbit") 
+	{
+		strType = QString("varbit(%1)").arg(m_iAttTypmod);
+	}	
+	
+	if(m_iAttNdims > 0)
+	{
+	  for(int i = 0; i < m_iAttNdims; i++)
+			strType.append(" [?]");
+	}
+	
+	return strType;
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumn.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+/***************************************************************************
+                          kpgtablecolumn  -  description
+                             -------------------
+    begin                : So no 7 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGTABLECOLUMN_H
+#define KPGTABLECOLUMN_H
+
+#include "kpgtreeitem.h"
+
+class KPGTableColumnsFolder;
+
+/**
+  * Table column
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableColumn : public KPGTreeItem
+{
+public:
+	KPGTableColumn(KPGTableColumnsFolder *, const QString);
+	KPGTableColumn(KPGTableColumnsFolder *, KPGTableColumn *, const QString);
+  	~KPGTableColumn();
+  
+	virtual eNodeType type() const { return nodeTableColumn; }
+  	
+  	void setProperties(const pqxx::result::tuple &);
+  	
+  	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+  	
+  	static QPixmap *getPixmapForType(const QString &);
+  	
+  	/*
+	 * Functions for accessing properties
+	 */
+  	pqxx::oid oidType() const { return m_oidType; }
+  	pqxx::oid oidBaseType() const { return m_oidBaseType; }
+	const QString & typName() const { return m_strTypName; }
+	long statTarget() const { return m_lStatTarget; }
+	int attLen() const { return m_iAttLen; }
+	int attNum() const { return m_iAttNum; } 
+	int attNdims() const { return m_iAttNdims; }
+	int attTypmod() const { return m_iAttTypmod; }
+	bool byValue() const { return m_bByVal; }
+	bool hasDefault() const { return m_bHasDef; }
+	bool isNotNull() const { return m_bNotNull; }
+	bool isDropped() const { return m_bIsDropped; }
+	bool isLocal() const { return m_bIsLocal; }
+	const QString & defaultValue() const { return m_strAdSrc; }
+	const QString & storage() const { return m_strStorage; }
+	const QString & description() const { return m_strDescription; }
+	int inhCount() const { return m_iInhCount; }
+	const QString & nspName() const { return m_strNspName; }
+	
+	const QString createdAs() const;
+	
+protected:
+
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oidType;
+  	pqxx::oid m_oidBaseType;
+	QString m_strTypName;
+	QString m_strDescription;
+	long m_lStatTarget;
+	int m_iAttLen;
+	int m_iAttNum; 
+	int m_iAttNdims;
+	int m_iAttTypmod;
+	bool m_bByVal;
+	bool m_bNotNull;
+	bool m_bHasDef;
+	bool m_bIsDropped;
+	bool m_bIsLocal;
+  	QString m_strStorage;
+	int m_iInhCount;
+	QString m_strAdSrc;
+	QString m_strNspName;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,181 @@
+/***************************************************************************
+                          kpgtablecolumnsfolder  -  description
+                             -------------------
+    begin                : � no 5 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgtablecolumnsfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgtablecolumn.h"
+
+
+KPGTableColumnsFolder::KPGTableColumnsFolder(KPGTable *parent)
+ : KPGTableItemsFolder(parent, i18n("Columns"))
+{
+}
+
+KPGTableColumnsFolder::KPGTableColumnsFolder(KPGTable *parent, KPGTableItemsFolder *after)
+ : KPGTableItemsFolder(parent, after, i18n("Columns"))
+{
+}
+
+KPGTableColumnsFolder::~KPGTableColumnsFolder()
+{
+}
+
+
+void KPGTableColumnsFolder::refresh(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	// delete all child items (databases)
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	QString strQuery("SELECT a.attname, atttypid, ty.typname, ty.typbasetype, a.attlen, ");
+		
+	strQuery.append("description, a.attstattarget, a.attnum, a.attndims, a.atttypmod, a.attbyval, a.attnotnull, a.atthasdef, a.attisdropped, a.attislocal, CASE WHEN a.attstorage = 'p' THEN 'PLAIN' WHEN a.attstorage = 'e' THEN 'EXTERNAL' WHEN a.attstorage = 'm' THEN 'MAIN' WHEN a.attstorage = 'x' THEN 'EXTENDED' END AS attstorage, a.attinhcount, ");
+		
+	strQuery.append("def.adsrc, tn.nspname");
+			
+	strQuery.append(" FROM pg_catalog.pg_attribute a");
+	strQuery.append(" JOIN pg_catalog.pg_type ty ON ty.oid=a.atttypid");
+	strQuery.append(" JOIN pg_catalog.pg_namespace tn ON tn.oid=ty.typnamespace");
+	strQuery.append(" JOIN pg_catalog.pg_class cl ON cl.oid=a.attrelid");
+	//strQuery.append(" JOIN pg_catalog.pg_namespace na ON na.oid=cl.relnamespace");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=ty.typelem");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_attrdef def ON adrelid=a.attrelid AND adnum=a.attnum");
+	strQuery.append(" LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=attrelid AND des.objsubid=attnum");
+	strQuery.append(" WHERE attrelid = ");
+	strQuery.append(QString("%1").arg(oidTable));
+	strQuery.append(" AND attisdropped IS FALSE");
+	strQuery.append(" ORDER BY attnum");
+			
+	try
+	{
+		m_pqxxResultColumns = connection()->runQuery(strQuery);
+			
+		KPGTableColumn *pTableColumn = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultColumns.size(); ++i)
+		{
+			if(pTableColumn == 0)
+				pTableColumn = new KPGTableColumn(this, m_pqxxResultColumns[i]["attname"].c_str());
+			else
+				pTableColumn = new KPGTableColumn(this, pTableColumn, m_pqxxResultColumns[i]["attname"].c_str());
+			
+							
+			pTableColumn->setProperties(m_pqxxResultColumns[i]);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+void KPGTableColumnsFolder::fillListBoxWithChildItems(QListBox *pListBox, bool bIncludeSystemColumns)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTableColumn->attNum() >= 0))
+		pListBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableColumnsFolder::fillListBoxWithChildItems(KListBox *pListBox, bool bIncludeSystemColumns)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTableColumn->attNum() >= 0))
+		pListBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableColumnsFolder::fillComboBoxWithChildItems(KComboBox *pComboBox, bool bIncludeSystemColumns)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTableColumn->attNum() >= 0))
+		pComboBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableColumnsFolder::fillListColumnWizInfoWithChildItems(KPGListTableColumnWizInfo & listColumnWizInfo, bool bIncludeSystemColumns)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTableColumn->attNum() > 0))
+		{
+			listColumnWizInfo.append(new KPGTableColumnWizInfo(
+					pTableColumn->text(0), 
+					pTableColumn->typName(),
+					pTableColumn->attNdims(),
+					pTableColumn->attNum(),
+					*pTableColumn->pixmap(0),
+					pTableColumn->description()
+					));
+		}
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableColumnsFolder::fillListColumns(KPGListTableColumns &listColumns, bool bIncludeSystemColumns)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTableColumn->attNum() > 0))
+		{
+			listColumns.append(KPGTableColumnWizInfo(
+					pTableColumn->text(0), 
+					pTableColumn->typName(),
+					pTableColumn->attNdims(),
+					pTableColumn->attNum(),
+					*pTableColumn->pixmap(0),
+					pTableColumn->description()
+					));
+		}
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablecolumnsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+/***************************************************************************
+                          kpgtablecolumnsfolder  -  description
+                             -------------------
+    begin                : � no 5 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGTABLECOLUMNSFOLDER_H
+#define KPGTABLECOLUMNSFOLDER_H
+
+#include "kpgtableitemsfolder.h"
+
+// include files for KDE
+#include <klistbox.h>
+#include <kcombobox.h>
+
+
+#include "../Wizards/kpgtablecolumnwizinfo.h"
+
+/**
+  * Table columns folder
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableColumnsFolder : public KPGTableItemsFolder
+{
+public:
+    KPGTableColumnsFolder(KPGTable *);
+	KPGTableColumnsFolder(KPGTable *, KPGTableItemsFolder *);
+    ~KPGTableColumnsFolder();
+
+	virtual eNodeType type() const { return nodeFolderTableColumns; }
+	
+	void refresh(pqxx::oid) throw(const KPGSqlException &);
+	
+	const pqxx::result & resultColumns() const { return m_pqxxResultColumns; }
+    
+    void fillListBoxWithChildItems(QListBox *, bool = true);
+    void fillListBoxWithChildItems(KListBox *, bool = true);
+    void fillComboBoxWithChildItems(KComboBox *, bool = true);
+	void fillListColumnWizInfoWithChildItems(KPGListTableColumnWizInfo &, bool = true);
+	void fillListColumns(KPGListTableColumns &, bool = false);
+    	    
+protected:
+
+	// result that will be displaied in properties window
+	pqxx::result m_pqxxResultColumns; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+//
+// C++ Implementation: kpgtableconstraint
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableconstraint.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "kpgtableconstraintsfolder.h"
+#include "kpgdatabase.h"
+
+KPGTableConstraint::KPGTableConstraint(KPGTableConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+}
+
+KPGTableConstraint::KPGTableConstraint(KPGTableConstraintsFolder *parent, KPGTableConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+}
+
+KPGTableConstraint::~KPGTableConstraint()
+{
+}
+
+// Refresh only constraint info, without childs objects
+void KPGTableConstraint::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to owner table and database
+	KPGTable *pTable = static_cast <KPGTable *> (parent()->parent());
+	//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pTable->parent()->parent()->parent());
+		
+	QString strQuery("SELECT c.oid, conname, CASE contype WHEN 'p' THEN 'Primary Key' WHEN 'f' THEN 'Foreign Key' WHEN 'u' THEN 'Unique' WHEN 'c' THEN 'Check' END AS contypedesc, description, condeferrable, condeferred, nspname "); 
+		
+	strQuery.append("FROM pg_catalog.pg_constraint c ");
+	
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=conrelid ");
+	strQuery.append("JOIN pg_catalog.pg_namespace nl ON nl.oid=relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=c.oid ");
+		
+	strQuery.append("WHERE conrelid = ");
+	strQuery.append(QString("%1").arg(pTable->oid()));
+	strQuery.append(" AND c.oid=");
+	strQuery.append(QString("%1").arg(m_oid));
+	
+	try
+	{
+    	pqxx::result pqxxResultConstraints = connection()->runQuery(strQuery);
+
+		if(pqxxResultConstraints.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+									
+		setProperties(pqxxResultConstraints[0]);
+		
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+
+void KPGTableConstraint::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	m_strDescription = pqxxTuple["description"].c_str();
+	pqxxTuple["condeferrable"].to(m_bIsDeferrable);
+	pqxxTuple["condeferred"].to(m_bIsDeferred);
+	m_strNspName = pqxxTuple["nspname"].c_str();	
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraint.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+//
+// C++ Interface: kpgtableconstraint
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLECONSTRAINT_H
+#define KPGTABLECONSTRAINT_H
+
+#include "kpgobject.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Base class for all table constraints - primary key, foreign key, 
+  * unique and check
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableConstraint : public KPGObject
+{
+public:
+    KPGTableConstraint(KPGTableConstraintsFolder *, const QString, pqxx::oid);
+	KPGTableConstraint(KPGTableConstraintsFolder *, KPGTableConstraint *, const QString, pqxx::oid);
+    ~KPGTableConstraint();
+
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "CONSTRAINT"; }
+
+	void setProperties(const pqxx::result::tuple &);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+				
+	/*
+	 * Functions for accessing properties
+	 */
+	bool isDeferrable() const { return m_bIsDeferrable; }
+	bool isDeferred() const { return m_bIsDeferred; }
+	const QString & nspName() const { return m_strNspName;	}
+	 
+protected:
+
+	/*
+	 * Properties
+	 */
+	bool m_bIsDeferrable;
+	bool m_bIsDeferred;
+	QString m_strNspName;		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,145 @@
+//
+// C++ Implementation: kpgtableconstraintsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableconstraintsfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgprimarykeyconstr.h"
+#include "kpgforeignkeyconstr.h"
+#include "kpgcheckconstr.h"
+#include "kpguniqueconstr.h"
+
+
+KPGTableConstraintsFolder::KPGTableConstraintsFolder(KPGTable *parent)
+ : KPGTableItemsFolder(parent, i18n("Constraints"))
+{
+	setPixmap(0, *m_pIconFolderGreen);
+}
+
+KPGTableConstraintsFolder::KPGTableConstraintsFolder(KPGTable *parent, KPGTableItemsFolder *after)
+ : KPGTableItemsFolder(parent, after, i18n("Constraints"))
+{
+	setPixmap(0, *m_pIconFolderGreen);
+}
+
+KPGTableConstraintsFolder::~KPGTableConstraintsFolder()
+{
+}
+
+void KPGTableConstraintsFolder::refresh(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	// delete all child items
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	QString strQuery("SELECT c.oid, conname, CASE contype WHEN 'p' THEN 'Primary Key' WHEN 'f' THEN 'Foreign Key' WHEN 'u' THEN 'Unique' WHEN 'c' THEN 'Check' END AS contypedesc, description, condeferrable, condeferred, nspname "); 
+		
+	strQuery.append("FROM pg_catalog.pg_constraint c ");
+	
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=conrelid ");
+	strQuery.append("JOIN pg_catalog.pg_namespace nl ON nl.oid=relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=c.oid ");
+		
+	strQuery.append("WHERE conrelid = ");
+	strQuery.append(QString("%1").arg(oidTable));
+	strQuery.append(" ORDER BY conname;");
+			
+	try
+	{
+		m_pqxxResultConstraints = connection()->runQuery(strQuery);
+			
+		KPGTableConstraint * pTableConstraint = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultConstraints.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultConstraints[i][0].to(oid);
+				
+			QString strType(m_pqxxResultConstraints[i]["contypedesc"].c_str());
+							
+				
+			if(strType == "Primary Key")
+			{
+				if(pTableConstraint == 0)
+					pTableConstraint = new KPGPrimaryKeyConstr(this, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+				else
+					pTableConstraint = new KPGPrimaryKeyConstr(this, pTableConstraint, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+				}
+				
+				if(strType == "Foreign Key")
+				{
+					
+					if(pTableConstraint == 0)
+						pTableConstraint = new KPGForeignKeyConstr(this, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+					else
+						pTableConstraint = new KPGForeignKeyConstr(this, pTableConstraint, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+					
+					KPGForeignKeyConstr *pForeignKeyConstr = static_cast <KPGForeignKeyConstr *> (pTableConstraint);	
+					
+					//-- Get foreign key properties
+					strQuery = QString("SELECT confupdtype, confdeltype, conkey, confkey, conrelid, confrelid, refcl.relname AS reftable FROM pg_catalog.pg_constraint c LEFT \
+					OUTER JOIN pg_catalog.pg_class refcl ON refcl.oid=confrelid WHERE c.oid=%1;").arg(oid);
+					pqxx::result pqxxResultFk = connection()->runQuery(strQuery);
+							
+					if(pqxxResultFk.size() == 1)
+					{ 
+						pqxx::oid oidReferencedTable;
+						pqxxResultFk[0]["confrelid"].to(oidReferencedTable);
+								
+						pForeignKeyConstr->setUpdType(pqxxResultFk[0]["confupdtype"].c_str());
+						pForeignKeyConstr->setDelType(pqxxResultFk[0]["confdeltype"].c_str());
+						pForeignKeyConstr->setConstrKey(pqxxResultFk[0]["conkey"].c_str());	
+						pForeignKeyConstr->setReferencedTable(oidReferencedTable, pqxxResultFk[0]["reftable"].c_str());
+						pForeignKeyConstr->setForeignKey(pqxxResultFk[0]["confkey"].c_str());
+					} 
+				}
+				
+				if(strType == "Unique")
+				{
+					if(pTableConstraint == 0)
+						pTableConstraint = new KPGUniqueConstr(this, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+					else
+						pTableConstraint = new KPGUniqueConstr(this, pTableConstraint, m_pqxxResultConstraints[i]["conname"].c_str(), oid);			
+				}
+				
+				if(strType == "Check")
+				{
+					if(pTableConstraint == 0)
+						pTableConstraint = new KPGCheckConstr(this, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+					else
+						pTableConstraint = new KPGCheckConstr(this, pTableConstraint, m_pqxxResultConstraints[i]["conname"].c_str(), oid);
+					
+					//-- Get check source
+					QString strQuery(QString("SELECT consrc FROM pg_catalog.pg_constraint c WHERE c.oid=%1;").arg(oid));
+					pqxx::result pqxxResultExpression = connection()->runQuery(strQuery);;
+									
+					if(pqxxResultExpression.size() == 1)
+					{ 
+						(static_cast <KPGCheckConstr *> (pTableConstraint))->setExpression(pqxxResultExpression[0][0].c_str());
+					}    
+				}
+				
+				pTableConstraint->setProperties(m_pqxxResultConstraints[i]);
+			}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableconstraintsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: kpgtableconstraintsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLECONSTRAINTSFOLDER_H
+#define KPGTABLECONSTRAINTSFOLDER_H
+
+#include "kpgtableitemsfolder.h"
+
+/**
+  * Folder that hold Table constraints
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableConstraintsFolder : public KPGTableItemsFolder
+{
+public:
+    KPGTableConstraintsFolder(KPGTable *);
+	KPGTableConstraintsFolder(KPGTable *, KPGTableItemsFolder *);
+    ~KPGTableConstraintsFolder();
+
+	virtual eNodeType type() const { return nodeFolderTableConstraints; }
+	
+	void refresh(pqxx::oid) throw(const KPGSqlException &);
+	
+	const pqxx::result & resultConstraints() const { return m_pqxxResultConstraints; }
+			
+protected:
+
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultConstraints; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,216 @@
+//
+// C++ Implementation: kpgtableindex
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableindex.h"
+
+// include files for Qt
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableindexesfolder.h"
+#include "kpgdatabase.h"
+#include "kpgserver.h"
+
+KPGTableIndex::KPGTableIndex(KPGTableIndexesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+		setPixmap(0, *m_pIconFolderRed);
+}
+
+KPGTableIndex::KPGTableIndex(KPGTableIndexesFolder *parent, KPGTableIndex *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+		setPixmap(0, *m_pIconFolderRed);
+}
+
+
+KPGTableIndex::~KPGTableIndex()
+{
+}
+
+// Refresh only index info, without childs objects
+void KPGTableIndex::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to owner table and database and server
+	KPGTable *pTable = static_cast <KPGTable *> (parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pTable->parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+	
+		
+	QString strQuery("SELECT cls.oid, cls.relname AS idxname, CASE contype WHEN 'p' THEN 'Primary Key' ELSE 'Index' END AS idxtypedesc, CASE contype WHEN 'p' THEN despkey.description ELSE desidx.description END AS description, indkey, indisunique, indisprimary, indisclustered, pg_get_indexdef(cls.oid) AS indexdef ");
+	
+	if(bVersion80_OrNewer) // tablespace info
+    {
+    	strQuery.append(QString(", CASE cls.reltablespace WHEN 0 THEN %1 ELSE cls.reltablespace END AS reltablespace, ts.spcname").arg(pDatabase->oidTablespace()));
+	}
+		
+	if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(cls.oid)) AS size_pretty");
+		strQuery.append(", pg_catalog.pg_relation_size(cls.oid) AS index_size");
+	}
+		
+	strQuery.append(" FROM pg_catalog.pg_index idx JOIN pg_class cls ON cls.oid=indexrelid JOIN pg_am am ON am.oid=cls.relam ");
+	
+	strQuery.append("LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0') ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)   ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description desidx ON desidx.objoid=cls.oid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description despkey ON (despkey.objoid=con.oid AND despkey.objsubid = 0) ");
+	
+	if(bVersion80_OrNewer)
+    {
+    	strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON CASE cls.reltablespace ");
+    	strQuery.append(QString("WHEN 0 THEN %1 ELSE cls.reltablespace END=ts.oid ").arg(pDatabase->oidTablespace()));
+    }
+	
+	strQuery.append("WHERE indrelid =  ");
+	strQuery.append(QString("%1").arg(pTable->oid()));
+	strQuery.append(" AND cls.oid=");
+	strQuery.append(QString("%1").arg(m_oid));
+	
+	try
+	{
+    	pqxx::result pqxxResultIndexes = connection()->runQuery(strQuery);
+
+		if(pqxxResultIndexes.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+
+		setProperties(pqxxResultIndexes[0], bVersion80_OrNewer, bVersion81_OrNewer);
+		
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+	
+	refreshMapIndexKey(pTable->oid());
+}
+
+// Refresh map of index columns
+void KPGTableIndex::refreshMapIndexKey(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	m_mapIndexKey.clear();
+	if(m_strIndKey.length() == 0) return;
+	QString strIn(m_strIndKey.replace(" ", ", "));
+
+	QString strQuery("SELECT a.attnum, a.attname ");
+	strQuery.append("FROM pg_catalog.pg_attribute a ");
+	strQuery.append("WHERE attrelid = ");
+	strQuery.append(QString("%1").arg(oidTable)); 
+	strQuery.append(" AND a.attnum IN(");
+	strQuery.append(strIn);
+	strQuery.append(") ORDER BY a.attnum;");
+	 
+	try
+	{
+		pqxx::result  pqxxResultColumns = connection()->runQuery(strQuery);
+			
+		for (result::size_type i = 0; i != pqxxResultColumns.size(); ++i)
+		{
+			int iAttNum; 
+			pqxxResultColumns[i]["attnum"].to(iAttNum);
+			QString strColumnName(pqxxResultColumns[i]["attname"].c_str());
+			
+			m_mapIndexKey[iAttNum] = strColumnName;
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+// Set index properties
+void KPGTableIndex::setProperties(const pqxx::result::tuple & pqxxTuple, 
+    bool bVersion80_OrNewer, bool bVersion81_OrNewer)
+{
+    m_strDescription = pqxxTuple["description"].c_str();
+    m_strIndKey = pqxxTuple["indkey"].c_str();
+    pqxxTuple["indisunique"].to(m_bIsUnique);
+	pqxxTuple["indisprimary"].to(m_bIsPrimary);
+	pqxxTuple["indisclustered"].to(m_bIsClustered);
+	m_strIndexdef = pqxxTuple["indexdef"].c_str();
+  
+    if(bVersion80_OrNewer)
+    {
+        pqxxTuple["reltablespace"].to(m_oidTablespace);
+        m_strTablespace = pqxxTuple["spcname"].c_str();
+  
+    }
+    else
+    {
+        m_oidTablespace = 0;
+    }
+    
+    if(bVersion81_OrNewer)
+	{
+		pqxxTuple["index_size"].to(m_llSize);
+		m_strPrettySize = pqxxTuple["size_pretty"].c_str();
+	}
+}
+
+// Query index statistics 
+pqxx::result KPGTableIndex::queryStatistics() throw(const KPGSqlException &)
+{
+	QString strQuery("SELECT indexrelname, idx_scan, idx_tup_read, idx_tup_fetch FROM pg_catalog.pg_stat_all_indexes WHERE indexrelid = ");
+	strQuery.append(QString("%1;").arg(m_oid));
+	
+	try
+	{
+		return connection()->runQuery(strQuery);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	}
+}
+	
+// Query index I/O statistics 
+pqxx::result KPGTableIndex::queryIoStatistics() throw(const KPGSqlException &)
+{
+	QString strQuery("SELECT indexrelname, idx_blks_read, idx_blks_hit FROM pg_catalog.pg_statio_all_indexes WHERE indexrelid = ");
+	strQuery.append(QString("%1;").arg(m_oid));
+	
+	try
+	{
+		return connection()->runQuery(strQuery);
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	}
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindex.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+//
+// C++ Interface: kpgtableindex
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLEINDEX_H
+#define KPGTABLEINDEX_H
+
+#include <qmap.h>
+  
+#include "kpgobject.h"
+
+class KPGTableIndexesFolder;
+
+// Map of index columns - pair of <int iColumnNum, QString strColumnName> 	
+typedef QMap<int, QString> MapIndexKey;
+
+/**
+  * Base class for table indexes - index for primary key and regular index
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableIndex : public KPGObject
+{
+public:
+    KPGTableIndex(KPGTableIndexesFolder *, const QString, pqxx::oid);
+	KPGTableIndex(KPGTableIndexesFolder *, KPGTableIndex *, const QString, pqxx::oid);
+    ~KPGTableIndex();
+           	
+	const MapIndexKey & getMapIndexKey() const { return m_mapIndexKey; }	
+		
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "INDEX"; }	
+		
+	void setProperties(const pqxx::result::tuple &, bool, bool);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	// Refresh map of index columns
+	void refreshMapIndexKey(pqxx::oid) throw(const KPGSqlException &);
+		
+	// Query index statistics 
+	pqxx::result queryStatistics() throw(const KPGSqlException &);
+	
+	// Query index I/O statistics 
+	pqxx::result queryIoStatistics() throw(const KPGSqlException &);
+		
+	/*
+	 * Functions for accessing properties
+	 */
+    bool isUnique() const { return m_bIsUnique; }
+    bool isPrimary() const { return m_bIsPrimary; }
+    bool isClustered() const { return m_bIsClustered; }
+    const QString & indKey() const { return m_strIndKey; }
+    pqxx::oid oidTablespace() const { return m_oidTablespace; }
+    const QString & tablespace() const { return m_strTablespace; }
+    const QString & indexdef() const { return m_strIndexdef; }
+    long long size() const { return m_llSize; }
+  	const QString & prettySize() const { return m_strPrettySize; }
+       
+protected:
+	
+	/*
+	 * Properties
+	 */
+	QString m_strIndKey;
+	bool m_bIsUnique;
+	bool m_bIsPrimary;
+	bool m_bIsClustered;
+  	pqxx::oid m_oidTablespace;   // For PostgreSQL 8 or newer 
+  	QString m_strTablespace;     // For PostgreSQL 8 or newer
+  	QString m_strIndexdef;
+  	long long m_llSize;
+  	QString m_strPrettySize;
+  	
+  	// Map of index columns - pair of <int iColumnNum, QString strColumnName> 
+  	MapIndexKey m_mapIndexKey;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,139 @@
+//
+// C++ Implementation: kpgtableindexesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableindexesfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgdatabase.h"
+#include "kpgprimarykey.h"
+#include "kpgindex.h"
+
+
+KPGTableIndexesFolder::KPGTableIndexesFolder(KPGTable *parent)
+ : KPGTableItemsFolder(parent, i18n("Indexes"))
+{
+	setPixmap(0, *m_pIconFolderRed);
+}
+
+KPGTableIndexesFolder::KPGTableIndexesFolder(KPGTable *parent, KPGTableItemsFolder *after)
+ : KPGTableItemsFolder(parent, after, i18n("Indexes"))
+{
+	setPixmap(0, *m_pIconFolderRed);
+}
+
+KPGTableIndexesFolder::~KPGTableIndexesFolder()
+{
+}
+
+void KPGTableIndexesFolder::refresh(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	// delete all child items (databases)
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+		
+	// Get pointer to server for version info       table   -> tblfold-> schema ->database->server 
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+	
+	QString strQuery("SELECT cls.oid, cls.relname as idxname, CASE contype WHEN 'p' THEN 'Primary Key' ELSE 'Index' END AS idxtypedesc, CASE contype WHEN 'p' THEN \
+despkey.description ELSE desidx.description END AS description, indkey, indisunique, indisprimary, indisclustered ");
+	
+	if(bVersion80_OrNewer) // tablespace info
+    {
+    	strQuery.append(QString(", CASE cls.reltablespace WHEN 0 THEN %1 ELSE cls.reltablespace END AS reltablespace, ts.spcname").arg(pDatabase->oidTablespace()));
+	}
+		
+	if(bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(cls.oid)) AS size_pretty");
+		strQuery.append(", pg_catalog.pg_relation_size(cls.oid) AS index_size");
+	}
+		
+	strQuery.append(", pg_get_indexdef(cls.oid) AS indexdef ");
+		
+	strQuery.append("FROM pg_catalog.pg_index idx JOIN pg_catalog.pg_class cls ON cls.oid=indexrelid JOIN pg_am am ON am.oid=cls.relam ");
+	
+	strQuery.append("LEFT JOIN pg_catalog.pg_depend dep ON (dep.classid = cls.tableoid AND dep.objid = cls.oid AND dep.refobjsubid = '0') ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_constraint con ON (con.tableoid = dep.refclassid AND con.oid = dep.refobjid)   ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description desidx ON desidx.objoid=cls.oid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description despkey ON (despkey.objoid=con.oid AND despkey.objsubid = 0) ");
+	
+	if(bVersion80_OrNewer)
+    {
+    	strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON CASE cls.reltablespace ");
+    	strQuery.append(QString("WHEN 0 THEN %1 ELSE cls.reltablespace END=ts.oid ").arg(pDatabase->oidTablespace()));
+    }
+	
+	strQuery.append("WHERE indrelid =  ");
+	strQuery.append(QString("%1").arg(oidTable));
+	strQuery.append(" ORDER BY cls.relname;");
+			
+	try
+	{
+		m_pqxxResultIndexes = connection()->runQuery(strQuery);
+		
+		KPGTableIndex *pTableIndex = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultIndexes.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultIndexes[i][0].to(oid);
+			QString strType(m_pqxxResultIndexes[i]["idxtypedesc"].c_str());
+										
+			if(strType == "Primary Key")
+			{
+				if(pTableIndex == 0)
+					pTableIndex = new KPGPrimaryKey(this, m_pqxxResultIndexes[i]["idxname"].c_str(), oid);
+				else
+					pTableIndex = new KPGPrimaryKey(this, pTableIndex, m_pqxxResultIndexes[i]["idxname"].c_str(), oid);
+			}
+				
+			if(strType == "Index")
+			{
+				if(pTableIndex == 0)
+					pTableIndex = new KPGIndex(this, m_pqxxResultIndexes[i]["idxname"].c_str(), oid);
+				else
+					pTableIndex = new KPGIndex(this, pTableIndex, m_pqxxResultIndexes[i]["idxname"].c_str(), oid);
+			}
+				
+			pTableIndex->setProperties(m_pqxxResultIndexes[i], bVersion80_OrNewer, bVersion81_OrNewer);
+			
+			// Load info about index columns
+			pTableIndex->refreshMapIndexKey(oidTable);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableindexesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+//
+// C++ Interface: kpgtableindexesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLEINDEXESFOLDER_H
+#define KPGTABLEINDEXESFOLDER_H
+
+#include "kpgtableitemsfolder.h"
+
+class KPGTable;
+
+
+/**
+  * Folder that hold Table indexes 
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableIndexesFolder : public KPGTableItemsFolder
+{
+public:
+    KPGTableIndexesFolder(KPGTable *);
+    KPGTableIndexesFolder(KPGTable *, KPGTableItemsFolder *);
+	~KPGTableIndexesFolder();
+
+	virtual eNodeType type() const { return nodeFolderTableIndexes; }
+	
+	void refresh(pqxx::oid) throw(const KPGSqlException &);
+	
+	const pqxx::result & resultIndexes() const { return m_pqxxResultIndexes; }
+			
+protected:
+
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultIndexes; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+//
+// C++ Implementation: kpgtableitemsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableitemsfolder.h"
+
+// include files for KDE
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kdebug.h>
+#include <kcursor.h>
+
+#include "kpgitemsfolder.h"
+#include "../kpgsqldialog.h"
+
+KPGTableItemsFolder::KPGTableItemsFolder(KPGTable *parent, const QString & name)
+  : KPGTreeItem(parent, name)
+{
+	m_bIsLoaded = false;
+  	setPixmap(0, *m_pIconFolderBlue);
+}
+
+KPGTableItemsFolder::KPGTableItemsFolder(KPGTable *parent, KPGTableItemsFolder *after, const QString & name)
+  : KPGTreeItem(parent, after, name)
+{
+  	m_bIsLoaded = false;
+  	setPixmap(0, *m_pIconFolderBlue);
+}
+
+KPGTableItemsFolder::~KPGTableItemsFolder()
+{
+}
+
+void KPGTableItemsFolder::activate()
+{
+	if(!m_bIsLoaded)
+	{ 
+		listView()->setCursor(KCursor::waitCursor());
+		try
+		{
+			refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			listView()->setCursor(KCursor::arrowCursor());
+			KPGSqlDialog dlg(0, e.getSql(), e.what());
+			dlg.exec();
+		}
+		listView()->setCursor(KCursor::arrowCursor());
+		setOpen(true);
+	}
+}
+
+void KPGTableItemsFolder::refresh() throw(const KPGSqlException &)
+{
+	KPGTreeItem * pItemParent = static_cast <KPGTreeItem *> (parent());
+	if(!pItemParent)
+	{ 
+	   kdError() << "Failed to find DB connection " << endl;
+	   return;
+	}
+	
+	refresh((static_cast <KPGTable *> (pItemParent))->oid());
+	
+	m_bIsLoaded = true;
+}
+
+void KPGTableItemsFolder::fillListBoxWithChildItems(QListBox *pListBox)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem); 
+		
+		pListBox->insertItem(new KPGListBoxItem(* pTreeItem->pixmap(0), pTreeItem->text(0), pTreeItem->type()));    
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableItemsFolder::fillListBoxWithChildItems(KListBox *pListBox)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem); 
+		
+		pListBox->insertItem(new KPGListBoxItem(* pTreeItem->pixmap(0), pTreeItem->text(0), pTreeItem->type()));    
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGTableItemsFolder::fillComboBoxWithChildItems(KComboBox *pComboBox)
+{
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		pComboBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+		
+		pItem = pItem->nextSibling();
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtableitemsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,55 @@
+//
+// C++ Interface: kpgtableitemsfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLEITEMSFOLDER_H
+#define KPGTABLEITEMSFOLDER_H
+
+#include "kpgtreeitem.h"
+
+#include "kpgtable.h"
+
+class QListBox;
+class KListBox;
+class KComboBox;
+
+/**
+  * Abstract folder for tables items - columns, indexes, 
+  * rules, constraints and triggers
+  *
+  * @author Lumir Vanek
+  */
+class KPGTableItemsFolder : public KPGTreeItem
+{
+public:
+    KPGTableItemsFolder(KPGTable *, const QString &);
+	KPGTableItemsFolder(KPGTable *, KPGTableItemsFolder *, const QString &);
+    ~KPGTableItemsFolder();
+
+	virtual void activate();
+
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	virtual void refresh(pqxx::oid) throw(const KPGSqlException &) = 0;
+	    
+    void fillListBoxWithChildItems(QListBox *);
+    void fillListBoxWithChildItems(KListBox *);
+    void fillComboBoxWithChildItems(KComboBox *);
+		
+protected:
+
+	KPGTable * getParentItem() { return static_cast <KPGTable *> (parent()); }
+
+protected:
+	bool m_bIsLoaded;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,166 @@
+/***************************************************************************
+                          kpgtablesfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgtablesfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../kpggeneralsettings.h"
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgschema.h"
+#include "kpgdatabase.h"
+#include "kpgtable.h"
+
+
+KPGTablesFolder::KPGTablesFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Tables"))
+{
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGTablesFolder::~KPGTablesFolder()
+{
+}
+
+void KPGTablesFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (tables)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+		
+	// Get pointer to server for version info
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent());
+    KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+    
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+
+	// obtain list of tables
+    QString strQuery("SELECT rel.oid, rel.relname, rel.reltype, description, pg_get_userbyid(rel.relowner) AS relowner");
+	strQuery.append(", rel.relhasoids, rel.relhassubclass, rel.reltuples, c.conname, c.conkey, rel.relacl");
+    
+    strQuery.append(", CASE rel.relkind WHEN 'r' THEN 'Ordinary table' WHEN 't' THEN 'Toast table' END AS kind");
+    strQuery.append(", toast.oid AS toast_table_oid, toast.relname AS toast_table");
+	    
+    if(bVersion80_OrNewer) // tablespace info
+    {
+    	strQuery.append(QString(", CASE rel.reltablespace WHEN 0 THEN %1 ELSE rel.reltablespace END AS reltablespace, ts.spcname").arg(pDatabase->oidTablespace()));
+	}
+	
+	if(bVersion81_OrNewer) // size info
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_relation_size(rel.oid)) AS size_pretty");
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_total_relation_size(rel.oid)) AS size_pretty_total");
+		strQuery.append(", pg_catalog.pg_relation_size(rel.oid) AS table_size");
+		strQuery.append(", pg_catalog.pg_total_relation_size(rel.oid) AS table_size_total");
+	}
+    		
+	strQuery.append(" FROM pg_catalog.pg_class rel ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=rel.oid AND des.objsubid=0 ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_constraint c ON c.conrelid=rel.oid AND c.contype='p' ");
+	
+	strQuery.append("LEFT JOIN pg_catalog.pg_class toast ON rel.reltoastrelid=toast.oid ");
+	
+	if(bVersion80_OrNewer)
+    {
+    	strQuery.append("LEFT JOIN pg_catalog.pg_tablespace ts ON CASE rel.reltablespace ");
+    	strQuery.append(QString("WHEN 0 THEN %1 ELSE rel.reltablespace END=ts.oid ").arg(pDatabase->oidTablespace()));
+    }
+    
+	strQuery.append("WHERE ((rel.relkind = 'r') OR (rel.relkind = 't')) AND rel.relnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY rel.relname");
+		
+	bool bLazyLoadTablesChilds = KPoGreView::configuration()->general()->lazyLoadTablesChilds();
+	
+  	try
+  	{
+  	    m_pqxxResultTables = connection()->runQuery(strQuery);
+
+		KPGTable *pTable = 0;
+		
+    	for (result::size_type i = 0; i != m_pqxxResultTables.size(); ++i)
+    	{
+			pqxx::oid oid;
+			m_pqxxResultTables[i][0].to(oid);
+			
+			if(pTable == 0)
+      		    pTable = new KPGTable(this, m_pqxxResultTables[i]["relname"].c_str(), oid);
+			else
+				pTable = new KPGTable(this, pTable, m_pqxxResultTables[i]["relname"].c_str(), oid);
+			
+			pTable->setProperties(m_pqxxResultTables[i], bVersion80_OrNewer, bVersion81_OrNewer);
+			
+			if(!bLazyLoadTablesChilds)
+			{
+				pTable->refreshChildItems();
+			}
+    	}
+  	}
+  	catch (const KPGSqlException &e)
+	{
+		kdError() << k_funcinfo << "Routing exception up. Tables folder" <<  endl;
+		throw; // if it is KPGSqlException re-throw it
+	}
+  	catch (const std::exception &e)
+  	{
+		kdError() << k_funcinfo << e.what() << endl;
+    	throw KPGSqlException(e.what(), strQuery);
+  	} 
+}
+
+void KPGTablesFolder::fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids)
+{
+    QListViewItem * pItem = firstChild();
+    while(pItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+        
+        if(pTreeItem->type() != nodeTable)
+        {
+            kdError() << k_funcinfo << "Logic error !" << endl;
+            return;
+        }
+        
+        KPGTable *pTable = static_cast <KPGTable *> (pItem);
+        
+        KPGOidName oidName(pTable->oid(), pTable->text(0), pTable->type(), pTable->pixmap(0), pTable->description());
+        oidName.setOidUnderlyingType(pTable->oidReltype()); 
+                
+        listOfObjectOids.append(oidName);
+        
+        pItem = pItem->nextSibling();
+    }
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,54 @@
+/***************************************************************************
+                          kpgtablesfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGTABLESFOLDER_H
+#define KPGTABLESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+
+
+/**
+  * Folder that holds tables list
+  * 
+  * @author Lumir Vanek
+  */
+class KPGTablesFolder : public KPGItemsFolder
+{
+public:
+    KPGTablesFolder(KPGSchema *, pqxx::oid);
+    ~KPGTablesFolder();
+		
+	virtual eNodeType type() const { return nodeFolderTables; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	
+	const pqxx::result & resultTables() const { return m_pqxxResultTables; }
+	
+	virtual void fillListOfObjectOidsWithChildItems(KPGOidNameList & listOfObjectOids);
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultTables; 
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,109 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablespace.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgserver.h"
+#include "kpgtable.h"
+#include "kpgtablespacesfolder.h"
+
+
+KPGTablespace::KPGTablespace(KPGTablespacesFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	if((name == "pg_default") || (name == "pg_global"))
+	{ 
+		setPixmap(0, *m_pIconTablespaceSys);
+		m_bIsSystemObject = true;
+	}
+	else
+	{
+		setPixmap(0, *m_pIconTablespaceUsr);
+		m_bIsSystemObject = false;
+	}
+}
+
+KPGTablespace::KPGTablespace(KPGTablespacesFolder *parent, KPGTablespace *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	if((name == "pg_default") || (name == "pg_global"))
+	{ 
+		setPixmap(0, *m_pIconTablespaceSys);
+		m_bIsSystemObject = true;
+	}
+	else
+	{
+		setPixmap(0, *m_pIconTablespaceUsr);
+		m_bIsSystemObject = false;
+	}
+}
+
+KPGTablespace::~KPGTablespace()
+{
+}
+
+void KPGTablespace::setProperties(const pqxx::result::tuple &pqxxTuple, bool bVersion81_OrNewer)
+{
+	m_bVersion81_OrNewer = bVersion81_OrNewer;	
+	
+	m_strOwner = pqxxTuple["owner"].c_str(); 
+	m_strLocation =	pqxxTuple["spclocation"].c_str();
+	m_strACL = pqxxTuple["spcacl"].c_str();
+	
+	if(bVersion81_OrNewer)
+	{
+		pqxxTuple["tablespace_size"].to(m_llSize);
+		m_strPrettySize = pqxxTuple["size_pretty"].c_str(); 
+	}	
+}
+
+// Refresh only function info, without childs objects
+void KPGTablespace::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to server for version info
+	KPGServer *pServer = static_cast <KPGServer *> (parent()->parent());
+	
+	work pqxxXaction(* pServer->connection(), "refreshItem"); 
+	
+	// obtain list of tablespaces
+	QString strQuery("SELECT ts.oid, ts.spcname, sh.usename AS owner, ts.spclocation, ts.spcacl ");
+	
+	// Is it 8.1 or newer ?
+	bool bVersion81_OrNewer = false;
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(ts.oid)) AS size_pretty, pg_catalog.pg_tablespace_size(ts.oid) AS tablespace_size ");
+		bVersion81_OrNewer = true;
+	}
+	
+	strQuery.append("FROM pg_catalog.pg_tablespace ts ");
+	strQuery.append("LEFT JOIN pg_catalog.pg_shadow sh ON ts.spcowner=sh.usesysid  ");
+	
+	strQuery.append("WHERE ts.oid = " + QString("%1").arg(m_oid));
+		
+	try
+	{
+		pqxx::result pqxxResultTablespaces = pqxxXaction.exec(strQuery.latin1());
+	
+		setProperties(pqxxResultTablespaces[0], bVersion81_OrNewer);		
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespace.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLESPACE_H
+#define KPGTABLESPACE_H
+
+#include "kpgobject.h"
+
+class KPGTablespacesFolder;
+
+/**
+  * Item that represent Tablespace. Tables and indexes can be 
+  * placed in particular tablespaces to aid administration of disk layout. 
+  *
+  * @author Lumir Vanek
+  */
+class KPGTablespace : public KPGObject
+{
+public:
+    KPGTablespace(KPGTablespacesFolder *, const QString, pqxx::oid);
+	KPGTablespace(KPGTablespacesFolder *, KPGTablespace *, const QString, pqxx::oid);
+    ~KPGTablespace();
+		
+	virtual eNodeType type() const { return nodeTablespace; }
+    
+    // Get SQL object type 
+  	virtual const char * getObjectType() const { return "TABLESPACE"; }
+    
+    virtual bool isSystemObject() const { return m_bIsSystemObject; }
+	
+	void setProperties(const pqxx::result::tuple &, bool);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+    
+    // Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+		
+	/*
+	 * Functions for accessing properties
+	 */
+    const QString & location() const { return m_strLocation; }
+    const QString & owner() const { return m_strOwner; }
+    const QString & acl() const { return m_strACL; }
+    long long size() const { return m_llSize; }
+    const QString & prettySize() const { return m_strPrettySize; }
+    
+    bool version81_OrNewer() const { return m_bVersion81_OrNewer; }
+    
+protected:
+
+	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	QString m_strACL;
+	QString m_strLocation;
+  	long long	m_llSize;
+  	QString m_strPrettySize;
+  	
+  	bool m_bIsSystemObject;
+  	bool m_bVersion81_OrNewer;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablespacesfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpgtablespace.h"
+
+
+KPGTablespacesFolder::KPGTablespacesFolder(KPGServer *parent)
+ : KPGItemsFolder(parent, i18n("Tablespaces"))
+{
+}
+
+
+KPGTablespacesFolder::~KPGTablespacesFolder()
+{
+}
+
+void KPGTablespacesFolder::refresh() throw(const KPGSqlException &)
+{
+	// delete all child items (databases)
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	// obtain list of tablespaces
+	QString strQuery("SELECT ts.oid, ts.spcname, sh.usename AS owner, ts.spclocation, ts.spcacl ");
+	
+	// Is it 8.1 or newer ?
+	KPGServer *pServer = static_cast <KPGServer *> (parent());
+	m_bVersion81_OrNewer = false;
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		m_bVersion81_OrNewer = true;
+	}
+	
+	if(m_bVersion81_OrNewer) 
+	{
+		strQuery.append(", pg_catalog.pg_size_pretty(pg_catalog.pg_tablespace_size(ts.oid)) AS size_pretty, pg_catalog.pg_tablespace_size(ts.oid) AS tablespace_size ");
+		m_bVersion81_OrNewer = true;
+	}
+	
+	strQuery.append("FROM pg_catalog.pg_tablespace ts ");
+	strQuery.append("LEFT JOIN pg_catalog.pg_shadow sh ON ts.spcowner=sh.usesysid  ");
+			
+	try
+	{
+		m_pqxxResultTablespaces = connection()->runQuery(strQuery);
+	
+		KPGTablespace *pTablespace = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultTablespaces.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultTablespaces[i][0].to(oid);
+			
+			if(pTablespace == 0)
+				pTablespace = new KPGTablespace(this, m_pqxxResultTablespaces[i]["spcname"].c_str(), oid);
+			else
+				pTablespace = new KPGTablespace(this, pTablespace, m_pqxxResultTablespaces[i]["spcname"].c_str(), oid);
+					
+				pTablespace->setProperties(m_pqxxResultTablespaces[i], m_bVersion81_OrNewer);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtablespacesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLESPACESFOLDER_H
+#define KPGTABLESPACESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGServer;
+
+/**
+  * Folder that holds tablespaces list
+  *
+  * @author Lumir Vanek
+  */
+class KPGTablespacesFolder : public KPGItemsFolder
+{
+public:
+    KPGTablespacesFolder(KPGServer *);
+    ~KPGTablespacesFolder();
+		
+	virtual eNodeType type() const { return nodeFolderTablespaces; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultTablespaces() const { return m_pqxxResultTablespaces; }
+	
+	bool version81_OrNewer() const { return m_bVersion81_OrNewer; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultTablespaces; 
+  
+  	bool m_bVersion81_OrNewer;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,441 @@
+/***************************************************************************
+                          kpgtreeitem.cpp  -  description
+                             -------------------
+    begin                : Ne led 11 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : dsacher at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgtreeitem.h"
+
+#include <qtable.h>
+
+#include <kiconloader.h>
+#include <kdebug.h>
+
+#include "../kpglinklabel.h"
+#include "kpgconnection.h"
+
+QPixmap * KPGTreeItem::m_pIconServer = 0;
+QPixmap * KPGTreeItem::m_pIconTablespaceSys = 0;
+QPixmap * KPGTreeItem::m_pIconTablespaceUsr = 0;
+QPixmap * KPGTreeItem::m_pIconDatabase = 0;
+QPixmap * KPGTreeItem::m_pIconDatabaseSys = 0;
+QPixmap * KPGTreeItem::m_pIconDatabaseUsr = 0;
+QPixmap * KPGTreeItem::m_pIconSchema = 0;
+QPixmap * KPGTreeItem::m_pIconSchemaUnl = 0;
+QPixmap * KPGTreeItem::m_pIconSchemaSys = 0;
+QPixmap * KPGTreeItem::m_pIconSchemaUsr = 0;
+
+QPixmap * KPGTreeItem::m_pIconTable = 0;
+QPixmap * KPGTreeItem::m_pIconToastTable = 0;
+QPixmap * KPGTreeItem::m_pIconView = 0;
+QPixmap * KPGTreeItem::m_pIconSequence = 0;
+QPixmap * KPGTreeItem::m_pIconOperator = 0;
+QPixmap * KPGTreeItem::m_pIconOperatorClass = 0;
+QPixmap * KPGTreeItem::m_pIconAggregate = 0;
+QPixmap * KPGTreeItem::m_pIconFunction = 0;
+QPixmap * KPGTreeItem::m_pIconFunctionC = 0;
+QPixmap * KPGTreeItem::m_pIconFunctionSql = 0;
+QPixmap * KPGTreeItem::m_pIconFunctionPl = 0;
+QPixmap * KPGTreeItem::m_pIconUser = 0;
+QPixmap * KPGTreeItem::m_pIconUserSuper = 0;
+QPixmap * KPGTreeItem::m_pIconUserCanCreateDb = 0;
+QPixmap * KPGTreeItem::m_pIconGroup = 0;
+QPixmap * KPGTreeItem::m_pIconType = 0;
+QPixmap * KPGTreeItem::m_pIconTypeBase = 0;
+QPixmap * KPGTreeItem::m_pIconTypeComposite = 0;
+QPixmap * KPGTreeItem::m_pIconTypeStandalone = 0;
+QPixmap * KPGTreeItem::m_pIconLanguage = 0;
+QPixmap * KPGTreeItem::m_pIconDomain = 0;
+QPixmap * KPGTreeItem::m_pIconConversion = 0;
+QPixmap * KPGTreeItem::m_pIconCast = 0;
+
+QPixmap * KPGTreeItem::m_pIconPrimaryKeyConstr = 0;
+QPixmap * KPGTreeItem::m_pIconForeignKeyConstr = 0;
+QPixmap * KPGTreeItem::m_pIconUniqueConstr = 0;
+QPixmap * KPGTreeItem::m_pIconCheckConstr = 0;
+QPixmap * KPGTreeItem::m_pIconPrimaryKey = 0;
+QPixmap * KPGTreeItem::m_pIconIndex = 0;
+QPixmap * KPGTreeItem::m_pIconRule = 0;
+QPixmap * KPGTreeItem::m_pIconTrigger = 0;
+
+QPixmap * KPGTreeItem::m_pIconColumnOther = 0; 
+QPixmap * KPGTreeItem::m_pIconColumnBool = 0; 
+QPixmap * KPGTreeItem::m_pIconColumnGeo = 0;   
+QPixmap * KPGTreeItem::m_pIconColumnNet = 0; 
+QPixmap * KPGTreeItem::m_pIconColumnOid = 0;  
+QPixmap * KPGTreeItem::m_pIconColumnXid = 0;
+QPixmap * KPGTreeItem::m_pIconColumnTid = 0;
+QPixmap * KPGTreeItem::m_pIconColumnCid = 0;
+QPixmap * KPGTreeItem::m_pIconColumnDate = 0; 
+QPixmap * KPGTreeItem::m_pIconColumnChar = 0;  
+QPixmap * KPGTreeItem::m_pIconColumnNum = 0;
+QPixmap * KPGTreeItem::m_pIconColumnTime = 0;
+QPixmap * KPGTreeItem::m_pIconColumnBit = 0;
+QPixmap * KPGTreeItem::m_pIconColumnBin = 0;
+QPixmap * KPGTreeItem::m_pIconColumnXml = 0;
+QPixmap * KPGTreeItem::m_pIconColumnUuid = 0;
+
+QPixmap * KPGTreeItem::m_pIconFolderBlue = 0;
+QPixmap * KPGTreeItem::m_pIconFolderRed = 0;
+QPixmap * KPGTreeItem::m_pIconFolderCyan = 0;
+QPixmap * KPGTreeItem::m_pIconFolderGreen = 0;
+QPixmap * KPGTreeItem::m_pIconFolderYellow = 0;
+QPixmap * KPGTreeItem::m_pIconFolderViolet = 0;
+QPixmap * KPGTreeItem::m_pIconFolderGrey = 0;
+
+QPixmap * KPGTreeItem::m_pIconNull = 0;
+
+QPixmap * KPGTreeItem::m_pIconLock = 0;
+
+KPGTreeItem::KPGTreeItem(QListView *parent)
+  : QListViewItem(parent)
+{
+}
+
+KPGTreeItem::KPGTreeItem(KPGTreeItem *parent, const QString name)
+  : QListViewItem(parent, name)
+{
+}
+
+KPGTreeItem::KPGTreeItem(QListView *parent, KPGTreeItem *after)
+  : QListViewItem(parent, after)
+{
+}
+
+KPGTreeItem::KPGTreeItem(KPGTreeItem *parent, KPGTreeItem *after, const QString name)
+  : QListViewItem(parent, after, name)
+{
+}
+
+KPGTreeItem::~KPGTreeItem()
+{
+}
+
+// Search object with given path and OID
+KPGTreeItem * KPGTreeItem::searchObject(const QString &strPath, pqxx::oid _oid)
+{
+	int iPos = strPath.find('/');
+	if(iPos <= 0) 
+	{
+		// path contain only one item name, it must match
+		if(strPath == text(0))
+			return this;
+		else
+			return 0;
+	}
+		
+	// strip name and rest of path 
+	QString strName = strPath.mid(0, iPos);
+	if(strName != text(0))
+		return 0; // This item is not on given path
+	
+	// This item is on given path, search in childs	
+	// remove this name from path
+	QString strPath2 = strPath.mid(iPos + 1, strPath.length() - iPos - 1);
+									
+	//--- traverse list of childs and search item here
+	KPGTreeItem *pChildItem = static_cast <KPGTreeItem *> (firstChild());
+				
+	while(pChildItem)
+	{
+		KPGTreeItem * pFoundItem = 0;
+				
+		if((pFoundItem = pChildItem->searchObject(strPath2, _oid)) != 0)
+			return pFoundItem;
+	
+		pChildItem = static_cast <KPGTreeItem *> (pChildItem->nextSibling());
+	}			
+		
+	return 0;	
+}
+
+const QString KPGTreeItem::path()
+{
+	QString strPath(text(0));
+	
+	KPGTreeItem *pParent = this;
+	while((pParent = static_cast <KPGTreeItem *> (pParent->parent())) != 0)
+	{
+		strPath.prepend(pParent->text(0) + "/");
+	}
+	
+	return strPath;
+}
+
+const QString KPGTreeItem::makeConnectionString(const QString &strHost, 
+	const QString &strPort, 
+	const QString &strDbName, 
+	const QString &strUser, 
+	const QString &strPassword)
+{
+	return QString("host=" + strHost +
+	               " port=" + strPort +
+					 " dbname=" + strDbName +
+				     " user=" + strUser +
+					 " password=" + strPassword);
+}
+
+const QString KPGTreeItem::makeConnectionString(const QString &strHost, 
+	const QString &strPort, 
+	const QString &strUser, 
+	const QString &strPassword)
+{
+	return QString("host=" + strHost +
+		            " port=" + strPort +
+					" user=" + strUser +
+					" password=" + strPassword);
+}
+
+// Return connection to database. All items childs to KPGDatabase tells your parents for connection
+KPGConnection * KPGTreeItem::connection() const
+{
+	KPGTreeItem * pItemParent = static_cast <KPGTreeItem *> (parent());
+	if(!pItemParent)
+	{ 
+		kdError() << k_funcinfo << "Failed to find DB connection " << endl;
+		return 0;
+	}
+						 
+	// KPGTreeItem::connection() is redefined in KPGDatabase and return m_pDbConnection here
+	return pItemParent->connection();
+}
+
+/* Moved to KPGUtil
+int KPGTreeItem::fillPropertiesTable(pqxx::result pqxxResult, QTable *pTable, bool bAllowOidOnlyIn1stCol, int nMaxColumn)
+{
+	// Fill output area with query result
+	int nRows = pqxxResult.size();
+	int nCols = pqxxResult.columns();
+	
+	// Compute table columns. OIDs, that aren't 1.st in tuple are NOT displaied
+	int nTableCols = 0;
+	int nCol;
+  	for(nCol = 0; nCol < nCols; nCol++)
+  	{
+  		if(pqxxResult.column_type(nCol) == 26) // OID ?
+	  	{ ; } // do not count OIDs
+		else
+		{
+			nTableCols++;
+		}
+		
+		if((nMaxColumn > 0) && (nTableCols >= nMaxColumn))
+			break;
+  	}
+	
+	// Set table size
+	pTable->setNumRows(nRows);
+  	pTable->setNumCols(nTableCols);
+
+	// fill table with result data
+	for(int nRow = 0; nRow < nRows; nRow++)
+  	{
+    	int nCol = 0;
+		for(int nTableCol = 0; nTableCol < nTableCols; nTableCol++)
+		{
+			if((!bAllowOidOnlyIn1stCol || (nCol == 0)) && (pqxxResult.column_type(nCol) == 26)) // OID ?
+			{
+				pqxx::oid oid = 0;
+				pqxxResult[nRow][nCol].to(oid);
+				nCol++;
+					
+				KPGLinkLabel *pLabel = new KPGLinkLabel( pTable);
+				pLabel->setValues(oid, pqxxResult[nRow][nCol].c_str());
+				pTable->setCellWidget(nRow, nTableCol, pLabel);
+			}
+			else
+			{
+				if(pqxxResult.column_type(nCol) != 26)
+				{
+					QString strValue(pqxxResult[nRow][nCol].c_str());
+					pTable->setText(nRow, nTableCol, strValue);
+				}
+				else
+				{
+				    nCol++; // skip OID
+				    
+				    QString strValue(pqxxResult[nRow][nCol].c_str());
+					pTable->setText(nRow, nTableCol, strValue);
+				}
+			}
+			nCol++;
+		}
+  	}
+
+	return nTableCols;
+}
+*/
+
+// Return child item with given name
+KPGTreeItem * KPGTreeItem::getChildByName(const QString & strName)
+{
+	//kdDebug() << "Finding: " << strName << endl;
+	
+	QListViewItem * pChildItem = firstChild();
+	while(pChildItem)
+	{	
+		//kdDebug() << "Comparing with: " << pChildItem->text(0) << endl;
+				
+		if(pChildItem->text(0) == strName)
+			return static_cast <KPGTreeItem *> (pChildItem);
+		
+		pChildItem = pChildItem->nextSibling();
+	}
+	return 0;
+}
+
+// Return child item with given name
+KPGTreeItem * KPGTreeItem::getChildByOid(pqxx::oid _oid)
+{
+	//kdDebug() << "Finding: " << strName << endl;
+	
+	KPGTreeItem * pChildItem = static_cast <KPGTreeItem *> (firstChild());
+	while(pChildItem)
+	{	
+		//kdDebug() << "Comparing with: " << pChildItem->text(0) << endl;
+				
+		if(pChildItem->hasOid() )
+		{
+		    KPGObject * pPgObject = static_cast <KPGObject *> (pChildItem);
+			if(pPgObject->oid() == _oid)
+			     return pChildItem;
+		}
+		pChildItem = static_cast <KPGTreeItem *> (pChildItem->nextSibling());
+	}
+	return 0;
+}
+
+// Return nearest parent item with given type
+KPGTreeItem * KPGTreeItem::getParentByType(const eNodeType type)
+{
+	QListViewItem * pParentItem = parent();
+	if(pParentItem)
+	{
+		if(static_cast <KPGTreeItem *> (pParentItem)->type() == type)
+			return static_cast <KPGTreeItem *> (pParentItem);
+		else
+			return (static_cast <KPGTreeItem *> (pParentItem))->getParentByType(type);
+	}
+	
+	return 0;
+}  
+
+// Sort the KPGOidNameList
+void KPGOidNameList::sort()
+{
+    qHeapSort( *this );
+}
+
+// Search object by given name. Eventually ignores nodeUnselected (used for SQL keywords in code completion)
+KPGOidName * KPGOidNameList::getItemByName(const QString &strName, bool bOlnlyDbObjects)
+{
+    for(iterator it = begin(); it != end(); ++it)
+	{
+        if((bOlnlyDbObjects) && ((*it).type() == KPGTreeItem::nodeUnselected))
+            continue;
+        
+        if((*it).name() == strName)
+        {
+            KPGOidName &oidName = (*it);
+            return &oidName;
+        }
+    }
+    
+    return 0;
+}
+
+const KPGOidName * KPGOidNameList::getConstItemByName(const QString &strName) const
+{
+    for(const_iterator it = begin(); it != end(); ++it)
+	{
+        if((*it).name() == strName)
+        {
+            const KPGOidName &oidName = (*it);
+            return &oidName;
+        }
+    }
+    
+    return 0;
+}
+
+
+// Sort the KPGOidNameAliasesList
+void KPGOidNameAliasesList::sort()
+{
+    qHeapSort( *this );
+}
+
+// Search object by given name. Eventually ignores nodeUnselected (used for SQL keywords in code completion)
+KPGOidNameAliases * KPGOidNameAliasesList::getItemByName(const QString &strName, bool bOlnlyDbObjects)
+{
+    for(iterator it = begin(); it != end(); ++it)
+	{
+        if((bOlnlyDbObjects) && ((*it).type() == KPGTreeItem::nodeUnselected))
+            continue;
+        
+        if((*it).name() == strName)
+        {
+            KPGOidNameAliases &oidNameAliases = (*it);
+            return &oidNameAliases;
+        }
+    }
+    
+    return 0;
+}
+
+const KPGOidNameAliases * KPGOidNameAliasesList::getConstItemByName(const QString &strName) const
+{
+    for(const_iterator it = begin(); it != end(); ++it)
+	{
+        if((*it).name() == strName)
+        {
+            const KPGOidNameAliases &oidNameAliases = (*it);
+            return &oidNameAliases;
+        }
+    }
+    
+    return 0;
+}
+
+const KPGOidNameAliases * KPGOidNameAliasesList::getConstItemByAlias(const QString &strAlias) const
+{
+    for(const_iterator it = begin(); it != end(); ++it)
+	{
+		const KPGOidNameAliases &oidNameAliases = (*it);
+		
+     	for(QValueListConstIterator<QString> it2 = oidNameAliases.aliases().begin(); it2 != oidNameAliases.aliases().end(); ++it2)
+		{   
+			if((*it2) == strAlias)
+			{
+				return &oidNameAliases;
+			}
+        }
+    }
+    
+    return 0;
+}
+
+// Return true, if given alias already exists in list
+bool KPGOidNameAliasesList::containAlias(const QString &alias) const 
+{
+	for(const_iterator it = begin(); it != end(); ++it)
+	{
+		const KPGOidNameAliases &oidNameAliases = (*it);
+		
+     	if(oidNameAliases.containAlias(alias))
+     		return true;
+    }
+    
+    return false;
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtreeitem.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,410 @@
+/***************************************************************************
+                          kpgtreeitem.h  -  description
+                             -------------------
+    begin                : Ne led 11 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGTREEITEM_H
+#define KPGTREEITEM_H
+
+// Note that for new code which you wish to be strictly Unicode-clean, you can define the macro QT_NO_ASCII_CAST when compiling your code.
+#define QT_NO_ASCII_CAST
+
+#include <qlistview.h>
+
+// include files for libpgxx 
+#include <pqxx/transaction> 
+#include <pqxx/result> 
+
+#include "../kpgsqlexception.h"
+
+class KPGConnection;
+class QTable;
+
+
+/** 
+  * Abstract base class for all tree items. 
+  * Mother of KPGObject and KPGItemsFolder
+  * 
+  * @author Lumir Vanek
+  */
+class KPGTreeItem : public QListViewItem
+{
+public: 
+	KPGTreeItem(QListView *);
+  	KPGTreeItem(KPGTreeItem *, const QString);
+	KPGTreeItem(QListView *, KPGTreeItem *);
+  	KPGTreeItem(KPGTreeItem *, KPGTreeItem *, const QString);
+	
+	~KPGTreeItem();
+
+  
+  enum eNodeType { 
+    nodeUnselected = 0, nodeServer, nodeDatabase, nodeSchema, nodeTablespace, 
+    nodeTable, nodeView, nodeFunction, nodeSequence, nodeDomainConstr, nodeTableColumn, nodeTypeAttribute,
+    nodePrimaryKeyConstr, nodeForeignKeyConstr, nodeUniqueConstr, nodeCheckConstr,
+	nodePrimaryKey, nodeIndex, nodeRule, nodeTrigger, nodeOperator, nodeOperatorClass, 
+	nodeAggregate, nodeUser, nodeGroup, nodeType, nodeLanguage, nodeDomain, nodeConversion,
+    nodeCast, nodeFolderTablespaces, nodeFolderTables, nodeFolderViews, 
+    nodeFolderSequences, nodeFolderFunctions, nodeFolderTableColumns, 
+    nodeFolderTableIndexes, nodeFolderTableConstraints, nodeFolderDomainConstraints,
+	nodeFolderRules, nodeFolderTriggers,
+	nodeFolderOperators, nodeFolderOperatorClasses, nodeFolderAggregates, nodeFolderUsers, 
+	nodeFolderGroups, nodeFolderTypes, nodeFolderLanguages, nodeFolderDomains,
+    nodeFolderConversions, nodeFolderCasts
+	};
+
+  	virtual eNodeType type() const = 0; // return tree node type
+	
+	// Return false from KPGTreeItem's, and true for KPGObject's
+	virtual bool hasOid() const { return false; }
+  	
+  	
+  	// Return connection to database. All items childs to KPGDatabase tells your parents for connection
+	virtual KPGConnection * connection() const;
+	
+	// Refresh item, ald also childs objects
+	virtual void refresh() throw(const KPGSqlException &) = 0;
+  	
+  	// Refresh only this item, not childs
+	virtual void refreshItem() throw(const KPGSqlException &) { return refresh(); }
+  	
+  	// This same behavior as refreshItem(), but for some objects, may be optimalized to run faster
+  	virtual void smartRefresh() throw(const KPGSqlException &)  { return refresh(); }
+	
+	virtual KPGTreeItem * searchObject(const QString &, pqxx::oid); // search object with given path and OID
+	const QString path();
+	
+  	static const QString makeConnectionString(const QString&, const QString&, const QString&, const QString&, const QString&);
+  	
+  	static const QString makeConnectionString(const QString&, const QString&, const QString&, const QString&);
+
+	// Return child item with given name
+	KPGTreeItem * getChildByName(const QString &);
+
+    // Return child item with given oid
+	KPGTreeItem * getChildByOid(pqxx::oid);
+	
+  	// Return nearest parent item with given type
+  	KPGTreeItem * getParentByType(const eNodeType);
+	
+public:
+	static QPixmap *m_pIconServer;
+	static QPixmap *m_pIconTablespaceSys;
+	static QPixmap *m_pIconTablespaceUsr;
+	static QPixmap *m_pIconDatabase;
+	static QPixmap *m_pIconDatabaseSys;
+	static QPixmap *m_pIconDatabaseUsr;
+	static QPixmap *m_pIconSchema;
+  	static QPixmap *m_pIconSchemaUnl;
+	static QPixmap *m_pIconSchemaSys;
+	static QPixmap *m_pIconSchemaUsr;
+	static QPixmap *m_pIconTable;
+	static QPixmap *m_pIconToastTable;
+	static QPixmap *m_pIconView;
+	static QPixmap *m_pIconSequence;
+	static QPixmap *m_pIconOperator;
+	static QPixmap *m_pIconOperatorClass;
+	static QPixmap *m_pIconAggregate;
+	static QPixmap *m_pIconFunction;
+	static QPixmap *m_pIconFunctionC;
+	static QPixmap *m_pIconFunctionSql;
+	static QPixmap *m_pIconFunctionPl;
+	static QPixmap *m_pIconUser;
+	static QPixmap *m_pIconUserSuper;
+	static QPixmap *m_pIconUserCanCreateDb;
+	static QPixmap *m_pIconGroup;
+	static QPixmap *m_pIconType;
+	static QPixmap *m_pIconTypeBase;
+	static QPixmap *m_pIconTypeComposite;
+	static QPixmap *m_pIconTypeStandalone;
+	static QPixmap *m_pIconLanguage;
+	static QPixmap *m_pIconDomain;
+	static QPixmap *m_pIconConversion;
+	static QPixmap *m_pIconCast;
+		
+	static QPixmap *m_pIconColumnOther;
+	static QPixmap *m_pIconColumnBool; 
+	static QPixmap *m_pIconColumnGeo;   
+	static QPixmap *m_pIconColumnNet; 
+	static QPixmap *m_pIconColumnOid;  
+	static QPixmap *m_pIconColumnXid;
+	static QPixmap *m_pIconColumnTid;
+	static QPixmap *m_pIconColumnCid;
+	static QPixmap *m_pIconColumnDate; 
+	static QPixmap *m_pIconColumnChar;  
+	static QPixmap *m_pIconColumnNum;
+	static QPixmap *m_pIconColumnTime;
+	static QPixmap *m_pIconColumnBit;
+	static QPixmap *m_pIconColumnBin;
+	static QPixmap *m_pIconColumnXml;
+	static QPixmap *m_pIconColumnUuid;
+		
+	static QPixmap *m_pIconPrimaryKeyConstr;
+	static QPixmap *m_pIconForeignKeyConstr;
+	static QPixmap *m_pIconUniqueConstr;
+	static QPixmap *m_pIconCheckConstr;
+	static QPixmap *m_pIconPrimaryKey;
+	static QPixmap *m_pIconIndex;
+	static QPixmap *m_pIconRule;
+	static QPixmap *m_pIconTrigger;
+	
+	static QPixmap *m_pIconFolderBlue;
+	static QPixmap *m_pIconFolderRed;
+	static QPixmap *m_pIconFolderCyan;
+	static QPixmap *m_pIconFolderGreen;
+	static QPixmap *m_pIconFolderYellow;
+	static QPixmap *m_pIconFolderViolet;
+	static QPixmap *m_pIconFolderGrey;
+	
+	// Null pixmap for SQL keywords in code completion box
+	static QPixmap *m_pIconNull;
+	
+	static QPixmap *m_pIconLock;
+};
+
+/**
+  * Storage class for OID and their object name, and some another info
+  *
+  * @author Lumir Vanek
+  */
+class KPGOidName
+{
+public:
+    // Default constructor
+	KPGOidName() {;}
+    ~KPGOidName() {;}
+    
+    // Standard constructor
+	KPGOidName(pqxx::oid _oid, const QString & strName, KPGTreeItem::eNodeType nodeType, const QPixmap *pIcon, const QString & strDescription)
+	{
+		Q_ASSERT(nodeType != KPGTreeItem::nodeFunction);
+		
+		m_oid = _oid;
+		m_strName = strName;
+		m_nodeType = nodeType;
+		m_pIcon = pIcon;
+		m_strDescription = strDescription;
+		m_oidUnderlyingType = 0;
+	}
+	
+	// Standard constructor - for functions
+	KPGOidName(pqxx::oid _oid, const QString & strName, KPGTreeItem::eNodeType nodeType, const QPixmap *pIcon, const QString & strDescription, const QString &strArgumentTypes)
+	{
+	    Q_ASSERT(nodeType == KPGTreeItem::nodeFunction);
+	    
+		m_oid = _oid;
+		m_strName = strName;
+		m_nodeType = nodeType;
+		m_pIcon = pIcon;
+		m_strDescription = strDescription;
+		m_oidUnderlyingType = 0;
+		m_strArgumentTypes = strArgumentTypes;
+	}
+	
+	// Copy constructor
+	KPGOidName(const KPGOidName &src)
+	{
+		m_oid = src.oid();
+		m_strName = src.name();
+		m_nodeType = src.type();
+		m_pIcon = src.icon();
+		m_strDescription = src.description();
+		m_oidUnderlyingType = src.oidUnderlyingType();
+		m_strArgumentTypes = src.argumentTypes();
+	}
+	
+	void operator = (const KPGOidName &src)
+	{
+		m_oid = src.oid();
+		m_strName = src.name();
+		m_nodeType = src.type();
+		m_pIcon = src.icon();
+		m_strDescription = src.description();
+		m_oidUnderlyingType = src.oidUnderlyingType();
+		m_strArgumentTypes = src.argumentTypes();
+	}
+	
+	bool operator == (const KPGOidName &oidName)
+    {
+       if(m_nodeType != oidName.type())
+        return false;
+       
+       return ( QString::localeAwareCompare( m_strName, oidName.name() ) == 0 );
+    }
+ 
+    bool operator < (const KPGOidName &oidName)
+    {
+        return ( QString::localeAwareCompare( m_strName, oidName.name() ) < 0 );
+    }
+    
+    bool operator <= (const KPGOidName &oidName)
+    {
+        return ( QString::localeAwareCompare( m_strName, oidName.name() ) <= 0 );
+    }
+    
+    bool operator > (const KPGOidName &oidName)
+    {
+        return ( QString::localeAwareCompare( m_strName, oidName.name() ) > 0 );
+    }
+    
+    bool operator >= (const KPGOidName &oidName)
+    {
+        return ( QString::localeAwareCompare( m_strName, oidName.name() ) >= 0 );
+    }
+    
+	
+	// Return PostgreSQL row identifier
+	const pqxx::oid oid() const { return m_oid; }
+		
+	// Return name
+	const QString & name() const { return m_strName; }
+	
+	// Return node type
+	KPGTreeItem::eNodeType type() const { return m_nodeType; }
+	
+	// Return node pixmap
+	const QPixmap *icon() const { return m_pIcon; }
+		
+	// Return description
+	const QString & description() const { return m_strDescription; }
+		
+	// Return PostgreSQL row identifier of underlying type
+	const pqxx::oid oidUnderlyingType() const { return m_oidUnderlyingType; }
+	
+	// Set underlying type OID
+	void setOidUnderlyingType(pqxx::oid oidUnderlyingType) { m_oidUnderlyingType = oidUnderlyingType; }
+	
+	// Return function argument types
+	const QString & argumentTypes() const { return m_strArgumentTypes; }
+	
+protected:
+
+    // Object name
+	QString m_strName;
+
+	// PostgreSQL row identifier
+	pqxx::oid m_oid;
+		
+	// Node type
+	KPGTreeItem::eNodeType m_nodeType;
+	
+	// Node pixmap
+	const QPixmap *m_pIcon;
+	
+	// Object description
+	QString m_strDescription;
+		
+	// For tables, type of row structure. For functions returning rowset, it's type. Otherwise 0.
+	pqxx::oid m_oidUnderlyingType;
+	
+	// Arguments list for functions
+	QString m_strArgumentTypes;
+};
+
+/**
+  * Extends KPGOidName for list of aliases
+  *
+  * @author Lumir Vanek
+  */
+class KPGOidNameAliases : public KPGOidName
+{
+public:
+    // Default constructor
+	KPGOidNameAliases() {;}
+    ~KPGOidNameAliases() {;}
+    
+    // Return aliases
+	const QStringList & aliases() const { return m_strAliases; }
+	
+	// Clear aliases
+	void clearAliases() { m_strAliases.clear(); }
+	
+	// Append alias
+	void appendAlias(const QString &alias) { m_strAliases.append(alias); }
+	
+	// Return true, if given alias already exists in list
+	bool containAlias(const QString &alias) const 
+	{
+		return(m_strAliases.findIndex(alias) >= 0);
+	}
+	
+	// Copy constructor
+	KPGOidNameAliases(const KPGOidNameAliases &src)
+	: KPGOidName(src)
+	{
+		m_strAliases = src.aliases();
+	}
+	
+	// Copy constructor for base class
+	KPGOidNameAliases(const KPGOidName &src)
+	: KPGOidName(src)
+	{
+	}
+	
+	void operator = (const KPGOidNameAliases &src)
+	{
+		KPGOidName::operator = (src);
+		m_strAliases = src.aliases();
+	}
+	
+protected:
+	// Object aliases, e.g.: SELECT a.* FROM aaa a -- "a" is alias
+	QStringList m_strAliases;
+    
+};
+
+/**
+  * List of KPGOidName with sorting ability.
+  */
+class KPGOidNameList : public QValueList<KPGOidName>
+{
+public:
+    KPGOidNameList() {;}
+    
+    // Sort the list
+    void sort();
+    
+    // Get item from list by given name
+    KPGOidName * getItemByName(const QString &, bool = true);
+    
+    // Get item from list by given name
+    const KPGOidName * getConstItemByName(const QString &) const;
+};
+
+/**
+  * List of KPGOidNameAliases with sorting ability.
+  */
+class KPGOidNameAliasesList : public QValueList<KPGOidNameAliases>
+{
+public:
+    KPGOidNameAliasesList() {;}
+    
+    // Sort the list
+    void sort();
+    
+    // Get item from list by given name
+    KPGOidNameAliases * getItemByName(const QString &, bool = true);
+    
+    // Get item from list by given name
+    const KPGOidNameAliases * getConstItemByName(const QString &) const;
+    
+    // Get item from list by given alias
+    const KPGOidNameAliases * getConstItemByAlias(const QString &) const;
+    
+    // Return true, if given alias already exists in list
+	bool containAlias(const QString &alias) const;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,93 @@
+//
+// C++ Implementation: kpgtrigger
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtrigger.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdatabase.h"
+#include "kpgtriggersfolder.h"
+
+
+KPGTrigger::KPGTrigger(KPGTriggersFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconTrigger);
+}
+
+KPGTrigger::KPGTrigger(KPGTriggersFolder *parent, KPGTrigger *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconTrigger);
+}
+
+KPGTrigger::~KPGTrigger()
+{
+}
+
+// Refresh only column info, without childs objects
+void KPGTrigger::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to owner table and database
+	KPGTable *pTable = static_cast <KPGTable *> (parent()->parent());
+	//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pTable->parent()->parent()->parent());
+			
+	QString strQuery("SELECT t.oid, t.tgname, des.description, t.tgenabled, t.tgdeferrable, t.tginitdeferred, tgnargs, tgargs, nspname, tgfoid,  pr.proname ");
+				
+	strQuery.append("FROM pg_catalog.pg_trigger t ");
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=tgrelid ");
+	strQuery.append("JOIN pg_catalog.pg_namespace na ON na.oid=relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=t.oid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_proc pr ON tgfoid=pr.oid ");
+	strQuery.append("WHERE NOT tgisconstraint ");
+	strQuery.append("AND tgrelid=");
+	strQuery.append(QString("%1").arg(pTable->oid()));
+	strQuery.append(" AND t.oid=");
+	strQuery.append(QString("%1").arg(m_oid));
+	
+	try
+	{
+    	pqxx::result pqxxResultTriggers = connection()->runQuery(strQuery);
+
+		if(pqxxResultTriggers.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		setProperties(pqxxResultTriggers[0]);
+		
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+
+void KPGTrigger::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+    m_strIsEnabled = pqxxTuple["tgenabled"].c_str();
+	pqxxTuple["tgdeferrable"].to(m_bDeferrable);
+	pqxxTuple["tginitdeferred"].to(m_bInitDeferred);
+	pqxxTuple["tgnargs"].to(m_iNArgs);
+	pqxxTuple["tgfoid"].to(m_oidProcedure);
+			
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strArgs = pqxxTuple["tgargs"].c_str();
+	m_strNameSpace = pqxxTuple["nspname"].c_str();
+	m_strProcName = pqxxTuple["proname"].c_str();
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtrigger.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,71 @@
+//
+// C++ Interface: kpgtrigger
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTRIGGER_H
+#define KPGTRIGGER_H
+
+#include "kpgobject.h"
+
+class KPGTriggersFolder;
+
+/**
+  * Table trigger
+  * 
+  * @author Lumir Vanek
+  */
+class KPGTrigger : public KPGObject
+{
+public:
+    KPGTrigger(KPGTriggersFolder *, const QString, pqxx::oid);
+	KPGTrigger(KPGTriggersFolder *, KPGTrigger *, const QString, pqxx::oid);
+    ~KPGTrigger();
+
+	virtual eNodeType type() const { return nodeTrigger; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "TRIGGER"; }
+	
+	void setProperties(const pqxx::result::tuple &);
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & enabled() const { return m_strIsEnabled; }
+	bool isDeferrable() const { return m_bDeferrable; }
+	bool isInitiallyDeferred() const { return m_bInitDeferred; }
+	const QString & nameSpace() const { return m_strNameSpace;	}
+	int numArguments() const { return m_iNArgs; }
+	const QString & arguments() const { return m_strArgs; }
+	pqxx::oid oidProcedure() const { return m_oidProcedure; }
+	const QString & procName() const { return m_strProcName; }
+		
+protected:
+	
+	/*
+	 * Properties
+	 */
+	QString m_strIsEnabled;
+	bool m_bDeferrable;
+	bool m_bInitDeferred;
+	int m_iNArgs;
+	QString m_strNameSpace;
+	QString m_strArgs;
+	pqxx::oid m_oidProcedure;
+	QString m_strProcName;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,100 @@
+//
+// C++ Implementation: kpgtriggersfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtriggersfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgtrigger.h"
+#include "kpgserver.h"
+
+
+KPGTriggersFolder::KPGTriggersFolder(KPGTable *parent)
+ : KPGTableItemsFolder(parent, i18n("Triggers"))
+{
+	setPixmap(0, *m_pIconFolderViolet);
+}
+
+KPGTriggersFolder::KPGTriggersFolder(KPGTable *parent, KPGTableItemsFolder *after)
+ : KPGTableItemsFolder(parent, after, i18n("Triggers"))
+{
+	setPixmap(0, *m_pIconFolderViolet);
+}
+
+KPGTriggersFolder::~KPGTriggersFolder()
+{
+}
+
+void KPGTriggersFolder::refresh(pqxx::oid oidTable) throw(const KPGSqlException &)
+{
+	// delete all child items (triggers)
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	KPGServer *pServer = static_cast <KPGServer *> (parent()->parent()->parent()->parent()->parent());
+	
+	// Is it 8.3 or newer ?
+	bool bVersion83_OrNewer = false;
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 3)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion83_OrNewer = true;
+	}
+	
+	QString strQuery("SELECT t.oid, t.tgname, des.description, t.tgdeferrable, t.tginitdeferred, tgnargs, tgargs, nspname, tgfoid,  pr.proname ");
+		
+	if(bVersion83_OrNewer)
+	{
+		strQuery.append(", CASE WHEN t.tgenabled='O' THEN 'origin and local' WHEN t.tgenabled='D' THEN 'disabled' WHEN t.tgenabled='R' THEN 'replica' WHEN t.tgenabled='A' THEN 'always' END AS tgenabled ");
+	}
+	else
+	{
+		strQuery.append(", t.tgenabled ");
+	}	
+		
+	strQuery.append("FROM pg_catalog.pg_trigger t ");
+	strQuery.append("JOIN pg_catalog.pg_class cl ON cl.oid=tgrelid ");
+	strQuery.append("JOIN pg_catalog.pg_namespace na ON na.oid=relnamespace ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=t.oid ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_proc pr ON tgfoid=pr.oid ");
+	strQuery.append("WHERE NOT tgisconstraint ");
+	strQuery.append(" AND tgrelid = ");
+	strQuery.append(QString("%1").arg(oidTable));
+	strQuery.append(" ORDER BY tgname");
+			
+	try
+	{
+		m_pqxxResultTriggers = connection()->runQuery(strQuery);
+			
+		KPGTrigger *pTrigger = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultTriggers.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultTriggers[i][0].to(oid);
+							
+			if(pTrigger == 0)
+				pTrigger = new KPGTrigger(this, m_pqxxResultTriggers[i]["tgname"].c_str(), oid);
+			else
+				pTrigger = new KPGTrigger(this, pTrigger, m_pqxxResultTriggers[i]["tgname"].c_str(), oid);
+			
+			pTrigger->setProperties(m_pqxxResultTriggers[i]);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtriggersfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: kpgtriggersfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTRIGGERSFOLDER_H
+#define KPGTRIGGERSFOLDER_H
+
+#include "kpgtableitemsfolder.h"
+
+/**
+  * Folder that holds table triggers
+  *
+  * @author Lumir Vanek
+  */
+class KPGTriggersFolder : public KPGTableItemsFolder
+{
+public:
+    KPGTriggersFolder(KPGTable *);
+	KPGTriggersFolder(KPGTable *, KPGTableItemsFolder *);
+    ~KPGTriggersFolder();
+
+	virtual eNodeType type() const { return nodeFolderTriggers; }
+	
+	void refresh(pqxx::oid) throw(const KPGSqlException &);
+	
+	const pqxx::result & resultTriggers() const { return m_pqxxResultTriggers; }
+			
+protected:
+	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultTriggers; 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,179 @@
+//
+// C++ Implementation: kpgtype
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtype.h"
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdatabase.h"
+#include "kpgtypesfolder.h"
+#include "kpgtypeattribute.h"
+
+
+KPGType::KPGType(KPGTypesFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, name, _oid)
+{
+  setPixmap(0, *m_pIconType);
+}
+
+KPGType::KPGType(KPGTypesFolder *parent, KPGType *after, const QString name, pqxx::oid _oid)
+  : KPGObject(parent, after, name, _oid)
+{
+  setPixmap(0, *m_pIconType);
+}
+
+KPGType::~KPGType()
+{
+}
+
+void KPGType::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["typlen"].to(m_iTypLen);
+	pqxxTuple["typbyval"].to(m_bByVal);
+	pqxxTuple["typisdefined"].to(m_bIsDefined);
+	pqxxTuple["typelem"].to(m_oidTypElem);
+	pqxxTuple["typinputoid"].to(m_oidInputFunc);
+	pqxxTuple["typoutputoid"].to(m_oidOutputFunc);
+	pqxxTuple["tableoid"].to(m_oidTable);
+			
+	m_strDescription = pqxxTuple["description"].c_str();
+	m_strKind = pqxxTuple["type"].c_str();
+	m_strTypDelim = pqxxTuple["typdelim"].c_str();
+	m_strTypAlign = pqxxTuple["align"].c_str();
+	m_strTypStorage = pqxxTuple["typstorage"].c_str();
+	m_strElement = pqxxTuple["element"].c_str();
+	m_strInputFunc = pqxxTuple["typinput"].c_str();
+	m_strOutputFunc = pqxxTuple["typoutput"].c_str();
+	m_strTableName = pqxxTuple["tablename"].c_str();
+	m_strOwner = pqxxTuple["owner"].c_str();
+		
+	//--- Set icon for type
+	if(m_strKind == "composite")
+	{
+		if(m_oidTable == 0)
+			setPixmap(0, *m_pIconTypeStandalone);
+		else
+		  setPixmap(0, *m_pIconTypeComposite);
+	}
+		
+	if(m_strKind == "base")
+	{
+		setPixmap(0, *m_pIconTypeBase);
+	}
+}
+
+void KPGType::refresh() throw(const KPGSqlException &)
+{
+	// delete all child items
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	QString strQuery("SELECT attname, atttypid, t.typname, a.attlen, attnum, attndims, atttypmod, nspname ");
+			
+	strQuery.append("FROM pg_catalog.pg_attribute a ");
+	strQuery.append("JOIN pg_catalog.pg_type t ON t.oid=atttypid ");
+	strQuery.append("JOIN pg_catalog.pg_namespace nsp ON t.typnamespace=nsp.oid ");
+	strQuery.append("JOIN pg_catalog.pg_class c ON a.attrelid=c.oid ");
+	strQuery.append(" WHERE c.reltype = ");
+	strQuery.append(QString("%1").arg(m_oid));
+	strQuery.append(" ORDER BY attnum");
+			
+	try
+	{
+		m_pqxxResultAttributes = connection()->runQuery(strQuery);
+		
+		KPGTypeAttribute *pTypeAttribute = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultAttributes.size(); ++i)
+		{
+			if(pTypeAttribute == 0)
+				pTypeAttribute = new KPGTypeAttribute(this, m_pqxxResultAttributes[i]["attname"].c_str());
+			else
+				pTypeAttribute = new KPGTypeAttribute(this, pTypeAttribute, m_pqxxResultAttributes[i]["attname"].c_str());
+			
+							
+			pTypeAttribute->setProperties(m_pqxxResultAttributes[i]);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+// Refresh only type info
+void KPGType::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to server for version info
+  	//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent()->parent());
+    	
+  	QString strQuery("SELECT t.oid, t.typname, description, CASE WHEN t.typtype = 'b' THEN 'base' WHEN t.typtype = 'c' THEN 'composite' WHEN t.typtype = 'p' THEN 'pseudo' ELSE 'other' END as type, t.typlen, t.typbyval, t.typisdefined, t.typdelim, CASE WHEN t.typalign = 'c' THEN 'char' WHEN t.typalign = 's' THEN 'short' WHEN t.typalign = 'i' THEN 'int' WHEN t.typalign = 'd' THEN 'double' ELSE 'other' END AS align, CASE WHEN t.typstorage = 'p' THEN 'PLAIN' WHEN t.typstorage = 'e' THEN 'EXTERNAL' WHEN t.typstorage = 'm' THEN 'MAIN' WHEN t.typstorage = 'x' THEN 'EXTENDED' END AS typstorage, t.typelem, e.typname as element, t.typinput::oid AS typinputoid, t.typinput, t.typoutput::oid AS typoutputoid, t.typoutput, ct.oid AS tableoid, ct.relname AS tablename, pg_get_userbyid(t.typowner) as owner ");
+	strQuery.append("FROM pg_catalog.pg_type t ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_type e ON e.oid=t.typelem ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c' ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=t.oid ");
+	strQuery.append("WHERE t.oid = " + QString("%1").arg(m_oid));
+				
+	try
+	{
+    	pqxx::result pqxxResultTypes = connection()->runQuery(strQuery);
+
+		if(pqxxResultTypes.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		setProperties(pqxxResultTypes[0]);
+   
+   	}
+    catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+  
+    // Refresh attributes list
+	refresh();
+}
+
+void KPGType::fillListAttributes(KPGListTableColumns &listColumns, bool bIncludeSystemColumns)
+{
+	if((m_strKind == "base") || (m_strKind == "pseudo"))
+	{
+	   kdError() << k_funcinfo << "Only composite type have arguments" << endl;
+	   return;
+	}
+	
+	QListViewItem * pItem = firstChild();
+	while(pItem)
+	{
+		KPGTypeAttribute *pTypeAttribute = static_cast <KPGTypeAttribute *> (pItem);
+		
+		if(bIncludeSystemColumns || (pTypeAttribute->attNum() > 0))
+		{
+			listColumns.append(KPGTableColumnWizInfo(
+					pTypeAttribute->text(0), 
+					pTypeAttribute->typName(),
+					pTypeAttribute->attNdims(),
+					pTypeAttribute->attNum(),
+					*pTypeAttribute->pixmap(0),
+					QString::null
+					));
+		}
+		
+		pItem = pItem->nextSibling();
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtype.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+//
+// C++ Interface: kpgtype
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPE_H
+#define KPGTYPE_H
+
+#include "kpgobject.h"
+
+class KPGTypesFolder;
+
+#include "../Wizards/kpgtablecolumnwizinfo.h"
+
+/**
+  * Item that represent data type.  
+  *
+  *
+  * @author Lumir Vanek
+  */
+class KPGType : public KPGObject
+{
+public:
+    KPGType(KPGTypesFolder *, const QString, pqxx::oid);
+	KPGType(KPGTypesFolder *, KPGType *, const QString, pqxx::oid);
+    ~KPGType();
+
+	virtual eNodeType type() const { return nodeType; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "TYPE"; }
+  	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultAttributes() const { return m_pqxxResultAttributes; }
+		
+	/*
+	 * Functions for accessing properties
+	 */
+	int typLen() const { return m_iTypLen; }
+	bool byValue() const { return m_bByVal; }
+    const QString & kind() const { return m_strKind; } // Type kind - e.g. base, composite, ...
+    const QString & owner() const { return m_strOwner; }
+    bool isDefined() const { return m_bIsDefined; }
+	const QString & typDelim() const { return m_strTypDelim; }
+	const QString & typAlign() const { return m_strTypAlign; }
+	const QString & typStorage() const { return m_strTypStorage; }
+	pqxx::oid oidTypElem() const { return m_oidTypElem; }
+	const QString & element() const { return m_strElement; }
+	pqxx::oid oidInputFunc() const { return m_oidInputFunc; }
+	const QString & inputFunc() const { return m_strInputFunc; }
+	pqxx::oid oidOutputFunc() const { return m_oidOutputFunc; }
+	const QString & outputFunc() const { return m_strOutputFunc; }
+	pqxx::oid oidTable() const { return m_oidTable; }
+	const QString & tableName() const { return m_strTableName; }
+    
+    void fillListAttributes(KPGListTableColumns &, bool=false);
+    
+protected:
+  	
+  	/*
+	 * Properties
+	 */
+	int m_iTypLen; 
+	bool m_bByVal; 
+	QString m_strKind;
+	bool m_bIsDefined; 
+	QString m_strTypDelim;
+	QString m_strTypAlign;
+	QString m_strTypStorage;
+	pqxx::oid m_oidTypElem;
+	QString m_strElement;
+	pqxx::oid m_oidInputFunc;
+	QString m_strInputFunc;
+	pqxx::oid m_oidOutputFunc;
+	QString m_strOutputFunc;
+	pqxx::oid m_oidTable;
+	QString m_strTableName;
+	QString m_strOwner;
+		
+	// result that will be displaied in properties window
+	pqxx::result m_pqxxResultAttributes;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,221 @@
+//
+// C++ Implementation: kpgtypeattribute
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtypeattribute.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtype.h"
+
+
+KPGTypeAttribute::KPGTypeAttribute(KPGType *parent, const QString name)
+  : KPGTreeItem(parent, name)
+{
+  	setPixmap(0, *m_pIconColumnOther);
+}
+
+
+KPGTypeAttribute::KPGTypeAttribute(KPGType *parent, KPGTypeAttribute *after, const QString name)
+  : KPGTreeItem(parent, after, name)
+{
+  	setPixmap(0, *m_pIconColumnOther);
+}
+
+
+KPGTypeAttribute::~KPGTypeAttribute()
+{
+}
+
+void KPGTypeAttribute::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["atttypid"].to(m_oidType);
+	pqxxTuple["attlen"].to(m_iAttLen);
+	pqxxTuple["attnum"].to(m_iAttNum);
+	pqxxTuple["attndims"].to(m_iAttNdims);
+	pqxxTuple["atttypmod"].to(m_iAttTypmod);
+			
+	m_strTypName = pqxxTuple["typname"].c_str();
+	m_strNspName = pqxxTuple["nspname"].c_str();
+	
+	//--- Set column type icon ---------------------------------------------------
+	if((m_strTypName == "bpchar") || (m_strTypName == "varchar") || (m_strTypName == "text"))
+	{
+		setPixmap(0, *m_pIconColumnChar);
+		return;
+	}
+	
+	if((m_strTypName == "int") || (m_strTypName == "int2") || (m_strTypName == "int4") || (m_strTypName == "int8") || (m_strTypName == "float4") || (m_strTypName == "float8") ||
+(m_strTypName == "numeric") || (m_strTypName == "serial4") || (m_strTypName == "serial8") || (m_strTypName == "money"))
+	{
+		setPixmap(0, *m_pIconColumnNum);
+		return;
+	}
+			
+	if((m_strTypName == "bool"))
+	{
+		setPixmap(0, *m_pIconColumnBool);
+		return;
+	}
+	
+	if((m_strTypName == "time") || (m_strTypName == "timetz") || (m_strTypName == "interval"))
+	{
+		setPixmap(0, *m_pIconColumnTime);
+		return;
+	}
+	
+	if((m_strTypName == "date") || (m_strTypName == "timestamp") || (m_strTypName == "timestamptz"))
+	{
+		setPixmap(0, *m_pIconColumnDate);
+		return;
+	}
+	
+	if((m_strTypName == "point") || (m_strTypName == "line") || (m_strTypName == "lseg") || (m_strTypName == "box") || (m_strTypName == "path") || (m_strTypName == "polygon") ||
+(m_strTypName == "circle"))
+	{
+		setPixmap(0, *m_pIconColumnGeo);
+		return;
+	}
+	
+	if((m_strTypName == "bit") || (m_strTypName == "varbit"))
+	{
+		setPixmap(0, *m_pIconColumnBit);
+		return;
+	}
+	
+	if((m_strTypName == "bytea"))
+	{
+		setPixmap(0, *m_pIconColumnBin);
+		return;
+	}
+	
+	if((m_strTypName == "cidr") || (m_strTypName == "inet") || (m_strTypName == "macaddr"))
+	{
+		setPixmap(0, *m_pIconColumnNet);
+		return;
+	}
+	
+	if((m_strTypName == "xml"))
+	{
+		setPixmap(0, *m_pIconColumnXml);
+		return;
+	}
+	
+	if((m_strTypName == "uuid"))
+	{
+		setPixmap(0, *m_pIconColumnUuid);
+		return;
+	}
+	
+	//----------------------------------------------------------------------------
+	
+	if((m_strTypName == "oid"))
+	{
+		setPixmap(0, *m_pIconColumnOid);
+		return;
+	}
+	
+	if((m_strTypName == "xid"))
+	{
+		setPixmap(0, *m_pIconColumnXid);
+		return;
+	}
+	
+	if((m_strTypName == "tid"))
+	{
+		setPixmap(0, *m_pIconColumnTid);
+		return;
+	}
+	
+	if((m_strTypName == "cid"))
+	{
+		setPixmap(0, *m_pIconColumnCid);
+		return;
+	}
+}
+
+QPixmap *KPGTypeAttribute::getPixmapForType(const QString &strTypName)
+{
+	//--- Set column type icon ---------------------------------------------------
+	if((strTypName == "bpchar") || (strTypName == "varchar") || (strTypName == "text"))
+	{
+		return m_pIconColumnChar;
+	}
+	
+	if((strTypName == "int") || (strTypName == "int2") || (strTypName == "int4") || (strTypName == "int8") || (strTypName == "float4") || (strTypName == "float8") || (strTypName ==
+"numeric") || (strTypName == "serial4") || (strTypName == "serial8") || (strTypName == "money"))
+	{
+		return m_pIconColumnNum;
+	}
+			
+	if((strTypName == "bool"))
+	{
+		return m_pIconColumnBool;
+	}
+	
+	if((strTypName == "time") || (strTypName == "timetz") || (strTypName == "interval"))
+	{
+		return m_pIconColumnTime;
+	}
+	
+	if((strTypName == "date") || (strTypName == "timestamp") || (strTypName == "timestamptz"))
+	{
+		return m_pIconColumnDate;
+	}
+	
+	if((strTypName == "point") || (strTypName == "line") || (strTypName == "lseg") || (strTypName == "box") || (strTypName == "path") || (strTypName == "polygon") || (strTypName ==
+"circle"))
+	{
+		return m_pIconColumnGeo;
+	}
+	
+	if((strTypName == "bit") || (strTypName == "varbit"))
+	{
+		return m_pIconColumnBit;
+	}
+	
+	if((strTypName == "bytea"))
+	{
+		return m_pIconColumnBin;
+	}
+	
+	if((strTypName == "cidr") || (strTypName == "inet") || (strTypName == "macaddr"))
+	{
+		return m_pIconColumnNet;
+	}
+	
+	//----------------------------------------------------------------------------
+	
+	if((strTypName == "oid"))
+	{
+		return m_pIconColumnOid;
+	}
+	
+	if((strTypName == "xid"))
+	{
+		return m_pIconColumnXid;
+	}
+	
+	if((strTypName == "tid"))
+	{
+		return m_pIconColumnTid;
+	}
+	
+	if((strTypName == "cid"))
+	{
+		return m_pIconColumnCid;
+	}
+  
+  	//kdDebug() << "KPGTypeAttribute::getPixmapForType - Unknown column type: " + strTypName << endl;
+	return m_pIconColumnOther;
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypeattribute.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+//
+// C++ Interface: kpgtypeattribute
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPEATTRIBUTE_H
+#define KPGTYPEATTRIBUTE_H
+
+#include "kpgtreeitem.h"
+
+class KPGType;
+
+/**
+  * Type attribute
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTypeAttribute : public KPGTreeItem
+{
+public:
+	KPGTypeAttribute(KPGType *, const QString);
+	KPGTypeAttribute(KPGType *, KPGTypeAttribute *, const QString);
+  	~KPGTypeAttribute();
+  
+	virtual eNodeType type() const { return nodeTypeAttribute; }
+  	void setProperties(const pqxx::result::tuple &);
+  	
+  	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+	
+	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &) { return; }
+  	
+  	static QPixmap *getPixmapForType(const QString &);
+  	
+	/*
+	 * Functions for accessing properties
+	 */
+	pqxx::oid oidType() const { return m_oidType; }
+  	const QString & typName() const { return m_strTypName; }
+  	int attLen() const { return m_iAttLen; }
+	int attNum() const { return m_iAttNum; }
+	int attNdims() const { return m_iAttNdims; }
+	int attTypmod() const { return m_iAttTypmod; }
+	const QString & nspName() const { return m_strNspName; }
+	
+protected:
+	
+	/*
+	 * Properties
+	 */
+	pqxx::oid m_oidType;
+  	QString m_strTypName;
+	int m_iAttLen;
+	int m_iAttNum; 
+	int m_iAttNdims;
+	int m_iAttTypmod;
+	QString m_strNspName;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+//
+// C++ Implementation: kpgtypesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtypesfolder.h"
+
+#include <kdebug.h>
+#include <kcombobox.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgtype.h"
+
+
+KPGTypesFolder::KPGTypesFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Types"))
+{
+	setPixmap(0, *m_pIconFolderRed);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGTypesFolder::~KPGTypesFolder()
+{
+}
+
+void KPGTypesFolder::refresh() throw(const KPGSqlException &)
+{
+	// delete all child items 
+	while (QListViewItem * pItem = firstChild())
+		delete pItem;
+	
+	// obtain list of data types
+	QString strQuery("SELECT t.oid, t.typname, description, CASE WHEN t.typtype = 'b' THEN 'base' WHEN t.typtype = 'c' THEN 'composite' WHEN t.typtype = 'p' THEN 'pseudo' ELSE 'other' END as type, t.typlen, t.typbyval, t.typisdefined, t.typdelim, CASE WHEN t.typalign = 'c' THEN 'char' WHEN t.typalign = 's' THEN 'short' WHEN t.typalign = 'i' THEN 'int' WHEN t.typalign = 'd' THEN 'double' ELSE 'other' END AS align, CASE WHEN t.typstorage = 'p' THEN 'PLAIN' WHEN t.typstorage = 'e' THEN 'EXTERNAL' WHEN t.typstorage = 'm' THEN 'MAIN' WHEN t.typstorage = 'x' THEN 'EXTENDED' END AS typstorage, t.typelem, e.typname as element, t.typinput::oid AS typinputoid, t.typinput, t.typoutput::oid AS typoutputoid, t.typoutput, ct.oid AS tableoid, ct.relname AS tablename, pg_get_userbyid(t.typowner) as owner ");
+	strQuery.append("FROM pg_catalog.pg_type t ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_type e ON e.oid=t.typelem ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_class ct ON ct.oid=t.typrelid AND ct.relkind <> 'c' ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON des.objoid=t.oid ");
+	strQuery.append("WHERE t.typtype != 'd' AND t.typnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY typname"); // AND t.typname NOT LIKE '\\\\_%%' 
+				
+	try
+	{
+		m_pqxxResultTypes = connection()->runQuery(strQuery);
+	
+		KPGType *pType = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultTypes.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultTypes[i][0].to(oid);
+			
+			if(pType == 0)
+				pType = new KPGType(this, m_pqxxResultTypes[i]["typname"].c_str(), oid);
+			else
+				pType = new KPGType(this, pType, m_pqxxResultTypes[i]["typname"].c_str(), oid);
+					
+								
+			pType->setProperties(m_pqxxResultTypes[i]);
+				
+			// Refresh attributes list
+			pType->refresh();
+		}
+	}
+	catch (const KPGSqlException &e)
+	{
+		kdError() << k_funcinfo << "Routing exception up. Types folder. " << text(0) << endl;
+		throw; // if it is KPGSqlException re-throw it
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+
+void KPGTypesFolder::fillComboBoxWithChildItems(KComboBox *pComboBox, bool bOnlyUserTypes)
+{
+  QListViewItem * pItem = firstChild();
+  while(pItem)
+  {
+    KPGType *pType = static_cast <KPGType *> (pItem);
+    
+    //               only base types, that names not starts with underscore
+    if(!bOnlyUserTypes || ((pType->kind() == "base") && pType->text(0)[0] != '_'))
+      pComboBox->insertItem(* pItem->pixmap(0), pItem->text(0));   
+    
+    pItem = pItem->nextSibling();
+  }
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgtypesfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgtypesfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPESFOLDER_H
+#define KPGTYPESFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+class KComboBox;
+
+/**
+  * Folder that holds data types
+  *
+  * @author Lumir Vanek
+  */
+class KPGTypesFolder : public KPGItemsFolder
+{
+public:
+    KPGTypesFolder(KPGSchema *, pqxx::oid);
+    ~KPGTypesFolder();
+				
+	virtual eNodeType type() const { return nodeFolderTypes; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+		
+	const pqxx::result & resultTypes() const { return m_pqxxResultTypes; }
+    
+    void fillComboBoxWithChildItems(KComboBox *, bool);
+		
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultTypes;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+// C++ Implementation: kpguniqueconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpguniqueconstr.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgtableconstraintsfolder.h"
+
+
+KPGUniqueConstr::KPGUniqueConstr(KPGTableConstraintsFolder *parent, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, name, _oid)
+{
+  setPixmap(0, *m_pIconUniqueConstr);
+}
+
+KPGUniqueConstr::KPGUniqueConstr(KPGTableConstraintsFolder *parent, KPGTableConstraint *after, const QString name, pqxx::oid _oid)
+  : KPGTableConstraint(parent, after, name, _oid)
+{
+  setPixmap(0, *m_pIconUniqueConstr);
+}
+
+KPGUniqueConstr::~KPGUniqueConstr()
+{
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguniqueconstr.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: kpguniqueconstr
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUNIQUECONSTR_H
+#define KPGUNIQUECONSTR_H
+
+#include "kpgtableconstraint.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Table Unique constraint
+  *
+  * @author Lumir Vanek
+  */
+class KPGUniqueConstr : public KPGTableConstraint
+{
+public:
+    KPGUniqueConstr(KPGTableConstraintsFolder *, const QString, pqxx::oid);
+	KPGUniqueConstr(KPGTableConstraintsFolder *, KPGTableConstraint *, const QString, pqxx::oid);
+    ~KPGUniqueConstr();
+		
+	virtual eNodeType type() const { return nodeUniqueConstr; }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+//
+// C++ Implementation: kpguser
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpguser.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include <qdatetime.h>
+
+#include "kpgusersfolder.h"
+
+
+KPGUser::KPGUser(KPGUsersFolder *parent, const QString & name)
+  : KPGTreeItem(parent, name)
+{
+  	setPixmap(0, *m_pIconUser);
+}
+
+KPGUser::KPGUser(KPGUsersFolder *parent, KPGUser *after, const QString & name)
+  : KPGTreeItem(parent, after, name)
+{
+  	setPixmap(0, *m_pIconUser);
+}
+
+KPGUser::~KPGUser()
+{
+}
+
+const QDate KPGUser::validUntil() const
+{
+	QDate dateValidUntil;
+	
+	if(m_strValUntil.length() > 9)
+	{
+		QString strYear(m_strValUntil.left(4));
+		QString strMonth(m_strValUntil.mid(5, 2));
+		QString strDay(m_strValUntil.mid(8, 2));
+		
+		QDate d(strYear.toInt(), strMonth.toInt(), strDay.toInt());
+		dateValidUntil = d;
+	}
+	
+	return dateValidUntil;
+}
+
+void KPGUser::setProperties(const pqxx::result::tuple &pqxxTuple)
+{
+	pqxxTuple["usesysid"].to(m_iSysId);
+    pqxxTuple["usecreatedb"].to(m_bCreateDb);
+    pqxxTuple["usesuper"].to(m_bIsSuper);
+    pqxxTuple["usecatupd"].to(m_bUCatUpd);
+            
+	m_strValUntil = pqxxTuple["valuntil"].c_str();
+	
+	if(m_bIsSuper)
+		setPixmap(0, *m_pIconUserSuper);
+	else
+	{
+		if(m_bCreateDb)
+			setPixmap(0, *m_pIconUserCanCreateDb);
+		else
+			setPixmap(0, *m_pIconUser);
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpguser.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,62 @@
+//
+// C++ Interface: kpguser
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUSER_H
+#define KPGUSER_H
+
+#include "kpgtreeitem.h"
+
+class KPGUsersFolder;
+class QDate;
+
+
+/**
+  * Database User
+  *
+  * @author Lumir Vanek
+  */
+class KPGUser : public KPGTreeItem
+{
+public:
+    KPGUser(KPGUsersFolder *, const QString &);
+	KPGUser(KPGUsersFolder *, KPGUser *, const QString &);
+    ~KPGUser();
+
+	virtual eNodeType type() const { return nodeUser; }
+	
+	void setProperties(const pqxx::result::tuple &);
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return; }
+		
+	/*
+	 * Functions for accessing properties
+	 */
+	int sysId() const { return m_iSysId; }
+	bool canCreateDb() const { return m_bCreateDb; } 
+	bool isSuper() const { return m_bIsSuper; }
+	bool canCatUpd() const { return m_bUCatUpd; } 
+	const QDate validUntil() const;
+	const QString & validUntilAsString() const { return m_strValUntil; }
+		
+protected:
+	
+	/*
+	 * Properties
+	 */
+	int m_iSysId; 
+	bool m_bCreateDb; 
+	bool m_bIsSuper; 
+	bool m_bUCatUpd; 
+	QString m_strValUntil;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Implementation: kpgusersfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgusersfolder.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgserver.h"
+#include "kpguser.h"
+
+
+KPGUsersFolder::KPGUsersFolder(KPGServer *parent)
+ : KPGItemsFolder(parent, i18n("Users"))
+{
+	setPixmap(0, *m_pIconFolderGrey);
+}
+
+
+KPGUsersFolder::~KPGUsersFolder()
+{
+}
+
+void KPGUsersFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (databases)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+    
+        // obtain list of users
+    QString strQuery("SELECT usesysid, usename, usecreatedb, usesuper, usecatupd, valuntil FROM ");
+    strQuery.append("pg_catalog.pg_user u "); // or pg_shadow
+    strQuery.append("ORDER BY usename");
+                
+    try
+    {
+        m_pqxxResultUsers = connection()->runQuery(strQuery);
+    
+        KPGUser *pUser = 0;
+            
+        for (result::size_type i = 0; i != m_pqxxResultUsers.size(); ++i)
+        {
+            if(pUser == 0)
+                pUser = new KPGUser(this, m_pqxxResultUsers[i]["usename"].c_str());
+            else
+                pUser = new KPGUser(this, pUser, m_pqxxResultUsers[i]["usename"].c_str());           
+            
+            pUser->setProperties(m_pqxxResultUsers[i]);
+        }
+    }
+    catch (const std::exception &e)
+    {
+        kdError() << k_funcinfo << e.what() << endl;
+        throw KPGSqlException(e.what(), strQuery);
+    } 
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgusersfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: kpgusersfolder
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUSERSFOLDER_H
+#define KPGUSERSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGServer;
+
+/**
+  * Folder that holds database users
+  *
+  * @author Lumir Vanek
+  */
+class KPGUsersFolder : public KPGItemsFolder
+{
+public:
+    KPGUsersFolder(KPGServer *);
+    ~KPGUsersFolder();
+
+	virtual eNodeType type() const { return nodeFolderUsers; }
+	
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultUsers() const { return m_pqxxResultUsers; }
+				
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultUsers;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+/***************************************************************************
+                          kpgview.cpp  -  description
+                             -------------------
+    begin                : Po led 19 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgview.h"
+ 
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgdatabase.h"
+#include "kpgviewsfolder.h"
+
+
+KPGView::KPGView(KPGViewsFolder *parent, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, name, _oid)
+{
+	setPixmap(0, *m_pIconView);
+}
+
+KPGView::KPGView(KPGViewsFolder *parent, KPGView *after, const QString name, pqxx::oid _oid)
+ : KPGObject(parent, after, name, _oid)
+{
+	setPixmap(0, *m_pIconView);
+}
+
+KPGView::~KPGView()
+{
+}
+
+void KPGView::setProperties(
+	const QString strOwner, 
+	const QString strACL,
+	const QString strDescription
+	)
+{
+	m_strOwner = strOwner;
+	m_strACL = strACL;
+	m_strDescription = strDescription;
+}
+
+// Refresh only view info, without childs objects
+void KPGView::refreshItem() throw(const KPGSqlException &)
+{
+	// Get pointer to server for version info
+	//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (parent()->parent()->parent());
+	
+	// obtain info about of view
+	QString strQuery("SELECT c.oid, c.relname, description, pg_get_userbyid(c.relowner) AS viewowner, c.relacl ");
+	strQuery.append("FROM pg_catalog.pg_class c ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0) ");
+	
+	strQuery.append("WHERE c.oid = " + QString("%1").arg(m_oid));
+		
+	try
+	{
+		pqxx::result pqxxResultViews = connection()->runQuery(strQuery);
+	
+		if(pqxxResultViews.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		setProperties(
+		pqxxResultViews[0]["viewowner"].c_str(), 
+		pqxxResultViews[0]["relacl"].c_str(),
+		pqxxResultViews[0]["description"].c_str()
+		);
+			
+		//-- Get definition
+		strQuery = QString("SELECT pg_get_viewdef(%1) AS definition;").arg(m_oid);
+		pqxx::result pqxxResultDefinition = connection()->runQuery(strQuery);
+		
+		if (pqxxResultDefinition.size() > 0)
+		{ 
+			setDefinition(pqxxResultDefinition[0][0].c_str());
+		} 
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,70 @@
+/***************************************************************************
+                          kpgview.h  -  description
+                             -------------------
+    begin                : Po led 19 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGVIEW_H
+#define KPGVIEW_H
+
+#include <qwidget.h>
+
+#include "kpgobject.h"
+
+class KPGViewsFolder;
+
+/**
+  *	Item that represent database view
+  * 
+  * @author Lumir Vanek
+  */
+class KPGView : public KPGObject
+{
+public: 
+	KPGView(KPGViewsFolder *, const QString, pqxx::oid);
+	KPGView(KPGViewsFolder *, KPGView *, const QString, pqxx::oid);
+	~KPGView();
+	
+	virtual eNodeType type() const { return nodeView; }
+	
+	// Get SQL object type 
+  	virtual const char * getObjectType() const { return "VIEW"; }
+	
+	void setProperties(const QString, const QString, const QString);
+	void setDefinition(const QString strDefinition) { m_strDefinition = strDefinition; }
+		
+	// Refresh item, ald also childs objects
+	void refresh() throw(const KPGSqlException &) { return refreshItem(); }
+  	
+  	// Refresh only this item, not childs
+	void refreshItem() throw(const KPGSqlException &);
+	
+	/*
+	 * Functions for accessing properties
+	 */
+	const QString & definition() const { return m_strDefinition; }
+	const QString & owner() const { return m_strOwner; }
+	const QString & acl() const { return m_strACL; }
+	
+protected:
+	
+	/*
+	 * Properties
+	 */
+	QString m_strOwner;
+	QString m_strACL;
+	QString m_strDefinition;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,92 @@
+/***************************************************************************
+                          kpgviewsfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgviewsfolder.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "kpgconnection.h"
+#include "kpgschema.h"
+#include "kpgview.h"
+
+
+KPGViewsFolder::KPGViewsFolder(KPGSchema *parent, pqxx::oid oidNameSpace)
+ : KPGItemsFolder(parent, i18n("Views"))
+{
+	setPixmap(0, *m_pIconFolderGreen);
+	m_oidNameSpace = oidNameSpace;
+}
+
+
+KPGViewsFolder::~KPGViewsFolder()
+{
+}
+
+void KPGViewsFolder::refresh() throw(const KPGSqlException &)
+{
+    // delete all child items (databases)
+    while (QListViewItem * pItem = firstChild())
+        delete pItem;
+
+	// obtain list of views
+    QString strQuery("SELECT c.oid, c.relname, description, pg_get_userbyid(c.relowner) AS viewowner, c.relacl ");
+	strQuery.append("FROM pg_catalog.pg_class c ");
+	strQuery.append("LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0) ");
+	strQuery.append("WHERE ((c.relhasrules AND (EXISTS (SELECT r.rulename FROM pg_catalog.pg_rewrite r WHERE ((r.ev_class = c.oid) AND (bpchar(r.ev_type) = '1'::bpchar)) ))) OR \
+(c.relkind = 'v'::char)) ");
+	strQuery.append("AND relnamespace = " + QString("%1").arg(m_oidNameSpace) + " ");
+	strQuery.append("ORDER BY relname");
+		
+  	try
+	{
+		m_pqxxResultViews = connection()->runQuery(strQuery);
+	
+		KPGView *pgView = 0;
+			
+		for (result::size_type i = 0; i != m_pqxxResultViews.size(); ++i)
+		{
+			pqxx::oid oid;
+			m_pqxxResultViews[i][0].to(oid);
+			
+			if(pgView == 0)
+				pgView = new KPGView(this, m_pqxxResultViews[i]["relname"].c_str(), oid);
+			else
+				pgView = new KPGView(this, pgView, m_pqxxResultViews[i]["relname"].c_str(), oid);
+							
+				pgView->setProperties(
+					m_pqxxResultViews[i]["viewowner"].c_str(), 
+					m_pqxxResultViews[i]["relacl"].c_str(),
+					m_pqxxResultViews[i]["description"].c_str()
+					);
+					
+				//-- Get definition
+				strQuery = QString("SELECT pg_catalog.pg_get_viewdef(%1) AS definition;").arg(oid);
+				pqxx::result pqxxResultDefinition = connection()->runQuery(strQuery);
+			
+				if (pqxxResultDefinition.size() > 0)
+				{ 
+					pgView->setDefinition(pqxxResultDefinition[0][0].c_str());
+				}	
+		}
+	}
+	catch (const std::exception &e)
+	{
+		kdError() << k_funcinfo << e.what() << endl;
+		throw KPGSqlException(e.what(), strQuery);
+	} 
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/DbObjects/kpgviewsfolder.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+/***************************************************************************
+                          kpgviewsfolder  -  description
+                             -------------------
+    begin                : Ne no 1 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGVIEWSFOLDER_H
+#define KPGVIEWSFOLDER_H
+
+#include "kpgitemsfolder.h"
+
+class KPGSchema;
+class KPGConnection;
+
+/**
+  * Items that hold dastabase views list
+  *
+  * @author Lumir Vanek
+  */
+class KPGViewsFolder : public KPGItemsFolder
+{
+public:
+    KPGViewsFolder(KPGSchema *, pqxx::oid);
+    ~KPGViewsFolder();
+
+	virtual eNodeType type() const { return nodeFolderViews; }
+	
+	// Refresh item, and also childs objects
+	void refresh() throw(const KPGSqlException &);
+	
+	const pqxx::result & resultViews() const { return m_pqxxResultViews; }
+			
+protected:
+  	// results that will be displaied in properties window
+  	pqxx::result m_pqxxResultViews;
+	
+	// Parent namespace OID
+	pqxx::oid m_oidNameSpace;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+METASOURCES = AUTO
+libDebugger_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libDebugger.la
+
+libDebugger_la_SOURCES = kpgdebugger.cpp kpgdebuggerbase.ui \
+	kpgdebuggerchildview.cpp
+	
+EXTRA_DIST = 
+
+noinst_HEADERS = kpgdebugger.h kpgdebuggerchildview.h
+
+libDebugger_la_LIBADD = -lkatepartinterfaces $(LIB_KUTILS) $(LIB_KDEUI) \
+	$(LIB_KPARTS) $(PQXX_LIBS)

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,750 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/Debugger
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libDebugger_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libDebugger_la_OBJECTS = kpgdebugger.lo kpgdebuggerchildview.lo
+#>- libDebugger_la_OBJECTS = $(am_libDebugger_la_OBJECTS)
+#>+ 5
+libDebugger_la_final_OBJECTS = libDebugger_la.all_cpp.lo 
+libDebugger_la_nofinal_OBJECTS = kpgdebugger.lo kpgdebuggerchildview.lo kpgdebuggerbase.lo\
+kpgdebugger.moc.lo kpgdebuggerchildview.moc.lo 
+ at KDE_USE_FINAL_FALSE@libDebugger_la_OBJECTS = $(libDebugger_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libDebugger_la_OBJECTS = $(libDebugger_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libDebugger_la_SOURCES)
+DIST_SOURCES = $(libDebugger_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+#>- METASOURCES = AUTO
+libDebugger_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libDebugger.la
+#>- libDebugger_la_SOURCES = kpgdebugger.cpp kpgdebuggerbase.ui \
+#>- 	kpgdebuggerchildview.cpp
+#>+ 2
+libDebugger_la_SOURCES=kpgdebugger.cpp  \
+	kpgdebuggerchildview.cpp kpgdebuggerbase.cpp
+
+EXTRA_DIST = 
+noinst_HEADERS = kpgdebugger.h kpgdebuggerchildview.h
+libDebugger_la_LIBADD = -lkatepartinterfaces $(LIB_KUTILS) $(LIB_KDEUI) \
+	$(LIB_KPARTS) $(PQXX_LIBS)
+
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Debugger/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libDebugger.la: $(libDebugger_la_OBJECTS) $(libDebugger_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libDebugger_la_LDFLAGS) $(libDebugger_la_OBJECTS) $(libDebugger_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdebugger.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdebuggerchildview.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgdebugger.moc.cpp: $(srcdir)/kpgdebugger.h
+	$(MOC) $(srcdir)/kpgdebugger.h -o kpgdebugger.moc.cpp
+
+#>+ 2
+mocs: kpgdebugger.moc.cpp
+
+#>+ 3
+kpgdebuggerchildview.moc.cpp: $(srcdir)/kpgdebuggerchildview.h
+	$(MOC) $(srcdir)/kpgdebuggerchildview.h -o kpgdebuggerchildview.moc.cpp
+
+#>+ 2
+mocs: kpgdebuggerchildview.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgdebugger.moc.cpp kpgdebuggerchildview.moc.cpp
+
+#>+ 2
+KDE_DIST=kpgdebuggerbase.ui Makefile.in Makefile.am 
+
+#>+ 4
+clean-ui:
+	-rm -f \
+	kpgdebuggerbase.cpp kpgdebuggerbase.h kpgdebuggerbase.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Debugger/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Debugger/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libDebugger_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgdebugger.cpp $(srcdir)/kpgdebuggerchildview.cpp $(srcdir)/kpgdebuggerbase.cpp kpgdebuggerchildview.moc.cpp kpgdebugger.moc.cpp  kpgdebuggerbase.moc
+	@echo 'creating libDebugger_la.all_cpp.cpp ...'; \
+	rm -f libDebugger_la.all_cpp.files libDebugger_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libDebugger_la.all_cpp.final; \
+	for file in kpgdebugger.cpp kpgdebuggerchildview.cpp kpgdebuggerbase.cpp kpgdebuggerchildview.moc.cpp kpgdebugger.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libDebugger_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libDebugger_la.all_cpp.final; \
+	done; \
+	cat libDebugger_la.all_cpp.final libDebugger_la.all_cpp.files > libDebugger_la.all_cpp.cpp; \
+	rm -f libDebugger_la.all_cpp.final libDebugger_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libDebugger_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libDebugger_la_OBJECTS="$(libDebugger_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libDebugger_la_OBJECTS="$(libDebugger_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libDebugger_la_OBJECTS="$(libDebugger_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libDebugger_la_OBJECTS="$(libDebugger_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 5
+nmcheck: 
+$(srcdir)/kpgdebugger.cpp: kpgdebuggerbase.h 
+$(srcdir)/kpgdebuggerchildview.cpp: kpgdebuggerbase.h 
+nmcheck-am: nmcheck
+
+#>+ 15
+kpgdebuggerbase.cpp: $(srcdir)/kpgdebuggerbase.ui kpgdebuggerbase.h kpgdebuggerbase.moc
+	rm -f kpgdebuggerbase.cpp
+	echo '#include <kdialog.h>' > kpgdebuggerbase.cpp
+	echo '#include <klocale.h>' >> kpgdebuggerbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdebuggerbase.h $(srcdir)/kpgdebuggerbase.ui > kpgdebuggerbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdebuggerbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdebuggerbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdebuggerbase.cpp ;\
+	rm -f kpgdebuggerbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdebuggerbase.moc"' >> kpgdebuggerbase.cpp; else rm -f kpgdebuggerbase.cpp ; exit $$ret ; fi
+
+kpgdebuggerbase.h: $(srcdir)/kpgdebuggerbase.ui
+	rm -rf kpgdebuggerbase.h;
+	$(UIC) $(srcdir)/kpgdebuggerbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdebuggerbase.h ;
+kpgdebuggerbase.moc: kpgdebuggerbase.h
+	$(MOC) kpgdebuggerbase.h -o kpgdebuggerbase.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,214 @@
+//
+// C++ Implementation: kpgdebugger
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdebugger.h"
+
+// include files for Qt
+#include <qwidgetstack.h> 
+#include <qtextcodec.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kiconloader.h>
+#include <kcursor.h>
+#include <kdebug.h>
+#include <kcombobox.h>
+
+// include files for KatePart
+#include <kate/document.h>  // KatePart document
+
+// application specific includes
+#include "../kpgutil.h"
+#include "../kpogreview.h"
+//#include "../kpgconfiguration.h"
+//#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../kpgsqldialog.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "kpgdebuggerchildview.h"
+
+// http://www.kexi-project.org/docs/svn-api/html/kexieditor_8cpp-source.html
+// /opt/kde3/share/doc/HTML/en/kdelibs-apidocs/index.html
+
+KPGDebugger::KPGDebugger(KPGDebuggerChildView *pParent, 
+	KPoGreView *pPoGreView,
+	KParts::Factory *pKatePartFactory,
+	KXMLGUIFactory *pXmlGuiFactory,
+	KPGConnection *pConnection, 
+	const QString & strNamespaceName, 
+	KPGFunction *pFunction  // TODO passing pointer is dangerous, function may be dropped !
+	)
+	: 
+	KXMLGUIClient(pPoGreView),
+	KPGDebuggerBase(pParent, "KPGDebugger")
+{
+	m_pConnection = pConnection;
+	m_strNamespaceName = strNamespaceName;
+	m_strFunctionName = pFunction->text(0);
+	
+	// Make own copy of arguments info
+	m_listArguments = pFunction->listArguments();
+	
+	// Setup GUI
+	setXMLFile("kpgdebugger.rc", true);
+	m_pXmlGuiFactory = pXmlGuiFactory;
+	m_bIsAddedToGuiFactory = false;
+
+	//-----------------------------------------------------------------
+	// Debugger actions
+	m_pActRun = new KAction(i18n("Start in debugger"), "dbgrun", Key_F9, this, SLOT(slotExecute()), actionCollection(),
+"debugger_start");
+	
+	m_pActStop = new KAction(i18n("Stop"), "stop", 0, this, SLOT(slotStop()), actionCollection(), "debugger_stop");
+  	
+  	m_pActStepOver = new KAction(i18n("Step &Over"), "dbgnext", Key_F10, this, SLOT(slotStepOver()), actionCollection(),
+"debugger_step_over");
+
+
+	m_pActRun->setEnabled(true);
+    m_pActStop->setEnabled(false);
+    m_pActStepOver->setEnabled(false);
+    
+    // Create Kate part editor
+    m_pKateView = createKatePart(pKatePartFactory);
+    m_pFrameSourceCodeLayout->addWidget(m_pKateView, 0, 0 );
+    
+    m_pXmlGuiFactory = pXmlGuiFactory;
+	pXmlGuiFactory->addClient(m_pKateView);
+		
+	// install a working kate part popup dialog thingy
+  	if (static_cast<Kate::View*>(m_pKateView->qt_cast("Kate::View")))
+  	{
+    	static_cast <Kate::View*> (m_pKateView->qt_cast("Kate::View"))->installPopup ((QPopupMenu*)(pXmlGuiFactory->container("ktexteditor_popup", pPoGreView)) );
+  	}
+    
+    m_pKateView->setLineNumbersOn(true);
+    m_pKateView->setIconBorder(true);
+        
+    KTextEditor::HighlightingInterface *pHighlightIface = KTextEditor::highlightingInterface(m_pKateView->getDoc());
+        
+    for(uint i = 0; i < pHighlightIface->hlModeCount(); i++) 
+    {
+    	//kdDebug() << "hlmode("<<i<<"): " << pHighlightIface->hlModeName(i) << endl;
+        if (pHighlightIface->hlModeName(i).contains("SQL (PostgreSQL)", false))
+        {
+        	pHighlightIface->setHlMode(i);
+        	break;
+        }
+     }
+    
+    setEditorText(pFunction->source());
+	
+	KTextEditor::MarkInterface *pMarkIface = KTextEditor::markInterface(m_pKateView->getDoc());
+	
+	KIconLoader *loader = KGlobal::iconLoader();
+	
+	m_pKateView->getDoc()->setPixmap(KTextEditor::MarkInterface::BreakpointActive, loader->loadIcon("breakpoint_enabled", KIcon::Small));
+	
+	m_pKateView->getDoc()->setPixmap(KTextEditor::MarkInterface::BreakpointReached, loader->loadIcon("breakpoint_enabled", KIcon::Small));
+	
+	m_pKateView->getDoc()->setPixmap(KTextEditor::MarkInterface::BreakpointDisabled, loader->loadIcon("breakpoint_disabled", KIcon::Small));
+				
+	pMarkIface->setMark(1, KTextEditor::MarkInterface::Bookmark);
+	pMarkIface->setMark(2, KTextEditor::MarkInterface::BreakpointActive);
+	pMarkIface->setMark(3, KTextEditor::MarkInterface::BreakpointReached);
+	pMarkIface->setMark(4, KTextEditor::MarkInterface::BreakpointDisabled);
+	pMarkIface->setMark(5, KTextEditor::MarkInterface::Execution);
+	pMarkIface->setMark(6, KTextEditor::MarkInterface::Warning);
+	pMarkIface->setMark(7, KTextEditor::MarkInterface::Error);
+}
+
+KPGDebugger::~KPGDebugger()
+{
+	if ( m_pKateView )
+    {
+        removeFromGuiFactory();
+
+        // remove the view, then the doc
+        Kate::Document *pDoc = m_pKateView->getDoc();
+        delete m_pKateView;
+        delete pDoc;
+    }
+}
+
+
+// Add yourself and Kate view to GUI factory
+void KPGDebugger::addToGuiFactory()
+{
+	if(m_pKateView && !m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->addClient(this);
+        m_pXmlGuiFactory->addClient(m_pKateView);
+        m_bIsAddedToGuiFactory = true;
+    }
+}
+    
+// Remove yourself and Kate view from GUI factory
+void KPGDebugger::removeFromGuiFactory()
+{
+    if(m_pKateView && m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->removeClient(this);
+        m_pXmlGuiFactory->removeClient(m_pKateView);
+        m_bIsAddedToGuiFactory = false;
+    }
+}
+
+// Create Kate part view
+Kate::View* KPGDebugger::createKatePart(KParts::Factory* pFactory)
+{
+    // The library was found, so create the Kate::Document
+    KTextEditor::Document *doc = (KTextEditor::Document *) pFactory->createPart(m_pFrameSourceCode, "", this, "", "KTextEditor::Document");
+
+    // The document only represents the document, to view
+    // the document's content
+    // we have to create a view for the document.
+    Kate::View *view = (Kate::View *) doc->createView( m_pFrameSourceCode, 0L );
+
+    // all went well, so return the view
+    return view;
+}
+
+// Set function source code
+void KPGDebugger::setEditorText(const QString &strTest)
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+	pEditIface->setText(strTest);
+		
+	KTextEditor::UndoInterface *pUndoIface = KTextEditor::undoInterface(m_pKateView->document());
+	pUndoIface->clearUndo();
+	pUndoIface->clearRedo();
+}
+
+// Get function source code
+const QString KPGDebugger::editorText() const 
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+    return pEditIface->text();
+}
+
+void KPGDebugger::slotExecute()
+{
+    // TODO debugger
+}
+
+void KPGDebugger::slotStop()
+{
+
+}
+
+void KPGDebugger::slotStepOver()
+{
+
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebugger.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,108 @@
+//
+// C++ Interface: kpgdebugger
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDEBUGGER_H
+#define KPGDEBUGGER_H
+
+#include "kpgdebuggerbase.h"
+
+#include <kparts/factory.h> // KPart Factory
+#include <kate/view.h>      // Katepart view
+
+#include "../kpgconnectioninthread.h"
+//#include "../kpgactionsstates.h"
+
+class KFind;
+class KXMLGUIFactory;
+
+class KPGConnection;
+class KPGDatabase;
+class KPGFunction;
+class KPGDebuggerChildView;
+class KPoGreView;
+
+/**
+  * PL pg/SQL debugger window
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDebugger : public KPGDebuggerBase, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public:
+    KPGDebugger(KPGDebuggerChildView *, KPoGreView *, KParts::Factory *, KXMLGUIFactory *, KPGConnection *, const QString &, KPGFunction *);
+    ~KPGDebugger();
+
+	// Add yourself and Kate view to GUI factory
+    void addToGuiFactory();
+    
+    // Remove yourself and Kate view from GUI factory
+    void removeFromGuiFactory();
+    
+    // Set function source code
+    void setEditorText(const QString &);
+    
+    // Get function source code
+    const QString editorText() const;
+    
+    // Get actions state
+    //const DebuggerActions & debuggerActions() const { return m_debuggerActions; }
+	
+signals:
+
+	// Fired when debugger need update actions
+	void sigDebuggerStateChanged(KPGDebugger *);
+	
+protected:
+	    
+	// Debugger actions
+    KAction* m_pActRun;
+	KAction* m_pActStop;
+	KAction* m_pActStepOver;
+	//QPtrList<KAction> m_actListDebugger;
+
+	// XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // True, if this is in GUI factory
+    bool m_bIsAddedToGuiFactory;
+
+    // Connection to database
+    KPGConnection* m_pConnection;
+    
+    // Database function to execute
+    QString m_strFunctionName;
+    
+    // Function namespace
+    QString m_strNamespaceName;
+        	
+	// List of argument informations, available since PostgreSQL 8.1
+	KPGFunction::ListArguments m_listArguments;
+	
+	// State of actions - enable or disabled
+    //DebuggerActions m_debuggerActions;
+    
+	// Kate part editor
+    Kate::View* m_pKateView;
+    
+protected:
+	// Create Kate part view
+	Kate::View* createKatePart(KParts::Factory*);
+
+protected slots:
+
+	//--- Debugger actions
+    void slotExecute();
+    void slotStop();
+    void slotStepOver();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,89 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Debugger/kpgdebuggerbase.ui'
+**
+** Created: Út dub 1 13:07:15 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdebuggerbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qsplitter.h>
+#include <qframe.h>
+#include <klistbox.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGDebuggerBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDebuggerBase::KPGDebuggerBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDebuggerBase" );
+    KPGDebuggerBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDebuggerBaseLayout"); 
+
+    splitter4 = new QSplitter( this, "splitter4" );
+    splitter4->setOrientation( QSplitter::Vertical );
+
+    splitter3 = new QSplitter( splitter4, "splitter3" );
+    splitter3->setOrientation( QSplitter::Horizontal );
+
+    m_pFrameSourceCode = new QFrame( splitter3, "m_pFrameSourceCode" );
+    m_pFrameSourceCode->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)5, 0, 0, m_pFrameSourceCode->sizePolicy().hasHeightForWidth() ) );
+    m_pFrameSourceCode->setMinimumSize( QSize( 300, 300 ) );
+    m_pFrameSourceCode->setFrameShape( QFrame::StyledPanel );
+    m_pFrameSourceCode->setFrameShadow( QFrame::Plain );
+    m_pFrameSourceCode->setLineWidth( 0 );
+    m_pFrameSourceCodeLayout = new QGridLayout( m_pFrameSourceCode, 1, 1, 11, 6, "m_pFrameSourceCodeLayout"); 
+
+    m_pListBoxStack = new KListBox( splitter3, "m_pListBoxStack" );
+    m_pListBoxStack->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, m_pListBoxStack->sizePolicy().hasHeightForWidth() ) );
+
+    m_pTableVariables = new QTable( splitter4, "m_pTableVariables" );
+    m_pTableVariables->setNumCols( m_pTableVariables->numCols() + 1 );
+    m_pTableVariables->horizontalHeader()->setLabel( m_pTableVariables->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableVariables->setNumCols( m_pTableVariables->numCols() + 1 );
+    m_pTableVariables->horizontalHeader()->setLabel( m_pTableVariables->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableVariables->setNumCols( m_pTableVariables->numCols() + 1 );
+    m_pTableVariables->horizontalHeader()->setLabel( m_pTableVariables->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableVariables->setNumRows( 0 );
+    m_pTableVariables->setNumCols( 3 );
+
+    KPGDebuggerBaseLayout->addWidget( splitter4, 0, 0 );
+    languageChange();
+    resize( QSize(544, 508).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDebuggerBase::~KPGDebuggerBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDebuggerBase::languageChange()
+{
+    setCaption( tr2i18n( "Function debugger" ) );
+    m_pTableVariables->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableVariables->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableVariables->horizontalHeader()->setLabel( 2, tr2i18n( "Value" ) );
+}
+
+#include "kpgdebuggerbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,118 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDebuggerBase</class>
+<comment>PL pg/SQL debugger window</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDebuggerBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>544</width>
+            <height>508</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Function debugger</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QSplitter" row="0" column="0">
+            <property name="name">
+                <cstring>splitter4</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <widget class="QSplitter">
+                <property name="name">
+                    <cstring>splitter3</cstring>
+                </property>
+                <property name="orientation">
+                    <enum>Horizontal</enum>
+                </property>
+                <widget class="QFrame">
+                    <property name="name">
+                        <cstring>m_pFrameSourceCode</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>5</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                    <property name="minimumSize">
+                        <size>
+                            <width>300</width>
+                            <height>300</height>
+                        </size>
+                    </property>
+                    <property name="frameShape">
+                        <enum>StyledPanel</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Plain</enum>
+                    </property>
+                    <property name="lineWidth">
+                        <number>0</number>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                    </grid>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxStack</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>7</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                </widget>
+            </widget>
+            <widget class="QTable">
+                <column>
+                    <property name="text">
+                        <string>Name</string>
+                    </property>
+                </column>
+                <column>
+                    <property name="text">
+                        <string>Type</string>
+                    </property>
+                </column>
+                <column>
+                    <property name="text">
+                        <string>Value</string>
+                    </property>
+                </column>
+                <property name="name">
+                    <cstring>m_pTableVariables</cstring>
+                </property>
+                <property name="numRows">
+                    <number>0</number>
+                </property>
+                <property name="numCols">
+                    <number>3</number>
+                </property>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Implementation: kpgdebuggerchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdebuggerchildview.h"
+
+#include <qlayout.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "kpgdebugger.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgfunction.h"
+
+KPGDebuggerChildView::KPGDebuggerChildView(KPoGreView *pPoGreView,
+	KParts::Factory* pKatePartFactory,
+	KXMLGUIFactory * pXmlGuiFactory,
+	KPGConnection * pConnection, 
+	const QString & strNamespace, 
+	KPGFunction *pFunction
+	)
+ : KMdiChildView(i18n("Debugger"), pPoGreView, "KPGExecutorChildView")
+{
+	m_pPoGreView = pPoGreView;
+	
+	QBoxLayout* pLayout = new QHBoxLayout(this, 0, -1, "layout" );
+	m_pDebugger = new KPGDebugger(this, 
+		pPoGreView,
+		pKatePartFactory,
+		pXmlGuiFactory,
+		pConnection, 
+		strNamespace, 
+		pFunction);
+
+	pLayout->addWidget(m_pDebugger);
+	
+	setIcon(SmallIcon("kpg_debugger"));
+}
+
+
+KPGDebuggerChildView::~KPGDebuggerChildView()
+{
+}
+
+// Add QueryResultChildView and its Kate GUI client to factory
+void KPGDebuggerChildView::slotActivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pDebugger->addToGuiFactory();
+}
+
+// Remove QueryResultChildView and its Kate GUI client from factory
+void KPGDebuggerChildView::slotDeactivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pDebugger->removeFromGuiFactory();
+}
+
+bool KPGDebuggerChildView::requestClose()
+{
+	if(KMessageBox::questionYesNo(this, i18n("Really close debugger window ?")) == KMessageBox::Yes) 
+	{
+		return true;
+	}
+	return false;
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Debugger/kpgdebuggerchildview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+//
+// C++ Interface: kpgdebuggerchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDEBUGGERCHILDVIEW_H
+#define KPGDEBUGGERCHILDVIEW_H
+
+#include <kmdichildview.h>
+#include <kparts/factory.h> // KPart Factory
+
+class KXMLGUIFactory;
+
+class QBoxLayout;
+class KPoGreView;
+class KPGDebugger;
+class KPGConnection;
+class KPGFunction;
+
+
+/**
+  * MDI child window for PL/pgSQL debugger (not implemented yet ...)
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDebuggerChildView : public KMdiChildView
+{
+	Q_OBJECT
+public:
+    KPGDebuggerChildView(KPoGreView *, KParts::Factory *, KXMLGUIFactory *, KPGConnection *, const QString &, KPGFunction *);
+    ~KPGDebuggerChildView();
+
+    KPGDebugger* getDebugger() const { return m_pDebugger; }
+
+	// Return true, if window can be closed
+	bool requestClose();
+	
+private:
+	// PL/pgSQL debugger child window
+	KPGDebugger*	m_pDebugger;
+	
+	QBoxLayout* m_pLayout;
+	KPoGreView* m_pPoGreView;
+
+public slots:
+
+	// Add KPGDebugger GUI client and its Kate GUI client to factory
+	void slotActivated();
+
+	// Remove KPGDebugger GUI client and its Kate GUI client from factory
+	void slotDeactivated();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,10 @@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+METASOURCES = AUTO
+libExecutor_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libExecutor.la
+
+noinst_HEADERS = kpgexecutorchildview.h kpgexecutor.h
+
+libExecutor_la_SOURCES = kpgexecutorchildview.cpp kpgexecutorbase.ui \
+	kpgexecutor.cpp
+libExecutor_la_LIBADD = $(PQXX_LIBS)

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,745 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/Executor
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libExecutor_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libExecutor_la_OBJECTS = kpgexecutorchildview.lo kpgexecutor.lo
+#>- libExecutor_la_OBJECTS = $(am_libExecutor_la_OBJECTS)
+#>+ 5
+libExecutor_la_final_OBJECTS = libExecutor_la.all_cpp.lo 
+libExecutor_la_nofinal_OBJECTS = kpgexecutorchildview.lo kpgexecutor.lo kpgexecutorbase.lo\
+kpgexecutor.moc.lo kpgexecutorchildview.moc.lo 
+ at KDE_USE_FINAL_FALSE@libExecutor_la_OBJECTS = $(libExecutor_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libExecutor_la_OBJECTS = $(libExecutor_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libExecutor_la_SOURCES)
+DIST_SOURCES = $(libExecutor_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+#>- METASOURCES = AUTO
+libExecutor_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libExecutor.la
+noinst_HEADERS = kpgexecutorchildview.h kpgexecutor.h
+#>- libExecutor_la_SOURCES = kpgexecutorchildview.cpp kpgexecutorbase.ui \
+#>- 	kpgexecutor.cpp
+#>+ 2
+libExecutor_la_SOURCES=kpgexecutorchildview.cpp  \
+	kpgexecutor.cpp kpgexecutorbase.cpp
+
+libExecutor_la_LIBADD = $(PQXX_LIBS)
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Executor/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/Executor/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Executor/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Executor/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Executor/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libExecutor.la: $(libExecutor_la_OBJECTS) $(libExecutor_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libExecutor_la_LDFLAGS) $(libExecutor_la_OBJECTS) $(libExecutor_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgexecutor.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgexecutorchildview.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgexecutor.moc.cpp: $(srcdir)/kpgexecutor.h
+	$(MOC) $(srcdir)/kpgexecutor.h -o kpgexecutor.moc.cpp
+
+#>+ 2
+mocs: kpgexecutor.moc.cpp
+
+#>+ 3
+kpgexecutorchildview.moc.cpp: $(srcdir)/kpgexecutorchildview.h
+	$(MOC) $(srcdir)/kpgexecutorchildview.h -o kpgexecutorchildview.moc.cpp
+
+#>+ 2
+mocs: kpgexecutorchildview.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgexecutor.moc.cpp kpgexecutorchildview.moc.cpp
+
+#>+ 2
+KDE_DIST=Makefile.in kpgexecutorbase.ui Makefile.am 
+
+#>+ 4
+clean-ui:
+	-rm -f \
+	kpgexecutorbase.cpp kpgexecutorbase.h kpgexecutorbase.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Executor/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Executor/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Executor/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libExecutor_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgexecutorchildview.cpp $(srcdir)/kpgexecutor.cpp $(srcdir)/kpgexecutorbase.cpp kpgexecutor.moc.cpp kpgexecutorchildview.moc.cpp  kpgexecutorbase.moc
+	@echo 'creating libExecutor_la.all_cpp.cpp ...'; \
+	rm -f libExecutor_la.all_cpp.files libExecutor_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libExecutor_la.all_cpp.final; \
+	for file in kpgexecutorchildview.cpp kpgexecutor.cpp kpgexecutorbase.cpp kpgexecutor.moc.cpp kpgexecutorchildview.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libExecutor_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libExecutor_la.all_cpp.final; \
+	done; \
+	cat libExecutor_la.all_cpp.final libExecutor_la.all_cpp.files > libExecutor_la.all_cpp.cpp; \
+	rm -f libExecutor_la.all_cpp.final libExecutor_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libExecutor_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libExecutor_la_OBJECTS="$(libExecutor_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libExecutor_la_OBJECTS="$(libExecutor_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libExecutor_la_OBJECTS="$(libExecutor_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libExecutor_la_OBJECTS="$(libExecutor_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 5
+nmcheck: 
+$(srcdir)/kpgexecutor.cpp: kpgexecutorbase.h 
+$(srcdir)/kpgexecutorchildview.cpp: kpgexecutorbase.h 
+nmcheck-am: nmcheck
+
+#>+ 15
+kpgexecutorbase.cpp: $(srcdir)/kpgexecutorbase.ui kpgexecutorbase.h kpgexecutorbase.moc
+	rm -f kpgexecutorbase.cpp
+	echo '#include <kdialog.h>' > kpgexecutorbase.cpp
+	echo '#include <klocale.h>' >> kpgexecutorbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgexecutorbase.h $(srcdir)/kpgexecutorbase.ui > kpgexecutorbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgexecutorbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgexecutorbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgexecutorbase.cpp ;\
+	rm -f kpgexecutorbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgexecutorbase.moc"' >> kpgexecutorbase.cpp; else rm -f kpgexecutorbase.cpp ; exit $$ret ; fi
+
+kpgexecutorbase.h: $(srcdir)/kpgexecutorbase.ui
+	rm -rf kpgexecutorbase.h;
+	$(UIC) $(srcdir)/kpgexecutorbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgexecutorbase.h ;
+kpgexecutorbase.moc: kpgexecutorbase.h
+	$(MOC) kpgexecutorbase.h -o kpgexecutorbase.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,766 @@
+//
+// C++ Implementation: kpgexecutor
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgexecutor.h"
+
+// include files for Qt
+#include <qtable.h>
+#include <qwidgetstack.h> 
+#include <qtextcodec.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kcursor.h>
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kfinddialog.h>
+#include <kfind.h>
+
+// application specific includes
+#include "../kpgutil.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../kpgsqldialog.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "kpgexecutorchildview.h"
+
+#define NUM_OF_RECORDS_PER_PAGE 500 // How many records are loaded to result table 
+
+#define COL_NAME 0
+#define COL_TYPE_NAME 1
+#define COL_MODE 2
+#define COL_VALUE 3
+
+KPGExecutor::KPGExecutor(KPGExecutorChildView *parent,
+	KPoGreView *pPoGreView,
+	KXMLGUIFactory *pXmlGuiFactory,
+	KPGConnection * pConnection, 
+	const QString & strNamespaceName, 
+	KPGFunction *pFunction)  // TODO passing pointer is dangerous, function may be dropped !
+	: 
+	KXMLGUIClient(pPoGreView),
+	KPGExecutorBase(parent, "Executor"),
+ 	m_pFind(0)
+{
+	m_pConnection = pConnection;
+	m_strNamespaceName = strNamespaceName;
+	m_strFunctionName = pFunction->text(0);
+	
+	// Setup GUI
+	setXMLFile("kpgexecutor.rc", true);
+	m_pXmlGuiFactory = pXmlGuiFactory;
+	m_bIsAddedToGuiFactory = false;
+
+	//-----------------------------------------------------------------
+	// Executor actions       
+	m_pActExecute = new KAction(i18n("Execute"), "exec", Key_F8, this, SLOT(slotExecute()), actionCollection(), "executor_execute");
+	
+	m_pActStop = new KAction(i18n("Stop"), "stop", 0, this, SLOT(slotStop()), actionCollection(), "executor_stop");
+  	
+  	m_pActFetchNext = new KAction(i18n("Fetch &next"), "1downarrow", 0, this, SLOT(slotFetchNext()), actionCollection(), "executor_fetch_next");
+	
+	m_pActFetchAll = new KAction(i18n("Fetch &all"), "2downarrow", 0, this, SLOT(slotFetchAll()), actionCollection(), "executor_fetch_all");
+	
+	m_pActFindInResult = new KAction(i18n("&Find in result..."), "find", 0, this, SLOT(slotFindInResult()), actionCollection(), "edit_find_in_result");
+	m_pActFindInResult->setWhatsThis(i18n("Find in result table."));
+	
+	m_pActFindNextInResult = new KAction(i18n("Find next in result"), "next", 0, this, SLOT(slotFindNextInResult()), actionCollection(), "edit_find_next_in_result");
+	m_pActFindNextInResult->setWhatsThis(i18n("Find next in result table."));
+    
+    //-----------------------------------------------------------------
+	// Common clipboard actions
+	m_pActCopyCell = new KAction(i18n("&Copy cell"), "editcopy", 0, this, SLOT(slotCopyCell()), actionCollection(), "copy_cell");
+	
+	m_pActCopyRow = new KAction(i18n("Copy &row"), 0, 0, this, SLOT(slotCopyRow()), actionCollection(), "copy_row");
+	
+	m_pActCopyTableCsv = new KAction(i18n("Copy table to C&SV"), 0, 0, this, SLOT(slotCopyTableCsv()), actionCollection(), "copy_table_csv");
+	
+	m_pActCopyTableXml = new KAction(i18n("Copy table to &XML"), 0, 0, this, SLOT(slotCopyTableXml()), actionCollection(), "copy_table_xml");
+    
+    //-----------------------------------------------------------------
+    connect(m_pTableResult, SIGNAL(contextMenuRequested(int, int, const QPoint &)), this, SLOT(slotContextMenuRequested(int, int, const QPoint &)));
+    
+    //-----------------------------------------------------------------
+	// Make own copy of arguments info
+	m_listArguments = pFunction->listArguments();
+	
+	// Set-up parameters table
+	if(pFunction->listArguments().count() > 0)
+	{
+		m_pTableParameters->setNumRows(pFunction->listArguments().count());
+		int nRow = 0;
+		
+		for(KPGFunction::ListArguments::const_iterator cit = pFunction->listArguments().begin(); cit != pFunction->listArguments().end(); ++cit)
+		{ 
+			m_pTableParameters->setText(nRow, COL_NAME, (*cit).name());
+			
+			if((*cit).typName().length() > 0)
+			{
+				m_pTableParameters->setText(nRow, COL_TYPE_NAME, (*cit).typName());
+				
+				QPixmap *pTypePixmap = KPGTableColumn::getPixmapForType((*cit).typName());
+				m_pTableParameters->setPixmap(nRow, COL_NAME, *pTypePixmap);
+			}
+			
+			
+			if((*cit).mode() == "i") m_pTableParameters->setText(nRow, COL_MODE, "IN");
+			else if((*cit).mode() == "o") m_pTableParameters->setText(nRow, COL_MODE, "OUT");
+			else if((*cit).mode() == "b") m_pTableParameters->setText(nRow, COL_MODE, "INOUT");
+			nRow++;
+		}
+	}
+	
+	m_pTableParameters->setColumnReadOnly(0, true);
+	m_pTableParameters->setColumnReadOnly(1, true);
+	m_pTableParameters->setColumnReadOnly(2, true);
+	
+	m_ConnectionInThread.setEventReceiver(this, &m_pqxxResult);
+	m_ConnectionInThread.setOperationType(KPGConnectionInThread::eRunPreparedStatement);
+	
+	m_nTotalRows = 0;
+	m_nTotalCols = 0;
+	m_nFetchedRows = 0;
+	
+	m_pActExecute->setEnabled(true);
+    m_pActStop->setEnabled(false);
+    m_pActFetchNext->setEnabled(false); 
+    m_pActFetchAll->setEnabled(false);
+}
+
+KPGExecutor::~KPGExecutor()
+{
+	if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+
+	removeFromGuiFactory();
+}
+
+// Add yourself to GUI factory
+void KPGExecutor::addToGuiFactory()
+{
+	if(!m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->addClient(this);
+        m_bIsAddedToGuiFactory = true;
+    }
+}
+    
+// Remove yourself from GUI factory
+void KPGExecutor::removeFromGuiFactory()
+{
+    if(m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->removeClient(this);
+        m_bIsAddedToGuiFactory = false;
+    }
+}
+
+// Display popup menu
+void KPGExecutor::slotContextMenuRequested(int, int, const QPoint &pos)
+{
+	QWidget * pContainer = m_pXmlGuiFactory->container("popupExecutorTable", this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name popupQueryResultTable" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}
+
+void KPGExecutor::slotExecute()
+{
+    executeFunction(); 
+}
+
+void KPGExecutor::slotStop()
+{
+    stopExecute(); 
+}
+
+void KPGExecutor::slotFetchNext()
+{
+    fetchNext();
+}
+
+void KPGExecutor::slotFetchAll()
+{
+    fetchAll();     
+}
+
+// Find first occurence of text in result table  
+void KPGExecutor::slotFindInResult()
+{
+    findInResultFirst(m_listOfResultQuerySearchHistory);     
+}
+
+// Find next occurence of text in result table  
+void KPGExecutor::slotFindNextInResult()
+{
+    findInResultNext();     
+}
+
+void KPGExecutor::slotCopyCell()
+{
+	KPGUtil::copyCell(m_pTableResult);
+}
+
+void KPGExecutor::slotCopyRow()
+{
+	KPGUtil::copyRow(m_pTableResult);
+}
+
+void KPGExecutor::slotCopyTableCsv()
+{
+	KPGUtil::copyTableCsv(m_pTableResult);
+}
+
+void KPGExecutor::slotCopyTableXml()
+{
+	KPGUtil::copyTableXml(m_pTableResult);
+}
+
+void KPGExecutor::updateActions()
+{
+	//emit sigExecutorStateChanged(this);
+}
+
+bool KPGExecutor::resultEmpty() const
+{ 
+	return m_pTableResult->numRows() == 0; 
+}
+
+void KPGExecutor::executeFunction()
+{
+	// clear previous result
+	m_pTableResult->setNumRows(0);
+	m_pTableResult->setNumCols(0);
+	m_pTextEditResult->clear();
+	m_pTextLabelExecutionTime->setText("");
+	m_pqxxResult.clear(); // free memory
+		
+	int iTransType = m_pComboBoxTransaction->currentItem();
+	KPGConnection::ETransType transType = KPGConnection::eTransNormal;
+	switch(iTransType)
+	{
+		case 0: transType = KPGConnection::eTransNormal;
+				break;
+				
+		case 1: transType = KPGConnection::eTransRobust;
+				break;
+				
+		case 2: transType = KPGConnection::eTransNone;
+				break;
+	}
+	
+	QString strConectionString( );
+	
+	// Run connection in thread
+	m_ConnectionInThread.disconnectFromServer(); // close connection if any
+	
+	m_pTableParameters->setEnabled(false);
+	m_pComboBoxTransaction->setEnabled(false);
+	//emit sigSetTerminalIcon(this, 1); // red terminal icon
+	((QWidget *) parent())->setCursor(KCursor::waitCursor());
+		
+	m_pActExecute->setEnabled(false);
+    m_pActStop->setEnabled(true);
+    m_pActFetchNext->setEnabled(false); 
+    m_pActFetchAll->setEnabled(false);
+    m_pActFindInResult->setEnabled(false); 
+    m_pActFindNextInResult->setEnabled(false);
+	
+	try
+	{
+		m_ConnectionInThread.connectToServer(m_pConnection->options());
+	}
+	catch (const std::exception &e)
+    {
+        kdError() << "Failed to open connection " << e.what() << endl;
+        KMessageBox::sorry(this, e.what());
+        return;
+    }
+	
+	bool bSuccess = runSql(transType);
+	if(!bSuccess)
+	{
+		m_pActExecute->setEnabled(true);
+		m_pActStop->setEnabled(false);
+		m_pTableParameters->setEnabled(true);
+		m_pComboBoxTransaction->setEnabled(true);
+	}
+}
+
+void KPGExecutor::customEvent(QCustomEvent *pEvent)
+{
+	KPGQueryResultEvent *pQueryResultEvent = static_cast <KPGQueryResultEvent *> (pEvent);
+	
+	//kdDebug() << QString("Result size is: %1").arg(m_pqxxResult.size()) << endl;
+	
+	// Display result
+	if(m_pqxxResult.size() > 0)
+	{
+		displayExecutionTime(pQueryResultEvent->executionMiliseconds());   
+		displayResult(); 
+		m_pWidgetStackResults->raiseWidget(0);
+	}
+	else
+	{
+		m_nTotalRows = 0;
+		m_nTotalCols = 0;
+	
+		if(pQueryResultEvent->error().isEmpty() == false)
+		{
+			m_pTextEditResult->setText(pQueryResultEvent->error());
+		}
+		else
+		{
+			displayExecutionTime(pQueryResultEvent->executionMiliseconds());      
+			
+			if(pQueryResultEvent->connection()->notifications().count() > 0)
+			{
+				m_pTextEditResult->setText(pQueryResultEvent->connection()->notifications().join(""));
+				pQueryResultEvent->connection()->clearNotifications();
+			}
+			else  
+			{
+				m_pTextEditResult->setText(i18n("Operation successfull"));
+			}
+		}
+		m_pWidgetStackResults->raiseWidget(1); 
+	}
+	
+	m_pTableParameters->setEnabled(true);
+	m_pComboBoxTransaction->setEnabled(true);
+	//emit sigSetTerminalIcon(this, 2); // blue terminal icon
+	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	
+	m_ConnectionInThread.wait();
+		
+	m_pActExecute->setEnabled(true);
+    m_pActStop->setEnabled(false);
+    
+    m_pActFetchNext->setEnabled((fetchedAllRows()) ? false : true); 
+    m_pActFetchAll->setEnabled((fetchedAllRows()) ? false : true);
+    m_pActFindInResult->setEnabled((resultEmpty()) ?  false : true); 
+}
+
+void KPGExecutor::stopExecute()
+{
+	if(m_ConnectionInThread.running ())
+	{
+		m_ConnectionInThread.terminate();
+		m_ConnectionInThread.wait();
+		m_ConnectionInThread.leaveConnection();
+		
+		m_pTextEditResult->setText(i18n("Operation terminated"));
+		m_pWidgetStackResults->raiseWidget(1); 
+		
+		m_pTableParameters->setEnabled(true);
+		m_pComboBoxTransaction->setEnabled(true);
+		//emit sigSetTerminalIcon(this, 0); // black terminal icon
+		//m_bQueryTextChanged = false;
+		
+		m_pActExecute->setEnabled(true);
+        m_pActStop->setEnabled(false);
+        m_pActFetchNext->setEnabled(false); 
+        m_pActFetchAll->setEnabled(false);
+        		
+		m_pqxxResult.clear(); // free memory
+		m_nTotalRows = 0;
+		m_nTotalCols = 0;
+		
+		((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	} 
+}
+
+
+void KPGExecutor::displayExecutionTime(int iMiliseconds)
+{
+    int hour = 0; int min = 0; int sec = 0;
+    int milis = iMiliseconds;
+    while(milis >= 1000)
+    {
+      milis -= 1000;
+      sec++;
+    }
+    while(sec >= 60)
+    {
+      sec -=60;
+      min++;
+    }
+    while(min >= 60)
+    {
+      min -= 60;
+      hour++;
+    }
+    
+    QString execTime;
+    if(hour > 0) execTime.append(QString("%1 h :").arg(hour));
+    execTime.append(QString("%1 m : ").arg(min));
+    execTime.append(QString("%1 s : ").arg(sec));
+    execTime.append(QString("%1 ms").arg(milis));
+      
+    m_pTextLabelExecutionTime->setText(execTime);
+}
+
+// Display SQL result
+void KPGExecutor::displayResult()
+{
+	// Fill output area with query result
+	m_nTotalRows = m_pqxxResult.size();
+	m_nTotalCols = m_pqxxResult.columns();
+	m_nFetchedRows = 0;
+	bool bAllRowsFetched = true;
+		
+	m_pTableResult->setNumRows(min(m_nTotalRows, NUM_OF_RECORDS_PER_PAGE));
+	m_pTableResult->setNumCols(m_nTotalCols);
+	
+	// Field names
+	QHeader* hHeader = m_pTableResult->horizontalHeader();
+	
+	for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+	{
+		hHeader->setLabel(nCol, m_pqxxResult.column_name(nCol));
+	}
+	
+	
+	// Data
+	for(unsigned int nRow = 0; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pConnection->textCodec()->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+		if(nRow + 1 >= NUM_OF_RECORDS_PER_PAGE)
+		{
+			bAllRowsFetched = false;
+			break;
+		}
+	}
+	
+	for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+	{
+		m_pTableResult->adjustColumn(nCol);
+	}
+	
+	if(bAllRowsFetched) m_pqxxResult.clear(); // free memory
+}
+
+// Fetch next X rows from large result
+void KPGExecutor::fetchNext()
+{
+	unsigned int nRows = m_nTotalRows - m_nFetchedRows;
+	nRows = min(nRows, NUM_OF_RECORDS_PER_PAGE);
+	m_pTableResult->setNumRows(nRows + m_pTableResult->numRows());
+	
+	// Data
+	unsigned int nRow = m_nFetchedRows;
+	unsigned int nFetchedRows = 0;
+	
+	for(; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pConnection->textCodec()->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+		nFetchedRows++;
+		if(nFetchedRows >= NUM_OF_RECORDS_PER_PAGE)
+		{
+			m_pActFetchNext->setEnabled(true); 
+            m_pActFetchAll->setEnabled(true);
+            break;
+		}
+	}
+	
+	if(nRow == m_nTotalRows)
+	{
+		m_pActFetchNext->setEnabled(false); 
+        m_pActFetchAll->setEnabled(false);
+		m_pqxxResult.clear(); // free memory
+	}
+}
+  
+// Fetch all rows from large result  
+void KPGExecutor::fetchAll()
+{
+	unsigned int nRows = m_nTotalRows - m_nFetchedRows;
+	
+	if(nRows > 10000)
+	{ 
+		if( KMessageBox::questionYesNo(this, QString("There are %1 rows in result. Fething them may take long time and much anmount of memory. Continue ?").arg(nRows)) != KMessageBox::Yes )
+		{
+			return;
+		}
+	}
+	
+	((QWidget *) parent())->setCursor(KCursor::waitCursor());
+	m_pTableResult->setNumRows(nRows + m_pTableResult->numRows());
+	
+	// Data
+	unsigned int nRow = m_nFetchedRows;
+	for(; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pConnection->textCodec()->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+	}
+	
+	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	
+	m_pActFetchNext->setEnabled(false); 
+    m_pActFetchAll->setEnabled(false);
+    
+	m_pqxxResult.clear(); // free memory
+}  
+
+// Create prepared statement for SQL SELECT operation
+void KPGExecutor::prepareSelectStatement(const std::string &stdstrPrepStmtName)
+{
+    QString strSql;
+    
+    if(m_pCheckBoxExplain->isChecked())
+    {
+    	strSql.append("EXPLAIN ");
+    
+    	if(m_pCheckBoxAnalyze->isChecked())
+    		strSql.append("ANALYZE ");
+    		
+		if(m_pCheckBoxVerbose->isChecked())
+			strSql.append("VERBOSE ");
+    }
+    
+    strSql.append("SELECT * FROM ");
+    strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strFunctionName));
+            
+    strSql.append("(");        
+    
+    int nRows = m_pTableParameters->numRows();
+    for(int i = 0; i < nRows; i++)
+    {
+    	if(i > 0) strSql.append(", ");
+    	
+    	if((m_pTableParameters->text(i, COL_VALUE) == QString::null) || m_pTableParameters->text(i, COL_VALUE).isEmpty())
+        {
+        	strSql.append("NULL");
+        }
+        else
+        {
+        	strSql.append(QString("$%1").arg(i + 1));
+        }
+    }
+    
+    strSql.append(")"); 
+    
+    kdDebug() << strSql << endl;
+    
+    pqxx::prepare::declaration pqxxPrepDecl = m_ConnectionInThread.connection()->prepare(stdstrPrepStmtName, strSql);
+    
+    // Add declaring parameters to prepared statements
+    for(int i = 0; i < nRows; i++)
+    {
+    	if((m_pTableParameters->text(i, COL_VALUE) != QString::null) && m_pTableParameters->text(i, COL_VALUE).isEmpty() == false)
+        {
+        	m_pConnection->setPrepareDeclaration(pqxxPrepDecl, m_listArguments[i].typName());
+        }
+    }
+}
+
+// Run SQL to execute function on DB server
+bool KPGExecutor::runSql(KPGConnection::ETransType transType)
+{
+	m_ConnectionInThread.setPrepStatementName("S_" + KPGUtil::unspacedName(m_strNamespaceName) + "_" + KPGUtil::unspacedName(m_strFunctionName), transType); 
+
+	try
+	{
+		prepareSelectStatement(m_ConnectionInThread.prepStatementName()); 
+	}
+	catch(const std::exception &e)
+	{
+		m_pTextEditResult->setText(e.what());
+		m_pWidgetStackResults->raiseWidget(1); 
+
+		return false;
+	} 
+	
+	//***********************
+	ListArgumentsWithValues listArgumentsWithValues;
+			
+	int currentArg = 0;
+	for(KPGFunction::ListArguments::iterator it = m_listArguments.begin(); it != m_listArguments.end(); ++it)
+	{ 
+		if((m_pTableParameters->text(currentArg, COL_VALUE) == QString::null) 
+				|| m_pTableParameters->text(currentArg, COL_VALUE).isEmpty()) continue;
+					
+		listArgumentsWithValues.append(KPGFunctionArgumentWithValue(currentArg + 1, m_listArguments[currentArg].name(), m_listArguments[currentArg].mode(), m_listArguments[currentArg].typName(), m_pTableParameters->text(currentArg, COL_VALUE)));
+				
+		currentArg++;
+	}
+	
+	m_ConnectionInThread.setPrepStatementArgumentValues(listArgumentsWithValues); 
+	m_ConnectionInThread.start();
+	
+	return true;
+}
+
+void KPGExecutor::slotExplainToggled(bool bToggled)
+{
+	m_pCheckBoxAnalyze->setEnabled(bToggled && m_listArguments.count() == 0);
+	m_pCheckBoxVerbose->setEnabled(bToggled);
+}
+
+// Find first occurence of text in result table
+void KPGExecutor::findInResultFirst(QStringList &listOfSearchHistory)
+{
+    KFindDialog dlg(this, "", 0, listOfSearchHistory, false);
+    dlg.setHasCursor(false);
+        
+    int c = dlg.exec();
+    
+    if(c != QDialog::Accepted)
+        return;
+
+    listOfSearchHistory = dlg.findHistory();
+        
+    
+    if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+    m_pFind = new KFind(dlg.pattern(), dlg.options(), this);
+
+    // Connect highlight signal to code which handles highlighting
+    // of found text.
+    connect( m_pFind, SIGNAL( highlight( const QString &, int, int ) ),
+             this, SLOT( slotHighlight( const QString &, int, int ) ) );
+             
+    // Connect findNext signal - called when pressing the button in the dialog
+    connect( m_pFind, SIGNAL( findNext() ), this, SLOT( slotFindInResultNext() ) );
+
+    m_iRowToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? m_pTableResult->numRows() - 1 : 0;
+    m_iColToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? m_pTableResult->numCols() - 1 : 0;
+    m_pFind->setData(m_pTableResult->text(m_iRowToSearch, m_iColToSearch));
+
+    slotFindInResultNext();
+}
+
+// Find next occurence of text in result table
+void KPGExecutor::findInResultNext()
+{
+    m_iRowToSearch = m_pTableResult->currentRow();
+	m_iColToSearch = m_pTableResult->currentColumn();
+	if(m_iRowToSearch < 0) return;
+	if(m_iColToSearch < 0) return;
+	
+	slotFindInResultNext();
+}
+
+// Find next occurence of text
+void KPGExecutor::slotFindInResultNext()
+{
+	if (!m_pFind) // shouldn't be called before find is activated
+        return;
+
+    KFind::Result res = KFind::NoMatch;
+    while ( res == KFind::NoMatch &&
+    		((m_pFind->options() & KFindDialog::FindBackwards) ? 
+    				(m_iRowToSearch >= 0) : (m_iRowToSearch < m_pTableResult->numRows())
+    		) 
+          ) 
+    	{
+    		//kdDebug() << "searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+        	
+        	Q_ASSERT(m_iRowToSearch >= 0);
+            Q_ASSERT(m_iRowToSearch < m_pTableResult->numRows());
+            Q_ASSERT(m_iColToSearch >= 0);
+            Q_ASSERT(m_iColToSearch < m_pTableResult->numCols());
+            	
+        	if(m_pFind->needData()) 
+        	{
+            	m_pFind->setData(m_pTableResult->text(m_iRowToSearch, m_iColToSearch));
+        	}
+        
+        	// Let KFind inspect the text fragment, and display a dialog if a match is found
+        	res = m_pFind->find();
+        
+        	if( res == KFind::NoMatch ) 
+        	{
+            	if((m_pFind->options() & KFindDialog::FindBackwards))
+            	{
+            		if(m_iColToSearch == 0)
+            		{
+            			m_iColToSearch = m_pTableResult->numCols() - 1;
+            			m_iRowToSearch--;
+            		}
+            		else
+            		{
+            			m_iColToSearch--;
+            		}
+            	}
+            	else
+            	{
+            		if(m_iColToSearch == m_pTableResult->numCols() - 1)
+            		{
+            			m_iColToSearch = 0;
+            			m_iRowToSearch++;
+            		}
+            		else
+            		{
+            			m_iColToSearch++;
+            		}
+            	}
+        	}
+        	//kdDebug() << "2searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+		}
+
+    if( res == KFind::NoMatch ) 
+    { // i.e. at end
+        m_pFind->displayFinalDialog();
+        m_pFind->resetCounts();
+        m_pTableResult->removeSelection(0);
+    }
+}
+
+// Highligth found text
+void KPGExecutor::slotHighlight( const QString &, int, int)
+{
+    //kdDebug() << "highlight: " << index << " " << length << endl;
+    m_pTableResult->setCurrentCell(m_iRowToSearch, m_iColToSearch);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutor.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,196 @@
+//
+// C++ Interface: kpgexecutor
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGEXECUTOR_H
+#define KPGEXECUTOR_H
+
+#include "kpgexecutorbase.h"
+
+#include <kxmlguiclient.h>
+
+#include "../kpgconnectioninthread.h"
+#include "../kpgactionsstates.h"
+
+class KFind;
+class KXMLGUIFactory;
+
+class KPoGreView;
+class KPGConnection;
+class KPGDatabase;
+class KPGFunction;
+class KPGExecutorChildView;
+
+/**
+  * Function executor window
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGExecutor : public KPGExecutorBase, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public:
+    KPGExecutor(KPGExecutorChildView *, KPoGreView *, KXMLGUIFactory *, KPGConnection *, const QString &, 
+	KPGFunction *);
+    ~KPGExecutor();
+
+	// Add yourself to GUI factory
+    void addToGuiFactory();
+    
+    // Remove yourself from GUI factory
+    void removeFromGuiFactory();
+
+	// Get actions state
+    //const ExecutorActions & executorActions() const { return m_executorActions; }
+    
+    // Force update actions
+    void updateActions();
+    
+    // Returns QTable with result
+  	QTable *tableResult() const { return m_pTableResult; }
+    
+    // Signalize, if result contain at least one row
+	bool resultEmpty() const;
+    
+    // Is all rows fetched from resultset do m_pTableResult ?
+  	bool fetchedAllRows() const { return m_nTotalRows == m_nFetchedRows;  }
+    
+    // Execute function
+	void executeFunction();
+	
+	// Terminate thread that run SQL query
+	void stopExecute();
+	
+	// Returns TRUE if the connection thread is running; otherwise returns FALSE.
+	bool running() const { return  m_ConnectionInThread.running(); }
+		
+	// Get connection.
+	KPGConnection* connection() const { return m_pConnection; }
+	
+	// Fetch next X rows from large result
+	void fetchNext();
+	
+	// Fetch all rows from large result  
+	void fetchAll();
+
+	// Find first occurence of text in result table
+	void findInResultFirst(QStringList &);
+		
+	// Find next occurence of text in result table
+	void findInResultNext();
+	
+protected:
+   
+    // Receive event from KPGConnectionInThread
+    virtual void customEvent(QCustomEvent *);
+
+    // Display SQL result
+    void displayResult();  
+    
+    // Display query execution time
+    void displayExecutionTime(int);
+    
+    // Prepare SQL statement
+    void prepareSelectStatement(const std::string &);
+             
+    // Run SQL to execute function on DB server
+    bool runSql(KPGConnection::ETransType);
+
+private:
+	int max(int a, int b) { return a > b ? a : b; }
+	int min(int a, int b) { return a < b ? a : b; }
+		
+protected slots:
+	
+	//--- Executor actions
+    void slotExecute();
+    void slotStop();
+    void slotFetchNext();
+    void slotFetchAll();
+    void slotFindInResult();
+    void slotFindNextInResult();
+    
+    //--- Common clibpoard actions
+    void slotCopyCell();
+    void slotCopyRow();
+    void slotCopyTableCsv();
+    void slotCopyTableXml();
+	
+	// Display popup menu
+	void slotContextMenuRequested(int, int, const QPoint &);
+	
+	virtual void slotExplainToggled(bool);
+	
+	// Find next occurence of text
+    void slotFindInResultNext();
+    
+    // Highligth found text
+    void slotHighlight( const QString &, int, int);
+	
+protected:
+	    
+	// Executor actions
+    KAction* m_pActExecute;
+	KAction* m_pActStop;
+    KAction* m_pActFetchNext;
+    KAction* m_pActFetchAll;
+    KAction* m_pActFindInResult;
+    KAction* m_pActFindNextInResult;
+    
+    // Common clipboard actions
+    KAction* m_pActCopyCell;
+	KAction* m_pActCopyRow;
+	KAction* m_pActCopyTableCsv;
+	KAction* m_pActCopyTableXml;
+
+	// XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // True, if this is in GUI factory
+    bool m_bIsAddedToGuiFactory;
+
+    // Connection to database
+    KPGConnection* m_pConnection;
+    
+    // Database function to execute
+    QString m_strFunctionName;
+    
+    // Function namespace
+    QString m_strNamespaceName;
+        	
+	// List of argument informations, available since PostgreSQL 8.1
+	KPGFunction::ListArguments m_listArguments;
+    
+    // State of actions - enable or disabled
+    //ExecutorActions m_executorActions;
+    
+    // Thread that run queries on background
+	KPGConnectionInThread m_ConnectionInThread;
+	
+	// Resultset to display
+	pqxx::result m_pqxxResult;
+	
+	unsigned int m_nTotalRows; // Number of rows in result
+	unsigned int m_nFetchedRows; // Number of fetched rows from result
+	unsigned int m_nTotalCols; // Number of columns in result
+
+	// For searching in data tables and result tables
+	QStringList m_listOfResultQuerySearchHistory;
+	
+private:
+	// A generic implementation of the "find" function
+	KFind *m_pFind;
+	
+	int m_iRowToSearch;
+	int m_iColToSearch;
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,210 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Executor/kpgexecutorbase.ui'
+**
+** Created: Út dub 1 13:07:15 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgexecutorbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qsplitter.h>
+#include <qframe.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <kcombobox.h>
+#include <qcheckbox.h>
+#include <qwidgetstack.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGExecutorBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGExecutorBase::KPGExecutorBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGExecutorBase" );
+    KPGExecutorBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGExecutorBaseLayout"); 
+
+    m_pSplitterVertical = new QSplitter( this, "m_pSplitterVertical" );
+    m_pSplitterVertical->setOrientation( QSplitter::Vertical );
+    m_pSplitterVertical->setHandleWidth( 6 );
+
+    frame5 = new QFrame( m_pSplitterVertical, "frame5" );
+    frame5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)4, (QSizePolicy::SizeType)5, 0, 0, frame5->sizePolicy().hasHeightForWidth() ) );
+    frame5->setFrameShape( QFrame::StyledPanel );
+    frame5->setFrameShadow( QFrame::Raised );
+    frame5->setLineWidth( 0 );
+    frame5Layout = new QGridLayout( frame5, 1, 1, 0, 6, "frame5Layout"); 
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel1 = new QLabel( frame5, "textLabel1" );
+    layout6->addWidget( textLabel1 );
+
+    m_pTableParameters = new QTable( frame5, "m_pTableParameters" );
+    m_pTableParameters->setNumCols( m_pTableParameters->numCols() + 1 );
+    m_pTableParameters->horizontalHeader()->setLabel( m_pTableParameters->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableParameters->setNumCols( m_pTableParameters->numCols() + 1 );
+    m_pTableParameters->horizontalHeader()->setLabel( m_pTableParameters->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableParameters->setNumCols( m_pTableParameters->numCols() + 1 );
+    m_pTableParameters->horizontalHeader()->setLabel( m_pTableParameters->numCols() - 1, tr2i18n( "Mode" ) );
+    m_pTableParameters->setNumCols( m_pTableParameters->numCols() + 1 );
+    m_pTableParameters->horizontalHeader()->setLabel( m_pTableParameters->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableParameters->setNumRows( 0 );
+    m_pTableParameters->setNumCols( 4 );
+    m_pTableParameters->setSelectionMode( QTable::SingleRow );
+    layout6->addWidget( m_pTableParameters );
+
+    frame5Layout->addLayout( layout6, 0, 0 );
+
+    frame3 = new QFrame( frame5, "frame3" );
+    frame3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)5, 0, 0, frame3->sizePolicy().hasHeightForWidth() ) );
+    frame3->setFrameShape( QFrame::StyledPanel );
+    frame3->setFrameShadow( QFrame::Raised );
+    frame3->setLineWidth( 0 );
+    frame3Layout = new QGridLayout( frame3, 1, 1, 0, 6, "frame3Layout"); 
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    m_pTextLabelXAct = new QLabel( frame3, "m_pTextLabelXAct" );
+    layout5->addWidget( m_pTextLabelXAct );
+
+    m_pComboBoxTransaction = new KComboBox( FALSE, frame3, "m_pComboBoxTransaction" );
+    layout5->addWidget( m_pComboBoxTransaction );
+
+    frame3Layout->addLayout( layout5, 0, 0 );
+    spacer2 = new QSpacerItem( 21, 40, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    frame3Layout->addItem( spacer2, 3, 0 );
+
+    layout6_2 = new QGridLayout( 0, 1, 1, 0, 6, "layout6_2"); 
+
+    m_pCheckBoxExplain = new QCheckBox( frame3, "m_pCheckBoxExplain" );
+    m_pCheckBoxExplain->setChecked( FALSE );
+
+    layout6_2->addMultiCellWidget( m_pCheckBoxExplain, 0, 0, 0, 1 );
+    spacer2_2 = new QSpacerItem( 20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum );
+    layout6_2->addItem( spacer2_2, 1, 0 );
+
+    layout5_2 = new QVBoxLayout( 0, 0, 6, "layout5_2"); 
+
+    m_pCheckBoxAnalyze = new QCheckBox( frame3, "m_pCheckBoxAnalyze" );
+    m_pCheckBoxAnalyze->setEnabled( FALSE );
+    layout5_2->addWidget( m_pCheckBoxAnalyze );
+
+    m_pCheckBoxVerbose = new QCheckBox( frame3, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setEnabled( FALSE );
+    layout5_2->addWidget( m_pCheckBoxVerbose );
+
+    layout6_2->addLayout( layout5_2, 1, 1 );
+
+    frame3Layout->addLayout( layout6_2, 1, 0 );
+
+    layout6_3 = new QVBoxLayout( 0, 0, 6, "layout6_3"); 
+
+    textLabel1_2 = new QLabel( frame3, "textLabel1_2" );
+    layout6_3->addWidget( textLabel1_2 );
+
+    m_pTextLabelExecutionTime = new QLabel( frame3, "m_pTextLabelExecutionTime" );
+    m_pTextLabelExecutionTime->setMargin( 3 );
+    layout6_3->addWidget( m_pTextLabelExecutionTime );
+
+    frame3Layout->addLayout( layout6_3, 2, 0 );
+
+    frame5Layout->addWidget( frame3, 0, 1 );
+
+    m_pWidgetStackResults = new QWidgetStack( m_pSplitterVertical, "m_pWidgetStackResults" );
+
+    WStackPageTable = new QWidget( m_pWidgetStackResults, "WStackPageTable" );
+    WStackPageTableLayout = new QGridLayout( WStackPageTable, 1, 1, 0, 6, "WStackPageTableLayout"); 
+
+    m_pTableResult = new QTable( WStackPageTable, "m_pTableResult" );
+    m_pTableResult->setNumRows( 0 );
+    m_pTableResult->setNumCols( 0 );
+    m_pTableResult->setReadOnly( TRUE );
+    m_pTableResult->setSorting( FALSE );
+    m_pTableResult->setSelectionMode( QTable::SingleRow );
+
+    WStackPageTableLayout->addWidget( m_pTableResult, 0, 0 );
+    m_pWidgetStackResults->addWidget( WStackPageTable, 0 );
+
+    WStackPageTextEdit = new QWidget( m_pWidgetStackResults, "WStackPageTextEdit" );
+    WStackPageTextEditLayout = new QGridLayout( WStackPageTextEdit, 1, 1, 0, 6, "WStackPageTextEditLayout"); 
+
+    m_pTextEditResult = new KTextEdit( WStackPageTextEdit, "m_pTextEditResult" );
+    m_pTextEditResult->setTextFormat( KTextEdit::PlainText );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WStackPageTextEditLayout->addWidget( m_pTextEditResult, 0, 0 );
+    m_pWidgetStackResults->addWidget( WStackPageTextEdit, 1 );
+
+    KPGExecutorBaseLayout->addWidget( m_pSplitterVertical, 0, 0 );
+    languageChange();
+    resize( QSize(592, 393).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxExplain, SIGNAL( toggled(bool) ), this, SLOT( slotExplainToggled(bool) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableParameters );
+    m_pTextLabelXAct->setBuddy( m_pComboBoxTransaction );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGExecutorBase::~KPGExecutorBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGExecutorBase::languageChange()
+{
+    setCaption( tr2i18n( "Function executor" ) );
+    textLabel1->setText( tr2i18n( "&Function arguments:" ) );
+    m_pTableParameters->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableParameters->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableParameters->horizontalHeader()->setLabel( 2, tr2i18n( "Mode" ) );
+    m_pTableParameters->horizontalHeader()->setLabel( 3, tr2i18n( "Value" ) );
+    m_pTextLabelXAct->setText( tr2i18n( "&XAct:" ) );
+    m_pComboBoxTransaction->clear();
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Transaction" ) );
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Robust trans." ) );
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Nontransaction" ) );
+    m_pCheckBoxExplain->setText( tr2i18n( "Ex&plain" ) );
+    m_pCheckBoxExplain->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    m_pCheckBoxAnalyze->setText( tr2i18n( "&Analyze" ) );
+    m_pCheckBoxAnalyze->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "&Verbose" ) );
+    m_pCheckBoxVerbose->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    textLabel1_2->setText( tr2i18n( "Execution time:" ) );
+}
+
+void KPGExecutorBase::slotServerChanged(const QString&)
+{
+    qWarning( "KPGExecutorBase::slotServerChanged(const QString&): Not implemented yet" );
+}
+
+void KPGExecutorBase::slotExplainToggled(bool)
+{
+    qWarning( "KPGExecutorBase::slotExplainToggled(bool): Not implemented yet" );
+}
+
+#include "kpgexecutorbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,400 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGExecutorBase</class>
+<comment>Window that contain SQL editor and result table</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGExecutorBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>592</width>
+            <height>393</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Function executor</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QSplitter" row="0" column="0">
+            <property name="name">
+                <cstring>m_pSplitterVertical</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="handleWidth">
+                <number>6</number>
+            </property>
+            <widget class="QFrame">
+                <property name="name">
+                    <cstring>frame5</cstring>
+                </property>
+                <property name="sizePolicy">
+                    <sizepolicy>
+                        <hsizetype>4</hsizetype>
+                        <vsizetype>5</vsizetype>
+                        <horstretch>0</horstretch>
+                        <verstretch>0</verstretch>
+                    </sizepolicy>
+                </property>
+                <property name="frameShape">
+                    <enum>StyledPanel</enum>
+                </property>
+                <property name="frameShadow">
+                    <enum>Raised</enum>
+                </property>
+                <property name="lineWidth">
+                    <number>0</number>
+                </property>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <widget class="QLayoutWidget" row="0" column="0">
+                        <property name="name">
+                            <cstring>layout6</cstring>
+                        </property>
+                        <vbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>&amp;Function arguments:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pTableParameters</cstring>
+                                </property>
+                            </widget>
+                            <widget class="QTable">
+                                <column>
+                                    <property name="text">
+                                        <string>Name</string>
+                                    </property>
+                                </column>
+                                <column>
+                                    <property name="text">
+                                        <string>Type</string>
+                                    </property>
+                                </column>
+                                <column>
+                                    <property name="text">
+                                        <string>Mode</string>
+                                    </property>
+                                </column>
+                                <column>
+                                    <property name="text">
+                                        <string>Value</string>
+                                    </property>
+                                </column>
+                                <property name="name">
+                                    <cstring>m_pTableParameters</cstring>
+                                </property>
+                                <property name="numRows">
+                                    <number>0</number>
+                                </property>
+                                <property name="numCols">
+                                    <number>4</number>
+                                </property>
+                                <property name="selectionMode">
+                                    <enum>SingleRow</enum>
+                                </property>
+                            </widget>
+                        </vbox>
+                    </widget>
+                    <widget class="QFrame" row="0" column="1">
+                        <property name="name">
+                            <cstring>frame3</cstring>
+                        </property>
+                        <property name="sizePolicy">
+                            <sizepolicy>
+                                <hsizetype>1</hsizetype>
+                                <vsizetype>5</vsizetype>
+                                <horstretch>0</horstretch>
+                                <verstretch>0</verstretch>
+                            </sizepolicy>
+                        </property>
+                        <property name="frameShape">
+                            <enum>StyledPanel</enum>
+                        </property>
+                        <property name="frameShadow">
+                            <enum>Raised</enum>
+                        </property>
+                        <property name="lineWidth">
+                            <number>0</number>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <property name="margin">
+                                <number>0</number>
+                            </property>
+                            <widget class="QLayoutWidget" row="0" column="0">
+                                <property name="name">
+                                    <cstring>layout5</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>m_pTextLabelXAct</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>&amp;XAct:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxTransaction</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KComboBox">
+                                        <item>
+                                            <property name="text">
+                                                <string>Transaction</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>Robust trans.</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>Nontransaction</string>
+                                            </property>
+                                        </item>
+                                        <property name="name">
+                                            <cstring>m_pComboBoxTransaction</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <spacer row="3" column="0">
+                                <property name="name">
+                                    <cstring>spacer2</cstring>
+                                </property>
+                                <property name="orientation">
+                                    <enum>Vertical</enum>
+                                </property>
+                                <property name="sizeType">
+                                    <enum>Expanding</enum>
+                                </property>
+                                <property name="sizeHint">
+                                    <size>
+                                        <width>21</width>
+                                        <height>40</height>
+                                    </size>
+                                </property>
+                            </spacer>
+                            <widget class="QLayoutWidget" row="1" column="0">
+                                <property name="name">
+                                    <cstring>layout6</cstring>
+                                </property>
+                                <grid>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+                                        <property name="name">
+                                            <cstring>m_pCheckBoxExplain</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Ex&amp;plain</string>
+                                        </property>
+                                        <property name="accel">
+                                            <string>Alt+P</string>
+                                        </property>
+                                        <property name="checked">
+                                            <bool>false</bool>
+                                        </property>
+                                    </widget>
+                                    <spacer row="1" column="0">
+                                        <property name="name">
+                                            <cstring>spacer2_2</cstring>
+                                        </property>
+                                        <property name="orientation">
+                                            <enum>Horizontal</enum>
+                                        </property>
+                                        <property name="sizeType">
+                                            <enum>Fixed</enum>
+                                        </property>
+                                        <property name="sizeHint">
+                                            <size>
+                                                <width>20</width>
+                                                <height>20</height>
+                                            </size>
+                                        </property>
+                                    </spacer>
+                                    <widget class="QLayoutWidget" row="1" column="1">
+                                        <property name="name">
+                                            <cstring>layout5</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QCheckBox">
+                                                <property name="name">
+                                                    <cstring>m_pCheckBoxAnalyze</cstring>
+                                                </property>
+                                                <property name="enabled">
+                                                    <bool>false</bool>
+                                                </property>
+                                                <property name="text">
+                                                    <string>&amp;Analyze</string>
+                                                </property>
+                                                <property name="accel">
+                                                    <string>Alt+A</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QCheckBox">
+                                                <property name="name">
+                                                    <cstring>m_pCheckBoxVerbose</cstring>
+                                                </property>
+                                                <property name="enabled">
+                                                    <bool>false</bool>
+                                                </property>
+                                                <property name="text">
+                                                    <string>&amp;Verbose</string>
+                                                </property>
+                                                <property name="accel">
+                                                    <string>Alt+V</string>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                </grid>
+                            </widget>
+                            <widget class="QLayoutWidget" row="2" column="0">
+                                <property name="name">
+                                    <cstring>layout6</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel1_2</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Execution time:</string>
+                                        </property>
+                                    </widget>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>m_pTextLabelExecutionTime</cstring>
+                                        </property>
+                                        <property name="margin">
+                                            <number>3</number>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                        </grid>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidgetStack">
+                <property name="name">
+                    <cstring>m_pWidgetStackResults</cstring>
+                </property>
+                <widget class="QWidget">
+                    <property name="name">
+                        <cstring>WStackPageTable</cstring>
+                    </property>
+                    <attribute name="id">
+                        <number>0</number>
+                    </attribute>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <widget class="QTable" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pTableResult</cstring>
+                            </property>
+                            <property name="numRows">
+                                <number>0</number>
+                            </property>
+                            <property name="numCols">
+                                <number>0</number>
+                            </property>
+                            <property name="readOnly">
+                                <bool>true</bool>
+                            </property>
+                            <property name="sorting">
+                                <bool>false</bool>
+                            </property>
+                            <property name="selectionMode">
+                                <enum>SingleRow</enum>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QWidget">
+                    <property name="name">
+                        <cstring>WStackPageTextEdit</cstring>
+                    </property>
+                    <attribute name="id">
+                        <number>1</number>
+                    </attribute>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <widget class="KTextEdit" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pTextEditResult</cstring>
+                            </property>
+                            <property name="textFormat">
+                                <enum>PlainText</enum>
+                            </property>
+                            <property name="readOnly">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxExplain</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGExecutorBase</receiver>
+        <slot>slotExplainToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotServerChanged( const QString &amp; )</slot>
+    <slot access="protected">slotExplainToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+//
+// C++ Implementation: kpgexecutorchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgexecutorchildview.h"
+
+#include <qlayout.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kmessagebox.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "kpgexecutor.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgfunction.h"
+
+KPGExecutorChildView::KPGExecutorChildView(KPoGreView *pPoGreView,
+	KXMLGUIFactory * pXmlGuiFactory,
+	KPGConnection * pConnection, 
+	const QString & strNamespace, 
+	KPGFunction *pFunction)
+ : KMdiChildView(pFunction->text(0), pPoGreView, "KPGExecutorChildView")
+{
+	m_pPoGreView = pPoGreView;
+	
+	QBoxLayout* pLayout = new QHBoxLayout(this, 0, -1, "layout" );
+	m_pExecutor = new KPGExecutor(this, 
+		pPoGreView, 
+		pXmlGuiFactory, 
+		pConnection, 
+		strNamespace, 
+		pFunction);
+
+	pLayout->addWidget(m_pExecutor);
+	
+	setIcon(SmallIcon("exec"));
+}
+
+KPGExecutorChildView::~KPGExecutorChildView()
+{
+}
+
+// Add KPGExecutor GUI client to factory
+void KPGExecutorChildView::slotActivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pExecutor->addToGuiFactory();
+}
+
+// Remove KPGExecutor GUI client from factory
+void KPGExecutorChildView::slotDeactivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pExecutor->removeFromGuiFactory();
+}
+
+bool KPGExecutorChildView::requestClose()
+{
+	if(m_pExecutor->running())
+	{
+		KMessageBox::sorry(this, i18n("Function is running, cannot close !"));	 
+		return false;
+	}
+	
+	if(KMessageBox::questionYesNo(this, i18n("Really close executor window ?")) == KMessageBox::Yes) 
+	{
+		return true;
+	}
+	return false;
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Executor/kpgexecutorchildview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,58 @@
+//
+// C++ Interface: kpgexecutorchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGEXECUTORCHILDVIEW_H
+#define KPGEXECUTORCHILDVIEW_H
+
+#include <kmdichildview.h>
+
+class KXMLGUIFactory;
+
+class QBoxLayout;
+class KPoGreView;
+class KPGExecutor;
+class KPGConnection;
+class KPGFunction;
+
+/**
+  * MDI child view for function executor
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGExecutorChildView : public KMdiChildView
+{
+	Q_OBJECT
+public:
+    KPGExecutorChildView(KPoGreView *, KXMLGUIFactory * pXmlGuiFactory, KPGConnection *, const QString &, KPGFunction *);
+    ~KPGExecutorChildView();
+
+	KPGExecutor* getExecutor() const { return m_pExecutor; }
+	
+	// Return true, if window can be closed
+	bool requestClose();
+	
+private:
+	// Function executor window
+	KPGExecutor*	m_pExecutor;
+	
+	QBoxLayout* m_pLayout;
+	KPoGreView* m_pPoGreView;
+
+public slots:
+
+	// Add KPGExecutor GUI client to factory
+	void slotActivated();
+
+	// Remove KPGExecutor GUI client from factory
+	void slotDeactivated();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+bin_PROGRAMS = kpogre
+
+## INCLUDES were found outside kdevelop specific part
+
+kpogre_SOURCES = kpgaclitem.cpp kpgactionsstates.cpp kpgbookmarkhandler.cpp \
+	kpgbookmarkmenu.cpp kpgbookmarksbutton.cpp kpgconfiguration.cpp kpgconnectdialog.cpp \
+	kpgconnectdialogbase.ui kpgconnectioninthread.cpp kpgdcoptalkthread.cpp kpggeneralsettings.cpp \
+	kpggeneralsettingspage.ui kpglinklabel.cpp kpgsearchdialog.cpp kpgsearchdialogbase.ui \
+	kpgsettings.cpp kpgsqldialog.cpp kpgsqldialogbase.ui kpgsqlexception.cpp kpgutil.cpp \
+	kpogrecomboaction.cpp kpogrecontroller.cpp kpogreview.cpp main.cpp
+
+kpogre_LDADD = $(top_builddir)/kpogre/DataTable/libDataTable.la \
+	$(top_builddir)/kpogre/DbObjects/libDbObjects.la $(top_builddir)/kpogre/Debugger/libDebugger.la \
+	$(top_builddir)/kpogre/Executor/libExecutor.la $(top_builddir)/kpogre/PropertyPages/libPropertyPages.la \
+	$(top_builddir)/kpogre/QueryResult/libQueryResult.la $(top_builddir)/kpogre/Wizards/libWizards.la \
+	$(top_builddir)/kpogre/XmlSupport/libXmlSupport.la -lkatepartinterfaces $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) \
+	$(LIB_KMDI) $(LIB_KPARTS) $(LIB_QT) $(PQXX_LIBS)
+
+SUBDIRS = DbObjects XmlSupport DataTable Debugger Executor PropertyPages QueryResult Wizards icons pics
+
+EXTRA_DIST = kpogreui.rc kpgdatatable.rc kpgdebugger.rc kpgexecutor.rc kpgkateui.rc kpgqueryreslt.rc kpgproppage.rc kpogre.desktop
+
+install-data-local:
+	$(mkinstalldirs) $(kde_appsdir)/Applications/
+	$(INSTALL_DATA) $(srcdir)/kpogre.desktop $(kde_appsdir)/Applications/kpogre.desktop
+
+uninstall-local:
+	-rm -f $(kde_appsdir)/Applications/kpogre.desktop
+
+####### kdevelop will overwrite this part!!! (end)############
+# These paths are KDE specific. Use them:
+# kde_appsdir         Where your application's menu entry (.desktop) should go to.
+# kde_icondir         Where your icon should go to - better use KDE_ICON.
+# kde_sounddir        Where your sounds should go to.
+# kde_htmldir         Where your docs should go to. (contains lang subdirs)
+# kde_datadir         Where you install application data. (Use a subdir)
+# kde_locale          Where translation files should go to. (contains lang subdirs)
+# kde_cgidir          Where cgi-bin executables should go to.
+# kde_confdir         Where config files should go to (system-wide ones with default values).
+# kde_mimedir         Where mimetypes .desktop files should go to.
+# kde_servicesdir     Where services .desktop files should go to.
+# kde_servicetypesdir Where servicetypes .desktop files should go to.
+# kde_toolbardir      Where general toolbar icons should go to (deprecated, use KDE_ICON).
+# kde_wallpaperdir    Where general wallpapers should go to.
+# kde_templatesdir    Where templates for the "New" menu (Konqueror/KDesktop) should go to.
+# kde_bindir          Where executables should go to. Use bin_PROGRAMS or bin_SCRIPTS.
+# kde_libdir          Where shared libraries should go to. Use lib_LTLIBRARIES.
+# kde_moduledir       Where modules (e.g. parts) should go to. Use kde_module_LTLIBRARIES.
+# kde_styledir        Where Qt/KDE widget styles should go to (new in KDE 3).
+# kde_designerdir     Where Qt Designer plugins should go to (new in KDE 3).
+
+# set the include path for X, qt and KDE
+INCLUDES = -I$(top_srcdir)/kpogre \
+	-I$(top_srcdir)/kpogre/DataTable \
+	-I$(top_srcdir)/kpogre/DbObjects \
+	-I$(top_srcdir)/kpogre/Debugger \
+	-I$(top_srcdir)/kpogre/Executor \
+	-I$(top_srcdir)/kpogre/PropertyPages \
+	-I$(top_srcdir)/kpogre/QueryResult \
+	-I$(top_srcdir)/kpogre/Wizards \
+	-I$(top_srcdir)/kpogre/XmlSupport \
+	$(all_includes)
+
+METASOURCES = AUTO
+
+# the library search path. 
+kpogre_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+
+rcdir = $(kde_datadir)/kpogre
+rc_DATA = kpogreui.rc kpgdatatable.rc kpgdebugger.rc kpgexecutor.rc kpgkateui.rc kpgqueryreslt.rc kpgproppage.rc
+
+messages: rc.cpp
+	LIST=`find . -name \*.h -o -name \*.hh -o -name \*.H -o -name \*.hxx -o -name \*.hpp -o -name \*.cpp -o -name \*.cc -o -name \*.cxx -o -name \*.ecpp -o -name \*.C`; \
+	if test -n "$$LIST"; then \
+	 $(XGETTEXT) $$LIST -o $(podir)/kpogre.pot; \
+	fi
+
+noinst_HEADERS = kpgbookmarkmenu.h kpgconnectioninthread.h kpgsearchdialog.h \
+	kpgsqldialogbase.h kpgaclitem.h kpgactionsstates.h kpgbookmarkhandler.h \
+	kpgbookmarksbutton.h kpgconfiguration.h kpgconnectdialog.h kpgconnectdialogbase.h \
+	kpgdcoptalkthread.h kpggeneralsettings.h kpglinklabel.h kpgsettings.h kpgsqldialog.h \
+	kpgsqlexception.h kpgutil.h kpogrecomboaction.h kpogrecontroller.h kpogreview.h

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1179 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+bin_PROGRAMS = kpogre$(EXEEXT)
+subdir = kpogre
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(rcdir)"
+binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(bin_PROGRAMS)
+am_kpogre_OBJECTS = kpgaclitem.$(OBJEXT) kpgactionsstates.$(OBJEXT) \
+	kpgbookmarkhandler.$(OBJEXT) kpgbookmarkmenu.$(OBJEXT) \
+	kpgbookmarksbutton.$(OBJEXT) kpgconfiguration.$(OBJEXT) \
+	kpgconnectdialog.$(OBJEXT) kpgconnectioninthread.$(OBJEXT) \
+	kpgdcoptalkthread.$(OBJEXT) kpggeneralsettings.$(OBJEXT) \
+	kpglinklabel.$(OBJEXT) kpgsearchdialog.$(OBJEXT) \
+	kpgsettings.$(OBJEXT) kpgsqldialog.$(OBJEXT) \
+	kpgsqlexception.$(OBJEXT) kpgutil.$(OBJEXT) \
+	kpogrecomboaction.$(OBJEXT) kpogrecontroller.$(OBJEXT) \
+	kpogreview.$(OBJEXT) main.$(OBJEXT)
+#>- kpogre_OBJECTS = $(am_kpogre_OBJECTS)
+#>+ 14
+kpogre_final_OBJECTS = kpogre.all_cpp.o 
+kpogre_nofinal_OBJECTS = kpgaclitem.$(OBJEXT) kpgactionsstates.$(OBJEXT) \
+	kpgbookmarkhandler.$(OBJEXT) kpgbookmarkmenu.$(OBJEXT) \
+	kpgbookmarksbutton.$(OBJEXT) kpgconfiguration.$(OBJEXT) \
+	kpgconnectdialog.$(OBJEXT) kpgconnectioninthread.$(OBJEXT) \
+	kpgdcoptalkthread.$(OBJEXT) kpggeneralsettings.$(OBJEXT) \
+	kpglinklabel.$(OBJEXT) kpgsearchdialog.$(OBJEXT) \
+	kpgsettings.$(OBJEXT) kpgsqldialog.$(OBJEXT) \
+	kpgsqlexception.$(OBJEXT) kpgutil.$(OBJEXT) \
+	kpogrecomboaction.$(OBJEXT) kpogrecontroller.$(OBJEXT) \
+	kpogreview.$(OBJEXT) main.$(OBJEXT) kpgconnectdialogbase.$(OBJEXT) kpggeneralsettingspage.$(OBJEXT) kpgsearchdialogbase.$(OBJEXT) kpgsqldialogbase.$(OBJEXT)\
+kpogrecontroller.moc.o kpogreview.moc.o kpgbookmarkhandler.moc.o kpgsettings.moc.o kpgconnectdialog.moc.o kpgbookmarksbutton.moc.o kpgconfiguration.moc.o 
+ at KDE_USE_FINAL_FALSE@kpogre_OBJECTS = $(kpogre_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@kpogre_OBJECTS = $(kpogre_final_OBJECTS)
+am__DEPENDENCIES_1 =
+kpogre_DEPENDENCIES =  \
+	$(top_builddir)/kpogre/DataTable/libDataTable.la \
+	$(top_builddir)/kpogre/DbObjects/libDbObjects.la \
+	$(top_builddir)/kpogre/Debugger/libDebugger.la \
+	$(top_builddir)/kpogre/Executor/libExecutor.la \
+	$(top_builddir)/kpogre/PropertyPages/libPropertyPages.la \
+	$(top_builddir)/kpogre/QueryResult/libQueryResult.la \
+	$(top_builddir)/kpogre/Wizards/libWizards.la \
+	$(top_builddir)/kpogre/XmlSupport/libXmlSupport.la \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(kpogre_SOURCES)
+DIST_SOURCES = $(kpogre_SOURCES)
+#>- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+#>- 	html-recursive info-recursive install-data-recursive \
+#>- 	install-exec-recursive install-info-recursive \
+#>- 	install-recursive installcheck-recursive installdirs-recursive \
+#>- 	pdf-recursive ps-recursive uninstall-info-recursive \
+#>- 	uninstall-recursive
+#>+ 6
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+	html-recursive info-recursive install-data-recursive \
+	install-exec-recursive install-info-recursive \
+	install-recursive installcheck-recursive installdirs-recursive \
+	pdf-recursive ps-recursive uninstall-info-recursive \
+	uninstall-recursive nmcheck-recursive bcheck-recursive
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+rcDATA_INSTALL = $(INSTALL_DATA)
+DATA = $(rc_DATA)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+#>- kpogre_SOURCES = kpgaclitem.cpp kpgactionsstates.cpp kpgbookmarkhandler.cpp \
+#>- 	kpgbookmarkmenu.cpp kpgbookmarksbutton.cpp kpgconfiguration.cpp kpgconnectdialog.cpp \
+#>- 	kpgconnectdialogbase.ui kpgconnectioninthread.cpp kpgdcoptalkthread.cpp kpggeneralsettings.cpp \
+#>- 	kpggeneralsettingspage.ui kpglinklabel.cpp kpgsearchdialog.cpp kpgsearchdialogbase.ui \
+#>- 	kpgsettings.cpp kpgsqldialog.cpp kpgsqldialogbase.ui kpgsqlexception.cpp kpgutil.cpp \
+#>- 	kpogrecomboaction.cpp kpogrecontroller.cpp kpogreview.cpp main.cpp
+#>+ 6
+kpogre_SOURCES=kpgaclitem.cpp kpgactionsstates.cpp kpgbookmarkhandler.cpp \
+	kpgbookmarkmenu.cpp kpgbookmarksbutton.cpp kpgconfiguration.cpp kpgconnectdialog.cpp \
+	 kpgconnectioninthread.cpp kpgdcoptalkthread.cpp kpggeneralsettings.cpp \
+	 kpglinklabel.cpp kpgsearchdialog.cpp  \
+	kpgsettings.cpp kpgsqldialog.cpp  kpgsqlexception.cpp kpgutil.cpp \
+	kpogrecomboaction.cpp kpogrecontroller.cpp kpogreview.cpp main.cpp kpgconnectdialogbase.cpp kpggeneralsettingspage.cpp kpgsearchdialogbase.cpp kpgsqldialogbase.cpp
+
+kpogre_LDADD = $(top_builddir)/kpogre/DataTable/libDataTable.la \
+	$(top_builddir)/kpogre/DbObjects/libDbObjects.la $(top_builddir)/kpogre/Debugger/libDebugger.la \
+	$(top_builddir)/kpogre/Executor/libExecutor.la $(top_builddir)/kpogre/PropertyPages/libPropertyPages.la \
+	$(top_builddir)/kpogre/QueryResult/libQueryResult.la $(top_builddir)/kpogre/Wizards/libWizards.la \
+	$(top_builddir)/kpogre/XmlSupport/libXmlSupport.la -lkatepartinterfaces $(LIB_KDECORE) $(LIB_KDEUI) $(LIB_KFILE) \
+	$(LIB_KMDI) $(LIB_KPARTS) $(LIB_QT) $(PQXX_LIBS)
+
+SUBDIRS = DbObjects XmlSupport DataTable Debugger Executor PropertyPages QueryResult Wizards icons pics
+EXTRA_DIST = kpogreui.rc kpgdatatable.rc kpgdebugger.rc kpgexecutor.rc kpgkateui.rc kpgqueryreslt.rc kpgproppage.rc kpogre.desktop
+
+####### kdevelop will overwrite this part!!! (end)############
+# These paths are KDE specific. Use them:
+# kde_appsdir         Where your application's menu entry (.desktop) should go to.
+# kde_icondir         Where your icon should go to - better use KDE_ICON.
+# kde_sounddir        Where your sounds should go to.
+# kde_htmldir         Where your docs should go to. (contains lang subdirs)
+# kde_datadir         Where you install application data. (Use a subdir)
+# kde_locale          Where translation files should go to. (contains lang subdirs)
+# kde_cgidir          Where cgi-bin executables should go to.
+# kde_confdir         Where config files should go to (system-wide ones with default values).
+# kde_mimedir         Where mimetypes .desktop files should go to.
+# kde_servicesdir     Where services .desktop files should go to.
+# kde_servicetypesdir Where servicetypes .desktop files should go to.
+# kde_toolbardir      Where general toolbar icons should go to (deprecated, use KDE_ICON).
+# kde_wallpaperdir    Where general wallpapers should go to.
+# kde_templatesdir    Where templates for the "New" menu (Konqueror/KDesktop) should go to.
+# kde_bindir          Where executables should go to. Use bin_PROGRAMS or bin_SCRIPTS.
+# kde_libdir          Where shared libraries should go to. Use lib_LTLIBRARIES.
+# kde_moduledir       Where modules (e.g. parts) should go to. Use kde_module_LTLIBRARIES.
+# kde_styledir        Where Qt/KDE widget styles should go to (new in KDE 3).
+# kde_designerdir     Where Qt Designer plugins should go to (new in KDE 3).
+
+# set the include path for X, qt and KDE
+INCLUDES = -I$(top_srcdir)/kpogre \
+	-I$(top_srcdir)/kpogre/DataTable \
+	-I$(top_srcdir)/kpogre/DbObjects \
+	-I$(top_srcdir)/kpogre/Debugger \
+	-I$(top_srcdir)/kpogre/Executor \
+	-I$(top_srcdir)/kpogre/PropertyPages \
+	-I$(top_srcdir)/kpogre/QueryResult \
+	-I$(top_srcdir)/kpogre/Wizards \
+	-I$(top_srcdir)/kpogre/XmlSupport \
+	$(all_includes)
+
+#>- METASOURCES = AUTO
+
+# the library search path. 
+kpogre_LDFLAGS = $(all_libraries) $(KDE_RPATH)
+rcdir = $(kde_datadir)/kpogre
+rc_DATA = kpogreui.rc kpgdatatable.rc kpgdebugger.rc kpgexecutor.rc kpgkateui.rc kpgqueryreslt.rc kpgproppage.rc
+noinst_HEADERS = kpgbookmarkmenu.h kpgconnectioninthread.h kpgsearchdialog.h \
+	kpgsqldialogbase.h kpgaclitem.h kpgactionsstates.h kpgbookmarkhandler.h \
+	kpgbookmarksbutton.h kpgconfiguration.h kpgconnectdialog.h kpgconnectdialogbase.h \
+	kpgdcoptalkthread.h kpggeneralsettings.h kpglinklabel.h kpgsettings.h kpgsqldialog.h \
+	kpgsqlexception.h kpgutil.h kpogrecomboaction.h kpogrecontroller.h kpogreview.h
+
+#>- all: all-recursive
+#>+ 1
+all: docs-am  all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
+	done
+
+clean-binPROGRAMS:
+	@list='$(bin_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+kpogre$(EXEEXT): $(kpogre_OBJECTS) $(kpogre_DEPENDENCIES) 
+	@rm -f kpogre$(EXEEXT)
+	$(CXXLINK) $(kpogre_LDFLAGS) $(kpogre_OBJECTS) $(kpogre_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgaclitem.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgactionsstates.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgbookmarkhandler.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgbookmarkmenu.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgbookmarksbutton.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconfiguration.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconnectdialog.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconnectioninthread.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdcoptalkthread.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpggeneralsettings.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpglinklabel.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsearchdialog.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsettings.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsqldialog.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsqlexception.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgutil.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpogrecomboaction.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpogrecontroller.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpogreview.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/main.Po at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+install-rcDATA: $(rc_DATA)
+	@$(NORMAL_INSTALL)
+	test -z "$(rcdir)" || $(mkdir_p) "$(DESTDIR)$(rcdir)"
+	@list='$(rc_DATA)'; for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  f=$(am__strip_dir) \
+	  echo " $(rcDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(rcdir)/$$f'"; \
+	  $(rcDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(rcdir)/$$f"; \
+	done
+
+uninstall-rcDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(rc_DATA)'; for p in $$list; do \
+	  f=$(am__strip_dir) \
+	  echo " rm -f '$(DESTDIR)$(rcdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(rcdir)/$$f"; \
+	done
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+	fi; test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+	@failcom='exit 1'; \
+	for f in x $$MAKEFLAGS; do \
+	  case $$f in \
+	    *=* | --[!k]*);; \
+	    *k*) failcom='fail=yes';; \
+	  esac; \
+	done; \
+	dot_seen=no; \
+	case "$@" in \
+	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+	  *) list='$(SUBDIRS)' ;; \
+	esac; \
+	rev=''; for subdir in $$list; do \
+	  if test "$$subdir" = "."; then :; else \
+	    rev="$$subdir $$rev"; \
+	  fi; \
+	done; \
+	rev="$$rev ."; \
+	target=`echo $@ | sed s/-recursive//`; \
+	for subdir in $$rev; do \
+	  echo "Making $$target in $$subdir"; \
+	  if test "$$subdir" = "."; then \
+	    local_target="$$target-am"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  || eval $$failcom; \
+	done && test -z "$$fail"
+tags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	done
+ctags-recursive:
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+	  include_option=--etags-include; \
+	  empty_fix=.; \
+	else \
+	  include_option=--include; \
+	  empty_fix=; \
+	fi; \
+	list='$(SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test ! -f $$subdir/TAGS || \
+	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	  fi; \
+	done; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    test -d "$(distdir)/$$subdir" \
+	    || $(mkdir_p) "$(distdir)/$$subdir" \
+	    || exit 1; \
+	    distdir=`$(am__cd) $(distdir) && pwd`; \
+	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+	    (cd $$subdir && \
+	      $(MAKE) $(AM_MAKEFLAGS) \
+	        top_distdir="$$top_distdir" \
+	        distdir="$$distdir/$$subdir" \
+	        distdir) \
+	      || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-recursive
+all-am: Makefile $(PROGRAMS) $(DATA) $(HEADERS)
+installdirs: installdirs-recursive
+installdirs-am:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(rcdir)"; do \
+	  test -z "$$dir" || $(mkdir_p) "$$dir"; \
+	done
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-recursive
+#>+ 1
+clean: kde-rpo-clean  clean-recursive
+
+#>- clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-data-local install-rcDATA
+
+install-exec-am: install-binPROGRAMS
+
+install-info: install-info-recursive
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-info-am uninstall-local \
+	uninstall-rcDATA
+
+uninstall-info: uninstall-info-recursive
+
+.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am check check-am \
+	clean clean-binPROGRAMS clean-generic clean-libtool \
+	clean-recursive ctags ctags-recursive distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-recursive distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-data-local install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-rcDATA install-strip installcheck installcheck-am \
+	installdirs installdirs-am maintainer-clean \
+	maintainer-clean-generic maintainer-clean-recursive \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool mostlyclean-recursive pdf pdf-am ps ps-am \
+	tags tags-recursive uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-info-am uninstall-local \
+	uninstall-rcDATA
+
+
+install-data-local:
+#>- 	$(mkinstalldirs) $(kde_appsdir)/Applications/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_appsdir)/Applications/
+#>- 	$(INSTALL_DATA) $(srcdir)/kpogre.desktop $(kde_appsdir)/Applications/kpogre.desktop
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/kpogre.desktop $(DESTDIR)$(kde_appsdir)/Applications/kpogre.desktop
+
+uninstall-local:
+#>- 	-rm -f $(kde_appsdir)/Applications/kpogre.desktop
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_appsdir)/Applications/kpogre.desktop
+
+messages: rc.cpp
+	LIST=`find . -name \*.h -o -name \*.hh -o -name \*.H -o -name \*.hxx -o -name \*.hpp -o -name \*.cpp -o -name \*.cc -o -name \*.cxx -o -name \*.ecpp -o -name \*.C`; \
+	if test -n "$$LIST"; then \
+	 $(XGETTEXT) $$LIST -o $(podir)/kpogre.pot; \
+	fi
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpogrecontroller.moc.cpp: $(srcdir)/kpogrecontroller.h
+	$(MOC) $(srcdir)/kpogrecontroller.h -o kpogrecontroller.moc.cpp
+
+#>+ 2
+mocs: kpogrecontroller.moc.cpp
+
+#>+ 3
+kpogreview.moc.cpp: $(srcdir)/kpogreview.h
+	$(MOC) $(srcdir)/kpogreview.h -o kpogreview.moc.cpp
+
+#>+ 2
+mocs: kpogreview.moc.cpp
+
+#>+ 3
+kpgbookmarkhandler.moc.cpp: $(srcdir)/kpgbookmarkhandler.h
+	$(MOC) $(srcdir)/kpgbookmarkhandler.h -o kpgbookmarkhandler.moc.cpp
+
+#>+ 2
+mocs: kpgbookmarkhandler.moc.cpp
+
+#>+ 3
+kpgsettings.moc.cpp: $(srcdir)/kpgsettings.h
+	$(MOC) $(srcdir)/kpgsettings.h -o kpgsettings.moc.cpp
+
+#>+ 2
+mocs: kpgsettings.moc.cpp
+
+#>+ 3
+kpgsearchdialog.moc: $(srcdir)/kpgsearchdialog.h
+	$(MOC) $(srcdir)/kpgsearchdialog.h -o kpgsearchdialog.moc
+
+#>+ 2
+mocs: kpgsearchdialog.moc
+
+#>+ 3
+kpgsqldialog.moc: $(srcdir)/kpgsqldialog.h
+	$(MOC) $(srcdir)/kpgsqldialog.h -o kpgsqldialog.moc
+
+#>+ 2
+mocs: kpgsqldialog.moc
+
+#>+ 3
+kpglinklabel.moc: $(srcdir)/kpglinklabel.h
+	$(MOC) $(srcdir)/kpglinklabel.h -o kpglinklabel.moc
+
+#>+ 2
+mocs: kpglinklabel.moc
+
+#>+ 3
+kpgconnectdialog.moc.cpp: $(srcdir)/kpgconnectdialog.h
+	$(MOC) $(srcdir)/kpgconnectdialog.h -o kpgconnectdialog.moc.cpp
+
+#>+ 2
+mocs: kpgconnectdialog.moc.cpp
+
+#>+ 3
+kpgbookmarksbutton.moc.cpp: $(srcdir)/kpgbookmarksbutton.h
+	$(MOC) $(srcdir)/kpgbookmarksbutton.h -o kpgbookmarksbutton.moc.cpp
+
+#>+ 2
+mocs: kpgbookmarksbutton.moc.cpp
+
+#>+ 3
+kpogrecomboaction.moc: $(srcdir)/kpogrecomboaction.h
+	$(MOC) $(srcdir)/kpogrecomboaction.h -o kpogrecomboaction.moc
+
+#>+ 2
+mocs: kpogrecomboaction.moc
+
+#>+ 3
+kpgconfiguration.moc.cpp: $(srcdir)/kpgconfiguration.h
+	$(MOC) $(srcdir)/kpgconfiguration.h -o kpgconfiguration.moc.cpp
+
+#>+ 2
+mocs: kpgconfiguration.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpogrecontroller.moc.cpp kpogreview.moc.cpp kpgbookmarkhandler.moc.cpp kpgsettings.moc.cpp kpgsearchdialog.moc kpgsqldialog.moc kpglinklabel.moc kpgconnectdialog.moc.cpp kpgbookmarksbutton.moc.cpp kpogrecomboaction.moc kpgconfiguration.moc.cpp
+
+#>+ 2
+KDE_DIST=Makefile.in kpggeneralsettingspage.ui kpgconnectdialogbase.ui kpgsqldialogbase.ui kpgsearchdialogbase.ui Makefile.am 
+
+#>+ 7
+clean-ui:
+	-rm -f \
+	kpgconnectdialogbase.cpp kpgconnectdialogbase.h kpgconnectdialogbase.moc \
+	kpggeneralsettingspage.cpp kpggeneralsettingspage.h kpggeneralsettingspage.moc \
+	kpgsearchdialogbase.cpp kpgsearchdialogbase.h kpgsearchdialogbase.moc \
+	kpgsqldialogbase.cpp kpgsqldialogbase.h kpgsqldialogbase.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-recursive
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+kpogre.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgaclitem.cpp $(srcdir)/kpgactionsstates.cpp $(srcdir)/kpgbookmarkhandler.cpp $(srcdir)/kpgbookmarkmenu.cpp $(srcdir)/kpgbookmarksbutton.cpp $(srcdir)/kpgconfiguration.cpp $(srcdir)/kpgconnectdialog.cpp $(srcdir)/kpgconnectioninthread.cpp $(srcdir)/kpgdcoptalkthread.cpp $(srcdir)/kpggeneralsettings.cpp $(srcdir)/kpglinklabel.cpp $(srcdir)/kpgsearchdialog.cpp $(srcdir)/kpgsettings.cpp $(srcdir)/kpgsqldialog.cpp $(srcdir)/kpgsqlexception.cpp $(srcdir)/kpgutil.cpp $(srcdir)/kpogrecomboaction.cpp $(srcdir)/kpogrecontroller.cpp $(srcdir)/kpogreview.cpp $(srcdir)/main.cpp $(srcdir)/kpgconnectdialogbase.cpp $(srcdir)/kpggeneralsettingspage.cpp $(srcdir)/kpgsearchdialogbase.cpp $(srcdir)/kpgsqldialogbase.cpp kpogrecontroller.moc.cpp kpogreview.moc.cpp kpgbookmarkhandler.moc.cpp kpgsettings.moc.cpp kpgconnectdialog.moc.cpp kpgbookmarksbutton.moc.cpp kpgconfiguration.moc.cpp  kpgconnectdialogbase.moc kpgsearchdialogbase.moc kpgsqldialog.moc kpgsearchdialog.moc kpglinklabel.moc kpgsqldialogbase.moc kpogrecomboaction.moc kpggeneralsettingspage.moc
+	@echo 'creating kpogre.all_cpp.cpp ...'; \
+	rm -f kpogre.all_cpp.files kpogre.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> kpogre.all_cpp.final; \
+	for file in kpgaclitem.cpp kpgactionsstates.cpp kpgbookmarkhandler.cpp kpgbookmarkmenu.cpp kpgbookmarksbutton.cpp kpgconfiguration.cpp kpgconnectdialog.cpp kpgconnectioninthread.cpp kpgdcoptalkthread.cpp kpggeneralsettings.cpp kpglinklabel.cpp kpgsearchdialog.cpp kpgsettings.cpp kpgsqldialog.cpp kpgsqlexception.cpp kpgutil.cpp kpogrecomboaction.cpp kpogrecontroller.cpp kpogreview.cpp main.cpp kpgconnectdialogbase.cpp kpggeneralsettingspage.cpp kpgsearchdialogbase.cpp kpgsqldialogbase.cpp kpogrecontroller.moc.cpp kpogreview.moc.cpp kpgbookmarkhandler.moc.cpp kpgsettings.moc.cpp kpgconnectdialog.moc.cpp kpgbookmarksbutton.moc.cpp kpgconfiguration.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> kpogre.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> kpogre.all_cpp.final; \
+	done; \
+	cat kpogre.all_cpp.final kpogre.all_cpp.files > kpogre.all_cpp.cpp; \
+	rm -f kpogre.all_cpp.final kpogre.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f kpogre.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) kpogre_OBJECTS="$(kpogre_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) kpogre_OBJECTS="$(kpogre_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) kpogre_OBJECTS="$(kpogre_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) kpogre_OBJECTS="$(kpogre_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 31
+$(srcdir)/kpgconnectioninthread.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgsettings.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgaclitem.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpglinklabel.o: kpglinklabel.moc 
+$(srcdir)/main.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpgsearchdialog.o: kpgsearchdialog.moc 
+$(srcdir)/kpgconnectdialog.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgactionsstates.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgbookmarkhandler.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpogreview.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+nmcheck-am: nmcheck
+$(srcdir)/kpgdcoptalkthread.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpglinklabel.lo: kpglinklabel.moc 
+$(srcdir)/kpgbookmarkmenu.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgsqldialog.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgsearchdialog.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpgsqldialog.lo: kpgsqldialog.moc 
+$(srcdir)/kpgutil.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpgsqlexception.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpogrecomboaction.lo: kpogrecomboaction.moc 
+$(srcdir)/kpgconfiguration.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+nmcheck: 
+kpgsqldialog.o: kpgsqldialog.moc 
+$(srcdir)/kpgbookmarksbutton.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpogrecontroller.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpggeneralsettings.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpogrecomboaction.o: kpogrecomboaction.moc 
+$(srcdir)/kpglinklabel.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+$(srcdir)/kpogrecomboaction.cpp: kpgconnectdialogbase.h kpggeneralsettingspage.h kpgsearchdialogbase.h kpgsqldialogbase.h 
+kpgsearchdialog.lo: kpgsearchdialog.moc 
+
+#>+ 60
+kpgsearchdialogbase.cpp: $(srcdir)/kpgsearchdialogbase.ui kpgsearchdialogbase.h kpgsearchdialogbase.moc
+	rm -f kpgsearchdialogbase.cpp
+	echo '#include <kdialog.h>' > kpgsearchdialogbase.cpp
+	echo '#include <klocale.h>' >> kpgsearchdialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsearchdialogbase.h $(srcdir)/kpgsearchdialogbase.ui > kpgsearchdialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsearchdialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsearchdialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsearchdialogbase.cpp ;\
+	rm -f kpgsearchdialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsearchdialogbase.moc"' >> kpgsearchdialogbase.cpp; else rm -f kpgsearchdialogbase.cpp ; exit $$ret ; fi
+
+kpgsearchdialogbase.h: $(srcdir)/kpgsearchdialogbase.ui
+	rm -rf kpgsearchdialogbase.h;
+	$(UIC) $(srcdir)/kpgsearchdialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsearchdialogbase.h ;
+kpgsearchdialogbase.moc: kpgsearchdialogbase.h
+	$(MOC) kpgsearchdialogbase.h -o kpgsearchdialogbase.moc
+
+kpgsqldialogbase.cpp: $(srcdir)/kpgsqldialogbase.ui kpgsqldialogbase.h kpgsqldialogbase.moc
+	rm -f kpgsqldialogbase.cpp
+	echo '#include <kdialog.h>' > kpgsqldialogbase.cpp
+	echo '#include <klocale.h>' >> kpgsqldialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsqldialogbase.h $(srcdir)/kpgsqldialogbase.ui > kpgsqldialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsqldialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsqldialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsqldialogbase.cpp ;\
+	rm -f kpgsqldialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsqldialogbase.moc"' >> kpgsqldialogbase.cpp; else rm -f kpgsqldialogbase.cpp ; exit $$ret ; fi
+
+kpgsqldialogbase.h: $(srcdir)/kpgsqldialogbase.ui
+	rm -rf kpgsqldialogbase.h;
+	$(UIC) $(srcdir)/kpgsqldialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsqldialogbase.h ;
+kpgsqldialogbase.moc: kpgsqldialogbase.h
+	$(MOC) kpgsqldialogbase.h -o kpgsqldialogbase.moc
+
+kpggeneralsettingspage.cpp: $(srcdir)/kpggeneralsettingspage.ui kpggeneralsettingspage.h kpggeneralsettingspage.moc
+	rm -f kpggeneralsettingspage.cpp
+	echo '#include <kdialog.h>' > kpggeneralsettingspage.cpp
+	echo '#include <klocale.h>' >> kpggeneralsettingspage.cpp
+	$(UIC) -tr ${UIC_TR} -i kpggeneralsettingspage.h $(srcdir)/kpggeneralsettingspage.ui > kpggeneralsettingspage.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpggeneralsettingspage.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpggeneralsettingspage,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpggeneralsettingspage.cpp ;\
+	rm -f kpggeneralsettingspage.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpggeneralsettingspage.moc"' >> kpggeneralsettingspage.cpp; else rm -f kpggeneralsettingspage.cpp ; exit $$ret ; fi
+
+kpggeneralsettingspage.h: $(srcdir)/kpggeneralsettingspage.ui
+	rm -rf kpggeneralsettingspage.h;
+	$(UIC) $(srcdir)/kpggeneralsettingspage.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpggeneralsettingspage.h ;
+kpggeneralsettingspage.moc: kpggeneralsettingspage.h
+	$(MOC) kpggeneralsettingspage.h -o kpggeneralsettingspage.moc
+
+kpgconnectdialogbase.cpp: $(srcdir)/kpgconnectdialogbase.ui kpgconnectdialogbase.h kpgconnectdialogbase.moc
+	rm -f kpgconnectdialogbase.cpp
+	echo '#include <kdialog.h>' > kpgconnectdialogbase.cpp
+	echo '#include <klocale.h>' >> kpgconnectdialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgconnectdialogbase.h $(srcdir)/kpgconnectdialogbase.ui > kpgconnectdialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgconnectdialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgconnectdialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgconnectdialogbase.cpp ;\
+	rm -f kpgconnectdialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgconnectdialogbase.moc"' >> kpgconnectdialogbase.cpp; else rm -f kpgconnectdialogbase.cpp ; exit $$ret ; fi
+
+kpgconnectdialogbase.h: $(srcdir)/kpgconnectdialogbase.ui
+	rm -rf kpgconnectdialogbase.h;
+	$(UIC) $(srcdir)/kpgconnectdialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgconnectdialogbase.h ;
+kpgconnectdialogbase.moc: kpgconnectdialogbase.h
+	$(MOC) kpgconnectdialogbase.h -o kpgconnectdialogbase.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+METASOURCES = AUTO
+libPropertyPages_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libPropertyPages.la
+libPropertyPages_la_SOURCES = 	kpgoperatorclassproppagebase.ui \
+	kpgabstractpropertypage.cpp kpgaggregateproppage.cpp kpgaggregateproppagebase.ui \
+	kpgaggregatesfolderproppage.cpp kpgcastproppage.cpp kpgcastproppagebase.ui kpgcastsfolderproppage.cpp \
+	kpgcheckconstrproppage.cpp kpgcheckconstrproppagebase.ui kpgconversionproppage.cpp \
+	kpgconversionproppagebase.ui kpgconversionsfolderproppage.cpp kpgdatabaseproppage.cpp \
+	kpgdatabaseproppagebase.ui kpgdomainconstrfolderproppage.cpp kpgdomainconstrproppage.cpp \
+	kpgdomainconstrproppagebase.ui kpgdomainproppage.cpp kpgdomainproppagebase.ui \
+	kpgdomainsfolderproppage.cpp kpgforeignkeyconstrproppage.cpp kpgforeignkeyconstrproppagebase.ui \
+	kpgfunctionproppage.cpp kpgfunctionproppagebase.ui kpgfunctionsfolderproppage.cpp \
+	kpggroupproppage.cpp kpggroupproppagebase.ui kpggroupsfolderproppage.cpp \
+	kpgindexproppage.cpp kpgindexproppagebase.ui kpglanguageproppage.cpp \
+	kpglanguageproppagebase.ui kpglanguagesfolderproppage.cpp kpgoperatorclassesfolderproppage.cpp \
+	kpgoperatorclassproppage.cpp kpgoperatorclassproppagebase.ui kpgoperatorproppage.cpp \
+	kpgoperatorproppagebase.ui kpgoperatorsfolderproppage.cpp kpgprimarykeyconstrproppage.cpp \
+	kpgprimarykeyconstrproppagebase.ui kpgprimarykeyproppage.cpp kpgprimarykeyproppagebase.ui \
+	kpgpropertypage.cpp kpgpropertypagebase.ui kpgpropertypagechildview.cpp kpgruleproppage.cpp \
+	kpgruleproppagebase.ui kpgrulesfolderproppage.cpp kpgschemaproppage.cpp \
+	kpgschemaproppagebase.ui kpgsequenceproppage.cpp kpgsequenceproppagebase.ui \
+	kpgsequencesfolderproppage.cpp kpgserverproppage.cpp kpgserverproppagebase.ui \
+	kpgtablecolumnproppage.cpp kpgtablecolumnproppagebase.ui kpgtablecolumnsfolderproppage.cpp \
+	kpgtableconstraintsfolderproppage.cpp kpgtableindexesfolderproppage.cpp kpgtableproppage.cpp \
+	kpgtableproppagebase.ui kpgtablesfolderproppage.cpp kpgtablespaceproppage.cpp \
+	kpgtablespaceproppagebase.ui kpgtablespacesfolderproppage.cpp kpgtriggerproppage.cpp \
+	kpgtriggerproppagebase.ui kpgtriggersfolderproppage.cpp kpgtypeattributeproppage.cpp \
+	kpgtypeattributeproppagebase.ui kpgtypeproppage.cpp kpgtypeproppagebase.ui kpgtypesfolderproppage.cpp \
+	kpguniqueconstrproppage.cpp kpguniqueconstrproppagebase.ui kpguserproppage.cpp \
+	kpguserproppagebase.ui kpgusersfolderproppage.cpp kpgviewproppage.cpp kpgviewproppagebase.ui \
+	kpgviewsfolderproppage.cpp kpgvoidproppage.cpp kpgvoidproppagebase.ui
+
+noinst_HEADERS = kpgschemaproppage.h kpgabstractpropertypage.h \
+	kpgaggregateproppage.h kpgaggregatesfolderproppage.h kpgcastproppage.h \
+	kpgcastsfolderproppage.h kpgcheckconstrproppage.h kpgconversionproppage.h \
+	kpgconversionsfolderproppage.h kpgdatabaseproppage.h kpgdomainconstrfolderproppage.h \
+	kpgdomainconstrproppage.h kpgdomainproppage.h kpgdomainsfolderproppage.h \
+	kpgforeignkeyconstrproppage.h kpgfunctionproppage.h kpgfunctionsfolderproppage.h kpggroupproppage.h \
+	kpggroupsfolderproppage.h kpgindexproppage.h kpglanguageproppage.h kpglanguagesfolderproppage.h \
+	kpgoperatorclassesfolderproppage.h kpgoperatorclassproppage.h kpgoperatorproppage.h \
+	kpgoperatorsfolderproppage.h kpgprimarykeyconstrproppage.h kpgprimarykeyproppage.h kpgpropertypage.h \
+	kpgpropertypagechildview.h kpgruleproppage.h kpgrulesfolderproppage.h kpgschemaproppage.h \
+	kpgsequenceproppage.h kpgsequencesfolderproppage.h kpgserverproppage.h \
+	kpgtablecolumnproppage.h kpgtablecolumnsfolderproppage.h kpgtableconstraintsfolderproppage.h \
+	kpgtableindexesfolderproppage.h kpgtableproppage.h kpgtablesfolderproppage.h kpgtablespaceproppage.h \
+	kpgtablespacesfolderproppage.h kpgtriggerproppage.h kpgtriggersfolderproppage.h \
+	kpgtypeattributeproppage.h kpgtypeproppage.h kpgtypesfolderproppage.h kpguniqueconstrproppage.h \
+	kpguserproppage.h kpgusersfolderproppage.h kpgviewproppage.h kpgviewsfolderproppage.h \
+	kpgvoidproppage.h

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1725 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/PropertyPages
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libPropertyPages_la_LIBADD =
+am_libPropertyPages_la_OBJECTS = kpgabstractpropertypage.lo \
+	kpgaggregateproppage.lo kpgaggregatesfolderproppage.lo \
+	kpgcastproppage.lo kpgcastsfolderproppage.lo \
+	kpgcheckconstrproppage.lo kpgconversionproppage.lo \
+	kpgconversionsfolderproppage.lo kpgdatabaseproppage.lo \
+	kpgdomainconstrfolderproppage.lo kpgdomainconstrproppage.lo \
+	kpgdomainproppage.lo kpgdomainsfolderproppage.lo \
+	kpgforeignkeyconstrproppage.lo kpgfunctionproppage.lo \
+	kpgfunctionsfolderproppage.lo kpggroupproppage.lo \
+	kpggroupsfolderproppage.lo kpgindexproppage.lo \
+	kpglanguageproppage.lo kpglanguagesfolderproppage.lo \
+	kpgoperatorclassesfolderproppage.lo \
+	kpgoperatorclassproppage.lo kpgoperatorproppage.lo \
+	kpgoperatorsfolderproppage.lo kpgprimarykeyconstrproppage.lo \
+	kpgprimarykeyproppage.lo kpgpropertypage.lo \
+	kpgpropertypagechildview.lo kpgruleproppage.lo \
+	kpgrulesfolderproppage.lo kpgschemaproppage.lo \
+	kpgsequenceproppage.lo kpgsequencesfolderproppage.lo \
+	kpgserverproppage.lo kpgtablecolumnproppage.lo \
+	kpgtablecolumnsfolderproppage.lo \
+	kpgtableconstraintsfolderproppage.lo \
+	kpgtableindexesfolderproppage.lo kpgtableproppage.lo \
+	kpgtablesfolderproppage.lo kpgtablespaceproppage.lo \
+	kpgtablespacesfolderproppage.lo kpgtriggerproppage.lo \
+	kpgtriggersfolderproppage.lo kpgtypeattributeproppage.lo \
+	kpgtypeproppage.lo kpgtypesfolderproppage.lo \
+	kpguniqueconstrproppage.lo kpguserproppage.lo \
+	kpgusersfolderproppage.lo kpgviewproppage.lo \
+	kpgviewsfolderproppage.lo kpgvoidproppage.lo
+#>- libPropertyPages_la_OBJECTS = $(am_libPropertyPages_la_OBJECTS)
+#>+ 33
+libPropertyPages_la_final_OBJECTS = libPropertyPages_la.all_cpp.lo 
+libPropertyPages_la_nofinal_OBJECTS = kpgabstractpropertypage.lo \
+	kpgaggregateproppage.lo kpgaggregatesfolderproppage.lo \
+	kpgcastproppage.lo kpgcastsfolderproppage.lo \
+	kpgcheckconstrproppage.lo kpgconversionproppage.lo \
+	kpgconversionsfolderproppage.lo kpgdatabaseproppage.lo \
+	kpgdomainconstrfolderproppage.lo kpgdomainconstrproppage.lo \
+	kpgdomainproppage.lo kpgdomainsfolderproppage.lo \
+	kpgforeignkeyconstrproppage.lo kpgfunctionproppage.lo \
+	kpgfunctionsfolderproppage.lo kpggroupproppage.lo \
+	kpggroupsfolderproppage.lo kpgindexproppage.lo \
+	kpglanguageproppage.lo kpglanguagesfolderproppage.lo \
+	kpgoperatorclassesfolderproppage.lo \
+	kpgoperatorclassproppage.lo kpgoperatorproppage.lo \
+	kpgoperatorsfolderproppage.lo kpgprimarykeyconstrproppage.lo \
+	kpgprimarykeyproppage.lo kpgpropertypage.lo \
+	kpgpropertypagechildview.lo kpgruleproppage.lo \
+	kpgrulesfolderproppage.lo kpgschemaproppage.lo \
+	kpgsequenceproppage.lo kpgsequencesfolderproppage.lo \
+	kpgserverproppage.lo kpgtablecolumnproppage.lo \
+	kpgtablecolumnsfolderproppage.lo \
+	kpgtableconstraintsfolderproppage.lo \
+	kpgtableindexesfolderproppage.lo kpgtableproppage.lo \
+	kpgtablesfolderproppage.lo kpgtablespaceproppage.lo \
+	kpgtablespacesfolderproppage.lo kpgtriggerproppage.lo \
+	kpgtriggersfolderproppage.lo kpgtypeattributeproppage.lo \
+	kpgtypeproppage.lo kpgtypesfolderproppage.lo \
+	kpguniqueconstrproppage.lo kpguserproppage.lo \
+	kpgusersfolderproppage.lo kpgviewproppage.lo \
+	kpgviewsfolderproppage.lo kpgvoidproppage.lo kpgoperatorclassproppagebase.lo kpgaggregateproppagebase.lo kpgcastproppagebase.lo kpgcheckconstrproppagebase.lo kpgconversionproppagebase.lo kpgdatabaseproppagebase.lo kpgdomainconstrproppagebase.lo kpgdomainproppagebase.lo kpgforeignkeyconstrproppagebase.lo kpgfunctionproppagebase.lo kpggroupproppagebase.lo kpgindexproppagebase.lo kpglanguageproppagebase.lo kpgoperatorclassproppagebase.lo kpgoperatorproppagebase.lo kpgprimarykeyconstrproppagebase.lo kpgprimarykeyproppagebase.lo kpgpropertypagebase.lo kpgruleproppagebase.lo kpgschemaproppagebase.lo kpgsequenceproppagebase.lo kpgserverproppagebase.lo kpgtablecolumnproppagebase.lo kpgtableproppagebase.lo kpgtablespaceproppagebase.lo kpgtriggerproppagebase.lo kpgtypeattributeproppagebase.lo kpgtypeproppagebase.lo kpguniqueconstrproppagebase.lo kpguserproppagebase.lo kpgviewproppagebase.lo kpgvoidproppagebase.lo\
+kpgpropertypagechildview.moc.lo 
+ at KDE_USE_FINAL_FALSE@libPropertyPages_la_OBJECTS = $(libPropertyPages_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libPropertyPages_la_OBJECTS = $(libPropertyPages_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libPropertyPages_la_SOURCES)
+DIST_SOURCES = $(libPropertyPages_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+#>- METASOURCES = AUTO
+libPropertyPages_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libPropertyPages.la
+#>- libPropertyPages_la_SOURCES = kpgoperatorclassproppagebase.ui \
+#>- 	kpgabstractpropertypage.cpp kpgaggregateproppage.cpp kpgaggregateproppagebase.ui \
+#>- 	kpgaggregatesfolderproppage.cpp kpgcastproppage.cpp kpgcastproppagebase.ui kpgcastsfolderproppage.cpp \
+#>- 	kpgcheckconstrproppage.cpp kpgcheckconstrproppagebase.ui kpgconversionproppage.cpp \
+#>- 	kpgconversionproppagebase.ui kpgconversionsfolderproppage.cpp kpgdatabaseproppage.cpp \
+#>- 	kpgdatabaseproppagebase.ui kpgdomainconstrfolderproppage.cpp kpgdomainconstrproppage.cpp \
+#>- 	kpgdomainconstrproppagebase.ui kpgdomainproppage.cpp kpgdomainproppagebase.ui \
+#>- 	kpgdomainsfolderproppage.cpp kpgforeignkeyconstrproppage.cpp kpgforeignkeyconstrproppagebase.ui \
+#>- 	kpgfunctionproppage.cpp kpgfunctionproppagebase.ui kpgfunctionsfolderproppage.cpp \
+#>- 	kpggroupproppage.cpp kpggroupproppagebase.ui kpggroupsfolderproppage.cpp \
+#>- 	kpgindexproppage.cpp kpgindexproppagebase.ui kpglanguageproppage.cpp \
+#>- 	kpglanguageproppagebase.ui kpglanguagesfolderproppage.cpp kpgoperatorclassesfolderproppage.cpp \
+#>- 	kpgoperatorclassproppage.cpp kpgoperatorclassproppagebase.ui kpgoperatorproppage.cpp \
+#>- 	kpgoperatorproppagebase.ui kpgoperatorsfolderproppage.cpp kpgprimarykeyconstrproppage.cpp \
+#>- 	kpgprimarykeyconstrproppagebase.ui kpgprimarykeyproppage.cpp kpgprimarykeyproppagebase.ui \
+#>- 	kpgpropertypage.cpp kpgpropertypagebase.ui kpgpropertypagechildview.cpp kpgruleproppage.cpp \
+#>- 	kpgruleproppagebase.ui kpgrulesfolderproppage.cpp kpgschemaproppage.cpp \
+#>- 	kpgschemaproppagebase.ui kpgsequenceproppage.cpp kpgsequenceproppagebase.ui \
+#>- 	kpgsequencesfolderproppage.cpp kpgserverproppage.cpp kpgserverproppagebase.ui \
+#>- 	kpgtablecolumnproppage.cpp kpgtablecolumnproppagebase.ui kpgtablecolumnsfolderproppage.cpp \
+#>- 	kpgtableconstraintsfolderproppage.cpp kpgtableindexesfolderproppage.cpp kpgtableproppage.cpp \
+#>- 	kpgtableproppagebase.ui kpgtablesfolderproppage.cpp kpgtablespaceproppage.cpp \
+#>- 	kpgtablespaceproppagebase.ui kpgtablespacesfolderproppage.cpp kpgtriggerproppage.cpp \
+#>- 	kpgtriggerproppagebase.ui kpgtriggersfolderproppage.cpp kpgtypeattributeproppage.cpp \
+#>- 	kpgtypeattributeproppagebase.ui kpgtypeproppage.cpp kpgtypeproppagebase.ui kpgtypesfolderproppage.cpp \
+#>- 	kpguniqueconstrproppage.cpp kpguniqueconstrproppagebase.ui kpguserproppage.cpp \
+#>- 	kpguserproppagebase.ui kpgusersfolderproppage.cpp kpgviewproppage.cpp kpgviewproppagebase.ui \
+#>- 	kpgviewsfolderproppage.cpp kpgvoidproppage.cpp kpgvoidproppagebase.ui
+#>+ 28
+libPropertyPages_la_SOURCES= \
+	kpgabstractpropertypage.cpp kpgaggregateproppage.cpp  \
+	kpgaggregatesfolderproppage.cpp kpgcastproppage.cpp  kpgcastsfolderproppage.cpp \
+	kpgcheckconstrproppage.cpp  kpgconversionproppage.cpp \
+	 kpgconversionsfolderproppage.cpp kpgdatabaseproppage.cpp \
+	 kpgdomainconstrfolderproppage.cpp kpgdomainconstrproppage.cpp \
+	 kpgdomainproppage.cpp  \
+	kpgdomainsfolderproppage.cpp kpgforeignkeyconstrproppage.cpp  \
+	kpgfunctionproppage.cpp  kpgfunctionsfolderproppage.cpp \
+	kpggroupproppage.cpp  kpggroupsfolderproppage.cpp \
+	kpgindexproppage.cpp  kpglanguageproppage.cpp \
+	 kpglanguagesfolderproppage.cpp kpgoperatorclassesfolderproppage.cpp \
+	kpgoperatorclassproppage.cpp  kpgoperatorproppage.cpp \
+	 kpgoperatorsfolderproppage.cpp kpgprimarykeyconstrproppage.cpp \
+	 kpgprimarykeyproppage.cpp  \
+	kpgpropertypage.cpp  kpgpropertypagechildview.cpp kpgruleproppage.cpp \
+	 kpgrulesfolderproppage.cpp kpgschemaproppage.cpp \
+	 kpgsequenceproppage.cpp  \
+	kpgsequencesfolderproppage.cpp kpgserverproppage.cpp  \
+	kpgtablecolumnproppage.cpp  kpgtablecolumnsfolderproppage.cpp \
+	kpgtableconstraintsfolderproppage.cpp kpgtableindexesfolderproppage.cpp kpgtableproppage.cpp \
+	 kpgtablesfolderproppage.cpp kpgtablespaceproppage.cpp \
+	 kpgtablespacesfolderproppage.cpp kpgtriggerproppage.cpp \
+	 kpgtriggersfolderproppage.cpp kpgtypeattributeproppage.cpp \
+	 kpgtypeproppage.cpp  kpgtypesfolderproppage.cpp \
+	kpguniqueconstrproppage.cpp  kpguserproppage.cpp \
+	 kpgusersfolderproppage.cpp kpgviewproppage.cpp  \
+	kpgviewsfolderproppage.cpp kpgvoidproppage.cpp  kpgoperatorclassproppagebase.cpp kpgaggregateproppagebase.cpp kpgcastproppagebase.cpp kpgcheckconstrproppagebase.cpp kpgconversionproppagebase.cpp kpgdatabaseproppagebase.cpp kpgdomainconstrproppagebase.cpp kpgdomainproppagebase.cpp kpgforeignkeyconstrproppagebase.cpp kpgfunctionproppagebase.cpp kpggroupproppagebase.cpp kpgindexproppagebase.cpp kpglanguageproppagebase.cpp kpgoperatorclassproppagebase.cpp kpgoperatorproppagebase.cpp kpgprimarykeyconstrproppagebase.cpp kpgprimarykeyproppagebase.cpp kpgpropertypagebase.cpp kpgruleproppagebase.cpp kpgschemaproppagebase.cpp kpgsequenceproppagebase.cpp kpgserverproppagebase.cpp kpgtablecolumnproppagebase.cpp kpgtableproppagebase.cpp kpgtablespaceproppagebase.cpp kpgtriggerproppagebase.cpp kpgtypeattributeproppagebase.cpp kpgtypeproppagebase.cpp kpguniqueconstrproppagebase.cpp kpguserproppagebase.cpp kpgviewproppagebase.cpp kpgvoidproppagebase.cpp
+
+noinst_HEADERS = kpgschemaproppage.h kpgabstractpropertypage.h \
+	kpgaggregateproppage.h kpgaggregatesfolderproppage.h kpgcastproppage.h \
+	kpgcastsfolderproppage.h kpgcheckconstrproppage.h kpgconversionproppage.h \
+	kpgconversionsfolderproppage.h kpgdatabaseproppage.h kpgdomainconstrfolderproppage.h \
+	kpgdomainconstrproppage.h kpgdomainproppage.h kpgdomainsfolderproppage.h \
+	kpgforeignkeyconstrproppage.h kpgfunctionproppage.h kpgfunctionsfolderproppage.h kpggroupproppage.h \
+	kpggroupsfolderproppage.h kpgindexproppage.h kpglanguageproppage.h kpglanguagesfolderproppage.h \
+	kpgoperatorclassesfolderproppage.h kpgoperatorclassproppage.h kpgoperatorproppage.h \
+	kpgoperatorsfolderproppage.h kpgprimarykeyconstrproppage.h kpgprimarykeyproppage.h kpgpropertypage.h \
+	kpgpropertypagechildview.h kpgruleproppage.h kpgrulesfolderproppage.h kpgschemaproppage.h \
+	kpgsequenceproppage.h kpgsequencesfolderproppage.h kpgserverproppage.h \
+	kpgtablecolumnproppage.h kpgtablecolumnsfolderproppage.h kpgtableconstraintsfolderproppage.h \
+	kpgtableindexesfolderproppage.h kpgtableproppage.h kpgtablesfolderproppage.h kpgtablespaceproppage.h \
+	kpgtablespacesfolderproppage.h kpgtriggerproppage.h kpgtriggersfolderproppage.h \
+	kpgtypeattributeproppage.h kpgtypeproppage.h kpgtypesfolderproppage.h kpguniqueconstrproppage.h \
+	kpguserproppage.h kpgusersfolderproppage.h kpgviewproppage.h kpgviewsfolderproppage.h \
+	kpgvoidproppage.h
+
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/PropertyPages/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libPropertyPages.la: $(libPropertyPages_la_OBJECTS) $(libPropertyPages_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libPropertyPages_la_LDFLAGS) $(libPropertyPages_la_OBJECTS) $(libPropertyPages_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgabstractpropertypage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgaggregateproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgaggregatesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcastproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcastsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcheckconstrproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconversionproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgconversionsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdatabaseproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainconstrfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainconstrproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdomainsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgforeignkeyconstrproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgfunctionproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgfunctionsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpggroupproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpggroupsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgindexproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpglanguageproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpglanguagesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorclassesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorclassproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgoperatorsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgprimarykeyconstrproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgprimarykeyproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgpropertypage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgpropertypagechildview.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgruleproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrulesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgschemaproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsequenceproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsequencesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgserverproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablecolumnproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablecolumnsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableconstraintsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableindexesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtableproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablespaceproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablespacesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtriggerproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtriggersfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtypeattributeproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtypeproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtypesfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpguniqueconstrproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpguserproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgusersfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgviewproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgviewsfolderproppage.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgvoidproppage.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgconversionproppage.moc: $(srcdir)/kpgconversionproppage.h
+	$(MOC) $(srcdir)/kpgconversionproppage.h -o kpgconversionproppage.moc
+
+#>+ 2
+mocs: kpgconversionproppage.moc
+
+#>+ 3
+kpgvoidproppage.moc: $(srcdir)/kpgvoidproppage.h
+	$(MOC) $(srcdir)/kpgvoidproppage.h -o kpgvoidproppage.moc
+
+#>+ 2
+mocs: kpgvoidproppage.moc
+
+#>+ 3
+kpgtablecolumnproppage.moc: $(srcdir)/kpgtablecolumnproppage.h
+	$(MOC) $(srcdir)/kpgtablecolumnproppage.h -o kpgtablecolumnproppage.moc
+
+#>+ 2
+mocs: kpgtablecolumnproppage.moc
+
+#>+ 3
+kpgtablespaceproppage.moc: $(srcdir)/kpgtablespaceproppage.h
+	$(MOC) $(srcdir)/kpgtablespaceproppage.h -o kpgtablespaceproppage.moc
+
+#>+ 2
+mocs: kpgtablespaceproppage.moc
+
+#>+ 3
+kpggroupproppage.moc: $(srcdir)/kpggroupproppage.h
+	$(MOC) $(srcdir)/kpggroupproppage.h -o kpggroupproppage.moc
+
+#>+ 2
+mocs: kpggroupproppage.moc
+
+#>+ 3
+kpgtableproppage.moc: $(srcdir)/kpgtableproppage.h
+	$(MOC) $(srcdir)/kpgtableproppage.h -o kpgtableproppage.moc
+
+#>+ 2
+mocs: kpgtableproppage.moc
+
+#>+ 3
+kpgoperatorproppage.moc: $(srcdir)/kpgoperatorproppage.h
+	$(MOC) $(srcdir)/kpgoperatorproppage.h -o kpgoperatorproppage.moc
+
+#>+ 2
+mocs: kpgoperatorproppage.moc
+
+#>+ 3
+kpgserverproppage.moc: $(srcdir)/kpgserverproppage.h
+	$(MOC) $(srcdir)/kpgserverproppage.h -o kpgserverproppage.moc
+
+#>+ 2
+mocs: kpgserverproppage.moc
+
+#>+ 3
+kpguserproppage.moc: $(srcdir)/kpguserproppage.h
+	$(MOC) $(srcdir)/kpguserproppage.h -o kpguserproppage.moc
+
+#>+ 2
+mocs: kpguserproppage.moc
+
+#>+ 3
+kpguniqueconstrproppage.moc: $(srcdir)/kpguniqueconstrproppage.h
+	$(MOC) $(srcdir)/kpguniqueconstrproppage.h -o kpguniqueconstrproppage.moc
+
+#>+ 2
+mocs: kpguniqueconstrproppage.moc
+
+#>+ 3
+kpgforeignkeyconstrproppage.moc: $(srcdir)/kpgforeignkeyconstrproppage.h
+	$(MOC) $(srcdir)/kpgforeignkeyconstrproppage.h -o kpgforeignkeyconstrproppage.moc
+
+#>+ 2
+mocs: kpgforeignkeyconstrproppage.moc
+
+#>+ 3
+kpgdatabaseproppage.moc: $(srcdir)/kpgdatabaseproppage.h
+	$(MOC) $(srcdir)/kpgdatabaseproppage.h -o kpgdatabaseproppage.moc
+
+#>+ 2
+mocs: kpgdatabaseproppage.moc
+
+#>+ 3
+kpgaggregateproppage.moc: $(srcdir)/kpgaggregateproppage.h
+	$(MOC) $(srcdir)/kpgaggregateproppage.h -o kpgaggregateproppage.moc
+
+#>+ 2
+mocs: kpgaggregateproppage.moc
+
+#>+ 3
+kpgtriggerproppage.moc: $(srcdir)/kpgtriggerproppage.h
+	$(MOC) $(srcdir)/kpgtriggerproppage.h -o kpgtriggerproppage.moc
+
+#>+ 2
+mocs: kpgtriggerproppage.moc
+
+#>+ 3
+kpgprimarykeyconstrproppage.moc: $(srcdir)/kpgprimarykeyconstrproppage.h
+	$(MOC) $(srcdir)/kpgprimarykeyconstrproppage.h -o kpgprimarykeyconstrproppage.moc
+
+#>+ 2
+mocs: kpgprimarykeyconstrproppage.moc
+
+#>+ 3
+kpgruleproppage.moc: $(srcdir)/kpgruleproppage.h
+	$(MOC) $(srcdir)/kpgruleproppage.h -o kpgruleproppage.moc
+
+#>+ 2
+mocs: kpgruleproppage.moc
+
+#>+ 3
+kpgcheckconstrproppage.moc: $(srcdir)/kpgcheckconstrproppage.h
+	$(MOC) $(srcdir)/kpgcheckconstrproppage.h -o kpgcheckconstrproppage.moc
+
+#>+ 2
+mocs: kpgcheckconstrproppage.moc
+
+#>+ 3
+kpgprimarykeyproppage.moc: $(srcdir)/kpgprimarykeyproppage.h
+	$(MOC) $(srcdir)/kpgprimarykeyproppage.h -o kpgprimarykeyproppage.moc
+
+#>+ 2
+mocs: kpgprimarykeyproppage.moc
+
+#>+ 3
+kpgtypeproppage.moc: $(srcdir)/kpgtypeproppage.h
+	$(MOC) $(srcdir)/kpgtypeproppage.h -o kpgtypeproppage.moc
+
+#>+ 2
+mocs: kpgtypeproppage.moc
+
+#>+ 3
+kpgdomainconstrproppage.moc: $(srcdir)/kpgdomainconstrproppage.h
+	$(MOC) $(srcdir)/kpgdomainconstrproppage.h -o kpgdomainconstrproppage.moc
+
+#>+ 2
+mocs: kpgdomainconstrproppage.moc
+
+#>+ 3
+kpgviewproppage.moc: $(srcdir)/kpgviewproppage.h
+	$(MOC) $(srcdir)/kpgviewproppage.h -o kpgviewproppage.moc
+
+#>+ 2
+mocs: kpgviewproppage.moc
+
+#>+ 3
+kpgcastproppage.moc: $(srcdir)/kpgcastproppage.h
+	$(MOC) $(srcdir)/kpgcastproppage.h -o kpgcastproppage.moc
+
+#>+ 2
+mocs: kpgcastproppage.moc
+
+#>+ 3
+kpgschemaproppage.moc: $(srcdir)/kpgschemaproppage.h
+	$(MOC) $(srcdir)/kpgschemaproppage.h -o kpgschemaproppage.moc
+
+#>+ 2
+mocs: kpgschemaproppage.moc
+
+#>+ 3
+kpglanguageproppage.moc: $(srcdir)/kpglanguageproppage.h
+	$(MOC) $(srcdir)/kpglanguageproppage.h -o kpglanguageproppage.moc
+
+#>+ 2
+mocs: kpglanguageproppage.moc
+
+#>+ 3
+kpgoperatorclassproppage.moc: $(srcdir)/kpgoperatorclassproppage.h
+	$(MOC) $(srcdir)/kpgoperatorclassproppage.h -o kpgoperatorclassproppage.moc
+
+#>+ 2
+mocs: kpgoperatorclassproppage.moc
+
+#>+ 3
+kpgsequenceproppage.moc: $(srcdir)/kpgsequenceproppage.h
+	$(MOC) $(srcdir)/kpgsequenceproppage.h -o kpgsequenceproppage.moc
+
+#>+ 2
+mocs: kpgsequenceproppage.moc
+
+#>+ 3
+kpgtypeattributeproppage.moc: $(srcdir)/kpgtypeattributeproppage.h
+	$(MOC) $(srcdir)/kpgtypeattributeproppage.h -o kpgtypeattributeproppage.moc
+
+#>+ 2
+mocs: kpgtypeattributeproppage.moc
+
+#>+ 3
+kpgpropertypagechildview.moc.cpp: $(srcdir)/kpgpropertypagechildview.h
+	$(MOC) $(srcdir)/kpgpropertypagechildview.h -o kpgpropertypagechildview.moc.cpp
+
+#>+ 2
+mocs: kpgpropertypagechildview.moc.cpp
+
+#>+ 3
+kpgpropertypage.moc: $(srcdir)/kpgpropertypage.h
+	$(MOC) $(srcdir)/kpgpropertypage.h -o kpgpropertypage.moc
+
+#>+ 2
+mocs: kpgpropertypage.moc
+
+#>+ 3
+kpgdomainproppage.moc: $(srcdir)/kpgdomainproppage.h
+	$(MOC) $(srcdir)/kpgdomainproppage.h -o kpgdomainproppage.moc
+
+#>+ 2
+mocs: kpgdomainproppage.moc
+
+#>+ 3
+kpgfunctionproppage.moc: $(srcdir)/kpgfunctionproppage.h
+	$(MOC) $(srcdir)/kpgfunctionproppage.h -o kpgfunctionproppage.moc
+
+#>+ 2
+mocs: kpgfunctionproppage.moc
+
+#>+ 3
+kpgindexproppage.moc: $(srcdir)/kpgindexproppage.h
+	$(MOC) $(srcdir)/kpgindexproppage.h -o kpgindexproppage.moc
+
+#>+ 2
+mocs: kpgindexproppage.moc
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgconversionproppage.moc kpgvoidproppage.moc kpgtablecolumnproppage.moc kpgtablespaceproppage.moc kpggroupproppage.moc kpgtableproppage.moc kpgoperatorproppage.moc kpgserverproppage.moc kpguserproppage.moc kpguniqueconstrproppage.moc kpgforeignkeyconstrproppage.moc kpgdatabaseproppage.moc kpgaggregateproppage.moc kpgtriggerproppage.moc kpgprimarykeyconstrproppage.moc kpgruleproppage.moc kpgcheckconstrproppage.moc kpgprimarykeyproppage.moc kpgtypeproppage.moc kpgdomainconstrproppage.moc kpgviewproppage.moc kpgcastproppage.moc kpgschemaproppage.moc kpglanguageproppage.moc kpgoperatorclassproppage.moc kpgsequenceproppage.moc kpgtypeattributeproppage.moc kpgpropertypagechildview.moc.cpp kpgpropertypage.moc kpgdomainproppage.moc kpgfunctionproppage.moc kpgindexproppage.moc
+
+#>+ 2
+KDE_DIST=kpgdatabaseproppagebase.ui kpgcastproppagebase.ui kpguserproppagebase.ui kpgtypeattributeproppagebase.ui kpgviewproppagebase.ui kpgtableproppagebase.ui kpgtablespaceproppagebase.ui kpgruleproppagebase.ui kpgtriggerproppagebase.ui kpgpropertypagebase.ui kpggroupproppagebase.ui kpgschemaproppagebase.ui Makefile.in kpgsequenceproppagebase.ui kpgcheckconstrproppagebase.ui kpgtypeproppagebase.ui kpgconversionproppagebase.ui kpguserproppagebase.h kpgvoidproppagebase.ui kpgtablecolumnproppagebase.ui kpglanguageproppagebase.ui kpgforeignkeyconstrproppagebase.ui kpgoperatorclassproppagebase.ui kpgdomainconstrproppagebase.ui kpgaggregateproppagebase.ui kpgprimarykeyconstrproppagebase.ui kpgdatabaseproppagebase.h kpguniqueconstrproppagebase.ui kpgindexproppagebase.ui kpgdomainproppagebase.ui kpgserverproppagebase.ui kpgfunctionproppagebase.ui kpgprimarykeyproppagebase.ui Makefile.am kpgoperatorproppagebase.ui 
+
+#>+ 35
+clean-ui:
+	-rm -f \
+	kpgoperatorclassproppagebase.cpp kpgoperatorclassproppagebase.h kpgoperatorclassproppagebase.moc \
+	kpgaggregateproppagebase.cpp kpgaggregateproppagebase.h kpgaggregateproppagebase.moc \
+	kpgcastproppagebase.cpp kpgcastproppagebase.h kpgcastproppagebase.moc \
+	kpgcheckconstrproppagebase.cpp kpgcheckconstrproppagebase.h kpgcheckconstrproppagebase.moc \
+	kpgconversionproppagebase.cpp kpgconversionproppagebase.h kpgconversionproppagebase.moc \
+	kpgdatabaseproppagebase.cpp kpgdatabaseproppagebase.h kpgdatabaseproppagebase.moc \
+	kpgdomainconstrproppagebase.cpp kpgdomainconstrproppagebase.h kpgdomainconstrproppagebase.moc \
+	kpgdomainproppagebase.cpp kpgdomainproppagebase.h kpgdomainproppagebase.moc \
+	kpgforeignkeyconstrproppagebase.cpp kpgforeignkeyconstrproppagebase.h kpgforeignkeyconstrproppagebase.moc \
+	kpgfunctionproppagebase.cpp kpgfunctionproppagebase.h kpgfunctionproppagebase.moc \
+	kpggroupproppagebase.cpp kpggroupproppagebase.h kpggroupproppagebase.moc \
+	kpgindexproppagebase.cpp kpgindexproppagebase.h kpgindexproppagebase.moc \
+	kpglanguageproppagebase.cpp kpglanguageproppagebase.h kpglanguageproppagebase.moc \
+	kpgoperatorclassproppagebase.cpp kpgoperatorclassproppagebase.h kpgoperatorclassproppagebase.moc \
+	kpgoperatorproppagebase.cpp kpgoperatorproppagebase.h kpgoperatorproppagebase.moc \
+	kpgprimarykeyconstrproppagebase.cpp kpgprimarykeyconstrproppagebase.h kpgprimarykeyconstrproppagebase.moc \
+	kpgprimarykeyproppagebase.cpp kpgprimarykeyproppagebase.h kpgprimarykeyproppagebase.moc \
+	kpgpropertypagebase.cpp kpgpropertypagebase.h kpgpropertypagebase.moc \
+	kpgruleproppagebase.cpp kpgruleproppagebase.h kpgruleproppagebase.moc \
+	kpgschemaproppagebase.cpp kpgschemaproppagebase.h kpgschemaproppagebase.moc \
+	kpgsequenceproppagebase.cpp kpgsequenceproppagebase.h kpgsequenceproppagebase.moc \
+	kpgserverproppagebase.cpp kpgserverproppagebase.h kpgserverproppagebase.moc \
+	kpgtablecolumnproppagebase.cpp kpgtablecolumnproppagebase.h kpgtablecolumnproppagebase.moc \
+	kpgtableproppagebase.cpp kpgtableproppagebase.h kpgtableproppagebase.moc \
+	kpgtablespaceproppagebase.cpp kpgtablespaceproppagebase.h kpgtablespaceproppagebase.moc \
+	kpgtriggerproppagebase.cpp kpgtriggerproppagebase.h kpgtriggerproppagebase.moc \
+	kpgtypeattributeproppagebase.cpp kpgtypeattributeproppagebase.h kpgtypeattributeproppagebase.moc \
+	kpgtypeproppagebase.cpp kpgtypeproppagebase.h kpgtypeproppagebase.moc \
+	kpguniqueconstrproppagebase.cpp kpguniqueconstrproppagebase.h kpguniqueconstrproppagebase.moc \
+	kpguserproppagebase.cpp kpguserproppagebase.h kpguserproppagebase.moc \
+	kpgviewproppagebase.cpp kpgviewproppagebase.h kpgviewproppagebase.moc \
+	kpgvoidproppagebase.cpp kpgvoidproppagebase.h kpgvoidproppagebase.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/PropertyPages/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/PropertyPages/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libPropertyPages_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgabstractpropertypage.cpp $(srcdir)/kpgaggregateproppage.cpp $(srcdir)/kpgaggregatesfolderproppage.cpp $(srcdir)/kpgcastproppage.cpp $(srcdir)/kpgcastsfolderproppage.cpp $(srcdir)/kpgcheckconstrproppage.cpp $(srcdir)/kpgconversionproppage.cpp $(srcdir)/kpgconversionsfolderproppage.cpp $(srcdir)/kpgdatabaseproppage.cpp $(srcdir)/kpgdomainconstrfolderproppage.cpp $(srcdir)/kpgdomainconstrproppage.cpp $(srcdir)/kpgdomainproppage.cpp $(srcdir)/kpgdomainsfolderproppage.cpp $(srcdir)/kpgforeignkeyconstrproppage.cpp $(srcdir)/kpgfunctionproppage.cpp $(srcdir)/kpgfunctionsfolderproppage.cpp $(srcdir)/kpggroupproppage.cpp $(srcdir)/kpggroupsfolderproppage.cpp $(srcdir)/kpgindexproppage.cpp $(srcdir)/kpglanguageproppage.cpp $(srcdir)/kpglanguagesfolderproppage.cpp $(srcdir)/kpgoperatorclassesfolderproppage.cpp $(srcdir)/kpgoperatorclassproppage.cpp $(srcdir)/kpgoperatorproppage.cpp $(srcdir)/kpgoperatorsfolderproppage.cpp $(srcdir)/kpgprimarykeyconstrproppage.cpp $(srcdir)/kpgprimarykeyproppage.cpp $(srcdir)/kpgpropertypage.cpp $(srcdir)/kpgpropertypagechildview.cpp $(srcdir)/kpgruleproppage.cpp $(srcdir)/kpgrulesfolderproppage.cpp $(srcdir)/kpgschemaproppage.cpp $(srcdir)/kpgsequenceproppage.cpp $(srcdir)/kpgsequencesfolderproppage.cpp $(srcdir)/kpgserverproppage.cpp $(srcdir)/kpgtablecolumnproppage.cpp $(srcdir)/kpgtablecolumnsfolderproppage.cpp $(srcdir)/kpgtableconstraintsfolderproppage.cpp $(srcdir)/kpgtableindexesfolderproppage.cpp $(srcdir)/kpgtableproppage.cpp $(srcdir)/kpgtablesfolderproppage.cpp $(srcdir)/kpgtablespaceproppage.cpp $(srcdir)/kpgtablespacesfolderproppage.cpp $(srcdir)/kpgtriggerproppage.cpp $(srcdir)/kpgtriggersfolderproppage.cpp $(srcdir)/kpgtypeattributeproppage.cpp $(srcdir)/kpgtypeproppage.cpp $(srcdir)/kpgtypesfolderproppage.cpp $(srcdir)/kpguniqueconstrproppage.cpp $(srcdir)/kpguserproppage.cpp $(srcdir)/kpgusersfolderproppage.cpp $(srcdir)/kpgviewproppage.cpp $(srcdir)/kpgviewsfolderproppage.cpp $(srcdir)/kpgvoidproppage.cpp $(srcdir)/kpgoperatorclassproppagebase.cpp $(srcdir)/kpgaggregateproppagebase.cpp $(srcdir)/kpgcastproppagebase.cpp $(srcdir)/kpgcheckconstrproppagebase.cpp $(srcdir)/kpgconversionproppagebase.cpp $(srcdir)/kpgdatabaseproppagebase.cpp $(srcdir)/kpgdomainconstrproppagebase.cpp $(srcdir)/kpgdomainproppagebase.cpp $(srcdir)/kpgforeignkeyconstrproppagebase.cpp $(srcdir)/kpgfunctionproppagebase.cpp $(srcdir)/kpggroupproppagebase.cpp $(srcdir)/kpgindexproppagebase.cpp $(srcdir)/kpglanguageproppagebase.cpp $(srcdir)/kpgoperatorclassproppagebase.cpp $(srcdir)/kpgoperatorproppagebase.cpp $(srcdir)/kpgprimarykeyconstrproppagebase.cpp $(srcdir)/kpgprimarykeyproppagebase.cpp $(srcdir)/kpgpropertypagebase.cpp $(srcdir)/kpgruleproppagebase.cpp $(srcdir)/kpgschemaproppagebase.cpp $(srcdir)/kpgsequenceproppagebase.cpp $(srcdir)/kpgserverproppagebase.cpp $(srcdir)/kpgtablecolumnproppagebase.cpp $(srcdir)/kpgtableproppagebase.cpp $(srcdir)/kpgtablespaceproppagebase.cpp $(srcdir)/kpgtriggerproppagebase.cpp $(srcdir)/kpgtypeattributeproppagebase.cpp $(srcdir)/kpgtypeproppagebase.cpp $(srcdir)/kpguniqueconstrproppagebase.cpp $(srcdir)/kpguserproppagebase.cpp $(srcdir)/kpgviewproppagebase.cpp $(srcdir)/kpgvoidproppagebase.cpp kpgpropertypagechildview.moc.cpp  kpgserverproppagebase.moc kpggroupproppage.moc kpgoperatorproppage.moc kpgtableproppage.moc kpguniqueconstrproppagebase.moc kpguniqueconstrproppage.moc kpgviewproppagebase.moc kpgforeignkeyconstrproppage.moc kpgtriggerproppagebase.moc kpgconversionproppagebase.moc kpgsequenceproppagebase.moc kpgtriggerproppage.moc kpgaggregateproppage.moc kpgdomainconstrproppagebase.moc kpgprimarykeyconstrproppage.moc kpglanguageproppagebase.moc kpgprimarykeyproppage.moc kpgruleproppage.moc kpgcastproppagebase.moc kpgindexproppagebase.moc kpgviewproppage.moc kpgtablecolumnproppagebase.moc kpgsequenceproppage.moc kpgtablespaceproppagebase.moc kpgruleproppagebase.moc kpgaggregateproppagebase.moc kpgpropertypage.moc kpgtypeproppagebase.moc kpgfunctionproppagebase.moc kpgconversionproppage.moc kpgvoidproppage.moc kpgoperatorproppagebase.moc kpgtablespaceproppage.moc kpgtablecolumnproppage.moc kpgserverproppage.moc kpguserproppage.moc kpgpropertypagebase.moc kpgtypeattributeproppagebase.moc kpggroupproppagebase.moc kpguserproppagebase.moc kpgdatabaseproppage.moc kpgprimarykeyproppagebase.moc kpgcheckconstrproppagebase.moc kpgprimarykeyconstrproppagebase.moc kpgschemaproppagebase.moc kpgcheckconstrproppage.moc kpgoperatorclassproppagebase.moc kpgtypeproppage.moc kpgdatabaseproppagebase.moc kpgdomainconstrproppage.moc kpgtableproppagebase.moc kpgvoidproppagebase.moc kpgschemaproppage.moc kpgcastproppage.moc kpgdomainproppagebase.moc kpglanguageproppage.moc kpgforeignkeyconstrproppagebase.moc kpgoperatorclassproppage.moc kpgtypeattributeproppage.moc kpgfunctionproppage.moc kpgdomainproppage.moc kpgindexproppage.moc
+	@echo 'creating libPropertyPages_la.all_cpp.cpp ...'; \
+	rm -f libPropertyPages_la.all_cpp.files libPropertyPages_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libPropertyPages_la.all_cpp.final; \
+	for file in kpgabstractpropertypage.cpp kpgaggregateproppage.cpp kpgaggregatesfolderproppage.cpp kpgcastproppage.cpp kpgcastsfolderproppage.cpp kpgcheckconstrproppage.cpp kpgconversionproppage.cpp kpgconversionsfolderproppage.cpp kpgdatabaseproppage.cpp kpgdomainconstrfolderproppage.cpp kpgdomainconstrproppage.cpp kpgdomainproppage.cpp kpgdomainsfolderproppage.cpp kpgforeignkeyconstrproppage.cpp kpgfunctionproppage.cpp kpgfunctionsfolderproppage.cpp kpggroupproppage.cpp kpggroupsfolderproppage.cpp kpgindexproppage.cpp kpglanguageproppage.cpp kpglanguagesfolderproppage.cpp kpgoperatorclassesfolderproppage.cpp kpgoperatorclassproppage.cpp kpgoperatorproppage.cpp kpgoperatorsfolderproppage.cpp kpgprimarykeyconstrproppage.cpp kpgprimarykeyproppage.cpp kpgpropertypage.cpp kpgpropertypagechildview.cpp kpgruleproppage.cpp kpgrulesfolderproppage.cpp kpgschemaproppage.cpp kpgsequenceproppage.cpp kpgsequencesfolderproppage.cpp kpgserverproppage.cpp kpgtablecolumnproppage.cpp kpgtablecolumnsfolderproppage.cpp kpgtableconstraintsfolderproppage.cpp kpgtableindexesfolderproppage.cpp kpgtableproppage.cpp kpgtablesfolderproppage.cpp kpgtablespaceproppage.cpp kpgtablespacesfolderproppage.cpp kpgtriggerproppage.cpp kpgtriggersfolderproppage.cpp kpgtypeattributeproppage.cpp kpgtypeproppage.cpp kpgtypesfolderproppage.cpp kpguniqueconstrproppage.cpp kpguserproppage.cpp kpgusersfolderproppage.cpp kpgviewproppage.cpp kpgviewsfolderproppage.cpp kpgvoidproppage.cpp kpgoperatorclassproppagebase.cpp kpgaggregateproppagebase.cpp kpgcastproppagebase.cpp kpgcheckconstrproppagebase.cpp kpgconversionproppagebase.cpp kpgdatabaseproppagebase.cpp kpgdomainconstrproppagebase.cpp kpgdomainproppagebase.cpp kpgforeignkeyconstrproppagebase.cpp kpgfunctionproppagebase.cpp kpggroupproppagebase.cpp kpgindexproppagebase.cpp kpglanguageproppagebase.cpp kpgoperatorclassproppagebase.cpp kpgoperatorproppagebase.cpp kpgprimarykeyconstrproppagebase.cpp kpgprimarykeyproppagebase.cpp kpgpropertypagebase.cpp kpgruleproppagebase.cpp kpgschemaproppagebase.cpp kpgsequenceproppagebase.cpp kpgserverproppagebase.cpp kpgtablecolumnproppagebase.cpp kpgtableproppagebase.cpp kpgtablespaceproppagebase.cpp kpgtriggerproppagebase.cpp kpgtypeattributeproppagebase.cpp kpgtypeproppagebase.cpp kpguniqueconstrproppagebase.cpp kpguserproppagebase.cpp kpgviewproppagebase.cpp kpgvoidproppagebase.cpp kpgpropertypagechildview.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libPropertyPages_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libPropertyPages_la.all_cpp.final; \
+	done; \
+	cat libPropertyPages_la.all_cpp.final libPropertyPages_la.all_cpp.files > libPropertyPages_la.all_cpp.cpp; \
+	rm -f libPropertyPages_la.all_cpp.final libPropertyPages_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libPropertyPages_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libPropertyPages_la_OBJECTS="$(libPropertyPages_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libPropertyPages_la_OBJECTS="$(libPropertyPages_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libPropertyPages_la_OBJECTS="$(libPropertyPages_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libPropertyPages_la_OBJECTS="$(libPropertyPages_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 119
+$(srcdir)/kpgoperatorsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgdomainproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpglanguageproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtablespaceproppage.o: kpgtablespaceproppage.moc 
+$(srcdir)/kpgtablecolumnproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgprimarykeyconstrproppage.lo: kpgprimarykeyconstrproppage.moc 
+kpgvoidproppage.lo: kpgvoidproppage.moc 
+kpgindexproppage.o: kpgindexproppage.moc 
+$(srcdir)/kpgoperatorproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtablecolumnsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpggroupproppage.lo: kpggroupproppage.moc 
+$(srcdir)/kpgpropertypage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtypeattributeproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgforeignkeyconstrproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgindexproppage.lo: kpgindexproppage.moc 
+kpgpropertypage.lo: kpgpropertypage.moc 
+$(srcdir)/kpgdomainconstrproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+nmcheck-am: nmcheck
+$(srcdir)/kpggroupproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgdomainconstrproppage.o: kpgdomainconstrproppage.moc 
+$(srcdir)/kpgschemaproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtablespacesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgruleproppage.lo: kpgruleproppage.moc 
+kpgtriggerproppage.lo: kpgtriggerproppage.moc 
+kpgprimarykeyproppage.lo: kpgprimarykeyproppage.moc 
+$(srcdir)/kpgviewproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgoperatorproppage.lo: kpgoperatorproppage.moc 
+kpgserverproppage.o: kpgserverproppage.moc 
+kpgdomainproppage.lo: kpgdomainproppage.moc 
+$(srcdir)/kpgcastsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtablecolumnproppage.lo: kpgtablecolumnproppage.moc 
+$(srcdir)/kpgoperatorclassesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgsequenceproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgdatabaseproppage.lo: kpgdatabaseproppage.moc 
+kpgtriggerproppage.o: kpgtriggerproppage.moc 
+$(srcdir)/kpgrulesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtypeproppage.lo: kpgtypeproppage.moc 
+$(srcdir)/kpgcastproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgfunctionproppage.lo: kpgfunctionproppage.moc 
+$(srcdir)/kpgaggregatesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgdomainsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgoperatorclassproppage.lo: kpgoperatorclassproppage.moc 
+kpggroupproppage.o: kpggroupproppage.moc 
+$(srcdir)/kpgdomainconstrfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtriggersfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtypeattributeproppage.o: kpgtypeattributeproppage.moc 
+kpgoperatorclassproppage.o: kpgoperatorclassproppage.moc 
+kpgruleproppage.o: kpgruleproppage.moc 
+$(srcdir)/kpgtableproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgforeignkeyconstrproppage.o: kpgforeignkeyconstrproppage.moc 
+$(srcdir)/kpgdatabaseproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgindexproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgprimarykeyconstrproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgviewsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgcheckconstrproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgaggregateproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpguniqueconstrproppage.o: kpguniqueconstrproppage.moc 
+kpgforeignkeyconstrproppage.lo: kpgforeignkeyconstrproppage.moc 
+$(srcdir)/kpgtableindexesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgpropertypage.o: kpgpropertypage.moc 
+$(srcdir)/kpgserverproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtypeproppage.o: kpgtypeproppage.moc 
+$(srcdir)/kpgconversionsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgaggregateproppage.lo: kpgaggregateproppage.moc 
+$(srcdir)/kpgconversionproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgoperatorproppage.o: kpgoperatorproppage.moc 
+kpgviewproppage.o: kpgviewproppage.moc 
+kpgdomainconstrproppage.lo: kpgdomainconstrproppage.moc 
+kpguserproppage.lo: kpguserproppage.moc 
+$(srcdir)/kpguniqueconstrproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgdatabaseproppage.o: kpgdatabaseproppage.moc 
+$(srcdir)/kpgsequencesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtablecolumnproppage.o: kpgtablecolumnproppage.moc 
+kpgdomainproppage.o: kpgdomainproppage.moc 
+kpgsequenceproppage.lo: kpgsequenceproppage.moc 
+$(srcdir)/kpgtypeproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgcastproppage.o: kpgcastproppage.moc 
+kpgschemaproppage.o: kpgschemaproppage.moc 
+kpgvoidproppage.o: kpgvoidproppage.moc 
+kpgconversionproppage.o: kpgconversionproppage.moc 
+$(srcdir)/kpgusersfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgviewproppage.lo: kpgviewproppage.moc 
+kpgtypeattributeproppage.lo: kpgtypeattributeproppage.moc 
+$(srcdir)/kpglanguagesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgcheckconstrproppage.o: kpgcheckconstrproppage.moc 
+kpgcheckconstrproppage.lo: kpgcheckconstrproppage.moc 
+$(srcdir)/kpgtableconstraintsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtriggerproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgserverproppage.lo: kpgserverproppage.moc 
+kpgtableproppage.o: kpgtableproppage.moc 
+kpgschemaproppage.lo: kpgschemaproppage.moc 
+$(srcdir)/kpgfunctionsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgtableproppage.lo: kpgtableproppage.moc 
+kpgaggregateproppage.o: kpgaggregateproppage.moc 
+$(srcdir)/kpgoperatorclassproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgfunctionproppage.o: kpgfunctionproppage.moc 
+nmcheck: 
+$(srcdir)/kpgvoidproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgpropertypagechildview.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgprimarykeyconstrproppage.o: kpgprimarykeyconstrproppage.moc 
+kpguserproppage.o: kpguserproppage.moc 
+$(srcdir)/kpgtypesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpggroupsfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtablespaceproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgprimarykeyproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgfunctionproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgsequenceproppage.o: kpgsequenceproppage.moc 
+$(srcdir)/kpgruleproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgprimarykeyproppage.o: kpgprimarykeyproppage.moc 
+kpgtablespaceproppage.lo: kpgtablespaceproppage.moc 
+kpglanguageproppage.lo: kpglanguageproppage.moc 
+kpgcastproppage.lo: kpgcastproppage.moc 
+$(srcdir)/kpgabstractpropertypage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+$(srcdir)/kpgtablesfolderproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpgconversionproppage.lo: kpgconversionproppage.moc 
+$(srcdir)/kpguserproppage.cpp: kpgoperatorclassproppagebase.h kpgaggregateproppagebase.h kpgcastproppagebase.h kpgcheckconstrproppagebase.h kpgconversionproppagebase.h kpgdatabaseproppagebase.h kpgdomainconstrproppagebase.h kpgdomainproppagebase.h kpgforeignkeyconstrproppagebase.h kpgfunctionproppagebase.h kpggroupproppagebase.h kpgindexproppagebase.h kpglanguageproppagebase.h kpgoperatorclassproppagebase.h kpgoperatorproppagebase.h kpgprimarykeyconstrproppagebase.h kpgprimarykeyproppagebase.h kpgpropertypagebase.h kpgruleproppagebase.h kpgschemaproppagebase.h kpgsequenceproppagebase.h kpgserverproppagebase.h kpgtablecolumnproppagebase.h kpgtableproppagebase.h kpgtablespaceproppagebase.h kpgtriggerproppagebase.h kpgtypeattributeproppagebase.h kpgtypeproppagebase.h kpguniqueconstrproppagebase.h kpguserproppagebase.h kpgviewproppagebase.h kpgvoidproppagebase.h 
+kpguniqueconstrproppage.lo: kpguniqueconstrproppage.moc 
+kpglanguageproppage.o: kpglanguageproppage.moc 
+
+#>+ 465
+kpgprimarykeyproppagebase.cpp: $(srcdir)/kpgprimarykeyproppagebase.ui kpgprimarykeyproppagebase.h kpgprimarykeyproppagebase.moc
+	rm -f kpgprimarykeyproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgprimarykeyproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgprimarykeyproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgprimarykeyproppagebase.h $(srcdir)/kpgprimarykeyproppagebase.ui > kpgprimarykeyproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgprimarykeyproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgprimarykeyproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgprimarykeyproppagebase.cpp ;\
+	rm -f kpgprimarykeyproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgprimarykeyproppagebase.moc"' >> kpgprimarykeyproppagebase.cpp; else rm -f kpgprimarykeyproppagebase.cpp ; exit $$ret ; fi
+
+kpgprimarykeyproppagebase.h: $(srcdir)/kpgprimarykeyproppagebase.ui
+	rm -rf kpgprimarykeyproppagebase.h;
+	$(UIC) $(srcdir)/kpgprimarykeyproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgprimarykeyproppagebase.h ;
+kpgprimarykeyproppagebase.moc: kpgprimarykeyproppagebase.h
+	$(MOC) kpgprimarykeyproppagebase.h -o kpgprimarykeyproppagebase.moc
+
+kpguserproppagebase.cpp: $(srcdir)/kpguserproppagebase.ui kpguserproppagebase.h kpguserproppagebase.moc
+	rm -f kpguserproppagebase.cpp
+	echo '#include <kdialog.h>' > kpguserproppagebase.cpp
+	echo '#include <klocale.h>' >> kpguserproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpguserproppagebase.h $(srcdir)/kpguserproppagebase.ui > kpguserproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpguserproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpguserproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpguserproppagebase.cpp ;\
+	rm -f kpguserproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpguserproppagebase.moc"' >> kpguserproppagebase.cpp; else rm -f kpguserproppagebase.cpp ; exit $$ret ; fi
+
+kpguserproppagebase.h: $(srcdir)/kpguserproppagebase.ui
+	rm -rf kpguserproppagebase.h;
+	$(UIC) $(srcdir)/kpguserproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpguserproppagebase.h ;
+kpguserproppagebase.moc: kpguserproppagebase.h
+	$(MOC) kpguserproppagebase.h -o kpguserproppagebase.moc
+
+kpgtableproppagebase.cpp: $(srcdir)/kpgtableproppagebase.ui kpgtableproppagebase.h kpgtableproppagebase.moc
+	rm -f kpgtableproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtableproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtableproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtableproppagebase.h $(srcdir)/kpgtableproppagebase.ui > kpgtableproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtableproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtableproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtableproppagebase.cpp ;\
+	rm -f kpgtableproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtableproppagebase.moc"' >> kpgtableproppagebase.cpp; else rm -f kpgtableproppagebase.cpp ; exit $$ret ; fi
+
+kpgtableproppagebase.h: $(srcdir)/kpgtableproppagebase.ui
+	rm -rf kpgtableproppagebase.h;
+	$(UIC) $(srcdir)/kpgtableproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtableproppagebase.h ;
+kpgtableproppagebase.moc: kpgtableproppagebase.h
+	$(MOC) kpgtableproppagebase.h -o kpgtableproppagebase.moc
+
+kpgdomainproppagebase.cpp: $(srcdir)/kpgdomainproppagebase.ui kpgdomainproppagebase.h kpgdomainproppagebase.moc
+	rm -f kpgdomainproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgdomainproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgdomainproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdomainproppagebase.h $(srcdir)/kpgdomainproppagebase.ui > kpgdomainproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdomainproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdomainproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdomainproppagebase.cpp ;\
+	rm -f kpgdomainproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdomainproppagebase.moc"' >> kpgdomainproppagebase.cpp; else rm -f kpgdomainproppagebase.cpp ; exit $$ret ; fi
+
+kpgdomainproppagebase.h: $(srcdir)/kpgdomainproppagebase.ui
+	rm -rf kpgdomainproppagebase.h;
+	$(UIC) $(srcdir)/kpgdomainproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdomainproppagebase.h ;
+kpgdomainproppagebase.moc: kpgdomainproppagebase.h
+	$(MOC) kpgdomainproppagebase.h -o kpgdomainproppagebase.moc
+
+kpgaggregateproppagebase.cpp: $(srcdir)/kpgaggregateproppagebase.ui kpgaggregateproppagebase.h kpgaggregateproppagebase.moc
+	rm -f kpgaggregateproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgaggregateproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgaggregateproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgaggregateproppagebase.h $(srcdir)/kpgaggregateproppagebase.ui > kpgaggregateproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgaggregateproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgaggregateproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgaggregateproppagebase.cpp ;\
+	rm -f kpgaggregateproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgaggregateproppagebase.moc"' >> kpgaggregateproppagebase.cpp; else rm -f kpgaggregateproppagebase.cpp ; exit $$ret ; fi
+
+kpgaggregateproppagebase.h: $(srcdir)/kpgaggregateproppagebase.ui
+	rm -rf kpgaggregateproppagebase.h;
+	$(UIC) $(srcdir)/kpgaggregateproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgaggregateproppagebase.h ;
+kpgaggregateproppagebase.moc: kpgaggregateproppagebase.h
+	$(MOC) kpgaggregateproppagebase.h -o kpgaggregateproppagebase.moc
+
+kpgoperatorclassproppagebase.cpp: $(srcdir)/kpgoperatorclassproppagebase.ui kpgoperatorclassproppagebase.h kpgoperatorclassproppagebase.moc
+	rm -f kpgoperatorclassproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgoperatorclassproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgoperatorclassproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgoperatorclassproppagebase.h $(srcdir)/kpgoperatorclassproppagebase.ui > kpgoperatorclassproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgoperatorclassproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgoperatorclassproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgoperatorclassproppagebase.cpp ;\
+	rm -f kpgoperatorclassproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgoperatorclassproppagebase.moc"' >> kpgoperatorclassproppagebase.cpp; else rm -f kpgoperatorclassproppagebase.cpp ; exit $$ret ; fi
+
+kpgoperatorclassproppagebase.h: $(srcdir)/kpgoperatorclassproppagebase.ui
+	rm -rf kpgoperatorclassproppagebase.h;
+	$(UIC) $(srcdir)/kpgoperatorclassproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgoperatorclassproppagebase.h ;
+kpgoperatorclassproppagebase.moc: kpgoperatorclassproppagebase.h
+	$(MOC) kpgoperatorclassproppagebase.h -o kpgoperatorclassproppagebase.moc
+
+kpgserverproppagebase.cpp: $(srcdir)/kpgserverproppagebase.ui kpgserverproppagebase.h kpgserverproppagebase.moc
+	rm -f kpgserverproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgserverproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgserverproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgserverproppagebase.h $(srcdir)/kpgserverproppagebase.ui > kpgserverproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgserverproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgserverproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgserverproppagebase.cpp ;\
+	rm -f kpgserverproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgserverproppagebase.moc"' >> kpgserverproppagebase.cpp; else rm -f kpgserverproppagebase.cpp ; exit $$ret ; fi
+
+kpgserverproppagebase.h: $(srcdir)/kpgserverproppagebase.ui
+	rm -rf kpgserverproppagebase.h;
+	$(UIC) $(srcdir)/kpgserverproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgserverproppagebase.h ;
+kpgserverproppagebase.moc: kpgserverproppagebase.h
+	$(MOC) kpgserverproppagebase.h -o kpgserverproppagebase.moc
+
+kpguniqueconstrproppagebase.cpp: $(srcdir)/kpguniqueconstrproppagebase.ui kpguniqueconstrproppagebase.h kpguniqueconstrproppagebase.moc
+	rm -f kpguniqueconstrproppagebase.cpp
+	echo '#include <kdialog.h>' > kpguniqueconstrproppagebase.cpp
+	echo '#include <klocale.h>' >> kpguniqueconstrproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpguniqueconstrproppagebase.h $(srcdir)/kpguniqueconstrproppagebase.ui > kpguniqueconstrproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpguniqueconstrproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpguniqueconstrproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpguniqueconstrproppagebase.cpp ;\
+	rm -f kpguniqueconstrproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpguniqueconstrproppagebase.moc"' >> kpguniqueconstrproppagebase.cpp; else rm -f kpguniqueconstrproppagebase.cpp ; exit $$ret ; fi
+
+kpguniqueconstrproppagebase.h: $(srcdir)/kpguniqueconstrproppagebase.ui
+	rm -rf kpguniqueconstrproppagebase.h;
+	$(UIC) $(srcdir)/kpguniqueconstrproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpguniqueconstrproppagebase.h ;
+kpguniqueconstrproppagebase.moc: kpguniqueconstrproppagebase.h
+	$(MOC) kpguniqueconstrproppagebase.h -o kpguniqueconstrproppagebase.moc
+
+kpgschemaproppagebase.cpp: $(srcdir)/kpgschemaproppagebase.ui kpgschemaproppagebase.h kpgschemaproppagebase.moc
+	rm -f kpgschemaproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgschemaproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgschemaproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgschemaproppagebase.h $(srcdir)/kpgschemaproppagebase.ui > kpgschemaproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgschemaproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgschemaproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgschemaproppagebase.cpp ;\
+	rm -f kpgschemaproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgschemaproppagebase.moc"' >> kpgschemaproppagebase.cpp; else rm -f kpgschemaproppagebase.cpp ; exit $$ret ; fi
+
+kpgschemaproppagebase.h: $(srcdir)/kpgschemaproppagebase.ui
+	rm -rf kpgschemaproppagebase.h;
+	$(UIC) $(srcdir)/kpgschemaproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgschemaproppagebase.h ;
+kpgschemaproppagebase.moc: kpgschemaproppagebase.h
+	$(MOC) kpgschemaproppagebase.h -o kpgschemaproppagebase.moc
+
+kpgtypeproppagebase.cpp: $(srcdir)/kpgtypeproppagebase.ui kpgtypeproppagebase.h kpgtypeproppagebase.moc
+	rm -f kpgtypeproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtypeproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtypeproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtypeproppagebase.h $(srcdir)/kpgtypeproppagebase.ui > kpgtypeproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtypeproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtypeproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtypeproppagebase.cpp ;\
+	rm -f kpgtypeproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtypeproppagebase.moc"' >> kpgtypeproppagebase.cpp; else rm -f kpgtypeproppagebase.cpp ; exit $$ret ; fi
+
+kpgtypeproppagebase.h: $(srcdir)/kpgtypeproppagebase.ui
+	rm -rf kpgtypeproppagebase.h;
+	$(UIC) $(srcdir)/kpgtypeproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtypeproppagebase.h ;
+kpgtypeproppagebase.moc: kpgtypeproppagebase.h
+	$(MOC) kpgtypeproppagebase.h -o kpgtypeproppagebase.moc
+
+kpgtablespaceproppagebase.cpp: $(srcdir)/kpgtablespaceproppagebase.ui kpgtablespaceproppagebase.h kpgtablespaceproppagebase.moc
+	rm -f kpgtablespaceproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtablespaceproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtablespaceproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtablespaceproppagebase.h $(srcdir)/kpgtablespaceproppagebase.ui > kpgtablespaceproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtablespaceproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtablespaceproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtablespaceproppagebase.cpp ;\
+	rm -f kpgtablespaceproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtablespaceproppagebase.moc"' >> kpgtablespaceproppagebase.cpp; else rm -f kpgtablespaceproppagebase.cpp ; exit $$ret ; fi
+
+kpgtablespaceproppagebase.h: $(srcdir)/kpgtablespaceproppagebase.ui
+	rm -rf kpgtablespaceproppagebase.h;
+	$(UIC) $(srcdir)/kpgtablespaceproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtablespaceproppagebase.h ;
+kpgtablespaceproppagebase.moc: kpgtablespaceproppagebase.h
+	$(MOC) kpgtablespaceproppagebase.h -o kpgtablespaceproppagebase.moc
+
+kpgpropertypagebase.cpp: $(srcdir)/kpgpropertypagebase.ui kpgpropertypagebase.h kpgpropertypagebase.moc
+	rm -f kpgpropertypagebase.cpp
+	echo '#include <kdialog.h>' > kpgpropertypagebase.cpp
+	echo '#include <klocale.h>' >> kpgpropertypagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgpropertypagebase.h $(srcdir)/kpgpropertypagebase.ui > kpgpropertypagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgpropertypagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgpropertypagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgpropertypagebase.cpp ;\
+	rm -f kpgpropertypagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgpropertypagebase.moc"' >> kpgpropertypagebase.cpp; else rm -f kpgpropertypagebase.cpp ; exit $$ret ; fi
+
+kpgpropertypagebase.h: $(srcdir)/kpgpropertypagebase.ui
+	rm -rf kpgpropertypagebase.h;
+	$(UIC) $(srcdir)/kpgpropertypagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgpropertypagebase.h ;
+kpgpropertypagebase.moc: kpgpropertypagebase.h
+	$(MOC) kpgpropertypagebase.h -o kpgpropertypagebase.moc
+
+kpgindexproppagebase.cpp: $(srcdir)/kpgindexproppagebase.ui kpgindexproppagebase.h kpgindexproppagebase.moc
+	rm -f kpgindexproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgindexproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgindexproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgindexproppagebase.h $(srcdir)/kpgindexproppagebase.ui > kpgindexproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgindexproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgindexproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgindexproppagebase.cpp ;\
+	rm -f kpgindexproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgindexproppagebase.moc"' >> kpgindexproppagebase.cpp; else rm -f kpgindexproppagebase.cpp ; exit $$ret ; fi
+
+kpgindexproppagebase.h: $(srcdir)/kpgindexproppagebase.ui
+	rm -rf kpgindexproppagebase.h;
+	$(UIC) $(srcdir)/kpgindexproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgindexproppagebase.h ;
+kpgindexproppagebase.moc: kpgindexproppagebase.h
+	$(MOC) kpgindexproppagebase.h -o kpgindexproppagebase.moc
+
+kpgfunctionproppagebase.cpp: $(srcdir)/kpgfunctionproppagebase.ui kpgfunctionproppagebase.h kpgfunctionproppagebase.moc
+	rm -f kpgfunctionproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgfunctionproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgfunctionproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgfunctionproppagebase.h $(srcdir)/kpgfunctionproppagebase.ui > kpgfunctionproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgfunctionproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgfunctionproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgfunctionproppagebase.cpp ;\
+	rm -f kpgfunctionproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgfunctionproppagebase.moc"' >> kpgfunctionproppagebase.cpp; else rm -f kpgfunctionproppagebase.cpp ; exit $$ret ; fi
+
+kpgfunctionproppagebase.h: $(srcdir)/kpgfunctionproppagebase.ui
+	rm -rf kpgfunctionproppagebase.h;
+	$(UIC) $(srcdir)/kpgfunctionproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgfunctionproppagebase.h ;
+kpgfunctionproppagebase.moc: kpgfunctionproppagebase.h
+	$(MOC) kpgfunctionproppagebase.h -o kpgfunctionproppagebase.moc
+
+kpgoperatorproppagebase.cpp: $(srcdir)/kpgoperatorproppagebase.ui kpgoperatorproppagebase.h kpgoperatorproppagebase.moc
+	rm -f kpgoperatorproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgoperatorproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgoperatorproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgoperatorproppagebase.h $(srcdir)/kpgoperatorproppagebase.ui > kpgoperatorproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgoperatorproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgoperatorproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgoperatorproppagebase.cpp ;\
+	rm -f kpgoperatorproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgoperatorproppagebase.moc"' >> kpgoperatorproppagebase.cpp; else rm -f kpgoperatorproppagebase.cpp ; exit $$ret ; fi
+
+kpgoperatorproppagebase.h: $(srcdir)/kpgoperatorproppagebase.ui
+	rm -rf kpgoperatorproppagebase.h;
+	$(UIC) $(srcdir)/kpgoperatorproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgoperatorproppagebase.h ;
+kpgoperatorproppagebase.moc: kpgoperatorproppagebase.h
+	$(MOC) kpgoperatorproppagebase.h -o kpgoperatorproppagebase.moc
+
+kpgcheckconstrproppagebase.cpp: $(srcdir)/kpgcheckconstrproppagebase.ui kpgcheckconstrproppagebase.h kpgcheckconstrproppagebase.moc
+	rm -f kpgcheckconstrproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgcheckconstrproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgcheckconstrproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcheckconstrproppagebase.h $(srcdir)/kpgcheckconstrproppagebase.ui > kpgcheckconstrproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcheckconstrproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcheckconstrproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcheckconstrproppagebase.cpp ;\
+	rm -f kpgcheckconstrproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcheckconstrproppagebase.moc"' >> kpgcheckconstrproppagebase.cpp; else rm -f kpgcheckconstrproppagebase.cpp ; exit $$ret ; fi
+
+kpgcheckconstrproppagebase.h: $(srcdir)/kpgcheckconstrproppagebase.ui
+	rm -rf kpgcheckconstrproppagebase.h;
+	$(UIC) $(srcdir)/kpgcheckconstrproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcheckconstrproppagebase.h ;
+kpgcheckconstrproppagebase.moc: kpgcheckconstrproppagebase.h
+	$(MOC) kpgcheckconstrproppagebase.h -o kpgcheckconstrproppagebase.moc
+
+kpgsequenceproppagebase.cpp: $(srcdir)/kpgsequenceproppagebase.ui kpgsequenceproppagebase.h kpgsequenceproppagebase.moc
+	rm -f kpgsequenceproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgsequenceproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgsequenceproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsequenceproppagebase.h $(srcdir)/kpgsequenceproppagebase.ui > kpgsequenceproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsequenceproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsequenceproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsequenceproppagebase.cpp ;\
+	rm -f kpgsequenceproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsequenceproppagebase.moc"' >> kpgsequenceproppagebase.cpp; else rm -f kpgsequenceproppagebase.cpp ; exit $$ret ; fi
+
+kpgsequenceproppagebase.h: $(srcdir)/kpgsequenceproppagebase.ui
+	rm -rf kpgsequenceproppagebase.h;
+	$(UIC) $(srcdir)/kpgsequenceproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsequenceproppagebase.h ;
+kpgsequenceproppagebase.moc: kpgsequenceproppagebase.h
+	$(MOC) kpgsequenceproppagebase.h -o kpgsequenceproppagebase.moc
+
+kpgconversionproppagebase.cpp: $(srcdir)/kpgconversionproppagebase.ui kpgconversionproppagebase.h kpgconversionproppagebase.moc
+	rm -f kpgconversionproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgconversionproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgconversionproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgconversionproppagebase.h $(srcdir)/kpgconversionproppagebase.ui > kpgconversionproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgconversionproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgconversionproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgconversionproppagebase.cpp ;\
+	rm -f kpgconversionproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgconversionproppagebase.moc"' >> kpgconversionproppagebase.cpp; else rm -f kpgconversionproppagebase.cpp ; exit $$ret ; fi
+
+kpgconversionproppagebase.h: $(srcdir)/kpgconversionproppagebase.ui
+	rm -rf kpgconversionproppagebase.h;
+	$(UIC) $(srcdir)/kpgconversionproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgconversionproppagebase.h ;
+kpgconversionproppagebase.moc: kpgconversionproppagebase.h
+	$(MOC) kpgconversionproppagebase.h -o kpgconversionproppagebase.moc
+
+kpgcastproppagebase.cpp: $(srcdir)/kpgcastproppagebase.ui kpgcastproppagebase.h kpgcastproppagebase.moc
+	rm -f kpgcastproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgcastproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgcastproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcastproppagebase.h $(srcdir)/kpgcastproppagebase.ui > kpgcastproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcastproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcastproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcastproppagebase.cpp ;\
+	rm -f kpgcastproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcastproppagebase.moc"' >> kpgcastproppagebase.cpp; else rm -f kpgcastproppagebase.cpp ; exit $$ret ; fi
+
+kpgcastproppagebase.h: $(srcdir)/kpgcastproppagebase.ui
+	rm -rf kpgcastproppagebase.h;
+	$(UIC) $(srcdir)/kpgcastproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcastproppagebase.h ;
+kpgcastproppagebase.moc: kpgcastproppagebase.h
+	$(MOC) kpgcastproppagebase.h -o kpgcastproppagebase.moc
+
+kpgdomainconstrproppagebase.cpp: $(srcdir)/kpgdomainconstrproppagebase.ui kpgdomainconstrproppagebase.h kpgdomainconstrproppagebase.moc
+	rm -f kpgdomainconstrproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgdomainconstrproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgdomainconstrproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdomainconstrproppagebase.h $(srcdir)/kpgdomainconstrproppagebase.ui > kpgdomainconstrproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdomainconstrproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdomainconstrproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdomainconstrproppagebase.cpp ;\
+	rm -f kpgdomainconstrproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdomainconstrproppagebase.moc"' >> kpgdomainconstrproppagebase.cpp; else rm -f kpgdomainconstrproppagebase.cpp ; exit $$ret ; fi
+
+kpgdomainconstrproppagebase.h: $(srcdir)/kpgdomainconstrproppagebase.ui
+	rm -rf kpgdomainconstrproppagebase.h;
+	$(UIC) $(srcdir)/kpgdomainconstrproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdomainconstrproppagebase.h ;
+kpgdomainconstrproppagebase.moc: kpgdomainconstrproppagebase.h
+	$(MOC) kpgdomainconstrproppagebase.h -o kpgdomainconstrproppagebase.moc
+
+kpggroupproppagebase.cpp: $(srcdir)/kpggroupproppagebase.ui kpggroupproppagebase.h kpggroupproppagebase.moc
+	rm -f kpggroupproppagebase.cpp
+	echo '#include <kdialog.h>' > kpggroupproppagebase.cpp
+	echo '#include <klocale.h>' >> kpggroupproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpggroupproppagebase.h $(srcdir)/kpggroupproppagebase.ui > kpggroupproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpggroupproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpggroupproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpggroupproppagebase.cpp ;\
+	rm -f kpggroupproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpggroupproppagebase.moc"' >> kpggroupproppagebase.cpp; else rm -f kpggroupproppagebase.cpp ; exit $$ret ; fi
+
+kpggroupproppagebase.h: $(srcdir)/kpggroupproppagebase.ui
+	rm -rf kpggroupproppagebase.h;
+	$(UIC) $(srcdir)/kpggroupproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpggroupproppagebase.h ;
+kpggroupproppagebase.moc: kpggroupproppagebase.h
+	$(MOC) kpggroupproppagebase.h -o kpggroupproppagebase.moc
+
+kpgtriggerproppagebase.cpp: $(srcdir)/kpgtriggerproppagebase.ui kpgtriggerproppagebase.h kpgtriggerproppagebase.moc
+	rm -f kpgtriggerproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtriggerproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtriggerproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtriggerproppagebase.h $(srcdir)/kpgtriggerproppagebase.ui > kpgtriggerproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtriggerproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtriggerproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtriggerproppagebase.cpp ;\
+	rm -f kpgtriggerproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtriggerproppagebase.moc"' >> kpgtriggerproppagebase.cpp; else rm -f kpgtriggerproppagebase.cpp ; exit $$ret ; fi
+
+kpgtriggerproppagebase.h: $(srcdir)/kpgtriggerproppagebase.ui
+	rm -rf kpgtriggerproppagebase.h;
+	$(UIC) $(srcdir)/kpgtriggerproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtriggerproppagebase.h ;
+kpgtriggerproppagebase.moc: kpgtriggerproppagebase.h
+	$(MOC) kpgtriggerproppagebase.h -o kpgtriggerproppagebase.moc
+
+kpgtypeattributeproppagebase.cpp: $(srcdir)/kpgtypeattributeproppagebase.ui kpgtypeattributeproppagebase.h kpgtypeattributeproppagebase.moc
+	rm -f kpgtypeattributeproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtypeattributeproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtypeattributeproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtypeattributeproppagebase.h $(srcdir)/kpgtypeattributeproppagebase.ui > kpgtypeattributeproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtypeattributeproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtypeattributeproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtypeattributeproppagebase.cpp ;\
+	rm -f kpgtypeattributeproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtypeattributeproppagebase.moc"' >> kpgtypeattributeproppagebase.cpp; else rm -f kpgtypeattributeproppagebase.cpp ; exit $$ret ; fi
+
+kpgtypeattributeproppagebase.h: $(srcdir)/kpgtypeattributeproppagebase.ui
+	rm -rf kpgtypeattributeproppagebase.h;
+	$(UIC) $(srcdir)/kpgtypeattributeproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtypeattributeproppagebase.h ;
+kpgtypeattributeproppagebase.moc: kpgtypeattributeproppagebase.h
+	$(MOC) kpgtypeattributeproppagebase.h -o kpgtypeattributeproppagebase.moc
+
+kpgdatabaseproppagebase.cpp: $(srcdir)/kpgdatabaseproppagebase.ui kpgdatabaseproppagebase.h kpgdatabaseproppagebase.moc
+	rm -f kpgdatabaseproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgdatabaseproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgdatabaseproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdatabaseproppagebase.h $(srcdir)/kpgdatabaseproppagebase.ui > kpgdatabaseproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdatabaseproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdatabaseproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdatabaseproppagebase.cpp ;\
+	rm -f kpgdatabaseproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdatabaseproppagebase.moc"' >> kpgdatabaseproppagebase.cpp; else rm -f kpgdatabaseproppagebase.cpp ; exit $$ret ; fi
+
+kpgdatabaseproppagebase.h: $(srcdir)/kpgdatabaseproppagebase.ui
+	rm -rf kpgdatabaseproppagebase.h;
+	$(UIC) $(srcdir)/kpgdatabaseproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdatabaseproppagebase.h ;
+kpgdatabaseproppagebase.moc: kpgdatabaseproppagebase.h
+	$(MOC) kpgdatabaseproppagebase.h -o kpgdatabaseproppagebase.moc
+
+kpgtablecolumnproppagebase.cpp: $(srcdir)/kpgtablecolumnproppagebase.ui kpgtablecolumnproppagebase.h kpgtablecolumnproppagebase.moc
+	rm -f kpgtablecolumnproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgtablecolumnproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgtablecolumnproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgtablecolumnproppagebase.h $(srcdir)/kpgtablecolumnproppagebase.ui > kpgtablecolumnproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgtablecolumnproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgtablecolumnproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgtablecolumnproppagebase.cpp ;\
+	rm -f kpgtablecolumnproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgtablecolumnproppagebase.moc"' >> kpgtablecolumnproppagebase.cpp; else rm -f kpgtablecolumnproppagebase.cpp ; exit $$ret ; fi
+
+kpgtablecolumnproppagebase.h: $(srcdir)/kpgtablecolumnproppagebase.ui
+	rm -rf kpgtablecolumnproppagebase.h;
+	$(UIC) $(srcdir)/kpgtablecolumnproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgtablecolumnproppagebase.h ;
+kpgtablecolumnproppagebase.moc: kpgtablecolumnproppagebase.h
+	$(MOC) kpgtablecolumnproppagebase.h -o kpgtablecolumnproppagebase.moc
+
+kpgvoidproppagebase.cpp: $(srcdir)/kpgvoidproppagebase.ui kpgvoidproppagebase.h kpgvoidproppagebase.moc
+	rm -f kpgvoidproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgvoidproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgvoidproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgvoidproppagebase.h $(srcdir)/kpgvoidproppagebase.ui > kpgvoidproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgvoidproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgvoidproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgvoidproppagebase.cpp ;\
+	rm -f kpgvoidproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgvoidproppagebase.moc"' >> kpgvoidproppagebase.cpp; else rm -f kpgvoidproppagebase.cpp ; exit $$ret ; fi
+
+kpgvoidproppagebase.h: $(srcdir)/kpgvoidproppagebase.ui
+	rm -rf kpgvoidproppagebase.h;
+	$(UIC) $(srcdir)/kpgvoidproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgvoidproppagebase.h ;
+kpgvoidproppagebase.moc: kpgvoidproppagebase.h
+	$(MOC) kpgvoidproppagebase.h -o kpgvoidproppagebase.moc
+
+kpgviewproppagebase.cpp: $(srcdir)/kpgviewproppagebase.ui kpgviewproppagebase.h kpgviewproppagebase.moc
+	rm -f kpgviewproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgviewproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgviewproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgviewproppagebase.h $(srcdir)/kpgviewproppagebase.ui > kpgviewproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgviewproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgviewproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgviewproppagebase.cpp ;\
+	rm -f kpgviewproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgviewproppagebase.moc"' >> kpgviewproppagebase.cpp; else rm -f kpgviewproppagebase.cpp ; exit $$ret ; fi
+
+kpgviewproppagebase.h: $(srcdir)/kpgviewproppagebase.ui
+	rm -rf kpgviewproppagebase.h;
+	$(UIC) $(srcdir)/kpgviewproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgviewproppagebase.h ;
+kpgviewproppagebase.moc: kpgviewproppagebase.h
+	$(MOC) kpgviewproppagebase.h -o kpgviewproppagebase.moc
+
+kpgforeignkeyconstrproppagebase.cpp: $(srcdir)/kpgforeignkeyconstrproppagebase.ui kpgforeignkeyconstrproppagebase.h kpgforeignkeyconstrproppagebase.moc
+	rm -f kpgforeignkeyconstrproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgforeignkeyconstrproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgforeignkeyconstrproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgforeignkeyconstrproppagebase.h $(srcdir)/kpgforeignkeyconstrproppagebase.ui > kpgforeignkeyconstrproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgforeignkeyconstrproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgforeignkeyconstrproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgforeignkeyconstrproppagebase.cpp ;\
+	rm -f kpgforeignkeyconstrproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgforeignkeyconstrproppagebase.moc"' >> kpgforeignkeyconstrproppagebase.cpp; else rm -f kpgforeignkeyconstrproppagebase.cpp ; exit $$ret ; fi
+
+kpgforeignkeyconstrproppagebase.h: $(srcdir)/kpgforeignkeyconstrproppagebase.ui
+	rm -rf kpgforeignkeyconstrproppagebase.h;
+	$(UIC) $(srcdir)/kpgforeignkeyconstrproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgforeignkeyconstrproppagebase.h ;
+kpgforeignkeyconstrproppagebase.moc: kpgforeignkeyconstrproppagebase.h
+	$(MOC) kpgforeignkeyconstrproppagebase.h -o kpgforeignkeyconstrproppagebase.moc
+
+kpgruleproppagebase.cpp: $(srcdir)/kpgruleproppagebase.ui kpgruleproppagebase.h kpgruleproppagebase.moc
+	rm -f kpgruleproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgruleproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgruleproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgruleproppagebase.h $(srcdir)/kpgruleproppagebase.ui > kpgruleproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgruleproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgruleproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgruleproppagebase.cpp ;\
+	rm -f kpgruleproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgruleproppagebase.moc"' >> kpgruleproppagebase.cpp; else rm -f kpgruleproppagebase.cpp ; exit $$ret ; fi
+
+kpgruleproppagebase.h: $(srcdir)/kpgruleproppagebase.ui
+	rm -rf kpgruleproppagebase.h;
+	$(UIC) $(srcdir)/kpgruleproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgruleproppagebase.h ;
+kpgruleproppagebase.moc: kpgruleproppagebase.h
+	$(MOC) kpgruleproppagebase.h -o kpgruleproppagebase.moc
+
+kpglanguageproppagebase.cpp: $(srcdir)/kpglanguageproppagebase.ui kpglanguageproppagebase.h kpglanguageproppagebase.moc
+	rm -f kpglanguageproppagebase.cpp
+	echo '#include <kdialog.h>' > kpglanguageproppagebase.cpp
+	echo '#include <klocale.h>' >> kpglanguageproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpglanguageproppagebase.h $(srcdir)/kpglanguageproppagebase.ui > kpglanguageproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpglanguageproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpglanguageproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpglanguageproppagebase.cpp ;\
+	rm -f kpglanguageproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpglanguageproppagebase.moc"' >> kpglanguageproppagebase.cpp; else rm -f kpglanguageproppagebase.cpp ; exit $$ret ; fi
+
+kpglanguageproppagebase.h: $(srcdir)/kpglanguageproppagebase.ui
+	rm -rf kpglanguageproppagebase.h;
+	$(UIC) $(srcdir)/kpglanguageproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpglanguageproppagebase.h ;
+kpglanguageproppagebase.moc: kpglanguageproppagebase.h
+	$(MOC) kpglanguageproppagebase.h -o kpglanguageproppagebase.moc
+
+kpgprimarykeyconstrproppagebase.cpp: $(srcdir)/kpgprimarykeyconstrproppagebase.ui kpgprimarykeyconstrproppagebase.h kpgprimarykeyconstrproppagebase.moc
+	rm -f kpgprimarykeyconstrproppagebase.cpp
+	echo '#include <kdialog.h>' > kpgprimarykeyconstrproppagebase.cpp
+	echo '#include <klocale.h>' >> kpgprimarykeyconstrproppagebase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgprimarykeyconstrproppagebase.h $(srcdir)/kpgprimarykeyconstrproppagebase.ui > kpgprimarykeyconstrproppagebase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgprimarykeyconstrproppagebase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgprimarykeyconstrproppagebase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgprimarykeyconstrproppagebase.cpp ;\
+	rm -f kpgprimarykeyconstrproppagebase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgprimarykeyconstrproppagebase.moc"' >> kpgprimarykeyconstrproppagebase.cpp; else rm -f kpgprimarykeyconstrproppagebase.cpp ; exit $$ret ; fi
+
+kpgprimarykeyconstrproppagebase.h: $(srcdir)/kpgprimarykeyconstrproppagebase.ui
+	rm -rf kpgprimarykeyconstrproppagebase.h;
+	$(UIC) $(srcdir)/kpgprimarykeyconstrproppagebase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgprimarykeyconstrproppagebase.h ;
+kpgprimarykeyconstrproppagebase.moc: kpgprimarykeyconstrproppagebase.h
+	$(MOC) kpgprimarykeyconstrproppagebase.h -o kpgprimarykeyconstrproppagebase.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,24 @@
+//
+// C++ Implementation: kpgabstractpropertypage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgabstractpropertypage.h"
+
+KPGAbstractPropertyPage::KPGAbstractPropertyPage()
+{
+	//m_propertyPageActions.bEnableExport = true;
+}
+
+
+KPGAbstractPropertyPage::~KPGAbstractPropertyPage()
+{
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgabstractpropertypage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,47 @@
+//
+// C++ Interface: kpgabstractpropertypage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGABSTRACTPROPERTYPAGE_H
+#define KPGABSTRACTPROPERTYPAGE_H
+
+#include "../kpgactionsstates.h"
+
+#include <qobject.h>
+
+class QTable;
+
+/**
+Mother of all property pages
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGAbstractPropertyPage
+{
+public:
+    KPGAbstractPropertyPage();
+    ~KPGAbstractPropertyPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() = 0;
+	
+	// Display properties of underlying database object
+    virtual void displayProperties() = 0;
+	
+	// Get actions state
+    //const PropertyPageActions & propertyPageActions() const { return m_propertyPageActions; }
+    
+protected:
+
+	// State of actions - enable or disabled
+    //PropertyPageActions m_propertyPageActions;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,137 @@
+//
+// C++ Implementation: kpgaggregateproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgaggregateproppage.h"
+
+#include <qtable.h>  
+
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include <kdebug.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgaggregate.h"
+#include "../kpglinklabel.h"
+
+
+KPGAggregatePropPage::KPGAggregatePropPage(QWidget *parent, KPGAggregate *pAggregate)
+ : KPGAggregatePropPageBase(parent, "KPGAggregatePropPage")
+{
+	m_pAggregate = pAggregate;
+	displayProperties();
+}
+
+
+KPGAggregatePropPage::~KPGAggregatePropPage()
+{
+}
+
+void KPGAggregatePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pAggregate->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Aggregate name"));
+	
+	//--- Aggregate function
+	m_pTableProperties->setText(iRow, 0, i18n("Aggregate function"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Aggregate function" );
+	pLabel->setValues(m_pAggregate->oidAggregateFn(), m_pAggregate->aggregateFn());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Aggregate function name"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+    m_pTableProperties->setText(iRow, 1, m_pAggregate->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the aggregate"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pAggregate->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the aggregate function"));
+		
+	//--- Transition function
+	m_pTableProperties->setText(iRow, 0, i18n("Transition function"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Transition function" );
+	pLabel->setValues(m_pAggregate->oidTransFn(), m_pAggregate->transFn());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Transition function name"));
+	
+	//--- Final function
+	m_pTableProperties->setText(iRow, 0, i18n("Final function"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Final function" );
+	pLabel->setValues(m_pAggregate->oidFinalFn(), m_pAggregate->finalFn());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Final function name"));
+	
+	//--- Input type
+	m_pTableProperties->setText(iRow, 0, i18n("Input type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Input type" );
+	pLabel->setValues(m_pAggregate->oidInputType(), m_pAggregate->inputTypName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Aggregate function input type name"));
+	
+	//--- Transition type
+	m_pTableProperties->setText(iRow, 0, i18n("Transition type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Transition type" );
+	pLabel->setValues(m_pAggregate->oidTransType(), m_pAggregate->transTypName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("The type of the aggregate function's internal transition (state) data"));
+	
+	//--- Return type
+	m_pTableProperties->setText(iRow, 0, i18n("Return type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Return type" );
+	pLabel->setValues(m_pAggregate->oidRetType(), m_pAggregate->retTypName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Data type of the aggregate function return value"));
+	
+	//--- Initial value
+	m_pTableProperties->setText(iRow, 0, i18n("Initial value"));
+  	m_pTableProperties->setText(iRow, 1, m_pAggregate->initVal());
+	m_pTableProperties->setText(iRow++, 2, i18n("The initial value of the transition state. This is a text field containing the initial value in its external string representation. If the value is null, the transition state value starts out null."));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGAggregatePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+
+// Consumes request for context menu for property table
+void KPGAggregatePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgaggregateproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgaggregateproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGAGGREGATEPROPPAGE_H
+#define KPGAGGREGATEPROPPAGE_H
+
+#include "kpgaggregateproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGAggregate;
+
+/**
+  * Aggregate properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGAggregatePropPage : public KPGAggregatePropPageBase, public KPGAbstractPropertyPage
+{
+Q_OBJECT
+public:
+    KPGAggregatePropPage(QWidget *parent, KPGAggregate *);
+    ~KPGAggregatePropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();	
+	
+protected:	
+	
+	KPGAggregate *m_pAggregate;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	                 
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    	
+signals:
+	void sigSearchObject(const pqxx::oid);
+		            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgaggregateproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgaggregateproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGAggregatePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGAggregatePropPageBase::KPGAggregatePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGAggregatePropPageBase" );
+    KPGAggregatePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGAggregatePropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGAggregatePropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGAggregatePropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(467, 284).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGAggregatePropPageBase::~KPGAggregatePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGAggregatePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Aggregate properties" ) );
+    textLabel1->setText( tr2i18n( "&Aggregate properties:" ) );
+}
+
+void KPGAggregatePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGAggregatePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGAggregatePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGAggregatePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgaggregateproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregateproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGAggregatePropPageBase</class>
+<comment>Aggregate properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGAggregatePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>467</width>
+            <height>284</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Aggregate properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Aggregate properties:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>10</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGAggregatePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGAggregatePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,54 @@
+//
+// C++ Implementation: kpgaggregatesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgaggregatesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgaggregatesfolder.h"
+
+KPGAggregatesFolderPropPage::KPGAggregatesFolderPropPage(QWidget* parent, KPGAggregatesFolder * pAggregatesFolder)
+	: KPGPropertyPage(parent, "KPGAggregatesFolderPropPage")
+{
+	m_pAggregatesFolder = pAggregatesFolder;
+	displayProperties();
+}
+
+
+KPGAggregatesFolderPropPage::~KPGAggregatesFolderPropPage()
+{
+}
+
+void KPGAggregatesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Agregates &list:"));
+		
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Aggregate function"));
+  	pHeader->setLabel(nCol++, i18n("Owner"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Transition function"));
+  	pHeader->setLabel(nCol++, i18n("Final function"));
+	pHeader->setLabel(nCol++, i18n("Input type"));
+	pHeader->setLabel(nCol++, i18n("Transition type"));
+	pHeader->setLabel(nCol++, i18n("Return type"));
+	pHeader->setLabel(nCol++, i18n("Initial value"));
+	
+	KPGUtil::fillPropertiesTable(m_pAggregatesFolder->resultAggregates(), m_pTableItems);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgaggregatesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgaggregatesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGAGGREGATESFOLDERPROPPAGE_H
+#define KPGAGGREGATESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGAggregatesFolder;
+
+/**
+  * Aggregates folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGAggregatesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGAggregatesFolderPropPage(QWidget* parent, KPGAggregatesFolder *);
+    ~KPGAggregatesFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+
+protected:
+
+	KPGAggregatesFolder * m_pAggregatesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,111 @@
+//
+// C++ Implementation: kpgcastproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcastproppage.h"
+
+// include files for Qt
+#include <qtable.h>  
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgcast.h"
+
+KPGCastPropPage::KPGCastPropPage(QWidget *parent, KPGCast *pCast)
+ : KPGCastPropPageBase(parent, "KPGCastPropPage")
+{
+	m_pCast = pCast;
+	displayProperties();
+}
+
+
+KPGCastPropPage::~KPGCastPropPage()
+{
+}
+
+void KPGCastPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+		  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pCast->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Context"));
+    m_pTableProperties->setText(iRow, 1, m_pCast->context());
+	m_pTableProperties->setText(iRow++, 2, i18n("Indicates what contexts the cast may be invoked in. Posible values:  Explicit cast (using CAST, ::, or function-call syntax). Implicitly in assignment to a target column, as well as explicitly. Implicitly in expressions, as well as the other cases."));
+	
+	//--- Source type
+	m_pTableProperties->setText(iRow, 0, i18n("Source type"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Source type" );
+	pLabel->setValues(m_pCast->oidSourceType(), m_pCast->sourceType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Source data type"));
+	
+	//--- Target type
+	m_pTableProperties->setText(iRow, 0, i18n("Target type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Source type" );
+	pLabel->setValues(m_pCast->oidTargetType(), m_pCast->targetType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Target data type"));
+	
+	//--- Function
+	m_pTableProperties->setText(iRow, 0, i18n("Function"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Function" );
+	pLabel->setValues(m_pCast->oidCastFunc(), m_pCast->castFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Function to use to perform this cast. Nothing if the data types are binary compatible (that is, no run-time operation is needed to perform the cast). "));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Namespace" );
+	pLabel->setValues(m_pCast->oidNameSpace(), m_pCast->nameSpace());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Cast function namespace"));	
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGCastPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGCastPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgcastproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgcastproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCASTPROPPAGE_H
+#define KPGCASTPROPPAGE_H
+
+#include "kpgcastproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGCast;
+
+/**
+  * Cast properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGCastPropPage : public KPGCastPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGCastPropPage(QWidget *parent, KPGCast *);
+    ~KPGCastPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGCast *m_pCast;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	                 
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    	
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgcastproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcastproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGCastPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCastPropPageBase::KPGCastPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCastPropPageBase" );
+    KPGCastPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCastPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 6 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGCastPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGCastPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(470, 203).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCastPropPageBase::~KPGCastPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCastPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Cast properties" ) );
+    textLabel1->setText( tr2i18n( "&Cast properties:" ) );
+}
+
+void KPGCastPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGCastPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGCastPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGCastPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgcastproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCastPropPageBase</class>
+<comment>Cast properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCastPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>470</width>
+            <height>203</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Cast properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>6</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Cast properties:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGCastPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGCastPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Implementation: kpgcastsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcastsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgcastsfolder.h"
+
+KPGCastsFolderPropPage::KPGCastsFolderPropPage(QWidget *pParent, KPGCastsFolder *pCastsFolder)
+ : KPGPropertyPage(pParent, "KPGCastsFolderPropPage")
+{
+	m_pCastsFolder = pCastsFolder;
+	displayProperties();
+}
+
+
+KPGCastsFolderPropPage::~KPGCastsFolderPropPage()
+{
+}
+
+void KPGCastsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Casts &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Context"));
+  	pHeader->setLabel(nCol++, i18n("Source type"));
+	pHeader->setLabel(nCol++, i18n("Target type"));
+  	pHeader->setLabel(nCol++, i18n("Function"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+	
+	KPGUtil::fillPropertiesTable(m_pCastsFolder->resultCasts(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcastsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgcastsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCASTSFOLDERPROPPAGE_H
+#define KPGCASTSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGCastsFolder;
+
+/**
+  * Property page for casts folder
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGCastsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGCastsFolderPropPage(QWidget *, KPGCastsFolder *);
+    ~KPGCastsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGCastsFolder *m_pCastsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,95 @@
+//
+// C++ Implementation: kpgcheckconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcheckconstrproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgcheckconstr.h"
+#include "../kpgutil.h"
+
+KPGCheckConstrPropPage::KPGCheckConstrPropPage(QWidget *parent, KPGCheckConstr *pCheckConstr)
+ : KPGCheckConstrPropPageBase(parent, "KPGCheckConstrPropPage")
+{
+	m_pCheckConstr = pCheckConstr;
+	displayProperties();
+}
+
+
+KPGCheckConstrPropPage::~KPGCheckConstrPropPage()
+{
+}
+
+void KPGCheckConstrPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pCheckConstr->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pCheckConstr->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Constraint name (not necessarily unique!)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pCheckConstr->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the constraint"));
+	
+	//--- Is Deferrable
+	m_pTableProperties->setText(iRow, 0, i18n("Is deferrable"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pCheckConstr->isDeferrable() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferrable ?"));
+	
+	//--- Is Deferred
+	m_pTableProperties->setText(iRow, 0, i18n("Is deferred"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pCheckConstr->isDeferred() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferred by default ?"));
+	
+	//--- Expression
+	m_pTableProperties->setText(iRow, 0, i18n("Expression"));
+  	m_pTableProperties->setText(iRow, 1, m_pCheckConstr->expression());
+	m_pTableProperties->setText(iRow++, 2, i18n("A human-readable representation of the expression"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pCheckConstr->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+
+// Consumes request for context menu for property table
+void KPGCheckConstrPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+
+#include "kpgcheckconstrproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpgcheckconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCHECKCONSTRPROPPAGE_H
+#define KPGCHECKCONSTRPROPPAGE_H
+
+#include "kpgcheckconstrproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGCheckConstr;
+
+/**
+  * Check Constraint properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGCheckConstrPropPage : public KPGCheckConstrPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGCheckConstrPropPage(QWidget *parent, KPGCheckConstr *);
+    ~KPGCheckConstrPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+    
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+
+protected:
+
+	KPGCheckConstr *m_pCheckConstr;
+
+protected slots:
+	                 
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,78 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgcheckconstrproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcheckconstrproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGCheckConstrPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCheckConstrPropPageBase::KPGCheckConstrPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCheckConstrPropPageBase" );
+    KPGCheckConstrPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCheckConstrPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGCheckConstrPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 7 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGCheckConstrPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(353, 253).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCheckConstrPropPageBase::~KPGCheckConstrPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCheckConstrPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Check constraint properties" ) );
+    textLabel1->setText( tr2i18n( "&Check constraint properties:" ) );
+}
+
+void KPGCheckConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGCheckConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgcheckconstrproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgcheckconstrproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCheckConstrPropPageBase</class>
+<comment>Check constraint properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCheckConstrPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>353</width>
+            <height>253</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Check constraint properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Check constraint properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>7</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGCheckConstrPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+//
+// C++ Implementation: kpgconversionproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgconversionproppage.h"
+
+#include <qtable.h>
+
+#include "../kpglinklabel.h"
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "../DbObjects/kpgconversion.h"
+
+KPGConversionPropPage::KPGConversionPropPage(QWidget *parent, KPGConversion *pConversion)
+ : KPGConversionPropPageBase(parent, "KPGConversionPropPage")
+{
+	m_pConversion = pConversion;
+	displayProperties();
+}
+
+
+KPGConversionPropPage::~KPGConversionPropPage()
+{
+}
+
+void KPGConversionPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pConversion->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pConversion->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Conversion name"));
+	
+	//--- Is Default
+	m_pTableProperties->setText(iRow, 0, i18n("Is Default"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pConversion->isDefault() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if this is the default conversion"));
+	
+	//--- Source encoding
+	m_pTableProperties->setText(iRow, 0, i18n("Source encoding"));
+  	m_pTableProperties->setText(iRow, 1, m_pConversion->sourceEncoding());
+	m_pTableProperties->setText(iRow++, 2, i18n("Source encoding"));
+
+	//--- Destination encoding
+	m_pTableProperties->setText(iRow, 0, i18n("Destination encoding"));
+ 	m_pTableProperties->setText(iRow, 1, m_pConversion->destinationEncoding());
+	m_pTableProperties->setText(iRow++, 2, i18n("Destination encoding"));
+	
+	//--- Conversion procedure
+	m_pTableProperties->setText(iRow, 0, i18n("Conversion procedure"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Conversion procedure" );
+	pLabel->setValues(m_pConversion->oidConversionProcedure(), m_pConversion->conversionProcedure());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Conversion procedure name"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pConversion->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the conversion"));
+	
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGConversionPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGConversionPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgconversionproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgconversionproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCONVERSIONPROPPAGE_H
+#define KPGCONVERSIONPROPPAGE_H
+
+#include "kpgconversionproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGConversion;
+
+/**
+  * Conversion properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGConversionPropPage : public KPGConversionPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGConversionPropPage(QWidget *parent, KPGConversion *);
+    ~KPGConversionPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGConversion *m_pConversion;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	                 
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    	
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgconversionproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgconversionproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGConversionPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGConversionPropPageBase::KPGConversionPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGConversionPropPageBase" );
+    KPGConversionPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGConversionPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 7 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGConversionPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGConversionPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(472, 231).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGConversionPropPageBase::~KPGConversionPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGConversionPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Conversion properties" ) );
+    textLabel1->setText( tr2i18n( "&Cast properties:" ) );
+}
+
+void KPGConversionPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGConversionPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGConversionPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGConversionPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgconversionproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGConversionPropPageBase</class>
+<comment>Conversion properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGConversionPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>472</width>
+            <height>231</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Conversion properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>7</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Cast properties:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGConversionPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGConversionPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Implementation: kpgconversionsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgconversionsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgconversionsfolder.h"
+
+KPGConversionsFolderPropPage::KPGConversionsFolderPropPage(QWidget *pParent, KPGConversionsFolder *pConversionsFolder)
+ : KPGPropertyPage(pParent, "KPGConversionsFolderPropPage")
+{
+	m_pConversionsFolder = pConversionsFolder;
+	displayProperties();
+}
+
+KPGConversionsFolderPropPage::~KPGConversionsFolderPropPage()
+{
+}
+
+void KPGConversionsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Conversions &list:"));
+	
+	// field names
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Is default"));
+	pHeader->setLabel(nCol++, i18n("Source encoding"));
+	pHeader->setLabel(nCol++, i18n("Destination encoding"));
+ 	pHeader->setLabel(nCol++, i18n("Conversion procedure"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+
+	KPGUtil::fillPropertiesTable(m_pConversionsFolder->resultConversions(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgconversionsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgconversionsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCONVERSIONSFOLDERPROPPAGE_H
+#define KPGCONVERSIONSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGConversionsFolder;
+
+/**
+  * Conversions folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGConversionsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGConversionsFolderPropPage(QWidget *, KPGConversionsFolder *);
+    ~KPGConversionsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGConversionsFolder *m_pConversionsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,624 @@
+/***************************************************************************
+                          kpgdatabaseproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgdatabaseproppage.h"
+
+#include "../DbObjects/kpgtreeitem.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h> 
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <ktextedit.h>
+#include <kcombobox.h> 
+#include <kdebug.h>
+#include <kcursor.h>
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kmessagebox.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgserver.h"
+#include "../kpgutil.h"
+#include "../kpgsqldialog.h"
+
+KPGDatabasePropPage::KPGDatabasePropPage(QWidget *parent, KPGDatabase *pDatabase)
+ : KPGDatabasePropPageBase(parent, "KPGDatabasePropPage")
+{
+	m_pDatabase = pDatabase;
+  
+  	//m_pTableProperties->verticalHeader()->setResizeEnabled( false );
+	m_pTabWidget->setTabIconSet(tabCasts, QIconSet(*KPGTreeItem::m_pIconCast)); 
+	m_pTabWidget->setTabIconSet(tabLanguages, QIconSet(*KPGTreeItem::m_pIconLanguage)); 
+	m_pTabWidget->setTabIconSet(tabSchemas, QIconSet(*KPGTreeItem::m_pIconSchema)); 
+	m_pTabWidget->setTabIconSet(tabStatistics, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+	
+	m_pButtonRefreshStatistics->setIconSet(QIconSet(QPixmap(BarIcon("reload.png"))));
+	m_pPushButtonRefreshDiskUsage->setIconSet(QIconSet(QPixmap(BarIcon("reload.png"))));
+	m_pButtonRefreshLocks->setIconSet(QIconSet(QPixmap(BarIcon("reload.png"))));
+	
+	m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png"))));
+	m_pTabWidget->setTabIconSet(tabDiskUsage, QIconSet(QPixmap(UserIcon("disk_usage.png"))));
+	m_pTabWidget->setTabIconSet(tabLocks, QIconSet(QPixmap(UserIcon("lock.png")))); 
+
+    m_bPageCastsDisplaied = false;
+    displayProperties();
+}
+
+
+KPGDatabasePropPage::~KPGDatabasePropPage()
+{
+}
+
+// Display properties of underlying database object
+void KPGDatabasePropPage::displayProperties()
+{
+    KPGServer *pServer = static_cast <KPGServer *> (m_pDatabase->parent());
+    
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+		
+	if(m_pDatabase->connection() == 0)
+	{ 
+		m_pTableProperties->setNumRows(0);
+		m_pTableStatistics->setNumRows(0);
+		m_pTabWidget->setEnabled(false);
+		return;
+	}
+	
+	//--- Header
+		
+	int iRow = 0;
+  
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pDatabase->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+		
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pDatabase->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Database name"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pDatabase->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the database, usually the user who created it"));
+	
+	//--- ACL
+	setACL(m_pDatabase->acl());
+  
+	//--- Path / Tablespace
+  	if(!bVersion80_OrNewer)
+	{
+        m_pTableProperties->setText(iRow, 0, i18n("Path"));
+        m_pTableProperties->setText(iRow, 1, m_pDatabase->path());
+	    m_pTableProperties->setText(iRow++, 2, i18n("If the database is stored at an alternative location then this records the location. It's either an environment variable name \
+or an absolute path, depending how it was entered."));
+	}
+	else
+	{
+		m_pTableProperties->setText(iRow, 0, i18n("Tablespace"));
+		KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Tablespace" );
+		pLabel->setValues(m_pDatabase->oidTablespace(), m_pDatabase->tablespace());
+		m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+		m_pTableProperties->setText(iRow++, 2, i18n("Tablespace name"));
+	}
+  
+	//--- Encoding
+	m_pTableProperties->setText(iRow, 0, i18n("Encoding"));
+  	m_pTableProperties->setText(iRow, 1, m_pDatabase->encoding());
+	m_pTableProperties->setText(iRow++, 2, i18n("Character encoding for this database"));
+	
+	//--- Can create
+	m_pTableProperties->setText(iRow, 0, i18n("Can create"));
+    m_pTableProperties->setText(iRow, 1, (m_pDatabase->canCreate()) ? i18n("Yes") : i18n("No"));
+	m_pTableProperties->setText(iRow++, 2, i18n("Does current user have access to database ?"));
+	
+	//--- Default variables
+	m_pTableProperties->setText(iRow, 0, i18n("Default variables"));
+    m_pTableProperties->setText(iRow, 1, m_pDatabase->defaultVariables());
+	m_pTableProperties->setText(iRow++, 2, i18n("Session defaults for run-time configuration variables"));
+	
+	//--- Allow connection
+	m_pTableProperties->setText(iRow, 0, i18n("Allow connection"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pDatabase->allowConnections()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If false then no one can connect to this database. This is used to protect the template0 database from being altered."));
+	
+	//--- Is template
+	m_pTableProperties->setText(iRow, 0, i18n("Is template"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pDatabase->isTemplate()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true then this database can be used in the TEMPLATE clause of CREATE DATABASE to create a new database as a clone of this \
+one."));
+	
+	//--- Pretty size
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, m_pDatabase->prettySize());
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the database"));
+	
+	//--- Exact size
+	m_pTableProperties->setText(iRow, 0, i18n("Exact size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, QString("%L1 B").arg(m_pDatabase->size()));
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the database"));
+		
+	//--- Adjust DataTable columns size
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+	
+	//---
+	displayStatistics();
+	// displayCasts(); Lazy
+	displayLanguages();
+	displaySchemas();
+	displayExtendedStatistics();
+}    
+
+void KPGDatabasePropPage::displayCasts()
+{
+    KPGUtil::fillPropertiesTable(m_pDatabase->resultCasts(), m_pTableCasts);
+    m_bPageCastsDisplaied = true;
+}
+	
+void KPGDatabasePropPage::displayLanguages()
+{
+    KPGUtil::fillPropertiesTable(m_pDatabase->resultLanguages(), m_pTableLanguages);
+}
+	
+void KPGDatabasePropPage::displaySchemas()
+{
+    KPGUtil::fillPropertiesTable(m_pDatabase->resultSchemas(), m_pTableSchemas);
+}
+	
+void KPGDatabasePropPage::displayStatistics()
+{
+    QString strQuery(m_pDatabase->queryStatistics()); 
+    try
+    {
+        result pqxxResult = m_pDatabase->connection()->runQuery(strQuery);
+    
+        if(pqxxResult.size() == 1)
+        {
+            int iRow = 0;
+                
+            m_pTableStatistics->setText(iRow, 0, i18n("Number of connections"));
+            m_pTableStatistics->setText(iRow, 1, pqxxResult[0]["numbackends"].c_str());
+            m_pTableStatistics->setText(iRow++, 2, i18n("Number of active connections to the database"));
+                
+            m_pTableStatistics->setText(iRow, 0, i18n("Transactions committed"));
+            m_pTableStatistics->setText(iRow, 1, pqxxResult[0]["xact_commit"].c_str());
+            m_pTableStatistics->setText(iRow++, 2, i18n("Total number of committed transactions"));
+                
+            m_pTableStatistics->setText(iRow, 0, i18n("Transactions rolled back"));
+            m_pTableStatistics->setText(iRow, 1, pqxxResult[0]["xact_rollback"].c_str());
+            m_pTableStatistics->setText(iRow++, 2, i18n("Total number of rolled back transactions"));
+                
+            m_pTableStatistics->setText(iRow, 0, i18n("Readed blocks"));
+            m_pTableStatistics->setText(iRow, 1, pqxxResult[0]["blks_read"].c_str());
+            m_pTableStatistics->setText(iRow++, 2, i18n("Total number of readed blocks"));
+                
+            m_pTableStatistics->setText(iRow, 0, i18n("Hitted blocks"));
+            m_pTableStatistics->setText(iRow, 1, pqxxResult[0]["blks_hit"].c_str());
+            m_pTableStatistics->setText(iRow++, 2, i18n("Total number of hitted blocks"));
+                
+            //--- Adjust DataTable columns size
+            for(int nCol = 0; nCol < 3; nCol++)
+            {
+                m_pTableStatistics->adjustColumn(nCol);
+            }
+        }
+    }
+    catch (const std::exception &e)
+    {
+        setCursor(KCursor::arrowCursor());
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strQuery, e.what());
+		dlg.exec();
+		return;
+    } 
+    setCursor(KCursor::arrowCursor());
+}
+	
+void KPGDatabasePropPage::slotRefreshStatistics()
+{
+    setCursor(KCursor::waitCursor());
+  	displayExtendedStatistics();
+  	setCursor(KCursor::arrowCursor());
+}	
+	
+void KPGDatabasePropPage::displayExtendedStatistics()
+{
+    m_pTableStatistics2->setNumRows(0);
+    int currentItem = m_pComboBoxStatType->currentItem();
+    
+    QString strQuery(m_pDatabase->queryExtendedStatistics(currentItem));
+        
+	try
+	{
+		pqxx::result pqxxResult = m_pDatabase->connection()->runQuery(strQuery);
+		
+		// fill properties table with result data
+		int nTableCols = KPGUtil::fillPropertiesTable(pqxxResult, m_pTableStatistics2, false);
+			
+		// field names
+		QHeader* hHeader = m_pTableStatistics2->horizontalHeader();
+		int nResultCol = 0;
+		for(int nCol = 0; nCol < nTableCols; nCol++)
+		{
+            if(pqxxResult.column_type(nResultCol) == 26)
+                nResultCol++; // skip OIDs
+                
+            hHeader->setLabel(nCol, pqxxResult.column_name(nResultCol++)); 
+            m_pTableStatistics2->adjustColumn(nCol);
+		}
+	}
+	catch (const std::exception &e)
+	{
+		setCursor(KCursor::arrowCursor());
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strQuery, e.what());
+		dlg.exec();
+		return;
+	}
+}
+
+void KPGDatabasePropPage::slotRefreshLocks()
+{
+    m_pTableDiskUsage->setNumRows(0);
+	
+    KPGServer *pServer = static_cast <KPGServer *> (m_pDatabase->parent());
+    
+    // Is it 8.1 or newer ? If not, return
+	if(((pServer->versionMajor() < 8) || (pServer->versionMiddle() <= 1)) && ((pServer->versionMajor() == 8))) 
+	{
+		KMessageBox::sorry(this, i18n("This requires PostgreSQL 8.1 or newer"));
+		return;
+	}
+    
+    setCursor(KCursor::waitCursor());
+    
+    QString strQuery(m_pDatabase->queryLocks()); 
+    try
+	{
+    	pqxx::result pqxxResult = m_pDatabase->connection()->runQuery(strQuery, KPGConnection::eTransNone);
+    	    	
+    	// fill properties table with result data
+		KPGUtil::fillPropertiesTable(pqxxResult, m_pTableLocks, false);
+    }
+    catch (const std::exception &e)
+	{
+		setCursor(KCursor::arrowCursor());
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strQuery, e.what());
+		dlg.exec();
+		return;
+	} 
+    setCursor(KCursor::arrowCursor());
+}
+
+void KPGDatabasePropPage::slotRefreshDiskUsage()
+{
+	m_pTableDiskUsage->setNumRows(0);
+	
+    KPGServer *pServer = static_cast <KPGServer *> (m_pDatabase->parent());
+    
+    // Is it 8.1 or newer ? If not, return
+	if(((pServer->versionMajor() < 8) || (pServer->versionMiddle() <= 1)) && ((pServer->versionMajor() == 8))) 
+	{
+		KMessageBox::sorry(this, i18n("This requires PostgreSQL 8.1 or newer"));
+		return;
+	}
+    
+    setCursor(KCursor::waitCursor());
+    
+    QString strQuery(m_pDatabase->queryDiskUsage()); 
+    try
+	{
+    	pqxx::result pqxxResult = m_pDatabase->connection()->runQuery(strQuery);
+    	    	
+    	// fill properties table with result data
+		KPGUtil::fillPropertiesTable(pqxxResult, m_pTableDiskUsage, false);
+    }
+    catch (const std::exception &e)
+	{
+		setCursor(KCursor::arrowCursor());
+		kdError() << k_funcinfo << e.what() << endl;
+		KPGSqlDialog dlg(this, strQuery, e.what());
+		dlg.exec();
+		return;
+	} 
+    setCursor(KCursor::arrowCursor());
+}
+	
+
+void KPGDatabasePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableCastsDblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableCasts->cellWidget(iRow, iCol);
+	if (w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableLanguagesDblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableLanguages->cellWidget(iRow, iCol);
+	if (w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableSchemasDblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableSchemas->cellWidget(iRow, iCol);
+	if (w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableStatistics2DblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableStatistics2->cellWidget(iRow, iCol);
+    if (w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+    	emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableLocksDblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableLocks->cellWidget(iRow, iCol);
+	if (w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::slotTableDiskUsageDblClicked(int iRow, int iCol,int,const QPoint&)
+{
+    QWidget *w = m_pTableDiskUsage->cellWidget(iRow, iCol);
+    if (w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+    	emit sigSearchObject(_oid);
+}
+
+void KPGDatabasePropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+			m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+			strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+			strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canCreate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(3, UserIcon((*it).canCreateTemp() ? "box_checked.png" : "box_clear.png"));
+			
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(4, UserIcon((*it).canGrantCreate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(5, UserIcon((*it).canGrantCreateTemp() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGDatabasePropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleCreate() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				pItem->setPixmap(3, UserIcon((*it).toggleCreateTemp() ? "box_checked.png" : "box_clear.png"));
+				break;
+			
+			case 4:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(4, UserIcon((*it).toggleGrantCreate() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+			
+			case 5:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(5, UserIcon((*it).toggleGrantCreateTemp() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			default:
+				kdError() << k_funcinfo << " Unexpected column !" << endl;
+				break;      
+		}
+		
+		m_pPushButtonUpdateACL->setEnabled(true);
+		return;
+		}
+	}
+}
+
+void KPGDatabasePropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("DATABASE " + KPGUtil::quotedName(m_pDatabase->text(0))));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Return Result table for clipboard actions and export. 
+QTable* KPGDatabasePropPage::tableResult() 
+{ 
+	switch(m_pTabWidget->currentPageIndex())
+	{
+		case 0: return m_pTableProperties; 
+				break;
+				
+		case 1: return 0; 
+				break;
+				
+		case 2: return m_pTableCasts; 
+				break;
+				
+		case 3: return m_pTableLanguages; 
+				break;
+				
+		case 4: return m_pTableSchemas; 
+				break;
+				
+		case 5: return m_pTableStatistics2; 
+				break;	
+				
+		case 6: return m_pTableLocks; 
+				break;	
+				
+	    case 7: return m_pTableDiskUsage; 
+				break;	
+	}
+	
+	return 0;
+}
+
+// Consumes request for context menu for property table
+void KPGDatabasePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+void KPGDatabasePropPage::slotCurrentTabChanged(QWidget *pPropertyPage)
+{	
+	if((pPropertyPage == tabCasts) && (!m_bPageCastsDisplaied))
+	{
+	   setCursor(KCursor::waitCursor());
+	   displayCasts();
+	   setCursor(KCursor::arrowCursor());	
+	}
+}
+
+#include "kpgdatabaseproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+/***************************************************************************
+                          kpgdatabaseproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGDATABASEPROPPAGE_H
+#define KPGDATABASEPROPPAGE_H
+
+#include "kpgdatabaseproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+// Foreign references
+class KPGTreeItem;
+class KPGDatabase;
+
+/**
+Database properties page
+
+ at author Lumir Vanek
+*/
+
+class KPGDatabasePropPage : public KPGDatabasePropPageBase, public KPGAbstractPropertyPage
+{
+Q_OBJECT
+public:
+    KPGDatabasePropPage(QWidget *parent, KPGDatabase *);
+    ~KPGDatabasePropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult();
+
+    // Display properties of underlying database object
+    virtual void displayProperties();
+    
+protected:
+    void setACL(const QString &);
+
+	void displayCasts();
+	void displayLanguages();
+	void displaySchemas();
+	void displayStatistics();
+  	void displayExtendedStatistics();
+    
+protected:
+    KPGDatabase *m_pDatabase;
+    KPGAclItemList m_listOfAclItems;
+
+    bool m_bPageCastsDisplaied;
+    
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);
+	virtual void slotTableCastsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableLanguagesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableSchemasDblClicked(int, int, int, const QPoint &);
+	virtual void slotTableStatistics2DblClicked(int, int, int, const QPoint &);
+	virtual void slotTableLocksDblClicked(int, int, int, const QPoint &);
+	virtual void slotTableDiskUsageDblClicked(int iRow, int iCol,int,const QPoint&);
+                         
+    virtual void slotCurrentTabChanged(QWidget *);                     
+                         
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+	  	
+    virtual void slotRefreshStatistics();
+    virtual void slotRefreshLocks();
+    virtual void slotRefreshDiskUsage();
+    
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+ 
+signals:
+	void sigSearchObject(const pqxx::oid);
+    void sigRunWizard(const QString &); 
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,491 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgdatabaseproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdatabaseproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <kpushbutton.h>
+#include <klineedit.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+#include "klineedit.h"
+#include "klistview.h"
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGDatabasePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDatabasePropPageBase::KPGDatabasePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDatabasePropPageBase" );
+    KPGDatabasePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDatabasePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableStatistics = new QTable( tabProperties, "m_pTableStatistics" );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableStatistics->setNumRows( 5 );
+    m_pTableStatistics->setNumCols( 3 );
+    m_pTableStatistics->setReadOnly( TRUE );
+    m_pTableStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableStatistics, 3, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+    textLabel2->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumCols( m_pTableProperties->numCols() + 1 );
+    m_pTableProperties->horizontalHeader()->setLabel( m_pTableProperties->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableProperties->setNumCols( m_pTableProperties->numCols() + 1 );
+    m_pTableProperties->horizontalHeader()->setLabel( m_pTableProperties->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableProperties->setNumCols( m_pTableProperties->numCols() + 1 );
+    m_pTableProperties->horizontalHeader()->setLabel( m_pTableProperties->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableProperties->setNumRows( 11 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "TEMPORARY" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant CREATE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant TEMPORARY" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    tabCasts = new QWidget( m_pTabWidget, "tabCasts" );
+    tabCastsLayout = new QGridLayout( tabCasts, 1, 1, 11, 6, "tabCastsLayout"); 
+
+    m_pTableCasts = new QTable( tabCasts, "m_pTableCasts" );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Context" ) );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Source type" ) );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Target type" ) );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Function" ) );
+    m_pTableCasts->setNumCols( m_pTableCasts->numCols() + 1 );
+    m_pTableCasts->horizontalHeader()->setLabel( m_pTableCasts->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableCasts->setNumRows( 0 );
+    m_pTableCasts->setNumCols( 6 );
+    m_pTableCasts->setReadOnly( TRUE );
+    m_pTableCasts->setSelectionMode( QTable::SingleRow );
+
+    tabCastsLayout->addWidget( m_pTableCasts, 1, 0 );
+
+    textLabel3 = new QLabel( tabCasts, "textLabel3" );
+    textLabel3->setTextFormat( QLabel::PlainText );
+
+    tabCastsLayout->addWidget( textLabel3, 0, 0 );
+    m_pTabWidget->insertTab( tabCasts, QString::fromLatin1("") );
+
+    tabLanguages = new QWidget( m_pTabWidget, "tabLanguages" );
+    tabLanguagesLayout = new QGridLayout( tabLanguages, 1, 1, 11, 6, "tabLanguagesLayout"); 
+
+    m_pTableLanguages = new QTable( tabLanguages, "m_pTableLanguages" );
+    m_pTableLanguages->setNumCols( m_pTableLanguages->numCols() + 1 );
+    m_pTableLanguages->horizontalHeader()->setLabel( m_pTableLanguages->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableLanguages->setNumCols( m_pTableLanguages->numCols() + 1 );
+    m_pTableLanguages->horizontalHeader()->setLabel( m_pTableLanguages->numCols() - 1, tr2i18n( "Is trusted" ) );
+    m_pTableLanguages->setNumCols( m_pTableLanguages->numCols() + 1 );
+    m_pTableLanguages->horizontalHeader()->setLabel( m_pTableLanguages->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableLanguages->setNumCols( m_pTableLanguages->numCols() + 1 );
+    m_pTableLanguages->horizontalHeader()->setLabel( m_pTableLanguages->numCols() - 1, tr2i18n( "Language function" ) );
+    m_pTableLanguages->setNumCols( m_pTableLanguages->numCols() + 1 );
+    m_pTableLanguages->horizontalHeader()->setLabel( m_pTableLanguages->numCols() - 1, tr2i18n( "Language validator" ) );
+    m_pTableLanguages->setNumRows( 0 );
+    m_pTableLanguages->setNumCols( 5 );
+    m_pTableLanguages->setReadOnly( TRUE );
+    m_pTableLanguages->setSelectionMode( QTable::SingleRow );
+
+    tabLanguagesLayout->addWidget( m_pTableLanguages, 1, 0 );
+
+    textLabel1_2 = new QLabel( tabLanguages, "textLabel1_2" );
+    textLabel1_2->setTextFormat( QLabel::PlainText );
+
+    tabLanguagesLayout->addWidget( textLabel1_2, 0, 0 );
+    m_pTabWidget->insertTab( tabLanguages, QString::fromLatin1("") );
+
+    tabSchemas = new QWidget( m_pTabWidget, "tabSchemas" );
+    tabSchemasLayout = new QGridLayout( tabSchemas, 1, 1, 11, 6, "tabSchemasLayout"); 
+
+    m_pTableSchemas = new QTable( tabSchemas, "m_pTableSchemas" );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "Can Create" ) );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableSchemas->setNumCols( m_pTableSchemas->numCols() + 1 );
+    m_pTableSchemas->horizontalHeader()->setLabel( m_pTableSchemas->numCols() - 1, tr2i18n( "Tablespace" ) );
+    m_pTableSchemas->setNumRows( 0 );
+    m_pTableSchemas->setNumCols( 6 );
+    m_pTableSchemas->setReadOnly( TRUE );
+    m_pTableSchemas->setSelectionMode( QTable::SingleRow );
+
+    tabSchemasLayout->addWidget( m_pTableSchemas, 1, 0 );
+
+    textLabel5 = new QLabel( tabSchemas, "textLabel5" );
+    textLabel5->setTextFormat( QLabel::PlainText );
+
+    tabSchemasLayout->addWidget( textLabel5, 0, 0 );
+    m_pTabWidget->insertTab( tabSchemas, QString::fromLatin1("") );
+
+    tabStatistics = new QWidget( m_pTabWidget, "tabStatistics" );
+    tabStatisticsLayout = new QGridLayout( tabStatistics, 1, 1, 11, 6, "tabStatisticsLayout"); 
+
+    m_pButtonRefreshStatistics = new KPushButton( tabStatistics, "m_pButtonRefreshStatistics" );
+
+    tabStatisticsLayout->addWidget( m_pButtonRefreshStatistics, 1, 0 );
+
+    m_pComboBoxStatType = new KComboBox( FALSE, tabStatistics, "m_pComboBoxStatType" );
+
+    tabStatisticsLayout->addWidget( m_pComboBoxStatType, 1, 1 );
+    spacer1 = new QSpacerItem( 201, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabStatisticsLayout->addItem( spacer1, 1, 2 );
+
+    m_pTableStatistics2 = new QTable( tabStatistics, "m_pTableStatistics2" );
+    m_pTableStatistics2->setNumRows( 0 );
+    m_pTableStatistics2->setNumCols( 3 );
+    m_pTableStatistics2->setReadOnly( TRUE );
+    m_pTableStatistics2->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableStatistics2, 0, 0, 0, 2 );
+    m_pTabWidget->insertTab( tabStatistics, QString::fromLatin1("") );
+
+    tabLocks = new QWidget( m_pTabWidget, "tabLocks" );
+    tabLocksLayout = new QGridLayout( tabLocks, 1, 1, 11, 6, "tabLocksLayout"); 
+
+    m_pTableLocks = new QTable( tabLocks, "m_pTableLocks" );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "Relation" ) );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "Xact" ) );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "PID" ) );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "Mode" ) );
+    m_pTableLocks->setNumCols( m_pTableLocks->numCols() + 1 );
+    m_pTableLocks->horizontalHeader()->setLabel( m_pTableLocks->numCols() - 1, tr2i18n( "Granted" ) );
+    m_pTableLocks->setNumRows( 0 );
+    m_pTableLocks->setNumCols( 6 );
+    m_pTableLocks->setReadOnly( TRUE );
+    m_pTableLocks->setSelectionMode( QTable::SingleRow );
+
+    tabLocksLayout->addMultiCellWidget( m_pTableLocks, 0, 0, 0, 1 );
+
+    m_pButtonRefreshLocks = new KPushButton( tabLocks, "m_pButtonRefreshLocks" );
+
+    tabLocksLayout->addWidget( m_pButtonRefreshLocks, 1, 0 );
+    spacer3 = new QSpacerItem( 341, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabLocksLayout->addItem( spacer3, 1, 1 );
+    m_pTabWidget->insertTab( tabLocks, QString::fromLatin1("") );
+
+    tabDiskUsage = new QWidget( m_pTabWidget, "tabDiskUsage" );
+    tabDiskUsageLayout = new QGridLayout( tabDiskUsage, 1, 1, 11, 6, "tabDiskUsageLayout"); 
+
+    m_pTableDiskUsage = new QTable( tabDiskUsage, "m_pTableDiskUsage" );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Kind" ) );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Tablespace" ) );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Rounded size" ) );
+    m_pTableDiskUsage->setNumCols( m_pTableDiskUsage->numCols() + 1 );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( m_pTableDiskUsage->numCols() - 1, tr2i18n( "Exact size" ) );
+    m_pTableDiskUsage->setNumRows( 0 );
+    m_pTableDiskUsage->setNumCols( 6 );
+    m_pTableDiskUsage->setReadOnly( TRUE );
+    m_pTableDiskUsage->setSelectionMode( QTable::SingleRow );
+
+    tabDiskUsageLayout->addMultiCellWidget( m_pTableDiskUsage, 0, 0, 0, 1 );
+
+    m_pPushButtonRefreshDiskUsage = new KPushButton( tabDiskUsage, "m_pPushButtonRefreshDiskUsage" );
+
+    tabDiskUsageLayout->addWidget( m_pPushButtonRefreshDiskUsage, 1, 0 );
+    spacer2 = new QSpacerItem( 421, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabDiskUsageLayout->addItem( spacer2, 1, 1 );
+    m_pTabWidget->insertTab( tabDiskUsage, QString::fromLatin1("") );
+
+    KPGDatabasePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(664, 513).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableCasts, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableCastsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableLanguages, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableLanguagesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableSchemas, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableSchemasDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableStatistics2, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableStatistics2DblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefreshStatistics, SIGNAL( clicked() ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pComboBoxStatType, SIGNAL( activated(int) ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableCasts, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableLanguages, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableSchemas, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableStatistics2, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pPushButtonRefreshDiskUsage, SIGNAL( clicked() ), this, SLOT( slotRefreshDiskUsage() ) );
+    connect( m_pTableDiskUsage, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableDiskUsageDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableDiskUsage, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pButtonRefreshLocks, SIGNAL( clicked() ), this, SLOT( slotRefreshLocks() ) );
+    connect( m_pTableLocks, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableLocksDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTabWidget, SIGNAL( currentChanged(QWidget*) ), this, SLOT( slotCurrentTabChanged(QWidget*) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTableStatistics );
+    textLabel1_3->setBuddy( m_pListViewACL );
+    textLabel3->setBuddy( m_pTableCasts );
+    textLabel1_2->setBuddy( m_pTableLanguages );
+    textLabel5->setBuddy( m_pTableSchemas );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDatabasePropPageBase::~KPGDatabasePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDatabasePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Database Properties" ) );
+    textLabel1->setText( tr2i18n( "&Database properties:" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 1, tr2i18n( "Value" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    textLabel2->setText( tr2i18n( "&Statistics:" ) );
+    m_pTableProperties->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableProperties->horizontalHeader()->setLabel( 1, tr2i18n( "Value" ) );
+    m_pTableProperties->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "TEMPORARY" ) );
+    m_pListViewACL->header()->setLabel( 4, tr2i18n( "Grant CREATE" ) );
+    m_pListViewACL->header()->setLabel( 5, tr2i18n( "Grant TEMPORARY" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 1, tr2i18n( "Context" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 2, tr2i18n( "Source type" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 3, tr2i18n( "Target type" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 4, tr2i18n( "Function" ) );
+    m_pTableCasts->horizontalHeader()->setLabel( 5, tr2i18n( "Namespace" ) );
+    textLabel3->setText( tr2i18n( "&Casts:" ) );
+    m_pTabWidget->changeTab( tabCasts, tr2i18n( "Casts" ) );
+    m_pTableLanguages->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableLanguages->horizontalHeader()->setLabel( 1, tr2i18n( "Is trusted" ) );
+    m_pTableLanguages->horizontalHeader()->setLabel( 2, tr2i18n( "ACL" ) );
+    m_pTableLanguages->horizontalHeader()->setLabel( 3, tr2i18n( "Language function" ) );
+    m_pTableLanguages->horizontalHeader()->setLabel( 4, tr2i18n( "Language validator" ) );
+    textLabel1_2->setText( tr2i18n( "&Laguages:" ) );
+    m_pTabWidget->changeTab( tabLanguages, tr2i18n( "Languages" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 2, tr2i18n( "ACL" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 3, tr2i18n( "Can Create" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 4, tr2i18n( "Owner" ) );
+    m_pTableSchemas->horizontalHeader()->setLabel( 5, tr2i18n( "Tablespace" ) );
+    textLabel5->setText( tr2i18n( "&Schemas:" ) );
+    m_pTabWidget->changeTab( tabSchemas, tr2i18n( "Schemas" ) );
+    m_pButtonRefreshStatistics->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefreshStatistics->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pComboBoxStatType->clear();
+    m_pComboBoxStatType->insertItem( tr2i18n( "All tables" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "System tables" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "User tables" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "All indexes" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "System indexes" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "User indexes" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "All tables I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "System tables I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "User tables I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "All indexes I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "System indexes I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "User indexex I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "All sequences I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "System sequences I/O" ) );
+    m_pComboBoxStatType->insertItem( tr2i18n( "User sequences I/O" ) );
+    m_pTabWidget->changeTab( tabStatistics, tr2i18n( "Statistics" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 0, tr2i18n( "Type" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 1, tr2i18n( "Relation" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 2, tr2i18n( "Xact" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 3, tr2i18n( "PID" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 4, tr2i18n( "Mode" ) );
+    m_pTableLocks->horizontalHeader()->setLabel( 5, tr2i18n( "Granted" ) );
+    m_pButtonRefreshLocks->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefreshLocks->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabLocks, tr2i18n( "Locks" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 0, tr2i18n( "Namespace" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 1, tr2i18n( "Name" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 2, tr2i18n( "Kind" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 3, tr2i18n( "Tablespace" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 4, tr2i18n( "Rounded size" ) );
+    m_pTableDiskUsage->horizontalHeader()->setLabel( 5, tr2i18n( "Exact size" ) );
+    m_pPushButtonRefreshDiskUsage->setText( tr2i18n( "&Refresh" ) );
+    m_pPushButtonRefreshDiskUsage->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabDiskUsage, tr2i18n( "Disk usage" ) );
+}
+
+void KPGDatabasePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableCastsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableCastsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableLanguagesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableLanguagesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableSchemasDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableSchemasDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableStatistics2DblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableStatistics2DblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotRefreshStatistics()
+{
+    qWarning( "KPGDatabasePropPageBase::slotRefreshStatistics(): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGDatabasePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGDatabasePropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotRefreshDiskUsage()
+{
+    qWarning( "KPGDatabasePropPageBase::slotRefreshDiskUsage(): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableDiskUsageDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableDiskUsageDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotRefreshLocks()
+{
+    qWarning( "KPGDatabasePropPageBase::slotRefreshLocks(): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotTableLocksDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDatabasePropPageBase::slotTableLocksDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDatabasePropPageBase::slotCurrentTabChanged(QWidget*)
+{
+    qWarning( "KPGDatabasePropPageBase::slotCurrentTabChanged(QWidget*): Not implemented yet" );
+}
+
+#include "kpgdatabaseproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,104 @@
+/****************************************************************************
+** Form interface generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgdatabaseproppagebase.ui'
+**
+** Created: Po říj 8 20:00:20 2007
+**      by: The User Interface Compiler ($Id: kpgdatabaseproppagebase.h,v 1.39 2007/10/08 18:10:54 lvanek Exp $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef KPGDATABASEPROPPAGEBASE_H
+#define KPGDATABASEPROPPAGEBASE_H
+
+#include <qvariant.h>
+#include <qwidget.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QTabWidget;
+class QLabel;
+class QTable;
+class KPushButton;
+class KLineEdit;
+class KListView;
+class QListViewItem;
+class KComboBox;
+
+class KPGDatabasePropPageBase : public QWidget
+{
+    Q_OBJECT
+
+public:
+    KPGDatabasePropPageBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+    ~KPGDatabasePropPageBase();
+
+    QTabWidget* m_pTabWidget;
+    QWidget* tabProperties;
+    QLabel* textLabel1;
+    QTable* m_pTableStatistics;
+    QLabel* textLabel2;
+    QTable* m_pTableProperties;
+    QWidget* tabACL;
+    KPushButton* m_pPushButtonUpdateACL;
+    QLabel* textLabel1_4;
+    KLineEdit* m_pLineEditACL;
+    KListView* m_pListViewACL;
+    QLabel* textLabel1_3;
+    QWidget* tabCasts;
+    QTable* m_pTableCasts;
+    QLabel* textLabel3;
+    QWidget* tabLanguages;
+    QTable* m_pTableLanguages;
+    QLabel* textLabel1_2;
+    QWidget* tabSchemas;
+    QTable* m_pTableSchemas;
+    QLabel* textLabel5;
+    QWidget* tabStatistics;
+    KPushButton* m_pButtonRefreshStatistics;
+    KComboBox* m_pComboBoxStatType;
+    QTable* m_pTableStatistics2;
+    QWidget* tabLocks;
+    QTable* m_pTableLocks;
+    KPushButton* m_pButtonRefreshLocks;
+    QWidget* tabDiskUsage;
+    QTable* m_pTableDiskUsage;
+    KPushButton* m_pPushButtonRefreshDiskUsage;
+
+protected:
+    QGridLayout* KPGDatabasePropPageBaseLayout;
+    QGridLayout* tabPropertiesLayout;
+    QGridLayout* tabACLLayout;
+    QGridLayout* tabCastsLayout;
+    QGridLayout* tabLanguagesLayout;
+    QGridLayout* tabSchemasLayout;
+    QGridLayout* tabStatisticsLayout;
+    QSpacerItem* spacer1;
+    QGridLayout* tabLocksLayout;
+    QSpacerItem* spacer3;
+    QGridLayout* tabDiskUsageLayout;
+    QSpacerItem* spacer2;
+
+protected slots:
+    virtual void languageChange();
+
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableCastsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableLanguagesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableSchemasDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableStatistics2DblClicked(int, int, int, const QPoint &);
+    virtual void slotRefreshStatistics();
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+    virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    virtual void slotRefreshDiskUsage();
+    virtual void slotTableDiskUsageDblClicked(int iRow, int iCol,int,const QPoint&);
+    virtual void slotRefreshLocks();
+    virtual void slotTableLocksDblClicked(int, int, int, const QPoint &);
+    virtual void slotCurrentTabChanged(QWidget *w);
+
+
+};
+
+#endif // KPGDATABASEPROPPAGEBASE_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdatabaseproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,945 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDatabasePropPageBase</class>
+<comment>Database properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDatabasePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>664</width>
+            <height>513</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Database Properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Database properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="3" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Value</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>5</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Statistics:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Value</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>11</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>TEMPORARY</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant TEMPORARY</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabCasts</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Casts</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Context</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Source type</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Target type</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Function</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableCasts</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Casts:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableCasts</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabLanguages</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Languages</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is trusted</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Language function</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Language validator</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableLanguages</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>5</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Laguages:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableLanguages</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabSchemas</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Schemas</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Can Create</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Tablespace</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableSchemas</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel5</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Schemas:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableSchemas</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabStatistics</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Statistics</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefreshStatistics</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <widget class="KComboBox" row="1" column="1">
+                        <item>
+                            <property name="text">
+                                <string>All tables</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>System tables</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>User tables</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>All indexes</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>System indexes</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>User indexes</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>All tables I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>System tables I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>User tables I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>All indexes I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>System indexes I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>User indexex I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>All sequences I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>System sequences I/O</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>User sequences I/O</string>
+                            </property>
+                        </item>
+                        <property name="name">
+                            <cstring>m_pComboBoxStatType</cstring>
+                        </property>
+                    </widget>
+                    <spacer row="1" column="2">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>201</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                    <widget class="QTable" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>m_pTableStatistics2</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabLocks</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Locks</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="0" column="0" rowspan="1" colspan="2">
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Relation</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Xact</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>PID</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Mode</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableLocks</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefreshLocks</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="1" column="1">
+                        <property name="name">
+                            <cstring>spacer3</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>341</width>
+                                <height>20</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabDiskUsage</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Disk usage</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="0" column="0" rowspan="1" colspan="2">
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Kind</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Tablespace</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Rounded size</string>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Exact size</string>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pTableDiskUsage</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>0</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonRefreshDiskUsage</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="1" column="1">
+                        <property name="name">
+                            <cstring>spacer2</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>421</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableCasts</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableCastsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableLanguages</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableLanguagesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableSchemas</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableSchemasDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableStatistics2</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableStatistics2DblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefreshStatistics</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxStatType</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableCasts</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableLanguages</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableSchemas</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableStatistics2</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonRefreshDiskUsage</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotRefreshDiskUsage()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableDiskUsage</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableDiskUsageDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableDiskUsage</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefreshLocks</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotRefreshLocks()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableLocks</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotTableLocksDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTabWidget</sender>
+        <signal>currentChanged(QWidget*)</signal>
+        <receiver>KPGDatabasePropPageBase</receiver>
+        <slot>slotCurrentTabChanged(QWidget*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableCastsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableLanguagesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableSchemasDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableStatistics2DblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshStatistics()</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshDiskUsage()</slot>
+    <slot access="protected">slotTableDiskUsageDblClicked(int iRow, int iCol,int,const QPoint&amp;)</slot>
+    <slot access="protected">slotRefreshLocks()</slot>
+    <slot access="protected">slotTableLocksDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotCurrentTabChanged(QWidget *w)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Implementation: kpgdomainconstrfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainconstrfolderproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgdomainconstraintsfolder.h"
+
+
+KPGDomainConstrFolderPropPage::KPGDomainConstrFolderPropPage(QWidget *pParent, KPGDomainConstraintsFolder *pDomainConstraintsFolder)
+ : KPGPropertyPage(pParent, "KPGDomainConstrFolderPropPage")
+{
+	m_pDomainConstraintsFolder = pDomainConstraintsFolder;
+	displayProperties();
+}
+
+
+
+KPGDomainConstrFolderPropPage::~KPGDomainConstrFolderPropPage()
+{
+}
+
+void KPGDomainConstrFolderPropPage::displayProperties()
+{
+    setLabelText(i18n("Domain constraints &list:"));
+    
+    QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Definition"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+	
+	KPGUtil::fillPropertiesTable(m_pDomainConstraintsFolder->resultConstraints(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgdomainconstrfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINCONSTRFOLDERPROPPAGE_H
+#define KPGDOMAINCONSTRFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGDomainConstraintsFolder;
+
+/**
+  * Domain constraints folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDomainConstrFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGDomainConstrFolderPropPage(QWidget *, KPGDomainConstraintsFolder *);
+    ~KPGDomainConstrFolderPropPage();
+
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGDomainConstraintsFolder *m_pDomainConstraintsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainconstrproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgdomainconstraint.h"
+
+KPGDomainConstrPropPage::KPGDomainConstrPropPage(QWidget *parent, KPGDomainConstraint *pDomainConstraint)
+ : KPGDomainConstrPropPageBase(parent, "KPGDomainConstrPropPage")
+{
+	m_pDomainConstraint = pDomainConstraint;
+	displayProperties();
+}
+
+
+KPGDomainConstrPropPage::~KPGDomainConstrPropPage()
+{
+}
+
+void KPGDomainConstrPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+	
+	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+		
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pDomainConstraint->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+	m_pTableProperties->setText(iRow, 1, m_pDomainConstraint->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Constraint name (not necessarily unique!)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+	m_pTableProperties->setText(iRow, 1, m_pDomainConstraint->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the constraint"));
+		
+	//--- Expression
+	m_pTableProperties->setText(iRow, 0, i18n("Expression"));
+	m_pTableProperties->setText(iRow, 1, m_pDomainConstraint->expression());
+	m_pTableProperties->setText(iRow++, 2, i18n("A human-readable representation of the expression"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+	m_pTableProperties->setText(iRow, 1, m_pDomainConstraint->namespaceName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+// Consumes request for context menu for property table
+void KPGDomainConstrPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgdomainconstrproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINCONSTRPROPPAGE_H
+#define KPGDOMAINCONSTRPROPPAGE_H
+
+#include "kpgdomainconstrproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGDomainConstraint;
+
+/**
+  * Domain check constraint properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomainConstrPropPage : public KPGDomainConstrPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGDomainConstrPropPage(QWidget *parent, KPGDomainConstraint *);
+    ~KPGDomainConstrPropPage();
+    
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGDomainConstraint * m_pDomainConstraint;
+	
+protected slots:	
+	
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+    void sigSearchObject(const pqxx::oid);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,78 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgdomainconstrproppagebase.ui'
+**
+** Created: Út dub 1 13:07:17 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdomainconstrproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGDomainConstrPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDomainConstrPropPageBase::KPGDomainConstrPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDomainConstrPropPageBase" );
+    KPGDomainConstrPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDomainConstrPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGDomainConstrPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 5 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGDomainConstrPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(357, 191).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDomainConstrPropPageBase::~KPGDomainConstrPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDomainConstrPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Constraint properties" ) );
+    textLabel1->setText( tr2i18n( "&Check constraint properties:" ) );
+}
+
+void KPGDomainConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGDomainConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgdomainconstrproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainconstrproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDomainConstrPropPageBase</class>
+<comment>Domain check constraint properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDomainConstrPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>357</width>
+            <height>191</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Constraint properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Check constraint properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>5</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDomainConstrPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,124 @@
+//
+// C++ Implementation: kpgdomainproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainproppage.h"
+
+#include <qtable.h>  
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgdomain.h"
+
+KPGDomainPropPage::KPGDomainPropPage(QWidget *parent, KPGDomain *pDomain)
+ : KPGDomainPropPageBase(parent, "KPGDomainPropPage")
+{
+	m_pDomain = pDomain;
+	displayProperties();
+}
+
+
+KPGDomainPropPage::~KPGDomainPropPage()
+{
+}
+
+void KPGDomainPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pDomain->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+		
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pDomain->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Domain name"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+    m_pTableProperties->setText(iRow, 1, m_pDomain->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the domain"));
+	
+	//--- Base type
+	m_pTableProperties->setText(iRow, 0, i18n("Base type"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Language function" );
+	pLabel->setValues(m_pDomain->oidBaseType(), m_pDomain->baseType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("The type that this domain is based on"));
+	
+	//--- Type length
+	m_pTableProperties->setText(iRow, 0, i18n("Type length"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pDomain->typLen()));
+	m_pTableProperties->setText(iRow++, 2, i18n("For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a \"varlena\" type (one that has a length word), -2 indicates a null-terminated C string."));
+	
+	//--- Not null
+	m_pTableProperties->setText(iRow, 0, i18n("Not null"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pDomain->isNotNull() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This represents a not-null constraint. It is possible to change this column to enable or disable the constraint."));
+	
+	//--- Default value
+	m_pTableProperties->setText(iRow, 0, i18n("Default value"));
+    m_pTableProperties->setText(iRow, 1, m_pDomain->defaultValue());
+	m_pTableProperties->setText(iRow++, 2, i18n("A human-readable representation of the default value"));
+	
+	//--- Number of dimensions
+	m_pTableProperties->setText(iRow, 0, i18n("Number of dimensions"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pDomain->typNDims()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of dimensions, if the domain is an array type; otherwise 0. (Presently, the number of dimensions of an array is not enforced, so any nonzero value effectively means \"it's an array\".) "));
+	
+	//--- Array delimiter
+	m_pTableProperties->setText(iRow, 0, i18n("Array delimiter"));
+    m_pTableProperties->setText(iRow, 1, m_pDomain->typDelim());
+	m_pTableProperties->setText(iRow++, 2, i18n("Character that separates two values of this type when parsing array input. Note that the delimiter is associated with the array element data type, not the array data type."));
+			
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+    m_pTableProperties->setText(iRow, 1, m_pDomain->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the domain"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGDomainPropPage::slotTablePropDblClicked(int iRow, int iCol, int, const QPoint &)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+
+// Consumes request for context menu for property table
+void KPGDomainPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+
+#include "kpgdomainproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgdomainproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINPROPPAGE_H
+#define KPGDOMAINPROPPAGE_H
+
+#include "kpgdomainproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx
+#include <pqxx/util> 
+
+class KPGDomain;
+
+/**
+  * Domain properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGDomainPropPage : public KPGDomainPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGDomainPropPage(QWidget *parent, KPGDomain *);
+    ~KPGDomainPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();	
+	
+protected:
+	
+	KPGDomain *m_pDomain;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+		
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+	
+signals:
+	void sigSearchObject(const pqxx::oid);
+			            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgdomainproppagebase.ui'
+**
+** Created: Út dub 1 13:07:17 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdomainproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGDomainPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDomainPropPageBase::KPGDomainPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDomainPropPageBase" );
+    KPGDomainPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDomainPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGDomainPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGDomainPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(470, 299).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDomainPropPageBase::~KPGDomainPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDomainPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Domain properties" ) );
+    textLabel1->setText( tr2i18n( "&Domain properties:" ) );
+}
+
+void KPGDomainPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGDomainPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGDomainPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGDomainPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgdomainproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDomainPropPageBase</class>
+<comment>Domain properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDomainPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>470</width>
+            <height>299</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Domain properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>10</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Domain properties:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDomainPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGDomainPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Implementation: kpgdomainsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdomainsfolderproppage.h"
+
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgdomainsfolder.h"
+
+KPGDomainsFolderPropPage::KPGDomainsFolderPropPage(QWidget *pParent, KPGDomainsFolder *pDomainsFolder)
+ : KPGPropertyPage(pParent, "KPGDomainsFolderPropPage")
+{
+	m_pDomainsFolder = pDomainsFolder;
+	displayProperties();
+}
+
+KPGDomainsFolderPropPage::~KPGDomainsFolderPropPage()
+{
+}
+
+void KPGDomainsFolderPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Base type"));
+  	pHeader->setLabel(nCol++, i18n("Type length"));
+	pHeader->setLabel(nCol++, i18n("Not null"));
+	pHeader->setLabel(nCol++, i18n("Default value"));
+	pHeader->setLabel(nCol++, i18n("Dimensions"));
+	pHeader->setLabel(nCol++, i18n("Array delimiter"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+	
+    KPGUtil::fillPropertiesTable(m_pDomainsFolder->resultDomains(), m_pTableItems);
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgdomainsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgdomainsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDOMAINSFOLDERPROPPAGE_H
+#define KPGDOMAINSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGDomainsFolder;
+
+/**
+  * Domains folder properties
+  * 
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGDomainsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGDomainsFolderPropPage(QWidget *, KPGDomainsFolder *);
+    ~KPGDomainsFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+	
+	KPGDomainsFolder * m_pDomainsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,128 @@
+//
+// C++ Implementation: kpgforeignkeyconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgforeignkeyconstrproppage.h"
+
+#include <qtable.h>  
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "../DbObjects/kpgforeignkeyconstr.h"
+
+
+KPGForeignKeyConstrPropPage::KPGForeignKeyConstrPropPage(QWidget *pParent, KPGForeignKeyConstr *pForeignKeyConstr)
+ : KPGForeignKeyConstrPropPageBase(pParent, "KPGForeignKeyConstrPropPage")
+{
+	m_pForeignKeyConstr = pForeignKeyConstr;
+	displayProperties();
+}
+
+
+KPGForeignKeyConstrPropPage::~KPGForeignKeyConstrPropPage()
+{
+}
+
+void KPGForeignKeyConstrPropPage::displayProperties()
+{
+	QHeader* hHeader = m_pTableProperties->horizontalHeader();
+
+  	hHeader->setLabel(0, i18n("Name"));
+	hHeader->setLabel(1, i18n("Value"));
+	hHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pForeignKeyConstr->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Constraint name (not necessarily unique!)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the constraint"));
+	
+	//--- Is Deferrable
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferrable"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pForeignKeyConstr->isDeferrable() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferrable ?"));
+	
+	//--- Is Deferred
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferred"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pForeignKeyConstr->isDeferred() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferred by default ?"));
+			
+	//--- Update action
+	m_pTableProperties->setText(iRow, 0, i18n("Update action"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->updType());
+	m_pTableProperties->setText(iRow++, 2, i18n("Foreign key update action code"));
+	
+	//--- Delete action
+	m_pTableProperties->setText(iRow, 0, i18n("Delete action"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->delType());
+	m_pTableProperties->setText(iRow++, 2, i18n("Foreign key deletion action code"));
+		
+	//--- Constraint key
+	m_pTableProperties->setText(iRow, 0, i18n("Constraint key"));
+ 	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->constrKey());
+	m_pTableProperties->setText(iRow++, 2, i18n("List of columns which the constraint constrains."));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+	
+	//--- Referenced table
+	m_pTableProperties->setText(iRow, 0, i18n("Referenced table"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Referenced table" );
+	pLabel->setValues(m_pForeignKeyConstr->oidReferencedTable(), m_pForeignKeyConstr->referencedTable());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Referenced table name"));
+	
+	//--- Foreign key
+	m_pTableProperties->setText(iRow, 0, i18n("Foreign key"));
+  	m_pTableProperties->setText(iRow, 1, m_pForeignKeyConstr->foreignKey());
+	m_pTableProperties->setText(iRow++, 2, i18n("This is an array of the referenced columns."));
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGForeignKeyConstrPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGForeignKeyConstrPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgforeignkeyconstrproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,64 @@
+//
+// C++ Interface: kpgforeignkeyconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGFOREIGNKEYCONSTRPROPPAGE_H
+#define KPGFOREIGNKEYCONSTRPROPPAGE_H
+
+#include "kpgforeignkeyconstrproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGForeignKeyConstr;
+
+
+/**
+  * Foreign Key Constraint properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGForeignKeyConstrPropPage : public KPGForeignKeyConstrPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGForeignKeyConstrPropPage(QWidget *, KPGForeignKeyConstr *);
+    ~KPGForeignKeyConstrPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+	
+	KPGForeignKeyConstr * m_pForeignKeyConstr;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    	
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.ui'
+**
+** Created: Út dub 1 13:07:17 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgforeignkeyconstrproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGForeignKeyConstrPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGForeignKeyConstrPropPageBase::KPGForeignKeyConstrPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGForeignKeyConstrPropPageBase" );
+    KPGForeignKeyConstrPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGForeignKeyConstrPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGForeignKeyConstrPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 11 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGForeignKeyConstrPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(348, 325).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGForeignKeyConstrPropPageBase::~KPGForeignKeyConstrPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGForeignKeyConstrPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Foreign key constraint properties" ) );
+    textLabel1->setText( tr2i18n( "&Foreign key constraint properties:" ) );
+}
+
+void KPGForeignKeyConstrPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGForeignKeyConstrPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGForeignKeyConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGForeignKeyConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgforeignkeyconstrproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgforeignkeyconstrproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGForeignKeyConstrPropPageBase</class>
+<comment>Foreign key constraint properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGForeignKeyConstrPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>348</width>
+            <height>325</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Foreign key constraint properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Foreign key constraint properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>11</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGForeignKeyConstrPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGForeignKeyConstrPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,330 @@
+//
+// C++ Implementation: kpgfunctionproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgfunctionproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qlineedit.h>
+#include <qtable.h>
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <ktextedit.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+
+
+KPGFunctionPropPage::KPGFunctionPropPage(QWidget *parent, KPGFunction *pFunction)
+ : KPGFunctionPropPageBase(parent, "KPGFunctionPropPage")
+{
+	m_pFunction = pFunction;
+    m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSource);
+	
+	// Apply current configuration
+	slotSqlEditorSettingsChanged();
+ 	// and make sure to be informed about its changes.
+	connect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+    m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png"))));
+    m_pTabWidget->setTabIconSet(tabArguments, QIconSet(QPixmap(UserIcon("argument.png"))));
+    
+    m_pListViewArguments->setSortColumn(-1);
+    
+    displayProperties();
+}
+
+
+KPGFunctionPropPage::~KPGFunctionPropPage()
+{
+	disconnect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+  delete m_pSyntaxHighlighter;
+}
+
+void KPGFunctionPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pFunction->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Function name"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the function"));
+		
+	//--- Is Aggregate
+	m_pTableProperties->setText(iRow, 0, i18n("Is Aggregate"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pFunction->isAggregate() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if function is an aggregate function)"));
+	
+	//--- Is Security definer
+	m_pTableProperties->setText(iRow, 0, i18n("Is Security definer"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pFunction->isSecdef() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Function is a security definer (i.e., a \"setuid\" function"));
+			
+	//--- Is Strict
+	m_pTableProperties->setText(iRow, 0, i18n("Is Strict"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pFunction->isStrict() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Function returns null if any call argument is null. In that case the \
+	function won't actually be called at all. Functions that are not \"strict\" must be prepared to handle null inputs."));
+	
+	//--- Return Set
+	m_pTableProperties->setText(iRow, 0, i18n("Return Set"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pFunction->returnSet() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Function returns a set (i.e., multiple values of the specified data type)"));
+	
+	//--- Volatile
+	m_pTableProperties->setText(iRow, 0, i18n("Volatile"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->getVolatile());
+	m_pTableProperties->setText(iRow++, 2, i18n("Tells whether the function's result depends only on its input arguments, or is affected by outside factors. It is i for \"immutable\" functions, which always deliver the same result for the same inputs. It is s for \"stable\" functions, whose results (for fixed inputs) do not change within a scan. It is v for \"volatile\" functions, whose results may change at any time. (Use v also for functions with side-effects, so that calls to them cannot get optimized away.) "));
+	
+	//--- Number of argument
+	m_pTableProperties->setText(iRow, 0, i18n("Number of arguments"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pFunction->nArgs()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of arguments"));
+	
+	//--- Bin
+	m_pTableProperties->setText(iRow, 0, i18n("Bin"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->bin());
+	m_pTableProperties->setText(iRow++, 2, i18n("Additional information about how to invoke the function. Again, the interpretation is language-specific."));
+	
+	//--- Type name
+	m_pTableProperties->setText(iRow, 0, i18n("Type name"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Type name" );
+	pLabel->setValues(m_pFunction->oidReturnType(), m_pFunction->returnTypName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Return data type name"));
+	
+	//--- Language name
+	m_pTableProperties->setText(iRow, 0, i18n("Language name"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->langName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the language (to be specified when creating a function)"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pFunction->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Function owner"));
+	
+	//--- Namespace
+	/*m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+	m_pTableProperties->setText(iRow, 1, m_strNameSpace);
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+	*/
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+	
+	m_pLineEditArgTypes->setText(m_pFunction->argTypes());
+	m_pTextEditSource->setText(m_pFunction->source());
+
+	//--- Access privileges
+	displayACL();
+	
+	//--- Arguments list
+	displayArgumentsList();
+}
+
+
+void KPGFunctionPropPage::slotSqlEditorSettingsChanged()
+{
+    m_pTextEditSource->setFont( KPoGreView::configuration()->sqleditor()->font() );
+    
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+void KPGFunctionPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGFunctionPropPage::displayACL()
+{
+	QString strACL(m_pFunction->acl());
+	
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+			m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+			strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+			strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText(0, (*it).grantee());
+		pItem->setText(1, (*it).grantor());
+		
+		pItem->setPixmap(2, UserIcon((*it).canExecute() ? "box_checked.png" : "box_clear.png"));
+		
+		if((*it).canPassGrantToOther())
+		pItem->setPixmap(3, UserIcon((*it).canGrantExecute() ? "box_checked.png" : "box_clear.png"));
+	} 
+}
+
+void  KPGFunctionPropPage::displayArgumentsList()
+{
+	m_pListViewArguments->clear();
+	const KPGFunction::ListArguments & listArguments = m_pFunction->listArguments();
+	
+	QListViewItem * pItemAfter = 0;
+	for(KPGFunction::ListArguments::const_iterator cit = listArguments.begin(); cit != listArguments.end(); ++cit)
+	{ 
+		
+		QListViewItem * pItem = new QListViewItem( m_pListViewArguments, pItemAfter);
+		
+		if((*cit).typName().length() > 0)
+		{
+			QPixmap *pTypePixmap = KPGTableColumn::getPixmapForType((*cit).typName());
+			pItem->setPixmap(0, *pTypePixmap);
+		}
+		
+		pItem->setText(0, (*cit).typName());
+		pItem->setText(1, (*cit).name());
+		
+		if((*cit).mode() == "i") pItem->setText(2, "IN");
+		else if((*cit).mode() == "o") pItem->setText(2, "OUT");
+		else if((*cit).mode() == "b") pItem->setText(2, "INOUT");
+		
+		pItemAfter = pItem;
+    }
+}
+
+void KPGFunctionPropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+  // Find KPGAclItem using pItem value
+  KPGAclItemList::iterator it;
+  for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+  {   
+    if(pItem == (*it).getListViewItem())
+    {
+      // found ...
+      
+      switch(iColumn)
+      {
+        case 0:
+        case 1: // do nothing on first 2 columns
+            break;
+        
+        case 2:
+            pItem->setPixmap(2, UserIcon((*it).toggleExecute() ? "box_checked.png" : "box_clear.png"));
+            break;
+       
+        case 3:
+            if((*it).canPassGrantToOther())
+              pItem->setPixmap(3, UserIcon((*it).toggleGrantExecute() ? "box_checked.png" : "box_clear.png"));
+            
+            break;
+            
+        default:
+                kdError() << k_funcinfo << " Unexpected column !" << endl;
+                break;      
+      }
+    
+      m_pPushButtonUpdateACL->setEnabled(true);
+      return;
+    }
+  }
+}
+
+void KPGFunctionPropPage::slotUpdateACL()
+{
+  QString strSQL;
+  
+  KPGSchema *pSchema = static_cast <KPGSchema *> (m_pFunction->parent()->parent());
+    
+  // Traverse all items and get their SQL's
+  KPGAclItemList::iterator it;
+  for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+  {   
+    strSQL.append((*it).getSQL("FUNCTION " + KPGUtil::fullyQualifiedName(pSchema->text(0), m_pFunction->text(0)) + m_pFunction->argumentTypes()));
+  }
+  
+  if(!strSQL.isEmpty())
+    emit sigRunWizard(strSQL);
+}
+
+
+// Consumes request for context menu for property table
+void KPGFunctionPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgfunctionproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,80 @@
+//
+// C++ Interface: kpgfunctionproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGFUNCTIONPROPPAGE_H
+#define KPGFUNCTIONPROPPAGE_H
+
+#include "kpgfunctionproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+#include "../DbObjects/kpgfunction.h"
+
+class KPGSyntaxHighlighter;
+class KPGFunction;
+
+
+/**
+  * Function property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGFunctionPropPage : public KPGFunctionPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGFunctionPropPage(QWidget *parent, KPGFunction *);
+    ~KPGFunctionPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+    void displayACL();
+    
+    void displayArgumentsList();
+
+protected:
+
+    KPGFunction *m_pFunction;
+    KPGAclItemList m_listOfAclItems;
+    
+protected slots:
+    
+    // Changes syntax highlighting colors.
+    void slotSqlEditorSettingsChanged();
+
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+    
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+		
+signals:
+	void sigSearchObject(const pqxx::oid);
+    void sigRunWizard(const QString &); 
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+			
+protected:
+	/** Syntax highlighter for rule definition */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,193 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgfunctionproppagebase.ui'
+**
+** Created: Út dub 1 13:07:17 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgfunctionproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qtable.h>
+#include <qtextedit.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <kpushbutton.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistview.h"
+#include "kpushbutton.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGFunctionPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGFunctionPropPageBase::KPGFunctionPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGFunctionPropPageBase" );
+    KPGFunctionPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGFunctionPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pLineEditArgTypes = new QLineEdit( tabProperties, "m_pLineEditArgTypes" );
+    m_pLineEditArgTypes->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pLineEditArgTypes, 3, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+    textLabel2->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 13 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    m_pTextEditSource = new QTextEdit( tabProperties, "m_pTextEditSource" );
+    m_pTextEditSource->setOverwriteMode( TRUE );
+    m_pTextEditSource->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pTextEditSource, 5, 0 );
+
+    textLabel3 = new QLabel( tabProperties, "textLabel3" );
+    textLabel3->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel3, 4, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabArguments = new QWidget( m_pTabWidget, "tabArguments" );
+    tabArgumentsLayout = new QGridLayout( tabArguments, 1, 1, 11, 6, "tabArgumentsLayout"); 
+
+    m_pListViewArguments = new KListView( tabArguments, "m_pListViewArguments" );
+    m_pListViewArguments->addColumn( tr2i18n( "Type" ) );
+    m_pListViewArguments->addColumn( tr2i18n( "Name" ) );
+    m_pListViewArguments->addColumn( tr2i18n( "Mode" ) );
+    m_pListViewArguments->setAllColumnsShowFocus( TRUE );
+    m_pListViewArguments->setShadeSortColumn( FALSE );
+
+    tabArgumentsLayout->addWidget( m_pListViewArguments, 0, 0 );
+    m_pTabWidget->insertTab( tabArguments, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "EXECUTE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant EXECUTE" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 0, 0, 0, 2 );
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 1, 0 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 1, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 1, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    KPGFunctionPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(436, 525).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pLineEditArgTypes );
+    textLabel3->setBuddy( m_pTextEditSource );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGFunctionPropPageBase::~KPGFunctionPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGFunctionPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Function properties" ) );
+    textLabel1->setText( tr2i18n( "&Function properties:" ) );
+    textLabel2->setText( tr2i18n( "&Argument types:" ) );
+    textLabel3->setText( tr2i18n( "Function &source:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pListViewArguments->header()->setLabel( 0, tr2i18n( "Type" ) );
+    m_pListViewArguments->header()->setLabel( 1, tr2i18n( "Name" ) );
+    m_pListViewArguments->header()->setLabel( 2, tr2i18n( "Mode" ) );
+    m_pTabWidget->changeTab( tabArguments, tr2i18n( "Arguments" ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "EXECUTE" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "Grant EXECUTE" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+}
+
+void KPGFunctionPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGFunctionPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGFunctionPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGFunctionPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGFunctionPropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGFunctionPropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGFunctionPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGFunctionPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgfunctionproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,310 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGFunctionPropPageBase</class>
+<comment>Function properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGFunctionPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>436</width>
+            <height>525</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Function properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Function properties:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLineEdit" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pLineEditArgTypes</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Argument types:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pLineEditArgTypes</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>13</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QTextEdit" row="5" column="0">
+                        <property name="name">
+                            <cstring>m_pTextEditSource</cstring>
+                        </property>
+                        <property name="overwriteMode">
+                            <bool>true</bool>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="4" column="0">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Function &amp;source:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTextEditSource</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabArguments</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Arguments</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KListView" row="0" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Mode</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewArguments</cstring>
+                        </property>
+                        <property name="allColumnsShowFocus">
+                            <bool>true</bool>
+                        </property>
+                        <property name="shadeSortColumn">
+                            <bool>false</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KListView" row="0" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>EXECUTE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant EXECUTE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="1" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="1" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGFunctionPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGFunctionPropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGFunctionPropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGFunctionPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistview.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+//
+// C++ Implementation: kpgfunctionsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgfunctionsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+
+
+KPGFunctionsFolderPropPage::KPGFunctionsFolderPropPage(QWidget *pParent, KPGFunctionsFolder * pFunctionsFolder)
+ : KPGPropertyPage(pParent, "KPGFunctionsFolderPropPage")
+{
+	m_pFunctionsFolder = pFunctionsFolder;
+	displayProperties();
+}
+
+
+KPGFunctionsFolderPropPage::~KPGFunctionsFolderPropPage()
+{
+}
+
+void KPGFunctionsFolderPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Is Aggregate"));
+  	pHeader->setLabel(nCol++, i18n("Is Security definer"));
+	pHeader->setLabel(nCol++, i18n("Is Strict"));
+	pHeader->setLabel(nCol++, i18n("Return Set"));
+	pHeader->setLabel(nCol++, i18n("Volatile"));
+	pHeader->setLabel(nCol++, i18n("Number of arguments"));
+	pHeader->setLabel(nCol++, i18n("Bin"));
+	pHeader->setLabel(nCol++, i18n("ACL"));
+	pHeader->setLabel(nCol++, i18n("Type name"));
+	pHeader->setLabel(nCol++, i18n("Language name"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+
+    KPGUtil::fillPropertiesTable(m_pFunctionsFolder->resultFunctions(), m_pTableItems, true, 13);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgfunctionsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgfunctionsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGFUNCTIONSFOLDERPROPPAGE_H
+#define KPGFUNCTIONSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGFunctionsFolder;
+
+
+/**
+  * Functions folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGFunctionsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGFunctionsFolderPropPage(QWidget *, KPGFunctionsFolder *);
+    ~KPGFunctionsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+
+protected:
+	KPGFunctionsFolder * m_pFunctionsFolder;
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,86 @@
+//
+// C++ Implementation: kpggroupproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpggroupproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "../DbObjects/kpggroup.h"
+
+
+KPGGroupPropPage::KPGGroupPropPage(QWidget *parent, KPGGroup *pGroup)
+ : KPGGroupPropPageBase(parent, "KPGGroupPropPage")
+{
+	m_pGroup = pGroup;
+	displayProperties();
+}
+
+
+KPGGroupPropPage::~KPGGroupPropPage()
+{
+}
+
+void KPGGroupPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pGroup->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Group name"));
+	
+	//--- System ID
+	m_pTableProperties->setText(iRow, 0, i18n("System ID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pGroup->sysId()));
+	m_pTableProperties->setText(iRow++, 2, i18n("An arbitrary number to identify this group"));
+	
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+	
+	//--- Table of users -------------------------------------------------------------------
+	
+	pHeader = m_pTableUsers->horizontalHeader();
+    pHeader->setLabel(0, i18n("User name"));
+	
+	const QStringList & listOfUsers = m_pGroup->listOfUsers();
+	
+	m_pTableUsers->setNumRows(listOfUsers.count());
+	
+	//--- List of users
+	iRow = 0;
+	for(QStringList::ConstIterator it = listOfUsers.begin(); it != listOfUsers.end(); ++it) 
+	{
+        m_pTableUsers->setText(iRow++, 0, *it);
+    }
+}
+
+
+// Consumes request for context menu for property table
+void KPGGroupPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpggroupproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpggroupproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGGROUPPROPPAGE_H
+#define KPGGROUPPROPPAGE_H
+
+#include "kpggroupproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGGroup;
+
+/**
+  * Group properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGGroupPropPage : public KPGGroupPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGGroupPropPage(QWidget *parent, KPGGroup *);
+    ~KPGGroupPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGGroup *m_pGroup;
+	
+protected slots:
+		
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+  	void sigSearchObject(const pqxx::oid);
+  	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpggroupproppagebase.ui'
+**
+** Created: Út dub 1 13:07:18 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpggroupproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGGroupPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGGroupPropPageBase::KPGGroupPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGGroupPropPageBase" );
+    KPGGroupPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGGroupPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGGroupPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 2 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGGroupPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+
+    KPGGroupPropPageBaseLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTableUsers = new QTable( this, "m_pTableUsers" );
+    m_pTableUsers->setNumRows( 0 );
+    m_pTableUsers->setNumCols( 1 );
+
+    KPGGroupPropPageBaseLayout->addWidget( m_pTableUsers, 3, 0 );
+    languageChange();
+    resize( QSize(371, 320).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTableUsers );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGGroupPropPageBase::~KPGGroupPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGGroupPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Groups properties" ) );
+    textLabel1->setText( tr2i18n( "&Group properties:" ) );
+    textLabel2->setText( tr2i18n( "&Users in group:" ) );
+}
+
+void KPGGroupPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGGroupPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpggroupproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,91 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGGroupPropPageBase</class>
+<comment>Groups properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGGroupPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>371</width>
+            <height>320</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Groups properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Group properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>2</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="0">
+            <property name="name">
+                <cstring>textLabel2</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Users in group:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableUsers</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="3" column="0">
+            <property name="name">
+                <cstring>m_pTableUsers</cstring>
+            </property>
+            <property name="numRows">
+                <number>0</number>
+            </property>
+            <property name="numCols">
+                <number>1</number>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGGroupPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+//
+// C++ Implementation: kpggroupsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpggroupsfolderproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpggroupsfolder.h"
+
+KPGGroupsFolderPropPage::KPGGroupsFolderPropPage(QWidget *pParent, KPGGroupsFolder * pGroupsFolder)
+ : KPGPropertyPage(pParent, "KPGGroupsFolderPropPage")
+{
+	m_pGroupsFolder = pGroupsFolder;
+	displayProperties();
+}
+
+KPGGroupsFolderPropPage::~KPGGroupsFolderPropPage()
+{
+}
+
+void KPGGroupsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Groups &list:"));
+	
+	//----------------------------------------------------------------------------
+	// Fill output area with query result
+	int nRows = m_pGroupsFolder->resultGroups().size();
+	int nCols = m_pGroupsFolder->resultGroups().columns();
+
+	m_pTableItems->setNumRows(nRows);
+	m_pTableItems->setNumCols(nCols);
+	
+	// field names
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("System ID"));
+		
+	// data
+	for(int nRow = 0; nRow < nRows; nRow++)
+	{
+		for(int nCol = 0; nCol < nCols; nCol++)
+		{
+	       	QString strValue(m_pGroupsFolder->resultGroups()[nRow][nCol].c_str());
+		    m_pTableItems->setText(nRow, nCol, strValue);
+		}
+	}
+	
+	for(int nCol = 0; nCol < nCols; nCol++)
+	{
+		m_pTableItems->adjustColumn(nCol);
+	}
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpggroupsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpggroupsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGGROUPSFOLDERPROPPAGE_H
+#define KPGGROUPSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGGroupsFolder;
+
+/**
+  * Groups folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGGroupsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGGroupsFolderPropPage(QWidget *, KPGGroupsFolder *);
+    ~KPGGroupsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+
+protected:
+
+	KPGGroupsFolder * m_pGroupsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,295 @@
+//
+// C++ Implementation: kpgindexproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgindexproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgindex.h"
+#include "../kpgsqldialog.h"
+
+KPGIndexPropPage::KPGIndexPropPage(QWidget *parent, KPGIndex *pIndex)
+ : KPGIndexPropPageBase(parent, "KPGIndexPropPageBase")
+{
+  m_pIndex = pIndex;
+  m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditDefinition);
+  
+  // Apply current configuration
+  slotSqlEditorSettingsChanged();
+  // and make sure to be informed about its changes.
+  connect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+  m_pTabWidget->setTabIconSet(tabStatistics, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+  m_pButtonRefresh->setIconSet(QIconSet(QPixmap(BarIcon("reload.png")))); 
+  
+  displayProperties();
+}
+
+KPGIndexPropPage::~KPGIndexPropPage()
+{
+}
+
+void KPGIndexPropPage::displayProperties()
+{
+	// Get pointer to server
+	KPGServer *pServer = static_cast <KPGServer *> (m_pIndex->parent()->parent()->parent()->parent()->parent()->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+	
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pIndex->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pIndex->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the index"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+    m_pTableProperties->setText(iRow, 1, m_pIndex->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the conindex"));
+	
+	//--- Index key
+	m_pTableProperties->setText(iRow, 0, i18n("Index key"));
+    m_pTableProperties->setText(iRow, 1, m_pIndex->indKey());
+	m_pTableProperties->setText(iRow++, 2, i18n("This is an array of indnatts (up to INDEX_MAX_KEYS) values that indicate which table columns this index indexes. For example a value of 1 3 would mean that the first and the third table columns make up the index key. A zero in this array indicates that the corresponding index attribute is an expression over the table columns, rather than a simple column reference. "));
+	
+	//--- Is Unique
+	m_pTableProperties->setText(iRow, 0, i18n("Is Unique"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pIndex->isUnique() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true, this is a unique index."));
+	
+	//--- Is Primary
+	m_pTableProperties->setText(iRow, 0, i18n("Is Primary"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pIndex->isPrimary() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true, this index represents the primary key of the table. (indisunique should always be true when this is true.)"));
+	
+	//--- Is Clustered
+	m_pTableProperties->setText(iRow, 0, i18n("Is Clustered"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pIndex->isClustered() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true, the table was last clustered on this index."));
+	
+	//--- Tablespace
+    m_pTableProperties->setText(iRow, 0, i18n("Tablespace"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Tablespace" );
+    pLabel->setValues(m_pIndex->oidTablespace(), m_pIndex->tablespace());
+    m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+    m_pTableProperties->setText(iRow++, 2, i18n("Tablespace name"));
+  			
+  	//--- Pretty size of index
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, m_pIndex->prettySize());
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the index"));
+	
+	//--- Exact size of index
+	m_pTableProperties->setText(iRow, 0, i18n("Exact size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, QString("%L1 B").arg(m_pIndex->size()));
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the index"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+  
+	m_pTextEditDefinition->setText(m_pIndex->indexdef());
+	
+	displayStatistics();
+	displayIoStatistics();
+}
+
+void KPGIndexPropPage::displayStatistics()
+{
+	QHeader* pHeader = m_pTableStatistics->horizontalHeader();
+	
+	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	try
+	{
+		pqxx::result pqxxResultStatistics = m_pIndex->queryStatistics();
+	
+		if(pqxxResultStatistics.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		if(m_pIndex->text(0) != pqxxResultStatistics[0]["indexrelname"].c_str())
+		{
+            kdDebug() << "KPGTable::displayStatistics(): table name not match" << endl;
+            return;
+		}
+		
+		int iRow = 0;
+		
+		//--- seq_scan
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_scan"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_scan"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of index scans"));
+		
+		//--- seq_scan
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_tup_read"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_tup_read"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples read"));
+		
+		//--- idx_tup_fetch
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_tup_fetch"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_tup_fetch"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of sucessfully fetched heap tuples"));
+	}
+	catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	} 
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableStatistics->adjustColumn(nCol);
+	}
+}
+
+void KPGIndexPropPage::displayIoStatistics()
+{
+	QHeader* hHeader = m_pTableIoStatistics->horizontalHeader();
+	
+	hHeader->setLabel(0, i18n("Name"));
+	hHeader->setLabel(1, i18n("Value"));
+	hHeader->setLabel(2, i18n("Description"));
+	
+	try
+	{
+		pqxx::result pqxxResultStatistics = m_pIndex->queryIoStatistics();
+	
+		if(pqxxResultStatistics.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		if(m_pIndex->text(0) != pqxxResultStatistics[0]["indexrelname"].c_str())
+		{
+			kdDebug() << "KPGTable::displayStatistics(): table name not match" << endl;
+			return;
+		}
+		
+		int iRow = 0;
+		
+		//--- seq_scan
+		m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_read"));
+		m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_read"].c_str());
+		m_pTableIoStatistics->setText(iRow++, 2, i18n("Total number of disc blocks read"));
+		
+		//--- heap_blks_hit
+		m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_hit"));
+		m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_hit"].c_str());
+		m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of buffer hits"));
+	}
+	catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableIoStatistics->adjustColumn(nCol);
+	}
+}
+
+void KPGIndexPropPage::slotSqlEditorSettingsChanged()
+{
+  m_pTextEditDefinition->setFont( KPoGreView::configuration()->sqleditor()->font() );
+  
+  m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+  m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+  m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+  m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+  m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+  m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+  m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+  
+  m_pSyntaxHighlighter->rehighlight();
+}
+
+void KPGIndexPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+void KPGIndexPropPage::slotRefreshStatistics()
+{
+  	displayStatistics();
+  	displayIoStatistics();
+}
+
+// Consumes request for context menu for property table
+void KPGIndexPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgindexproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,71 @@
+//
+// C++ Interface: kpgindexproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGINDEXPROPPAGE_H
+#define KPGINDEXPROPPAGE_H
+
+#include "kpgindexproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGSyntaxHighlighter;
+class KPGIndex;
+
+/**
+  * Index properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGIndexPropPage : public KPGIndexPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGIndexPropPage(QWidget *parent, KPGIndex *);
+    ~KPGIndexPropPage();
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	void displayStatistics();
+    void displayIoStatistics();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected slots:
+
+    /**
+     * Changes syntax highlighting colors.
+     */
+    void slotSqlEditorSettingsChanged();
+
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	virtual void slotRefreshStatistics();
+	
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+	void sigSearchObject(const pqxx::oid);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+
+protected:
+	/** Syntax highlighter for index definition */
+	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+	KPGIndex *m_pIndex;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,158 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgindexproppagebase.ui'
+**
+** Created: Út dub 1 13:07:18 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgindexproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qtextedit.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGIndexPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGIndexPropPageBase::KPGIndexPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGIndexPropPageBase" );
+    KPGIndexPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGIndexPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTextEditDefinition = new QTextEdit( tabProperties, "m_pTextEditDefinition" );
+    m_pTextEditDefinition->setTextFormat( QTextEdit::PlainText );
+    m_pTextEditDefinition->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pTextEditDefinition, 3, 0 );
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabStatistics = new QWidget( m_pTabWidget, "tabStatistics" );
+    tabStatisticsLayout = new QGridLayout( tabStatistics, 1, 1, 11, 6, "tabStatisticsLayout"); 
+
+    textLabel2_2 = new QLabel( tabStatistics, "textLabel2_2" );
+
+    tabStatisticsLayout->addMultiCellWidget( textLabel2_2, 2, 2, 0, 1 );
+
+    m_pTableIoStatistics = new QTable( tabStatistics, "m_pTableIoStatistics" );
+    m_pTableIoStatistics->setNumRows( 2 );
+    m_pTableIoStatistics->setNumCols( 3 );
+    m_pTableIoStatistics->setReadOnly( TRUE );
+    m_pTableIoStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableIoStatistics, 3, 3, 0, 1 );
+
+    textLabel1_2 = new QLabel( tabStatistics, "textLabel1_2" );
+
+    tabStatisticsLayout->addMultiCellWidget( textLabel1_2, 0, 0, 0, 1 );
+
+    m_pTableStatistics = new QTable( tabStatistics, "m_pTableStatistics" );
+    m_pTableStatistics->setNumRows( 3 );
+    m_pTableStatistics->setNumCols( 3 );
+    m_pTableStatistics->setReadOnly( TRUE );
+    m_pTableStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableStatistics, 1, 1, 0, 1 );
+
+    m_pButtonRefresh = new KPushButton( tabStatistics, "m_pButtonRefresh" );
+
+    tabStatisticsLayout->addWidget( m_pButtonRefresh, 4, 0 );
+    spacer1 = new QSpacerItem( 280, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabStatisticsLayout->addItem( spacer1, 4, 1 );
+    m_pTabWidget->insertTab( tabStatistics, QString::fromLatin1("") );
+
+    KPGIndexPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(421, 496).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefresh, SIGNAL( clicked() ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel2->setBuddy( m_pTextEditDefinition );
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2_2->setBuddy( m_pTableIoStatistics );
+    textLabel1_2->setBuddy( m_pTableStatistics );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGIndexPropPageBase::~KPGIndexPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGIndexPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Index properties" ) );
+    textLabel2->setText( tr2i18n( "Index &definition:" ) );
+    textLabel1->setText( tr2i18n( "&Index properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    textLabel2_2->setText( tr2i18n( "Index I/O statistics:" ) );
+    textLabel1_2->setText( tr2i18n( "Index access statistics:" ) );
+    m_pButtonRefresh->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefresh->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabStatistics, tr2i18n( "Statistics" ) );
+}
+
+void KPGIndexPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGIndexPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGIndexPropPageBase::slotRefreshStatistics()
+{
+    qWarning( "KPGIndexPropPageBase::slotRefreshStatistics(): Not implemented yet" );
+}
+
+void KPGIndexPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGIndexPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgindexproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgindexproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,228 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGIndexPropPageBase</class>
+<comment>Index properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGIndexPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>421</width>
+            <height>496</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Index properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>10</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index &amp;definition:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTextEdit" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Index properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabStatistics</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Statistics</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>textLabel2_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index I/O statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="3" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>2</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index access statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="4" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefresh</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="4" column="1">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>280</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGIndexPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefresh</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGIndexPropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGIndexPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshStatistics()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,217 @@
+//
+// C++ Implementation: kpglanguageproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpglanguageproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h> 
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <ktextedit.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpglanguage.h"
+#include "../kpgutil.h"
+
+KPGLanguagePropPage::KPGLanguagePropPage(QWidget *parent, KPGLanguage *pLanguage)
+ : KPGLanguagePropPageBase(parent, "KPGLanguagePropPage")
+{
+  m_pLanguage = pLanguage;
+  
+  m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png"))));
+  
+  displayProperties();
+}
+
+
+KPGLanguagePropPage::~KPGLanguagePropPage()
+{
+}
+
+void KPGLanguagePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+	  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pLanguage->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+		
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pLanguage->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Language name"));
+	
+	//--- Is trusted
+	m_pTableProperties->setText(iRow, 0, i18n("Is Trusted"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pLanguage->isTrusted() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n(" This is a trusted language. See under CREATE LANGUAGE what this means."));
+	
+	//--- ACL
+	setACL(m_pLanguage->acl());
+	
+	//--- Language Function
+	m_pTableProperties->setText(iRow, 0, i18n("Language function"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Language function" );
+	pLabel->setValues(m_pLanguage->oidLanguageProc(), m_pLanguage->languageProcName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Language handler, which is a special function that is responsible for executing all functions that are written in the particular language.)"));
+	
+	//--- Language Validator
+	m_pTableProperties->setText(iRow, 0, i18n("Language validator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Language validator" );
+	pLabel->setValues(m_pLanguage->oidValidatorProc(), m_pLanguage->validatorProcName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Language validator function that is responsible for checking the syntax and validity of new functions when they are created."));
+		
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+
+void KPGLanguagePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+
+void KPGLanguagePropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canUse() ? "box_checked.png" : "box_clear.png"));
+			
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(3, UserIcon((*it).canGrantUse() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGLanguagePropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleUse() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(3, UserIcon((*it).toggleGrantUse() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+			
+				
+				break;
+				
+			default:
+					kdError() << k_funcinfo << " Unexpected column !" << endl;
+					break;      
+		}
+		
+		m_pPushButtonUpdateACL->setEnabled(true);
+		return;
+		}
+	}
+}
+
+void KPGLanguagePropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("LANGUAGE " + KPGUtil::quotedName(m_pLanguage->text(0)) ));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGLanguagePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpglanguageproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+//
+// C++ Interface: kpglanguageproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGLANGUAGEPROPPAGE_H
+#define KPGLANGUAGEPROPPAGE_H
+
+#include "kpglanguageproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGLanguage;
+
+/**
+  * Language properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGLanguagePropPage : public KPGLanguagePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGLanguagePropPage(QWidget *, KPGLanguage *);
+    ~KPGLanguagePropPage();
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+    void setACL(const QString &);
+	
+protected:
+
+    KPGLanguage *m_pLanguage;
+    KPGAclItemList m_listOfAclItems;
+        
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+		    
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+    
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+	void sigSearchObject(const pqxx::oid);
+  	void sigRunWizard(const QString &); 
+  	
+  	// Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,155 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpglanguageproppagebase.ui'
+**
+** Created: Út dub 1 13:07:18 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpglanguageproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <kpushbutton.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+#include "klistview.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGLanguagePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGLanguagePropPageBase::KPGLanguagePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGLanguagePropPageBase" );
+    KPGLanguagePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGLanguagePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 5 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "USAGE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant USAGE" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    KPGLanguagePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(537, 297).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel1_3->setBuddy( m_pListViewACL );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGLanguagePropPageBase::~KPGLanguagePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGLanguagePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Language properties" ) );
+    textLabel1->setText( tr2i18n( "&Language properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "USAGE" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "Grant USAGE" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+}
+
+void KPGLanguagePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGLanguagePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGLanguagePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGLanguagePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGLanguagePropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGLanguagePropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGLanguagePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGLanguagePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpglanguageproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguageproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,218 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGLanguagePropPageBase</class>
+<comment>Language properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGLanguagePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>537</width>
+            <height>297</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Language properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>5</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Language properties:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>USAGE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant USAGE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGLanguagePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGLanguagePropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGLanguagePropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGLanguagePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Implementation: kpglanguagesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpglanguagesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpglanguagesfolder.h"
+
+KPGLanguagesFolderPropPage::KPGLanguagesFolderPropPage(QWidget *pParent, KPGLanguagesFolder *pLanguagesFolder)
+ : KPGPropertyPage(pParent, "KPGLanguagesFolderPropPage")
+{
+	m_pLanguagesFolder = pLanguagesFolder;
+	displayProperties();
+}
+
+
+KPGLanguagesFolderPropPage::~KPGLanguagesFolderPropPage()
+{
+}
+
+void KPGLanguagesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Languages &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+    int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+    pHeader->setLabel(nCol++, i18n("Is Trusted"));
+	pHeader->setLabel(nCol++, i18n("ACL"));
+	pHeader->setLabel(nCol++, i18n("Language Function"));
+	pHeader->setLabel(nCol++, i18n("Language Validator"));
+
+    KPGUtil::fillPropertiesTable(m_pLanguagesFolder->resultLanguages(), m_pTableItems);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpglanguagesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpglanguagesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGLANGUAGESFOLDERPROPPAGE_H
+#define KPGLANGUAGESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGLanguagesFolder;
+
+/**
+  * Languages folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGLanguagesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGLanguagesFolderPropPage(QWidget *, KPGLanguagesFolder *);
+    ~KPGLanguagesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGLanguagesFolder * m_pLanguagesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Implementation: kpgoperatorclassesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorclassesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgoperatorclassesfolder.h"
+
+KPGOperatorClassesFolderPropPage::KPGOperatorClassesFolderPropPage(QWidget* parent, KPGOperatorClassesFolder * pOperatorClassesFolder)
+	: KPGPropertyPage(parent, "KPGOperatorClassesFolderPropPage")
+{
+	m_pOperatorClassesFolder = pOperatorClassesFolder;
+	displayProperties();
+}
+
+
+KPGOperatorClassesFolderPropPage::~KPGOperatorClassesFolderPropPage()
+{
+}
+
+void KPGOperatorClassesFolderPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Is Default"));
+	pHeader->setLabel(nCol++, i18n("Data type"));
+  	pHeader->setLabel(nCol++, i18n("Key type"));
+	pHeader->setLabel(nCol++, i18n("Access method"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+
+	KPGUtil::fillPropertiesTable(m_pOperatorClassesFolder->resultOperatorClasses(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgoperatorclassesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORCLASSESFOLDERPROPPAGE_H
+#define KPGOPERATORCLASSESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGOperatorClassesFolder;
+
+/**
+  * Operator classes folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGOperatorClassesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGOperatorClassesFolderPropPage(QWidget*, KPGOperatorClassesFolder *);
+    ~KPGOperatorClassesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGOperatorClassesFolder * m_pOperatorClassesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+//
+// C++ Implementation: kpgoperatorclassproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorclassproppage.h"
+
+#include <qtable.h>  
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "../kpgutil.h"
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgoperatorclass.h"
+
+
+KPGOperatorClassPropPage::KPGOperatorClassPropPage(QWidget *parent, KPGOperatorClass * pOperatorClass)
+ : KPGOperatorClassPropPageBase(parent, "KPGOperatorClassPropPage")
+{
+	m_pOperatorClass = pOperatorClass;
+	displayProperties();
+}
+
+
+KPGOperatorClassPropPage::~KPGOperatorClassPropPage()
+{
+}
+
+void KPGOperatorClassPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pOperatorClass->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pOperatorClass->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Operator Class name"));
+	
+	//--- Is Default
+	m_pTableProperties->setText(iRow, 0, i18n("Is default"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pOperatorClass->isDefault() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if this operator class is the default for data type"));
+	
+	//--- Data type
+	m_pTableProperties->setText(iRow, 0, i18n("Data type"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Data type" );
+	pLabel->setValues(m_pOperatorClass->oidDataType(), m_pOperatorClass->dataType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Data type that the operator class indexes"));
+	
+	//--- Key Type
+	m_pTableProperties->setText(iRow, 0, i18n("Key type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Key type" );
+	pLabel->setValues(m_pOperatorClass->oidKeyType(), m_pOperatorClass->keyType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Type of data stored in index, or noyhing if same as Data Type"));
+	
+	//--- Access method
+	m_pTableProperties->setText(iRow, 0, i18n("Access method"));
+    m_pTableProperties->setText(iRow, 1, m_pOperatorClass->accessMethodName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Index access method operator class is for"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+    m_pTableProperties->setText(iRow, 1, m_pOperatorClass->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Operator class owner"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGOperatorClassPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGOperatorClassPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgoperatorclassproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgoperatorclassproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORCLASSPROPPAGE_H
+#define KPGOPERATORCLASSPROPPAGE_H
+
+#include "kpgoperatorclassproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGOperatorClass;
+
+/**
+  * Operator Class properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGOperatorClassPropPage : public KPGOperatorClassPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGOperatorClassPropPage(QWidget *, KPGOperatorClass *);
+    ~KPGOperatorClassPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGOperatorClass * m_pOperatorClass;	
+
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+		
+signals:
+	void sigSearchObject(const pqxx::oid);
+	
+	// Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgoperatorclassproppagebase.ui'
+**
+** Created: Út dub 1 13:07:16 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgoperatorclassproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGOperatorClassPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGOperatorClassPropPageBase::KPGOperatorClassPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGOperatorClassPropPageBase" );
+    KPGOperatorClassPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGOperatorClassPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGOperatorClassPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 7 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGOperatorClassPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(359, 237).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGOperatorClassPropPageBase::~KPGOperatorClassPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGOperatorClassPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Operator Class properties" ) );
+    textLabel1->setText( tr2i18n( "&Operator Class properties:" ) );
+}
+
+void KPGOperatorClassPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGOperatorClassPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGOperatorClassPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGOperatorClassPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgoperatorclassproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorclassproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGOperatorClassPropPageBase</class>
+<comment>Operator Class properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGOperatorClassPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>359</width>
+            <height>237</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Operator Class properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Operator Class properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>7</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGOperatorClassPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGOperatorClassPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,187 @@
+//
+// C++ Implementation: kpgoperatorproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorproppage.h"
+
+#include <qtable.h>  
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "../kpgutil.h"
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgoperator.h"
+
+KPGOperatorPropPage::KPGOperatorPropPage(QWidget *parent, KPGOperator * pOperator)
+ : KPGOperatorPropPageBase(parent, "KPGOperatorPropPage")
+{
+	m_pOperator = pOperator;
+	displayProperties();
+}
+
+
+KPGOperatorPropPage::~KPGOperatorPropPage()
+{
+}
+
+void KPGOperatorPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pOperator->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pOperator->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Operator name"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pOperator->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the operator"));
+	
+	//--- Kind
+	m_pTableProperties->setText(iRow, 0, i18n("Kind"));
+    m_pTableProperties->setText(iRow, 1, m_pOperator->kind());
+	m_pTableProperties->setText(iRow++, 2, i18n("b = infix (\"both\"), l = prefix (\"left\"), r = postfix (\"right\") "));
+	
+	//--- Can Hash
+	m_pTableProperties->setText(iRow, 0, i18n("Can Hash"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pOperator->canHash() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This operator supports hash joins"));
+	
+	//--- Left Type name
+	m_pTableProperties->setText(iRow, 0, i18n("Left type"));
+    KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Left type" );
+	pLabel->setValues(m_pOperator->oidLeftType(), m_pOperator->leftType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Type of the left operand"));
+	
+	//--- Right Type name
+	m_pTableProperties->setText(iRow, 0, i18n("Right type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Right type" );
+	pLabel->setValues(m_pOperator->oidRightType(), m_pOperator->rightType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Type of the right operand"));
+	
+	//--- Return Type name
+	m_pTableProperties->setText(iRow, 0, i18n("Result type"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Result type" );
+	pLabel->setValues(m_pOperator->oidResultType(), m_pOperator->resultType());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Type of the result"));
+	
+	//--- Comutator
+	m_pTableProperties->setText(iRow, 0, i18n("Comutator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Comutator" );
+	pLabel->setValues(m_pOperator->oidComutatorOpr(), m_pOperator->comutatorOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Commutator of this operator, if any"));
+	
+	//--- Negator
+	m_pTableProperties->setText(iRow, 0, i18n("Negator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Negator" );
+	pLabel->setValues(m_pOperator->oidNegatorOpr(), m_pOperator->negatorOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Negator of this operator, if any"));
+		
+	//--- Left-hand Ooperator
+	m_pTableProperties->setText(iRow, 0, i18n("Left-hand operator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Left-hand operator" );
+	pLabel->setValues(m_pOperator->oidLeftSortOpr(), m_pOperator->leftSortOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("If this operator supports merge joins, the operator that sorts the type of the left-hand operand (L<L) "));
+	
+	//--- Right-hand Ooperator
+	m_pTableProperties->setText(iRow, 0, i18n("Right-hand operator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Right-hand operator" );
+	pLabel->setValues(m_pOperator->oidRightSortOpr(), m_pOperator->rightSortOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("If this operator supports merge joins, the operator that sorts the type of the right-hand operand (R<R) "));
+	
+	//--- Less-than operator
+	m_pTableProperties->setText(iRow, 0, i18n("Less-than operator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Less-than operator" );
+	pLabel->setValues(m_pOperator->oidLessThanOpr(), m_pOperator->lessThanOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);	
+	m_pTableProperties->setText(iRow++, 2, i18n("If this operator supports merge joins, the less-than operator that compares the left and right operand types (L<R) "));
+	
+	//--- Greater-than Operator
+	m_pTableProperties->setText(iRow, 0, i18n("Greater-than operator"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Greater-than operator" );
+	pLabel->setValues(m_pOperator->oidGreatherThanOpr(), m_pOperator->greatherThanOprName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("If this operator supports merge joins, the greater-than operator that compares the left and right operand types (L>R)"));
+	
+	//--- Function
+	m_pTableProperties->setText(iRow, 0, i18n("Function"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Function" );
+	pLabel->setValues(m_pOperator->oidOperatorFunc(), m_pOperator->operatorFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Function that implements this operator"));
+		
+	//--- Restriction func.
+	m_pTableProperties->setText(iRow, 0, i18n("Restriction func."));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Restriction func." );
+	pLabel->setValues(m_pOperator->oidRestrictionFunc(), m_pOperator->restrictionFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Restriction selectivity estimation function for this operator"));
+	
+	//--- Join func.
+	m_pTableProperties->setText(iRow, 0, i18n("Join function"));
+    pLabel = new KPGLinkLabel( m_pTableProperties, "Join func." );
+	pLabel->setValues(m_pOperator->oidJoinFunc(), m_pOperator->joinFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Join selectivity estimation function for this operator"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+    m_pTableProperties->setText(iRow, 1, m_pOperator->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Operator owner"));
+	
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+void KPGOperatorPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+	QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGOperatorPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgoperatorproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgoperatorproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORPROPPAGE_H
+#define KPGOPERATORPROPPAGE_H
+
+#include "kpgoperatorproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGOperator;
+
+/**
+  * Operator properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGOperatorPropPage : public KPGOperatorPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGOperatorPropPage(QWidget *, KPGOperator *);
+    ~KPGOperatorPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGOperator * m_pOperator;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	            
+signals:
+	void sigSearchObject(const pqxx::oid);
+	
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgoperatorproppagebase.ui'
+**
+** Created: Út dub 1 13:07:18 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgoperatorproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGOperatorPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGOperatorPropPageBase::KPGOperatorPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGOperatorPropPageBase" );
+    KPGOperatorPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGOperatorPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 18 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGOperatorPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGOperatorPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(350, 461).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGOperatorPropPageBase::~KPGOperatorPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGOperatorPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Operator properties" ) );
+    textLabel1->setText( tr2i18n( "&Operator properties:" ) );
+}
+
+void KPGOperatorPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGOperatorPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGOperatorPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGOperatorPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgoperatorproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGOperatorPropPageBase</class>
+<comment>Operator properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGOperatorPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>350</width>
+            <height>461</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Operator properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>18</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Operator properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGOperatorPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGOperatorPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,63 @@
+//
+// C++ Implementation: kpgoperatorsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgoperatorsfolderproppage.h"
+
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgoperatorsfolder.h"
+
+
+KPGOperatorsFolderPropPage::KPGOperatorsFolderPropPage(QWidget* parent, KPGOperatorsFolder * pOperatorsFolder)
+	: KPGPropertyPage(parent, "KPGOperatorsFolderPropPage")
+{
+	m_pOperatorsFolder = pOperatorsFolder;
+	displayProperties();
+}
+
+
+KPGOperatorsFolderPropPage::~KPGOperatorsFolderPropPage()
+{
+}
+
+void KPGOperatorsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Operators &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Kind"));
+  	pHeader->setLabel(nCol++, i18n("Can Hash"));
+	pHeader->setLabel(nCol++, i18n("Left Type"));
+	pHeader->setLabel(nCol++, i18n("Right Type"));
+	pHeader->setLabel(nCol++, i18n("Result Type"));
+	pHeader->setLabel(nCol++, i18n("Comutator"));
+	pHeader->setLabel(nCol++, i18n("Negator"));
+	pHeader->setLabel(nCol++, i18n("Left-hand"));
+	pHeader->setLabel(nCol++, i18n("Right-hand"));
+	pHeader->setLabel(nCol++, i18n("Less-than"));
+	pHeader->setLabel(nCol++, i18n("Greater-than"));
+	pHeader->setLabel(nCol++, i18n("Function"));
+	pHeader->setLabel(nCol++, i18n("Restriction func."));
+	pHeader->setLabel(nCol++, i18n("Join func."));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+
+	KPGUtil::fillPropertiesTable(m_pOperatorsFolder->resultOperators(), m_pTableItems);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgoperatorsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgoperatorsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGOPERATORSFOLDERPROPPAGE_H
+#define KPGOPERATORSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGOperatorsFolder;
+
+/**
+  * Operarors folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGOperatorsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGOperatorsFolderPropPage(QWidget*, KPGOperatorsFolder *);
+    ~KPGOperatorsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGOperatorsFolder * m_pOperatorsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: kpgprimarykeyconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgprimarykeyconstrproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgprimarykeyconstr.h"
+
+
+KPGPrimaryKeyConstrPropPage::KPGPrimaryKeyConstrPropPage(QWidget *parent, KPGPrimaryKeyConstr * pPrimaryKeyConstr)
+ : KPGPrimaryKeyConstrPropPageBase(parent, "KPGPrimaryKeyConstrPropPage")
+{
+	m_pPrimaryKeyConstr = pPrimaryKeyConstr;
+	displayProperties();
+}
+
+KPGPrimaryKeyConstrPropPage::~KPGPrimaryKeyConstrPropPage()
+{
+}
+
+void KPGPrimaryKeyConstrPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pPrimaryKeyConstr->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pPrimaryKeyConstr->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Constraint name (not necessarily unique!)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+    m_pTableProperties->setText(iRow, 1, m_pPrimaryKeyConstr->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the constraint"));
+	
+	//--- Is Deferrable
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferrable"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pPrimaryKeyConstr->isDeferrable() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferrable ?"));
+	
+	//--- Is Deferred
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferred"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pPrimaryKeyConstr->isDeferred() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferred by default ?"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+    m_pTableProperties->setText(iRow, 1, m_pPrimaryKeyConstr->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+// Consumes request for context menu for property table
+void KPGPrimaryKeyConstrPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgprimarykeyconstrproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpgprimarykeyconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPRIMARYKEYCONSTRPROPPAGE_H
+#define KPGPRIMARYKEYCONSTRPROPPAGE_H
+
+#include "kpgprimarykeyconstrproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGPrimaryKeyConstr;
+
+/**
+  * Primary Key Constraint properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGPrimaryKeyConstrPropPage : public KPGPrimaryKeyConstrPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGPrimaryKeyConstrPropPage(QWidget *, KPGPrimaryKeyConstr *);
+    ~KPGPrimaryKeyConstrPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGPrimaryKeyConstr * m_pPrimaryKeyConstr;
+	
+protected slots:	
+            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,78 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.ui'
+**
+** Created: Út dub 1 13:07:19 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgprimarykeyconstrproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGPrimaryKeyConstrPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGPrimaryKeyConstrPropPageBase::KPGPrimaryKeyConstrPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGPrimaryKeyConstrPropPageBase" );
+    KPGPrimaryKeyConstrPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGPrimaryKeyConstrPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGPrimaryKeyConstrPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 6 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGPrimaryKeyConstrPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(350, 224).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGPrimaryKeyConstrPropPageBase::~KPGPrimaryKeyConstrPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGPrimaryKeyConstrPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Primary key constraint properties" ) );
+    textLabel1->setText( tr2i18n( "&Primary key constraint properties:" ) );
+}
+
+void KPGPrimaryKeyConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGPrimaryKeyConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgprimarykeyconstrproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyconstrproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGPrimaryKeyConstrPropPageBase</class>
+<comment>Primary key constraint properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGPrimaryKeyConstrPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>350</width>
+            <height>224</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Primary key constraint properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Primary key constraint properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>6</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGPrimaryKeyConstrPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,301 @@
+//
+// C++ Implementation: kpgprimarykeyproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgprimarykeyproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgprimarykey.h"
+#include "../kpgsqldialog.h"
+
+
+KPGPrimaryKeyPropPage::KPGPrimaryKeyPropPage(QWidget *parent, KPGPrimaryKey *pIndex)
+ : KPGPrimaryKeyPropPageBase(parent, "KPGPrimaryKeyPropPage")
+{
+  m_pIndex = pIndex;
+  m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditDefinition);
+  
+  // Apply current configuration
+  slotSqlEditorSettingsChanged();
+  // and make sure to be informed about its changes.
+  connect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+  m_pTabWidget->setTabIconSet(tabStatistics, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+  m_pButtonRefresh->setIconSet(QIconSet(QPixmap(BarIcon("reload.png")))); 
+  
+  displayProperties();
+}
+
+
+KPGPrimaryKeyPropPage::~KPGPrimaryKeyPropPage()
+{
+}
+
+void KPGPrimaryKeyPropPage::displayProperties()
+{
+	KPGServer *pServer = static_cast <KPGServer*> (m_pIndex->parent()->parent()->parent()->parent()->parent()->parent());
+
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+
+	//Is it 8.0 ornewer ?
+	if(pServer->versionMajor() > 7)
+	{
+		bVersion80_OrNewer = true;
+	}
+
+	//Isit 8.1 or newer ?
+	if(((pServer->versionMajor() == 8 ) && (pServer->versionMiddle() >= 1 ))||((pServer->versionMajor() > 8 )))
+	{
+		bVersion81_OrNewer = true;
+	}
+
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+	pHeader->setLabel(0,i18n("Name"));
+	pHeader->setLabel(1,i18n("Value"));
+	pHeader->setLabel(2,i18n("Description"));
+
+	int iRow=0;
+
+	//---OID
+	m_pTableProperties->setText(iRow,0,i18n("OID"));
+	m_pTableProperties->setText(iRow,1,QString("%1").arg(m_pIndex->oid()));
+	m_pTableProperties->setText(iRow++,2,i18n("PostgreSQL row identifier"));
+
+	//---Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+	m_pTableProperties->setText(iRow, 1, m_pIndex->text(0));
+	m_pTableProperties->setText(iRow++,2, i18n("Name of the index"));
+
+	//---Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+	m_pTableProperties->setText(iRow, 1 , m_pIndex->description());
+	m_pTableProperties->setText(iRow++,2, i18n("Description of the index"));
+
+	//---Indexkey
+	m_pTableProperties->setText(iRow, 0, i18n("Indexkey"));
+	m_pTableProperties->setText(iRow, 1, m_pIndex->indKey());
+	m_pTableProperties->setText(iRow++, 2, i18n("This is an array of indnatts(up to INDEX_MAX_KEYS) values \
+	that indicate which table columns this indexindexes. For example \
+ a value of 1 3 would mean that the first and the third table columns make up the indexkey. A \
+ zero in thisarray indicates that the corresponding index attribute is an expression \
+ overthetablecolumns,ratherthanasimplecolumnreference."));
+
+	//---IsUnique
+	m_pTableProperties->setText(iRow, 0, i18n("Is Unique"));
+	m_pTableProperties->setPixmap(iRow, 1 , m_pIndex->isUnique() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++,2, i18n("If true,this is a unique index."));
+
+	//---IsPrimary
+	m_pTableProperties->setText(iRow,0, i18n("Is Primary"));
+	m_pTableProperties->setPixmap(iRow,1 , m_pIndex->isPrimary() ? *KPGUtil::m_pIconTrue :  *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true, this index representst he primary key of the table. (indisunique should always be true when this is true.)"));
+
+	//---IsClustered
+	m_pTableProperties->setText(iRow, 0, i18n("Is Clustered"));
+	m_pTableProperties->setPixmap(iRow, 1, m_pIndex->isClustered() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("If true, the table was last clustered on this index."));
+
+	//---Tablespace
+	m_pTableProperties->setText(iRow, 0, i18n("Tablespace"));
+	KPGLinkLabel*pLabel= new KPGLinkLabel(m_pTableProperties, "Tablespace");
+	pLabel->setValues(m_pIndex->oidTablespace(), m_pIndex->tablespace());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Tablespace name"));
+
+	//---Prettysizeofindex
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded size"));
+	if(bVersion81_OrNewer)
+		m_pTableProperties->setText(iRow, 1, m_pIndex->prettySize());
+	else
+		m_pTableProperties->setText(iRow, 1,"N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the index"));
+
+	//---Exactsizeofindex
+	m_pTableProperties->setText(iRow, 0, i18n("Exactsize"));
+	if(bVersion81_OrNewer)
+		m_pTableProperties->setText(iRow, 1, QString("%L1B").arg(m_pIndex->size()));
+	else
+		m_pTableProperties->setText(iRow, 1,"N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the index"));
+
+
+	for(int nCol=0; nCol<3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+
+	m_pTextEditDefinition->setText(m_pIndex->indexdef());
+
+	displayStatistics();
+	displayIoStatistics();
+}
+
+void KPGPrimaryKeyPropPage::displayStatistics()
+{
+	QHeader* pHeader = m_pTableStatistics->horizontalHeader();
+	
+	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	try
+	{
+		pqxx::result pqxxResultStatistics = m_pIndex->queryStatistics();
+	
+		if(pqxxResultStatistics.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		if(m_pIndex->text(0) != pqxxResultStatistics[0]["indexrelname"].c_str())
+		{
+		kdDebug() << "KPGTable::displayStatistics(): table name not match" << endl;
+		return;
+		}
+		
+		int iRow = 0;
+		
+		//--- seq_scan
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_scan"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_scan"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of index scans"));
+		
+		//--- seq_scan
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_tup_read"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_tup_read"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples read"));
+		
+		//--- idx_tup_fetch
+		m_pTableStatistics->setText(iRow, 0, i18n("idx_tup_fetch"));
+		m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_tup_fetch"].c_str());
+		m_pTableStatistics->setText(iRow++, 2, i18n("Total number of sucessfully fetched heap tuples"));
+	}
+	catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	} 
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableStatistics->adjustColumn(nCol);
+	}
+}
+
+void KPGPrimaryKeyPropPage::displayIoStatistics()
+{
+	QHeader* hHeader = m_pTableIoStatistics->horizontalHeader();
+	
+	hHeader->setLabel(0, i18n("Name"));
+	hHeader->setLabel(1, i18n("Value"));
+	hHeader->setLabel(2, i18n("Description"));
+	
+	try
+	{
+		pqxx::result pqxxResultStatistics = m_pIndex->queryIoStatistics();
+	
+		if(pqxxResultStatistics.size() != 1)
+		{
+			kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+			return;
+		}
+		
+		if(m_pIndex->text(0) != pqxxResultStatistics[0]["indexrelname"].c_str())
+		{
+			kdDebug() << "KPGTable::displayStatistics(): table name not match" << endl;
+			return;
+		}
+		
+		int iRow = 0;
+		
+		//--- seq_scan
+		m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_read"));
+		m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_read"].c_str());
+		m_pTableIoStatistics->setText(iRow++, 2, i18n("Total number of disc blocks read"));
+		
+		//--- heap_blks_hit
+		m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_hit"));
+		m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_hit"].c_str());
+		m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of buffer hits"));
+	}
+	catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableIoStatistics->adjustColumn(nCol);
+	}
+}
+
+void KPGPrimaryKeyPropPage::slotSqlEditorSettingsChanged()
+{
+  m_pTextEditDefinition->setFont( KPoGreView::configuration()->sqleditor()->font() );
+  
+  m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+  m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+  m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+  m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+  m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+  m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+  m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+  
+  m_pSyntaxHighlighter->rehighlight();
+}
+
+void KPGPrimaryKeyPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+    if(w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+      emit sigSearchObject(_oid);
+}
+
+void KPGPrimaryKeyPropPage::slotRefreshStatistics()
+{
+  displayStatistics();
+  displayIoStatistics();
+}
+
+// Consumes request for context menu for property table
+void KPGPrimaryKeyPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgprimarykeyproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+//
+// C++ Interface: kpgprimarykeyproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPRIMARYKEYPROPPAGE_H
+#define KPGPRIMARYKEYPROPPAGE_H
+
+#include "kpgprimarykeyproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGSyntaxHighlighter;
+class KPGPrimaryKey;
+
+/**
+  * Primary key index properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGPrimaryKeyPropPage : public KPGPrimaryKeyPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGPrimaryKeyPropPage(QWidget *parent, KPGPrimaryKey *);
+    ~KPGPrimaryKeyPropPage();
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	void displayStatistics();
+    void displayIoStatistics();
+    
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected slots:
+
+    /**
+     * Changes syntax highlighting colors.
+     */
+    void slotSqlEditorSettingsChanged();
+
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &);  
+                    
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+    virtual void slotRefreshStatistics();
+    
+signals:
+    void sigSearchObject(const pqxx::oid);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+	    
+protected:
+	/** Syntax highlighter for index definition */
+	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+	KPGPrimaryKey *m_pIndex;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,158 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgprimarykeyproppagebase.ui'
+**
+** Created: Út dub 1 13:07:19 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgprimarykeyproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qtextedit.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGPrimaryKeyPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGPrimaryKeyPropPageBase::KPGPrimaryKeyPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGPrimaryKeyPropPageBase" );
+    KPGPrimaryKeyPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGPrimaryKeyPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    m_pTextEditDefinition = new QTextEdit( tabProperties, "m_pTextEditDefinition" );
+    m_pTextEditDefinition->setTextFormat( QTextEdit::PlainText );
+    m_pTextEditDefinition->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pTextEditDefinition, 3, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabStatistics = new QWidget( m_pTabWidget, "tabStatistics" );
+    tabStatisticsLayout = new QGridLayout( tabStatistics, 1, 1, 11, 6, "tabStatisticsLayout"); 
+
+    m_pTableIoStatistics = new QTable( tabStatistics, "m_pTableIoStatistics" );
+    m_pTableIoStatistics->setNumRows( 2 );
+    m_pTableIoStatistics->setNumCols( 3 );
+    m_pTableIoStatistics->setReadOnly( TRUE );
+    m_pTableIoStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableIoStatistics, 3, 3, 0, 1 );
+
+    textLabel2_2 = new QLabel( tabStatistics, "textLabel2_2" );
+
+    tabStatisticsLayout->addMultiCellWidget( textLabel2_2, 2, 2, 0, 1 );
+
+    m_pTableStatistics = new QTable( tabStatistics, "m_pTableStatistics" );
+    m_pTableStatistics->setNumRows( 3 );
+    m_pTableStatistics->setNumCols( 3 );
+    m_pTableStatistics->setReadOnly( TRUE );
+    m_pTableStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableStatistics, 1, 1, 0, 1 );
+
+    textLabel1_2 = new QLabel( tabStatistics, "textLabel1_2" );
+
+    tabStatisticsLayout->addMultiCellWidget( textLabel1_2, 0, 0, 0, 1 );
+
+    m_pButtonRefresh = new KPushButton( tabStatistics, "m_pButtonRefresh" );
+
+    tabStatisticsLayout->addWidget( m_pButtonRefresh, 4, 0 );
+    spacer1 = new QSpacerItem( 280, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabStatisticsLayout->addItem( spacer1, 4, 1 );
+    m_pTabWidget->insertTab( tabStatistics, QString::fromLatin1("") );
+
+    KPGPrimaryKeyPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(398, 385).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefresh, SIGNAL( clicked() ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTextEditDefinition );
+    textLabel2_2->setBuddy( m_pTableIoStatistics );
+    textLabel1_2->setBuddy( m_pTableStatistics );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGPrimaryKeyPropPageBase::~KPGPrimaryKeyPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGPrimaryKeyPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Primary key properties" ) );
+    textLabel1->setText( tr2i18n( "&Primary key properties:" ) );
+    textLabel2->setText( tr2i18n( "Index &definition:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    textLabel2_2->setText( tr2i18n( "Index I/O statistics:" ) );
+    textLabel1_2->setText( tr2i18n( "Index access statistics:" ) );
+    m_pButtonRefresh->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefresh->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabStatistics, tr2i18n( "Statistic" ) );
+}
+
+void KPGPrimaryKeyPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGPrimaryKeyPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGPrimaryKeyPropPageBase::slotRefreshStatistics()
+{
+    qWarning( "KPGPrimaryKeyPropPageBase::slotRefreshStatistics(): Not implemented yet" );
+}
+
+void KPGPrimaryKeyPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGPrimaryKeyPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgprimarykeyproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgprimarykeyproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,228 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGPrimaryKeyPropPageBase</class>
+<comment>Primary key properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGPrimaryKeyPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>398</width>
+            <height>385</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Primary key properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Primary key properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>10</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QTextEdit" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index &amp;definition:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabStatistics</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Statistic</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="3" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>2</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>textLabel2_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index I/O statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Index access statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="4" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefresh</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="4" column="1">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>280</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGPrimaryKeyPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefresh</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGPrimaryKeyPropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGPrimaryKeyPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshStatistics()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,52 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgpropertypage.h"
+
+#include <qtable.h>  
+#include <qlabel.h> 
+
+#include "../kpglinklabel.h"
+
+KPGPropertyPage::KPGPropertyPage(QWidget *parent, const char *name)
+ : KPGPropertyPageBase(parent, name)
+{
+}
+
+KPGPropertyPage::~KPGPropertyPage()
+{
+}
+
+void KPGPropertyPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableItems->cellWidget(iRow, iCol);
+    if(w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+      emit sigSearchObject(_oid);
+}
+
+void KPGPropertyPage::setLabelText(const QString &strText)
+{
+  	m_pTextLabel->setText(strText);
+}
+
+// Consumes request for context menu for property table
+void KPGPropertyPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgpropertypage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,55 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPROPERTYPAGE_H
+#define KPGPROPERTYPAGE_H
+
+#include "kpgpropertypagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+
+/**
+  * General property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGPropertyPage : public KPGPropertyPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGPropertyPage(QWidget *parent, const char *name);
+    ~KPGPropertyPage();
+    
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableItems; }
+	
+    void setLabelText(const QString &);
+    
+protected slots:
+    
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &); 
+    
+    // Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+    
+signals:
+    void sigSearchObject(const pqxx::oid);
+            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgpropertypagebase.ui'
+**
+** Created: Út dub 1 13:07:19 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgpropertypagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGPropertyPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGPropertyPageBase::KPGPropertyPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGPropertyPageBase" );
+    KPGPropertyPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGPropertyPageBaseLayout"); 
+
+    m_pTextLabel = new QLabel( this, "m_pTextLabel" );
+    m_pTextLabel->setTextFormat( QLabel::PlainText );
+
+    KPGPropertyPageBaseLayout->addWidget( m_pTextLabel, 0, 0 );
+
+    m_pTableItems = new QTable( this, "m_pTableItems" );
+    m_pTableItems->setNumRows( 1 );
+    m_pTableItems->setNumCols( 30 );
+    m_pTableItems->setReadOnly( TRUE );
+    m_pTableItems->setSelectionMode( QTable::SingleRow );
+
+    KPGPropertyPageBaseLayout->addWidget( m_pTableItems, 1, 0 );
+    languageChange();
+    resize( QSize(450, 303).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableItems, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableItems, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    m_pTextLabel->setBuddy( m_pTableItems );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGPropertyPageBase::~KPGPropertyPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGPropertyPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Properties" ) );
+    m_pTextLabel->setText( tr2i18n( "&Items:" ) );
+}
+
+void KPGPropertyPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGPropertyPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGPropertyPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGPropertyPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgpropertypagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGPropertyPageBase</class>
+<comment>Base class for general simple property page</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGPropertyPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>450</width>
+            <height>303</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTextLabel</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Items:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableItems</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableItems</cstring>
+            </property>
+            <property name="numRows">
+                <number>1</number>
+            </property>
+            <property name="numCols">
+                <number>30</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableItems</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGPropertyPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableItems</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGPropertyPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,785 @@
+//
+// C++ Implementation: kpgpropertypagechildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgpropertypagechildview.h"
+
+#include <qlayout.h>
+
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+#include "../kpogreview.h"
+
+// Database objects includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgview.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgsequence.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../DbObjects/kpgprimarykey.h"
+#include "../DbObjects/kpgindex.h"
+#include "../DbObjects/kpglanguage.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgviewsfolder.h"
+#include "../DbObjects/kpgsequencesfolder.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+#include "../DbObjects/kpgoperatorsfolder.h"
+#include "../DbObjects/kpgoperatorclassesfolder.h"
+#include "../DbObjects/kpgaggregatesfolder.h"
+#include "../DbObjects/kpgtypesfolder.h"
+#include "../DbObjects/kpglanguagesfolder.h"
+#include "../DbObjects/kpgdomainsfolder.h"
+#include "../DbObjects/kpgconversionsfolder.h"
+#include "../DbObjects/kpgcastsfolder.h"
+#include "../DbObjects/kpgoperator.h"
+#include "../DbObjects/kpgoperatorclass.h"
+#include "../DbObjects/kpgaggregate.h"
+#include "../DbObjects/kpgtype.h"
+#include "../DbObjects/kpgdomain.h"
+#include "../DbObjects/kpgconversion.h"
+#include "../DbObjects/kpgcast.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../DbObjects/kpgtableconstraintsfolder.h"
+#include "../DbObjects/kpgtableindexesfolder.h"
+#include "../DbObjects/kpgrulesfolder.h"
+#include "../DbObjects/kpgtriggersfolder.h"
+#include "../DbObjects/kpgdomainconstraint.h"
+#include "../DbObjects/kpgdomainconstraintsfolder.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "../DbObjects/kpgprimarykeyconstr.h"
+#include "../DbObjects/kpgforeignkeyconstr.h"
+#include "../DbObjects/kpguniqueconstr.h"
+#include "../DbObjects/kpguser.h"
+#include "../DbObjects/kpggroup.h"
+#include "../DbObjects/kpgtablespace.h"
+#include "../DbObjects/kpgcheckconstr.h"
+#include "../DbObjects/kpgrule.h"
+#include "../DbObjects/kpgtrigger.h"
+#include "../DbObjects/kpgtypeattribute.h"
+
+// Property pages includes
+#include "kpgvoidproppage.h"
+#include "kpgpropertypage.h"
+#include "kpgserverproppage.h"
+#include "kpgtablespaceproppage.h"
+#include "kpgdatabaseproppage.h"
+#include "kpgschemaproppage.h"
+#include "kpgtableproppage.h"
+#include "kpgviewproppage.h"
+#include "kpgtablecolumnproppage.h"
+#include "kpgprimarykeyconstrproppage.h"
+#include "kpgforeignkeyconstrproppage.h"
+#include "kpgcheckconstrproppage.h"
+#include "kpguniqueconstrproppage.h"
+#include "kpgprimarykeyproppage.h"
+#include "kpgindexproppage.h"
+#include "kpgruleproppage.h"
+#include "kpgtriggerproppage.h"
+#include "kpgfunctionproppage.h"
+#include "kpgsequenceproppage.h"
+#include "kpgoperatorproppage.h"
+#include "kpgoperatorclassproppage.h"
+#include "kpgaggregateproppage.h"
+#include "kpguserproppage.h"
+#include "kpggroupproppage.h"
+#include "kpgtypeproppage.h"
+#include "kpglanguageproppage.h"
+#include "kpgdomainproppage.h"
+#include "kpgconversionproppage.h"
+#include "kpgcastproppage.h"
+#include "kpgdomainconstrproppage.h"
+#include "kpgtypeattributeproppage.h"
+#include "kpgusersfolderproppage.h"
+#include "kpggroupsfolderproppage.h"
+#include "kpgtablesfolderproppage.h"
+#include "kpgtablespacesfolderproppage.h"
+#include "kpgviewsfolderproppage.h"
+#include "kpgsequencesfolderproppage.h"
+#include "kpgfunctionsfolderproppage.h"
+#include "kpgoperatorsfolderproppage.h"
+#include "kpgoperatorclassproppage.h"
+#include "kpgoperatorclassesfolderproppage.h"
+#include "kpgaggregatesfolderproppage.h"
+#include "kpgtypesfolderproppage.h"
+#include "kpgdomainsfolderproppage.h"
+#include "kpglanguagesfolderproppage.h"
+#include "kpgconversionsfolderproppage.h"
+#include "kpgcastsfolderproppage.h"
+#include "kpgtablecolumnsfolderproppage.h"
+#include "kpgtableconstraintsfolderproppage.h"
+#include "kpgtableindexesfolderproppage.h"
+#include "kpgrulesfolderproppage.h"
+#include "kpgtriggersfolderproppage.h"
+#include "kpgdomainconstrfolderproppage.h"
+
+#include "../kpgutil.h"
+
+KPGPropertyPageChildView::KPGPropertyPageChildView(KPoGreView *pPoGreView,
+	KXMLGUIFactory *pXmlGuiFactory)
+ 	:
+ 	KXMLGUIClient(pPoGreView), 
+ 	KMdiChildView(i18n("Properties"), pPoGreView, "KPGPropertyPageChildView")
+{
+	m_pPoGreView = pPoGreView;
+	
+	m_pWidgetProperties = 0;
+	m_pPropertyPage = 0;
+	
+	m_pLayout = new QHBoxLayout(this, 0, -1, "layout" );
+	
+	setIcon( SmallIcon("history") );
+	
+	// Setup GUI
+	setXMLFile("kpgproppage.rc", true);
+	m_pXmlGuiFactory = pXmlGuiFactory;
+	m_bIsAddedToGuiFactory = false;
+	
+	//-----------------------------------------------------------------
+	// Common clipboard actions
+	m_pActCopyCell = new KAction(i18n("&Copy cell"), "editcopy", 0, this, SLOT(slotCopyCell()), actionCollection(), "copy_cell");
+	
+	m_pActCopyRow = new KAction(i18n("Copy &row"), 0, 0, this, SLOT(slotCopyRow()), actionCollection(), "copy_row");
+	
+	m_pActCopyTableCsv = new KAction(i18n("Copy table to C&SV"), 0, 0, this, SLOT(slotCopyTableCsv()), actionCollection(), "copy_table_csv");
+	
+	m_pActCopyTableXml = new KAction(i18n("Copy table to &XML"), 0, 0, this, SLOT(slotCopyTableXml()), actionCollection(), "copy_table_xml");
+}
+
+
+KPGPropertyPageChildView::~KPGPropertyPageChildView()
+{
+	destroyPropertiesWidget();
+	removeFromGuiFactory();
+}
+
+// Add yourself to GUI factory
+void KPGPropertyPageChildView::addToGuiFactory()
+{
+	if(!m_bIsAddedToGuiFactory)
+    {
+    	m_pXmlGuiFactory->addClient(this);
+    	m_bIsAddedToGuiFactory = true;
+    	//kdDebug() << k_funcinfo << endl;
+    }
+}
+    
+// Remove yourself from GUI factory
+void KPGPropertyPageChildView::removeFromGuiFactory()
+{
+    if(m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->removeClient(this);
+        m_bIsAddedToGuiFactory = false;
+        //kdDebug() << k_funcinfo << endl;
+    }
+}
+
+
+// Add this GUI client to factory
+void KPGPropertyPageChildView::slotActivated()
+{
+	addToGuiFactory();
+}
+	// Remove this GUI client from factory
+void KPGPropertyPageChildView::slotDeactivated()
+{
+	removeFromGuiFactory();
+}
+
+void KPGPropertyPageChildView::slotCopyCell()
+{
+	KPGUtil::copyCell(m_pPropertyPage->tableResult());
+}
+
+void KPGPropertyPageChildView::slotCopyRow()
+{
+	KPGUtil::copyRow(m_pPropertyPage->tableResult());
+}
+
+void KPGPropertyPageChildView::slotCopyTableCsv()
+{
+	KPGUtil::copyTableCsv(m_pPropertyPage->tableResult());
+}
+
+void KPGPropertyPageChildView::slotCopyTableXml()
+{
+	KPGUtil::copyTableXml(m_pPropertyPage->tableResult());
+}
+
+// Display properties of underlying database object
+void KPGPropertyPageChildView::displayProperties()
+{
+	if(m_pPropertyPage)
+	{
+		m_pPropertyPage->displayProperties();
+	}
+	else
+	{
+		kdError() << k_funcinfo << " - Property page not exists" << endl;
+	}
+}
+
+// Destroy Properties widget
+void KPGPropertyPageChildView::destroyPropertiesWidget()
+{
+	// Close old widget property page
+	if(m_pWidgetProperties)
+	{
+		// disconnect all
+		disconnect(m_pWidgetProperties, 0, 0, 0);
+		m_pWidgetProperties->close(true);
+		m_pWidgetProperties = 0;
+	}
+}
+
+// Create Properties widget, with regards to selected type in tree
+QWidget* KPGPropertyPageChildView::createPropertiesWidget(KPGTreeItem * pItem)
+{
+	destroyPropertiesWidget();
+	
+	if(pItem == 0)
+		return 0;
+		
+	m_pWidgetProperties = 0;
+    m_pPropertyPage = 0;
+	
+  	// create new property page
+  	switch(pItem->type())
+    {
+		//******************************************************************************************
+		//
+		// Main objects
+		//
+		//******************************************************************************************
+				
+        case KPGTreeItem::nodeServer:
+        {
+			KPGServerPropPage *pPropPage = new KPGServerPropPage(this, static_cast <KPGServer *> (pItem));  
+			m_pWidgetProperties = pPropPage;
+			m_pPropertyPage = pPropPage;
+		}	
+			break;
+		
+		
+        case KPGTreeItem::nodeDatabase:
+		{
+			KPGDatabasePropPage *pPropPage = new KPGDatabasePropPage(this, static_cast <KPGDatabase *> (pItem));
+			m_pWidgetProperties = pPropPage;
+			m_pPropertyPage = pPropPage;
+          
+          connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+        }
+          break;
+        				
+		case KPGTreeItem::nodeSchema:
+        {
+          	KPGSchemaPropPage *pPropPage = new KPGSchemaPropPage(this, static_cast <KPGSchema *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+          	          	
+          	connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+        }  
+          	break;
+				
+		case KPGTreeItem::nodeFolderGroups:
+		{
+			KPGGroupsFolderPropPage *pPropPage = new KPGGroupsFolderPropPage(this, static_cast <KPGGroupsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break;
+				
+		case KPGTreeItem::nodeFolderUsers:
+		{
+			KPGUsersFolderPropPage *pPropPage = new KPGUsersFolderPropPage(this, static_cast <KPGUsersFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderTablespaces:
+		{
+			KPGTablespacesFolderPropPage *pPropPage = new KPGTablespacesFolderPropPage(this, static_cast <KPGTablespacesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+				
+		case KPGTreeItem::nodeUser:
+		{
+			KPGUserPropPage *pPropPage = new KPGUserPropPage(this, static_cast <KPGUser *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeGroup:
+		{
+			KPGGroupPropPage *pPropPage = new KPGGroupPropPage(this, static_cast <KPGGroup *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeTablespace:
+		{
+			KPGTablespacePropPage *pPropPage = new KPGTablespacePropPage(this, static_cast <KPGTablespace *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+         	
+			connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+		}
+			break;
+									
+		//******************************************************************************************
+		//
+		// Database objects folders
+		//
+		//******************************************************************************************
+										
+		case KPGTreeItem::nodeFolderTables:
+        {
+          	KPGTablesFolderPropPage *pPropPage = new KPGTablesFolderPropPage(this, static_cast <KPGTablesFolder *> (pItem));
+          	m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break;
+				
+		case KPGTreeItem::nodeFolderViews:
+		{
+			KPGViewsFolderPropPage *pPropPage = new KPGViewsFolderPropPage(this, static_cast <KPGViewsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderSequences:
+		{
+			KPGSequencesFolderPropPage *pPropPage = new KPGSequencesFolderPropPage(this, static_cast <KPGSequencesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderFunctions:
+		{
+			KPGFunctionsFolderPropPage *pPropPage = new KPGFunctionsFolderPropPage(this, static_cast <KPGFunctionsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderOperators:
+        {
+        	KPGOperatorsFolderPropPage *pPropPage = new KPGOperatorsFolderPropPage(this, static_cast <KPGOperatorsFolder *> (pItem));
+        	m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+        	break;
+					
+		case KPGTreeItem::nodeFolderOperatorClasses:
+		{
+			KPGOperatorClassesFolderPropPage *pPropPage = new KPGOperatorClassesFolderPropPage(this, static_cast <KPGOperatorClassesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderAggregates:
+		{
+			KPGAggregatesFolderPropPage *pPropPage = new KPGAggregatesFolderPropPage(this, static_cast <KPGAggregatesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+											
+		case KPGTreeItem::nodeFolderTypes:
+		{
+			KPGTypesFolderPropPage *pPropPage = new KPGTypesFolderPropPage(this, static_cast <KPGTypesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderLanguages: 
+		{
+			KPGLanguagesFolderPropPage *pPropPage = new KPGLanguagesFolderPropPage(this, static_cast <KPGLanguagesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+				
+		case KPGTreeItem::nodeFolderDomains:
+        {
+        	KPGDomainsFolderPropPage *pPropPage = new KPGDomainsFolderPropPage(this, static_cast <KPGDomainsFolder *> (pItem));
+        	m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break;
+					
+		case KPGTreeItem::nodeFolderConversions:
+		{	KPGConversionsFolderPropPage *pPropPage = new KPGConversionsFolderPropPage(this, static_cast <KPGConversionsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}	
+			break;
+					
+		case KPGTreeItem::nodeFolderCasts:
+		{
+			KPGCastsFolderPropPage *pPropPage = new KPGCastsFolderPropPage(this, static_cast <KPGCastsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;		
+				
+				
+		//******************************************************************************************
+		//
+		// Database objects
+		//
+		//******************************************************************************************
+				
+		case KPGTreeItem::nodeTable:
+		{
+			KPGTablePropPage *pPropPage = new KPGTablePropPage(this, static_cast <KPGTable *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+			
+			connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+		}
+			break;
+
+        case KPGTreeItem::nodeView:
+		{
+			KPGViewPropPage *pPropPage = new KPGViewPropPage(this, static_cast <KPGView *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+			
+			connect(m_pWidgetProperties, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+		}
+			break;
+					
+		case KPGTreeItem::nodeSequence:
+		{
+			KPGSequencePropPage *pPropPage = new KPGSequencePropPage(this, static_cast <KPGSequence *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+			
+			connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+        }
+        	break;
+				
+		case KPGTreeItem::nodeFunction:
+		{
+			KPGFunctionPropPage *pPropPage = new KPGFunctionPropPage(this, static_cast <KPGFunction *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+			
+			connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+		}
+			break;
+					
+		case KPGTreeItem::nodeOperator:
+        {
+        	KPGOperatorPropPage *pPropPage = new KPGOperatorPropPage(this, static_cast <KPGOperator *> (pItem));
+        	m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        } 	
+          	break;
+				
+		case KPGTreeItem::nodeOperatorClass:
+		{
+			KPGOperatorClassPropPage *pPropPage = new KPGOperatorClassPropPage(this, static_cast <KPGOperatorClass *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeAggregate:
+		{
+			KPGAggregatePropPage *pPropPage = new KPGAggregatePropPage(this, static_cast <KPGAggregate *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+				
+		case KPGTreeItem::nodeType:
+		{
+			KPGTypePropPage *pPropPage = new KPGTypePropPage(this, static_cast <KPGType *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break;
+				
+		case KPGTreeItem::nodeLanguage:
+		{
+			KPGLanguagePropPage *pPropPage = new KPGLanguagePropPage(this, static_cast <KPGLanguage *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+			
+          	connect(pPropPage, SIGNAL(sigRunWizard(const QString &)), m_pPoGreView, SLOT( slotRunWizard(const QString &))); 
+        }
+          	break; 
+				
+		case KPGTreeItem::nodeDomain:
+		{
+			KPGDomainPropPage *pPropPage = new KPGDomainPropPage(this, static_cast <KPGDomain *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break; 
+				
+		case KPGTreeItem::nodeConversion:
+		{
+			KPGConversionPropPage *pPropPage = new KPGConversionPropPage(this, static_cast <KPGConversion *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          	break; 
+				
+		case KPGTreeItem::nodeCast:
+		{
+			KPGCastPropPage *pPropPage = new KPGCastPropPage(this, static_cast <KPGCast *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+       	}
+          	break;			
+					
+		//******************************************************************************************
+		//
+		// Table objects folders
+		//
+		//******************************************************************************************
+				
+						
+		case KPGTreeItem::nodeFolderTableColumns:
+		{
+			KPGTableColumnsFolderPropPage *pPropPage = new KPGTableColumnsFolderPropPage(this, static_cast <KPGTableColumnsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderTableConstraints:
+		{
+			KPGTableConstraintsFolderPropPage *pPropPage = new KPGTableConstraintsFolderPropPage(this, static_cast <KPGTableConstraintsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderTableIndexes:
+		{
+			KPGTableIndexesFolderPropPage *pPropPage = new KPGTableIndexesFolderPropPage(this, static_cast <KPGTableIndexesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderRules:
+		{
+			KPGRulesFolderPropPage *pPropPage = new KPGRulesFolderPropPage(this, static_cast <KPGRulesFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeFolderTriggers:
+        {
+			KPGTriggersFolderPropPage *pPropPage = new KPGTriggersFolderPropPage(this, static_cast <KPGTriggersFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+        }
+          break;
+        
+        // Domain objects folders
+            
+        case KPGTreeItem::nodeFolderDomainConstraints:
+		{
+			KPGDomainConstrFolderPropPage *pPropPage = new KPGDomainConstrFolderPropPage(this, static_cast <KPGDomainConstraintsFolder *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		//******************************************************************************************
+		//
+		// Table objects
+		//
+		//******************************************************************************************
+									
+		case KPGTreeItem::nodeTableColumn:
+		{
+			KPGTableColumnPropPage *pPropPage = new KPGTableColumnPropPage(this, static_cast <KPGTableColumn *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodePrimaryKeyConstr:
+		{
+			KPGPrimaryKeyConstrPropPage *pPropPage = new KPGPrimaryKeyConstrPropPage(this, static_cast <KPGPrimaryKeyConstr *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeForeignKeyConstr:
+		{
+			KPGForeignKeyConstrPropPage *pPropPage = new KPGForeignKeyConstrPropPage(this, static_cast <KPGForeignKeyConstr *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeUniqueConstr:
+		{
+			KPGUniqueConstrPropPage *pPropPage = new KPGUniqueConstrPropPage(this, static_cast <KPGUniqueConstr *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeCheckConstr:
+		{
+			KPGCheckConstrPropPage *pPropPage = new KPGCheckConstrPropPage(this, static_cast <KPGCheckConstr *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodePrimaryKey:
+		{
+			KPGPrimaryKeyPropPage *pPropPage = new KPGPrimaryKeyPropPage( this, static_cast <KPGPrimaryKey *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeIndex:
+		{
+			KPGIndexPropPage *pPropPage = new KPGIndexPropPage( this, static_cast <KPGIndex *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeRule:
+		{
+			KPGRulePropPage *pPropPage = new KPGRulePropPage(this, static_cast <KPGRule *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		case KPGTreeItem::nodeTrigger:
+		{
+			KPGTriggerPropPage *pPropPage = new KPGTriggerPropPage(this, static_cast <KPGTrigger *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+          
+        // Domain object
+        case KPGTreeItem::nodeDomainConstr:
+		{
+			KPGDomainConstrPropPage *pPropPage = new KPGDomainConstrPropPage(this, static_cast <KPGDomainConstraint *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+			
+		//******************************************************************************************
+		//
+		// Type attributes
+		//
+		//******************************************************************************************
+									
+		case KPGTreeItem::nodeTypeAttribute:
+		{
+			KPGTypeAttributePropPage *pPropPage = new KPGTypeAttributePropPage(this, static_cast <KPGTypeAttribute *> (pItem));
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+					
+		//******************************************************************************************
+		//
+		// Unselected or unknown
+		//
+		//******************************************************************************************
+					
+
+        case KPGTreeItem::nodeUnselected:
+        	return 0;
+          	break;
+					
+		default:
+		{
+			KPGVoidPropPage *pPropPage = new KPGVoidPropPage(this);
+			m_pWidgetProperties = pPropPage;
+         	m_pPropertyPage = pPropPage;
+		}
+			break;
+      } 
+  
+  	if(m_pWidgetProperties == 0) kdError() << k_funcinfo << "m_pWidgetProperties == 0" << endl;
+    if(m_pPropertyPage == 0) kdError() << k_funcinfo << "m_pPropertyPage == 0" << endl;
+    
+	if(m_pWidgetProperties)
+	{ 
+		m_pLayout->addWidget( m_pWidgetProperties );
+		m_pWidgetProperties->show();
+				
+		connect(m_pWidgetProperties, SIGNAL(sigSearchObject(const pqxx::oid)), m_pPoGreView, SLOT( slotSearchObject(const pqxx::oid)));
+		
+		connect(m_pWidgetProperties, SIGNAL(sigTablePropContextMenuRequested(int, int, const QPoint &)), this, SLOT(slotTablePropContextMenuRequested(int, int, const QPoint &)));
+	}
+
+	return m_pWidgetProperties;
+}
+
+bool KPGPropertyPageChildView::requestClose()
+{
+	if(KMessageBox::questionYesNo(this, i18n("Really close property window ?")) == KMessageBox::Yes) 
+	{
+		return true;
+	}
+	return false;
+}
+
+void KPGPropertyPageChildView::slotTablePropContextMenuRequested(int, int, const QPoint & pos)
+{
+	QWidget * pContainer = m_pXmlGuiFactory->container("popupPropertyTable", this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name (popupResultTable)" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgpropertypagechildview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,104 @@
+//
+// C++ Interface: kpgpropertypagechildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPROPERTYPAGECHILDVIEW_H
+#define KPGPROPERTYPAGECHILDVIEW_H
+
+// include files for KDE
+#include <kmdichildview.h>
+#include <kxmlguiclient.h>
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+class KPGTreeItem;
+class QBoxLayout;
+class KPoGreView;
+
+/**
+  * MDI child view for property pages
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGPropertyPageChildView : public KMdiChildView, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public:
+    KPGPropertyPageChildView(KPoGreView *, KXMLGUIFactory *);
+    ~KPGPropertyPageChildView();
+    
+    // Create Properties widget, with regards to selected type in tree
+  	QWidget* createPropertiesWidget(KPGTreeItem *);
+  	
+  	// Display properties of underlying database object
+	void displayProperties();
+  	
+  	// Return the Properties widget
+  	KPGAbstractPropertyPage* getPropertyPage() const { return m_pPropertyPage; }
+
+	// Return true, if window can be closed
+	bool requestClose();
+	
+protected:
+	// Destroy the Properties widget
+	void destroyPropertiesWidget();
+	
+	// Add yourself to GUI factory
+    void addToGuiFactory();
+    
+    // Remove yourself from GUI factory
+    void removeFromGuiFactory();
+	
+public slots:
+
+	// Add this GUI client to factory
+	void slotActivated();
+
+	// Remove this GUI client from factory
+	void slotDeactivated();
+	
+protected slots:
+
+	// Get request for context menu from property table
+	void slotTablePropContextMenuRequested(int, int, const QPoint &);
+	
+	//--- Common clibpoard actions
+    void slotCopyCell();
+    void slotCopyRow();
+    void slotCopyTableCsv();
+    void slotCopyTableXml();
+    
+protected:
+
+	// KPoGre main window
+	KPoGreView* m_pPoGreView;
+	
+	// XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // True, if this is in GUI factory
+    bool m_bIsAddedToGuiFactory;
+    
+    // Common clipboard actions
+    KAction* m_pActCopyCell;
+	KAction* m_pActCopyRow;
+	KAction* m_pActCopyTableCsv;
+	KAction* m_pActCopyTableXml;
+
+private:
+	// Two same pointers to different base classes as property page
+	QWidget*	m_pWidgetProperties;
+	KPGAbstractPropertyPage* m_pPropertyPage;
+	
+	QBoxLayout* m_pLayout;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,122 @@
+//
+// C++ Implementation: kpgruleproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgruleproppage.h"
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+// application specific includes
+#include "../kpgutil.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgrule.h"
+
+
+KPGRulePropPage::KPGRulePropPage(QWidget *parent, KPGRule * pRule)
+ : KPGRulePropPageBase(parent, "KPGRulePropPage")
+{
+	m_pRule = pRule;
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditDefinition);
+	
+	// Apply current configuration
+	slotSqlEditorSettingsChanged();
+ 	// and make sure to be informed about its changes.
+	connect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+}
+
+
+KPGRulePropPage::~KPGRulePropPage()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+void KPGRulePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pRule->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pRule->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the rule"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pRule->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the rule"));
+	
+	//--- Is Instead
+	m_pTableProperties->setText(iRow, 0, i18n("Is Instead"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pRule->isInstead()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if the rule is an INSTEAD rule"));
+	
+	//--- Event type
+	m_pTableProperties->setText(iRow, 0, i18n("Event type"));
+  	m_pTableProperties->setText(iRow, 1, m_pRule->evType());
+	m_pTableProperties->setText(iRow++, 2, i18n("Event type that the rule is for: 1 = SELECT, 2 = UPDATE, 3 = INSERT, 4 = DELETE "));
+	
+	//--- Qualifying Condition
+	m_pTableProperties->setText(iRow, 0, i18n("Qualifying Condition"));
+  	m_pTableProperties->setText(iRow, 1, m_pRule->evQual());
+	m_pTableProperties->setText(iRow++, 2, i18n("Expression tree (in the form of a nodeToString() representation) for the rule's qualifying condition"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pRule->nameSpace());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+	
+	m_pTextEditDefinition->setText(m_pRule->definition());
+}
+
+void KPGRulePropPage::slotSqlEditorSettingsChanged()
+{
+    m_pTextEditDefinition->setFont( KPoGreView::configuration()->sqleditor()->font() );
+    	
+    m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+// Consumes request for context menu for property table
+void KPGRulePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgruleproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Interface: kpgruleproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRULEPROPPAGE_H
+#define KPGRULEPROPPAGE_H
+
+#include "kpgruleproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+
+class KPGSyntaxHighlighter;
+class KPGRule;
+
+
+/**
+  * Table rules property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGRulePropPage : public KPGRulePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGRulePropPage(QWidget *, KPGRule *);
+    ~KPGRulePropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+	
+	KPGRule * m_pRule;
+	
+signals:
+            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);	
+	
+public slots:
+
+	// Changes syntax highlighting colors.
+	void slotSqlEditorSettingsChanged();
+	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+			
+protected:
+	// Syntax highlighter for rule definition 
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,91 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgruleproppagebase.ui'
+**
+** Created: Út dub 1 13:07:19 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgruleproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGRulePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGRulePropPageBase::KPGRulePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGRulePropPageBase" );
+    KPGRulePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGRulePropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 7 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGRulePropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGRulePropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTextEditDefinition = new QTextEdit( this, "m_pTextEditDefinition" );
+    m_pTextEditDefinition->setTextFormat( QTextEdit::PlainText );
+    m_pTextEditDefinition->setReadOnly( TRUE );
+
+    KPGRulePropPageBaseLayout->addWidget( m_pTextEditDefinition, 3, 0 );
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+
+    KPGRulePropPageBaseLayout->addWidget( textLabel2, 2, 0 );
+    languageChange();
+    resize( QSize(348, 440).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTextEditDefinition );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGRulePropPageBase::~KPGRulePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGRulePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Table rule properties" ) );
+    textLabel1->setText( tr2i18n( "&Rule properties:" ) );
+    textLabel2->setText( tr2i18n( "Rule &definition:" ) );
+}
+
+void KPGRulePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGRulePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgruleproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgruleproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,91 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGRulePropPageBase</class>
+<comment>Table rule properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGRulePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>348</width>
+            <height>440</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Table rule properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>7</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Rule properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTextEdit" row="3" column="0">
+            <property name="name">
+                <cstring>m_pTextEditDefinition</cstring>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="0">
+            <property name="name">
+                <cstring>textLabel2</cstring>
+            </property>
+            <property name="text">
+                <string>Rule &amp;definition:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTextEditDefinition</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGRulePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Implementation: kpgrulesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrulesfolderproppage.h"
+
+
+#include <qtable.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgrulesfolder.h"
+
+
+KPGRulesFolderPropPage::KPGRulesFolderPropPage(QWidget* parent, KPGRulesFolder * pRulesFolder)
+	: KPGPropertyPage(parent, "KPGRulesFolderPropPage")
+{
+	m_pRulesFolder = pRulesFolder;
+	displayProperties();
+}
+
+KPGRulesFolderPropPage::~KPGRulesFolderPropPage()
+{
+}
+
+void KPGRulesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Rules &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Is instead"));
+	pHeader->setLabel(nCol++, i18n("Event type"));
+	pHeader->setLabel(nCol++, i18n("Qualifying condition"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+	
+	KPGUtil::fillPropertiesTable(m_pRulesFolder->resultRules(), m_pTableItems);
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgrulesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgrulesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRULESFOLDERPROPPAGE_H
+#define KPGRULESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGRulesFolder;
+
+/**
+  * Rules folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGRulesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGRulesFolderPropPage(QWidget* parent, KPGRulesFolder *);
+    ~KPGRulesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+	KPGRulesFolder * m_pRulesFolder;
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,535 @@
+//
+// C++ Implementation: kpgschemaproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgschemaproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h> 
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <ktextedit.h>
+#include <klocale.h>
+#include <kcursor.h>
+#include <kdebug.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../kpgutil.h"
+
+KPGSchemaPropPage::KPGSchemaPropPage(QWidget *parent, KPGSchema * pSchema)
+ : KPGSchemaPropPageBase(parent, "KPGSchemaPropPage")
+{
+  	m_pSchema = pSchema;
+
+	m_pTabWidget->setTabIconSet(tabAggregates, QIconSet(*KPGTreeItem::m_pIconAggregate)); 
+	m_pTabWidget->setTabIconSet(tabConversions, QIconSet(*KPGTreeItem::m_pIconConversion));
+	m_pTabWidget->setTabIconSet(tabDomains, QIconSet(*KPGTreeItem::m_pIconDomain));
+	m_pTabWidget->setTabIconSet(tabFunctions, QIconSet(*KPGTreeItem::m_pIconFunctionC));
+	m_pTabWidget->setTabIconSet(tabOperatorClasses, QIconSet(*KPGTreeItem::m_pIconOperatorClass));
+	m_pTabWidget->setTabIconSet(tabOperators, QIconSet(*KPGTreeItem::m_pIconOperator));
+	m_pTabWidget->setTabIconSet(tabSequences, QIconSet(*KPGTreeItem::m_pIconSequence));
+	m_pTabWidget->setTabIconSet(tabTables, QIconSet(*KPGTreeItem::m_pIconTable));
+	m_pTabWidget->setTabIconSet(tabTypes, QIconSet(*KPGTreeItem::m_pIconTypeStandalone));
+	m_pTabWidget->setTabIconSet(tabViews, QIconSet(*KPGTreeItem::m_pIconView));
+  	m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png"))));
+  	
+  	m_bPageAggregatesDisplaied = false;
+	m_bPageConversionsDisplaied = false;
+	m_bPageDomainsDisplaied = false;
+	m_bPageFunctionsDisplaied = false;
+	m_bPageOperatorClassesDisplaied = false;
+	m_bPageOperatorsDisplaied = false;
+	m_bPageSequencesDisplaied = false;
+    m_bPageTablesDisplaied = false;
+    m_bPageTypesDisplaied = false;
+	m_bPageViewsDisplaied = false;
+	
+	displayProperties();
+}
+
+
+KPGSchemaPropPage::~KPGSchemaPropPage()
+{
+}
+
+// Display properties of underlying database object
+void KPGSchemaPropPage::displayProperties()
+{
+	//--- Header 
+	// field names
+  	QHeader* hHeader = m_pTableProperties->horizontalHeader();
+
+  	hHeader->setLabel(0, i18n("Name"));
+	hHeader->setLabel(1, i18n("Value"));
+	hHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSchema->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pSchema->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the schema"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pSchema->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the schema"));
+	
+	//--- ACL
+	setACL(m_pSchema->acl());
+	
+	//--- Can Create
+	m_pTableProperties->setText(iRow, 0, i18n("Can Create"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pSchema->canCreate() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Does current user have CREATE privilege for schema ? "));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pSchema->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the schema"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+
+void KPGSchemaPropPage::displayAggregates()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultAggregates(), m_pTableAggregates);
+	m_bPageAggregatesDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayConversions()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultConversions(), m_pTableConversions);
+	m_bPageConversionsDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayDomains()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultDomains(), m_pTableDomains);
+	m_bPageDomainsDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayFunctions()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultFunctions(), m_pTableFunctions, true, 13);
+	m_bPageFunctionsDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayOperatorClasses()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultOperatorClasses(), m_pTableOperatorClasses, false);
+	m_bPageOperatorClassesDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayOperators()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultOperators(), m_pTableOperators);
+	m_bPageOperatorsDisplaied = true;
+}
+
+void KPGSchemaPropPage::displaySequences()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultSequences(), m_pTableSequences);
+	m_bPageSequencesDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayTables()
+{
+	// Get pointer to server for version info
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (m_pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	int iColumns = 9;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+       iColumns += 1;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+		iColumns += 2;
+	}
+				
+	// fill properties table with result data
+	KPGUtil::fillPropertiesTable(m_pSchema->resultTables(), m_pTableTables, true, iColumns);
+	m_bPageTablesDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayTypes()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultTypes(), m_pTableTypes);
+	m_bPageTypesDisplaied = true;
+}
+
+void KPGSchemaPropPage::displayViews()
+{
+	KPGUtil::fillPropertiesTable(m_pSchema->resultViews(), m_pTableViews);
+	m_bPageViewsDisplaied = true;
+}
+
+void KPGSchemaPropPage::slotTablePropDblClicked(int iRow, int iCol, int, const QPoint &)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+				
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotCurrentTabChanged(QWidget *pPage)
+{
+	setCursor(KCursor::waitCursor());	
+		
+	if((pPage == tabAggregates) && (!m_bPageAggregatesDisplaied))
+		displayAggregates();	
+	else if((pPage == tabConversions) && (!m_bPageConversionsDisplaied))
+		displayConversions();
+	else if((pPage == tabDomains) && (!m_bPageDomainsDisplaied))
+		displayDomains();
+	else if((pPage == tabFunctions) && (!m_bPageFunctionsDisplaied))
+		displayFunctions();
+	else if((pPage == tabOperatorClasses) && (!m_bPageOperatorClassesDisplaied))
+	  displayOperatorClasses();
+	else if((pPage == tabOperators) && (!m_bPageOperatorsDisplaied))
+		displayOperators();
+	else if((pPage == tabSequences) && (!m_bPageSequencesDisplaied))
+	  displaySequences();
+	else if((pPage == tabTables) && (!m_bPageTablesDisplaied))
+		displayTables();	
+	else if((pPage == tabTypes) && (!m_bPageTypesDisplaied))
+		displayTypes();
+	else if((pPage == tabViews) && (!m_bPageViewsDisplaied))
+		displayViews();
+				
+	setCursor(KCursor::arrowCursor());
+}
+
+void KPGSchemaPropPage::slotTableAggregatesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableAggregates->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableConversionsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableConversions->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableDomainsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableDomains->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableFunctionsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableFunctions->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableOpClassesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableOperatorClasses->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableOperatorsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableOperators->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableSequencesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableSequences->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableTablesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableTables->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableTypesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableTypes->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::slotTableViewsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableViews->cellWidget(iRow, iCol);
+		if(w == 0)
+			return;
+					
+		KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+		pqxx::oid _oid = pLabel->oid();
+			
+		if(_oid != 0)
+			emit sigSearchObject(_oid);
+}
+
+void KPGSchemaPropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canCreate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(3, UserIcon((*it).canUse() ? "box_checked.png" : "box_clear.png"));
+			
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(4, UserIcon((*it).canGrantCreate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(5, UserIcon((*it).canGrantUse() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGSchemaPropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+  // Find KPGAclItem using pItem value
+  KPGAclItemList::iterator it;
+  for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+  {   
+    if(pItem == (*it).getListViewItem())
+    {
+      // found ...
+      
+      switch(iColumn)
+      {
+        case 0:
+        case 1: // do nothing on first 2 columns
+            break;
+        
+        case 2:
+            pItem->setPixmap(2, UserIcon((*it).toggleCreate() ? "box_checked.png" : "box_clear.png"));
+            break;
+       
+        case 3:
+            pItem->setPixmap(3, UserIcon((*it).toggleUse() ? "box_checked.png" : "box_clear.png"));
+            break;
+        
+        case 4:
+            if((*it).canPassGrantToOther())
+              pItem->setPixmap(4, UserIcon((*it).toggleGrantCreate() ? "box_checked.png" : "box_clear.png"));
+            
+            break;
+        
+        case 5:
+            if((*it).canPassGrantToOther())
+              pItem->setPixmap(5, UserIcon((*it).toggleGrantUse() ? "box_checked.png" : "box_clear.png"));
+            
+            break;
+            
+        default:
+            kdError() << k_funcinfo << " Unexpected column !" << endl;
+            break;      
+      }
+    
+      m_pPushButtonUpdateACL->setEnabled(true);
+      return;
+    }
+  }
+}
+
+void KPGSchemaPropPage::slotUpdateACL()
+{
+  QString strSQL;
+  
+  // Traverse all items and get their SQL's
+  KPGAclItemList::iterator it;
+  for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+  {   
+    strSQL.append((*it).getSQL("SCHEMA " + KPGUtil::quotedName(m_pSchema->text(0))));
+  }
+  
+  if(!strSQL.isEmpty())
+    emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGSchemaPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+// Return Result table for clipboard actions and export. 
+QTable* KPGSchemaPropPage::tableResult() 
+{ 
+	switch(m_pTabWidget->currentPageIndex())
+	{
+		case 0: return m_pTableProperties; 
+				break;
+				
+		case 1: return 0; 
+				break;
+				
+		case 2: return m_pTableAggregates; 
+				break;
+				
+		case 3: return m_pTableConversions; 
+				break;
+				
+		case 4: return m_pTableDomains; 
+				break;
+				
+		case 5: return m_pTableFunctions; 
+				break;
+								
+		case 6: return m_pTableOperatorClasses; 
+				break;	
+						
+		case 7: return m_pTableOperators; 
+				break;	
+				
+		case 8: return m_pTableSequences; 
+				break;	
+				
+		case 9: return m_pTableTables; 
+				break;	
+				
+		case 10: return m_pTableTypes; 
+				break;	
+				
+		case 11: return m_pTableViews; 
+				break;	
+	}
+	
+	return 0;
+}
+
+#include "kpgschemaproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,105 @@
+//
+// C++ Interface: kpgschemaproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSCHEMAPROPPAGE_H
+#define KPGSCHEMAPROPPAGE_H
+
+#include "kpgschemaproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGSchema;
+
+/**
+Schema properties
+
+ at author Lumir Vanek
+*/
+
+class KPGSchemaPropPage : public KPGSchemaPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGSchemaPropPage(QWidget *parent, KPGSchema *);
+    ~KPGSchemaPropPage();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult();
+	
+    void setACL(const QString &);
+    
+    // Display properties of underlying database object
+    void displayProperties();
+    
+protected:
+
+    void displayAggregates();
+	void displayConversions();
+	void displayDomains();
+	void displayFunctions();
+	void displayOperators();
+	void displayOperatorClasses();
+	void displaySequences();
+	void displayTables();
+	void displayTypes();
+	void displayViews();
+    
+protected:
+
+    KPGSchema *m_pSchema;
+    KPGAclItemList m_listOfAclItems;
+    
+    bool m_bPageTablesDisplaied;
+  	bool m_bPageViewsDisplaied;
+	bool m_bPageSequencesDisplaied;
+  	bool m_bPageFunctionsDisplaied;
+	bool m_bPageOperatorsDisplaied;
+	bool m_bPageOperatorClassesDisplaied;
+	bool m_bPageAggregatesDisplaied;
+	bool m_bPageDomainsDisplaied;
+	bool m_bPageTypesDisplaied;	
+	bool m_bPageConversionsDisplaied;
+    
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	virtual void slotCurrentTabChanged(QWidget *);
+    virtual void slotTableAggregatesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableConversionsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableDomainsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableFunctionsDblClicked(int, int, int, const QPoint &);
+	virtual void slotTableOpClassesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableOperatorsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableSequencesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableTablesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableTypesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableViewsDblClicked(int, int, int, const QPoint &);
+			            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+    
+signals:
+	void sigSearchObject(const pqxx::oid);
+	void sigRunWizard(const QString &); 
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,821 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgschemaproppagebase.ui'
+**
+** Created: Út dub 1 13:07:19 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgschemaproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <kpushbutton.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+#include "kpushbutton.h"
+#include "klistview.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGSchemaPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSchemaPropPageBase::KPGSchemaPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSchemaPropPageBase" );
+    KPGSchemaPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSchemaPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 5 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setShowGrid( TRUE );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSorting( FALSE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+    textLabel2->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel2, 0, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "USAGE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant CREATE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant USAGE" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    tabAggregates = new QWidget( m_pTabWidget, "tabAggregates" );
+    tabAggregatesLayout = new QGridLayout( tabAggregates, 1, 1, 11, 6, "tabAggregatesLayout"); 
+
+    textLabel1 = new QLabel( tabAggregates, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabAggregatesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableAggregates = new QTable( tabAggregates, "m_pTableAggregates" );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Aggregate function" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Transition function" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Final function" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Input type" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Transition type" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Return type" ) );
+    m_pTableAggregates->setNumCols( m_pTableAggregates->numCols() + 1 );
+    m_pTableAggregates->horizontalHeader()->setLabel( m_pTableAggregates->numCols() - 1, tr2i18n( "Initial value" ) );
+    m_pTableAggregates->setNumRows( m_pTableAggregates->numRows() + 1 );
+    m_pTableAggregates->verticalHeader()->setLabel( m_pTableAggregates->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableAggregates->setNumRows( m_pTableAggregates->numRows() + 1 );
+    m_pTableAggregates->verticalHeader()->setLabel( m_pTableAggregates->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableAggregates->setNumRows( m_pTableAggregates->numRows() + 1 );
+    m_pTableAggregates->verticalHeader()->setLabel( m_pTableAggregates->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableAggregates->setNumRows( 3 );
+    m_pTableAggregates->setNumCols( 10 );
+    m_pTableAggregates->setReadOnly( TRUE );
+    m_pTableAggregates->setSorting( FALSE );
+    m_pTableAggregates->setSelectionMode( QTable::SingleRow );
+
+    tabAggregatesLayout->addWidget( m_pTableAggregates, 1, 0 );
+    m_pTabWidget->insertTab( tabAggregates, QString::fromLatin1("") );
+
+    tabConversions = new QWidget( m_pTabWidget, "tabConversions" );
+    tabConversionsLayout = new QGridLayout( tabConversions, 1, 1, 11, 6, "tabConversionsLayout"); 
+
+    m_pTableConversions = new QTable( tabConversions, "m_pTableConversions" );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Is Default" ) );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Source encoding" ) );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Destination encoding" ) );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Conversion procedure" ) );
+    m_pTableConversions->setNumCols( m_pTableConversions->numCols() + 1 );
+    m_pTableConversions->horizontalHeader()->setLabel( m_pTableConversions->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableConversions->setNumRows( m_pTableConversions->numRows() + 1 );
+    m_pTableConversions->verticalHeader()->setLabel( m_pTableConversions->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableConversions->setNumRows( m_pTableConversions->numRows() + 1 );
+    m_pTableConversions->verticalHeader()->setLabel( m_pTableConversions->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableConversions->setNumRows( m_pTableConversions->numRows() + 1 );
+    m_pTableConversions->verticalHeader()->setLabel( m_pTableConversions->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableConversions->setNumRows( 3 );
+    m_pTableConversions->setNumCols( 6 );
+    m_pTableConversions->setReadOnly( TRUE );
+    m_pTableConversions->setSorting( FALSE );
+    m_pTableConversions->setSelectionMode( QTable::SingleRow );
+
+    tabConversionsLayout->addWidget( m_pTableConversions, 1, 0 );
+
+    textLabel8 = new QLabel( tabConversions, "textLabel8" );
+    textLabel8->setTextFormat( QLabel::PlainText );
+
+    tabConversionsLayout->addWidget( textLabel8, 0, 0 );
+    m_pTabWidget->insertTab( tabConversions, QString::fromLatin1("") );
+
+    tabDomains = new QWidget( m_pTabWidget, "tabDomains" );
+    tabDomainsLayout = new QGridLayout( tabDomains, 1, 1, 11, 6, "tabDomainsLayout"); 
+
+    m_pTableDomains = new QTable( tabDomains, "m_pTableDomains" );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Base type" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Type length" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Not null" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Default value" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Dimensions" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Array delimiter" ) );
+    m_pTableDomains->setNumCols( m_pTableDomains->numCols() + 1 );
+    m_pTableDomains->horizontalHeader()->setLabel( m_pTableDomains->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableDomains->setNumRows( m_pTableDomains->numRows() + 1 );
+    m_pTableDomains->verticalHeader()->setLabel( m_pTableDomains->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableDomains->setNumRows( m_pTableDomains->numRows() + 1 );
+    m_pTableDomains->verticalHeader()->setLabel( m_pTableDomains->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableDomains->setNumRows( m_pTableDomains->numRows() + 1 );
+    m_pTableDomains->verticalHeader()->setLabel( m_pTableDomains->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableDomains->setNumRows( 3 );
+    m_pTableDomains->setNumCols( 9 );
+    m_pTableDomains->setReadOnly( TRUE );
+    m_pTableDomains->setSorting( FALSE );
+    m_pTableDomains->setSelectionMode( QTable::SingleRow );
+
+    tabDomainsLayout->addWidget( m_pTableDomains, 1, 0 );
+
+    textLabel9 = new QLabel( tabDomains, "textLabel9" );
+    textLabel9->setTextFormat( QLabel::PlainText );
+
+    tabDomainsLayout->addWidget( textLabel9, 0, 0 );
+    m_pTabWidget->insertTab( tabDomains, QString::fromLatin1("") );
+
+    tabFunctions = new QWidget( m_pTabWidget, "tabFunctions" );
+    tabFunctionsLayout = new QGridLayout( tabFunctions, 1, 1, 11, 6, "tabFunctionsLayout"); 
+
+    m_pTableFunctions = new QTable( tabFunctions, "m_pTableFunctions" );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Aggregate" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Security definer" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Strict" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Return Set" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Volatile" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Arguments" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Bin" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Type name" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Language" ) );
+    m_pTableFunctions->setNumCols( m_pTableFunctions->numCols() + 1 );
+    m_pTableFunctions->horizontalHeader()->setLabel( m_pTableFunctions->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableFunctions->setNumRows( m_pTableFunctions->numRows() + 1 );
+    m_pTableFunctions->verticalHeader()->setLabel( m_pTableFunctions->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableFunctions->setNumRows( m_pTableFunctions->numRows() + 1 );
+    m_pTableFunctions->verticalHeader()->setLabel( m_pTableFunctions->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableFunctions->setNumRows( m_pTableFunctions->numRows() + 1 );
+    m_pTableFunctions->verticalHeader()->setLabel( m_pTableFunctions->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableFunctions->setNumRows( 3 );
+    m_pTableFunctions->setNumCols( 13 );
+    m_pTableFunctions->setReadOnly( TRUE );
+    m_pTableFunctions->setSelectionMode( QTable::SingleRow );
+
+    tabFunctionsLayout->addWidget( m_pTableFunctions, 1, 0 );
+
+    textLabel3 = new QLabel( tabFunctions, "textLabel3" );
+    textLabel3->setTextFormat( QLabel::PlainText );
+
+    tabFunctionsLayout->addWidget( textLabel3, 0, 0 );
+    m_pTabWidget->insertTab( tabFunctions, QString::fromLatin1("") );
+
+    tabOperatorClasses = new QWidget( m_pTabWidget, "tabOperatorClasses" );
+    tabOperatorClassesLayout = new QGridLayout( tabOperatorClasses, 1, 1, 11, 6, "tabOperatorClassesLayout"); 
+
+    m_pTableOperatorClasses = new QTable( tabOperatorClasses, "m_pTableOperatorClasses" );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Is Default" ) );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Data type" ) );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Key Type" ) );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Access method" ) );
+    m_pTableOperatorClasses->setNumCols( m_pTableOperatorClasses->numCols() + 1 );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( m_pTableOperatorClasses->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableOperatorClasses->setNumRows( m_pTableOperatorClasses->numRows() + 1 );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( m_pTableOperatorClasses->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableOperatorClasses->setNumRows( m_pTableOperatorClasses->numRows() + 1 );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( m_pTableOperatorClasses->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableOperatorClasses->setNumRows( m_pTableOperatorClasses->numRows() + 1 );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( m_pTableOperatorClasses->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableOperatorClasses->setNumRows( 3 );
+    m_pTableOperatorClasses->setNumCols( 6 );
+    m_pTableOperatorClasses->setReadOnly( TRUE );
+    m_pTableOperatorClasses->setSorting( FALSE );
+    m_pTableOperatorClasses->setSelectionMode( QTable::SingleRow );
+
+    tabOperatorClassesLayout->addWidget( m_pTableOperatorClasses, 1, 0 );
+
+    textLabel10 = new QLabel( tabOperatorClasses, "textLabel10" );
+    textLabel10->setTextFormat( QLabel::PlainText );
+
+    tabOperatorClassesLayout->addWidget( textLabel10, 0, 0 );
+    m_pTabWidget->insertTab( tabOperatorClasses, QString::fromLatin1("") );
+
+    tabOperators = new QWidget( m_pTabWidget, "tabOperators" );
+    tabOperatorsLayout = new QGridLayout( tabOperators, 1, 1, 11, 6, "tabOperatorsLayout"); 
+
+    m_pTableOperators = new QTable( tabOperators, "m_pTableOperators" );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Kind" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Can Hash" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Left Type" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Right Type" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Result Type" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Comutator" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Negator" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Left-hand" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Right-hand" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Less-than" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Greater-than" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Function" ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Restriction fnc." ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Join fnc." ) );
+    m_pTableOperators->setNumCols( m_pTableOperators->numCols() + 1 );
+    m_pTableOperators->horizontalHeader()->setLabel( m_pTableOperators->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableOperators->setNumRows( m_pTableOperators->numRows() + 1 );
+    m_pTableOperators->verticalHeader()->setLabel( m_pTableOperators->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableOperators->setNumRows( m_pTableOperators->numRows() + 1 );
+    m_pTableOperators->verticalHeader()->setLabel( m_pTableOperators->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableOperators->setNumRows( m_pTableOperators->numRows() + 1 );
+    m_pTableOperators->verticalHeader()->setLabel( m_pTableOperators->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableOperators->setNumRows( 3 );
+    m_pTableOperators->setNumCols( 17 );
+    m_pTableOperators->setReadOnly( TRUE );
+    m_pTableOperators->setSelectionMode( QTable::SingleRow );
+
+    tabOperatorsLayout->addWidget( m_pTableOperators, 1, 0 );
+
+    textLabel4 = new QLabel( tabOperators, "textLabel4" );
+    textLabel4->setTextFormat( QLabel::PlainText );
+
+    tabOperatorsLayout->addWidget( textLabel4, 0, 0 );
+    m_pTabWidget->insertTab( tabOperators, QString::fromLatin1("") );
+
+    tabSequences = new QWidget( m_pTabWidget, "tabSequences" );
+    tabSequencesLayout = new QGridLayout( tabSequences, 1, 1, 11, 6, "tabSequencesLayout"); 
+
+    m_pTableSequences = new QTable( tabSequences, "m_pTableSequences" );
+    m_pTableSequences->setNumCols( m_pTableSequences->numCols() + 1 );
+    m_pTableSequences->horizontalHeader()->setLabel( m_pTableSequences->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableSequences->setNumCols( m_pTableSequences->numCols() + 1 );
+    m_pTableSequences->horizontalHeader()->setLabel( m_pTableSequences->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableSequences->setNumCols( m_pTableSequences->numCols() + 1 );
+    m_pTableSequences->horizontalHeader()->setLabel( m_pTableSequences->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableSequences->setNumCols( m_pTableSequences->numCols() + 1 );
+    m_pTableSequences->horizontalHeader()->setLabel( m_pTableSequences->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableSequences->setNumRows( m_pTableSequences->numRows() + 1 );
+    m_pTableSequences->verticalHeader()->setLabel( m_pTableSequences->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableSequences->setNumRows( m_pTableSequences->numRows() + 1 );
+    m_pTableSequences->verticalHeader()->setLabel( m_pTableSequences->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableSequences->setNumRows( m_pTableSequences->numRows() + 1 );
+    m_pTableSequences->verticalHeader()->setLabel( m_pTableSequences->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableSequences->setNumRows( 3 );
+    m_pTableSequences->setNumCols( 4 );
+    m_pTableSequences->setReadOnly( TRUE );
+    m_pTableSequences->setSelectionMode( QTable::SingleRow );
+
+    tabSequencesLayout->addWidget( m_pTableSequences, 1, 0 );
+
+    textLabel5 = new QLabel( tabSequences, "textLabel5" );
+    textLabel5->setTextFormat( QLabel::PlainText );
+
+    tabSequencesLayout->addWidget( textLabel5, 0, 0 );
+    m_pTabWidget->insertTab( tabSequences, QString::fromLatin1("") );
+
+    tabTables = new QWidget( m_pTabWidget, "tabTables" );
+    tabTablesLayout = new QGridLayout( tabTables, 1, 1, 11, 6, "tabTablesLayout"); 
+
+    textLabel6 = new QLabel( tabTables, "textLabel6" );
+    textLabel6->setTextFormat( QLabel::PlainText );
+
+    tabTablesLayout->addWidget( textLabel6, 0, 0 );
+
+    m_pTableTables = new QTable( tabTables, "m_pTableTables" );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Has OIDs" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Has subclass" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Estimated rows" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Primary key name" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Primary key columns" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Tablespace" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Size" ) );
+    m_pTableTables->setNumCols( m_pTableTables->numCols() + 1 );
+    m_pTableTables->horizontalHeader()->setLabel( m_pTableTables->numCols() - 1, tr2i18n( "Total size" ) );
+    m_pTableTables->setNumRows( m_pTableTables->numRows() + 1 );
+    m_pTableTables->verticalHeader()->setLabel( m_pTableTables->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableTables->setNumRows( m_pTableTables->numRows() + 1 );
+    m_pTableTables->verticalHeader()->setLabel( m_pTableTables->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableTables->setNumRows( m_pTableTables->numRows() + 1 );
+    m_pTableTables->verticalHeader()->setLabel( m_pTableTables->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableTables->setNumRows( 3 );
+    m_pTableTables->setNumCols( 12 );
+    m_pTableTables->setReadOnly( TRUE );
+    m_pTableTables->setSelectionMode( QTable::SingleRow );
+
+    tabTablesLayout->addWidget( m_pTableTables, 1, 0 );
+    m_pTabWidget->insertTab( tabTables, QString::fromLatin1("") );
+
+    tabTypes = new QWidget( m_pTabWidget, "tabTypes" );
+    tabTypesLayout = new QGridLayout( tabTypes, 1, 1, 11, 6, "tabTypesLayout"); 
+
+    m_pTableTypes = new QTable( tabTypes, "m_pTableTypes" );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Type length" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "By value" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Is defined" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Array delimiter" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Align" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Storage" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Element" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Input function" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Output function" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Corresponding object" ) );
+    m_pTableTypes->setNumCols( m_pTableTypes->numCols() + 1 );
+    m_pTableTypes->horizontalHeader()->setLabel( m_pTableTypes->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableTypes->setNumRows( m_pTableTypes->numRows() + 1 );
+    m_pTableTypes->verticalHeader()->setLabel( m_pTableTypes->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableTypes->setNumRows( m_pTableTypes->numRows() + 1 );
+    m_pTableTypes->verticalHeader()->setLabel( m_pTableTypes->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableTypes->setNumRows( m_pTableTypes->numRows() + 1 );
+    m_pTableTypes->verticalHeader()->setLabel( m_pTableTypes->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableTypes->setNumRows( 3 );
+    m_pTableTypes->setNumCols( 14 );
+    m_pTableTypes->setReadOnly( TRUE );
+    m_pTableTypes->setSorting( FALSE );
+    m_pTableTypes->setSelectionMode( QTable::SingleRow );
+
+    tabTypesLayout->addWidget( m_pTableTypes, 1, 0 );
+
+    textLabel11 = new QLabel( tabTypes, "textLabel11" );
+    textLabel11->setTextFormat( QLabel::PlainText );
+
+    tabTypesLayout->addWidget( textLabel11, 0, 0 );
+    m_pTabWidget->insertTab( tabTypes, QString::fromLatin1("") );
+
+    tabViews = new QWidget( m_pTabWidget, "tabViews" );
+    tabViewsLayout = new QGridLayout( tabViews, 1, 1, 11, 6, "tabViewsLayout"); 
+
+    m_pTableViews = new QTable( tabViews, "m_pTableViews" );
+    m_pTableViews->setNumCols( m_pTableViews->numCols() + 1 );
+    m_pTableViews->horizontalHeader()->setLabel( m_pTableViews->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableViews->setNumCols( m_pTableViews->numCols() + 1 );
+    m_pTableViews->horizontalHeader()->setLabel( m_pTableViews->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableViews->setNumCols( m_pTableViews->numCols() + 1 );
+    m_pTableViews->horizontalHeader()->setLabel( m_pTableViews->numCols() - 1, tr2i18n( "Owner" ) );
+    m_pTableViews->setNumCols( m_pTableViews->numCols() + 1 );
+    m_pTableViews->horizontalHeader()->setLabel( m_pTableViews->numCols() - 1, tr2i18n( "ACL" ) );
+    m_pTableViews->setNumRows( m_pTableViews->numRows() + 1 );
+    m_pTableViews->verticalHeader()->setLabel( m_pTableViews->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableViews->setNumRows( m_pTableViews->numRows() + 1 );
+    m_pTableViews->verticalHeader()->setLabel( m_pTableViews->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableViews->setNumRows( m_pTableViews->numRows() + 1 );
+    m_pTableViews->verticalHeader()->setLabel( m_pTableViews->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableViews->setNumRows( 3 );
+    m_pTableViews->setNumCols( 4 );
+    m_pTableViews->setReadOnly( TRUE );
+    m_pTableViews->setSelectionMode( QTable::SingleRow );
+
+    tabViewsLayout->addWidget( m_pTableViews, 1, 0 );
+
+    textLabel7 = new QLabel( tabViews, "textLabel7" );
+    textLabel7->setTextFormat( QLabel::PlainText );
+
+    tabViewsLayout->addWidget( textLabel7, 0, 0 );
+    m_pTabWidget->insertTab( tabViews, QString::fromLatin1("") );
+
+    KPGSchemaPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(677, 411).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTabWidget, SIGNAL( currentChanged(QWidget*) ), this, SLOT( slotCurrentTabChanged(QWidget*) ) );
+    connect( m_pTableAggregates, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableAggregatesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableConversions, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableConversionsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableDomains, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableDomainsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableFunctions, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableFunctionsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableOperatorClasses, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableOpClassesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableOperators, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableOperatorsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableSequences, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableSequencesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableTables, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableTablesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableTypes, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableTypesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableViews, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableViewsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableAggregates, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableConversions, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableDomains, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableFunctions, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableOperatorClasses, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableOperators, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableSequences, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableTables, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableTypes, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableViews, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel2->setBuddy( m_pTableProperties );
+    textLabel1_3->setBuddy( m_pListViewACL );
+    textLabel1->setBuddy( m_pTableAggregates );
+    textLabel8->setBuddy( m_pTableConversions );
+    textLabel9->setBuddy( m_pTableDomains );
+    textLabel3->setBuddy( m_pTableFunctions );
+    textLabel10->setBuddy( m_pTableOperatorClasses );
+    textLabel4->setBuddy( m_pTableOperators );
+    textLabel5->setBuddy( m_pTableSequences );
+    textLabel6->setBuddy( m_pTableTables );
+    textLabel11->setBuddy( m_pTableTypes );
+    textLabel7->setBuddy( m_pTableViews );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSchemaPropPageBase::~KPGSchemaPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSchemaPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Schema properties" ) );
+    textLabel2->setText( tr2i18n( "&Properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "USAGE" ) );
+    m_pListViewACL->header()->setLabel( 4, tr2i18n( "Grant CREATE" ) );
+    m_pListViewACL->header()->setLabel( 5, tr2i18n( "Grant USAGE" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+    textLabel1->setText( tr2i18n( "&Aggregates:" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 1, tr2i18n( "Aggregate function" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 2, tr2i18n( "Owner" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 3, tr2i18n( "Description" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 4, tr2i18n( "Transition function" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 5, tr2i18n( "Final function" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 6, tr2i18n( "Input type" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 7, tr2i18n( "Transition type" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 8, tr2i18n( "Return type" ) );
+    m_pTableAggregates->horizontalHeader()->setLabel( 9, tr2i18n( "Initial value" ) );
+    m_pTableAggregates->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableAggregates->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableAggregates->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTabWidget->changeTab( tabAggregates, tr2i18n( "Aggregates" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 1, tr2i18n( "Is Default" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 2, tr2i18n( "Source encoding" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 3, tr2i18n( "Destination encoding" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 4, tr2i18n( "Conversion procedure" ) );
+    m_pTableConversions->horizontalHeader()->setLabel( 5, tr2i18n( "Owner" ) );
+    m_pTableConversions->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableConversions->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableConversions->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel8->setText( tr2i18n( "&Conversions:" ) );
+    m_pTabWidget->changeTab( tabConversions, tr2i18n( "Conversions" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 2, tr2i18n( "Base type" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 3, tr2i18n( "Type length" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 4, tr2i18n( "Not null" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 5, tr2i18n( "Default value" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 6, tr2i18n( "Dimensions" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 7, tr2i18n( "Array delimiter" ) );
+    m_pTableDomains->horizontalHeader()->setLabel( 8, tr2i18n( "Owner" ) );
+    m_pTableDomains->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableDomains->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableDomains->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel9->setText( tr2i18n( "&Domains:" ) );
+    m_pTabWidget->changeTab( tabDomains, tr2i18n( "Domains" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 2, tr2i18n( "Aggregate" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 3, tr2i18n( "Security definer" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 4, tr2i18n( "Strict" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 5, tr2i18n( "Return Set" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 6, tr2i18n( "Volatile" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 7, tr2i18n( "Arguments" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 8, tr2i18n( "Bin" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 9, tr2i18n( "ACL" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 10, tr2i18n( "Type name" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 11, tr2i18n( "Language" ) );
+    m_pTableFunctions->horizontalHeader()->setLabel( 12, tr2i18n( "Owner" ) );
+    m_pTableFunctions->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableFunctions->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableFunctions->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel3->setText( tr2i18n( "&Functions:" ) );
+    m_pTabWidget->changeTab( tabFunctions, tr2i18n( "Functions" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 1, tr2i18n( "Is Default" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 2, tr2i18n( "Data type" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 3, tr2i18n( "Key Type" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 4, tr2i18n( "Access method" ) );
+    m_pTableOperatorClasses->horizontalHeader()->setLabel( 5, tr2i18n( "Owner" ) );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableOperatorClasses->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel10->setText( tr2i18n( "&Operator Classes:" ) );
+    m_pTabWidget->changeTab( tabOperatorClasses, tr2i18n( "Operator Classes" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 2, tr2i18n( "Kind" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 3, tr2i18n( "Can Hash" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 4, tr2i18n( "Left Type" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 5, tr2i18n( "Right Type" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 6, tr2i18n( "Result Type" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 7, tr2i18n( "Comutator" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 8, tr2i18n( "Negator" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 9, tr2i18n( "Left-hand" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 10, tr2i18n( "Right-hand" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 11, tr2i18n( "Less-than" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 12, tr2i18n( "Greater-than" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 13, tr2i18n( "Function" ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 14, tr2i18n( "Restriction fnc." ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 15, tr2i18n( "Join fnc." ) );
+    m_pTableOperators->horizontalHeader()->setLabel( 16, tr2i18n( "Owner" ) );
+    m_pTableOperators->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableOperators->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableOperators->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel4->setText( tr2i18n( "&Operators:" ) );
+    m_pTabWidget->changeTab( tabOperators, tr2i18n( "Operators" ) );
+    m_pTableSequences->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableSequences->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableSequences->horizontalHeader()->setLabel( 2, tr2i18n( "Owner" ) );
+    m_pTableSequences->horizontalHeader()->setLabel( 3, tr2i18n( "ACL" ) );
+    m_pTableSequences->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableSequences->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableSequences->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel5->setText( tr2i18n( "&Sequences:" ) );
+    m_pTabWidget->changeTab( tabSequences, tr2i18n( "Sequences" ) );
+    textLabel6->setText( tr2i18n( "&Tables:" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 2, tr2i18n( "Owner" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 3, tr2i18n( "Has OIDs" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 4, tr2i18n( "Has subclass" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 5, tr2i18n( "Estimated rows" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 6, tr2i18n( "Primary key name" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 7, tr2i18n( "Primary key columns" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 8, tr2i18n( "ACL" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 9, tr2i18n( "Tablespace" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 10, tr2i18n( "Size" ) );
+    m_pTableTables->horizontalHeader()->setLabel( 11, tr2i18n( "Total size" ) );
+    m_pTableTables->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableTables->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableTables->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTabWidget->changeTab( tabTables, tr2i18n( "Tables" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 2, tr2i18n( "Type" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 3, tr2i18n( "Type length" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 4, tr2i18n( "By value" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 5, tr2i18n( "Is defined" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 6, tr2i18n( "Array delimiter" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 7, tr2i18n( "Align" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 8, tr2i18n( "Storage" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 9, tr2i18n( "Element" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 10, tr2i18n( "Input function" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 11, tr2i18n( "Output function" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 12, tr2i18n( "Corresponding object" ) );
+    m_pTableTypes->horizontalHeader()->setLabel( 13, tr2i18n( "Owner" ) );
+    m_pTableTypes->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableTypes->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableTypes->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel11->setText( tr2i18n( "&Types:" ) );
+    m_pTabWidget->changeTab( tabTypes, tr2i18n( "Types" ) );
+    m_pTableViews->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableViews->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableViews->horizontalHeader()->setLabel( 2, tr2i18n( "Owner" ) );
+    m_pTableViews->horizontalHeader()->setLabel( 3, tr2i18n( "ACL" ) );
+    m_pTableViews->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableViews->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableViews->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel7->setText( tr2i18n( "&Views:" ) );
+    m_pTabWidget->changeTab( tabViews, tr2i18n( "Views" ) );
+}
+
+void KPGSchemaPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotCurrentTabChanged(QWidget*)
+{
+    qWarning( "KPGSchemaPropPageBase::slotCurrentTabChanged(QWidget*): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableAggregatesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableAggregatesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableConversionsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableConversionsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableDomainsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableDomainsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableFunctionsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableFunctionsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableOpClassesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableOpClassesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableOperatorsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableOperatorsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableSequencesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableSequencesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableTablesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableTablesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableTypesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableTypesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTableViewsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTableViewsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGSchemaPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGSchemaPropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGSchemaPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGSchemaPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgschemaproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgschemaproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1839 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSchemaPropPageBase</class>
+<comment>Schema properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSchemaPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>677</width>
+            <height>411</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Schema properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>5</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="showGrid">
+                            <bool>true</bool>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>USAGE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant USAGE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabAggregates</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Aggregates</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Aggregates:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableAggregates</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Aggregate function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Transition function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Final function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Input type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Transition type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Return type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Initial value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableAggregates</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>10</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabConversions</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Conversions</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Default</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Source encoding</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Destination encoding</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Conversion procedure</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableConversions</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel8</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Conversions:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableConversions</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabDomains</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Domains</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Base type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type length</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Not null</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Default value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Dimensions</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Array delimiter</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableDomains</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>9</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel9</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Domains:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableDomains</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabFunctions</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Functions</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Aggregate</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Security definer</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Strict</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Return Set</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Volatile</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Arguments</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Bin</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Language</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableFunctions</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>13</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Functions:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableFunctions</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabOperatorClasses</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Operator Classes</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Default</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Data type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Key Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Access method</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableOperatorClasses</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel10</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Operator Classes:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableOperatorClasses</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabOperators</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Operators</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Kind</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Can Hash</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Left Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Right Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Result Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Comutator</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Negator</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Left-hand</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Right-hand</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Less-than</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Greater-than</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Restriction fnc.</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Join fnc.</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableOperators</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>17</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Operators:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableOperators</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabSequences</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Sequences</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableSequences</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>4</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel5</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Sequences:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableSequences</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabTables</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Tables</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel6</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Tables:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableTables</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Has OIDs</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Has subclass</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Estimated rows</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Primary key name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Primary key columns</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Tablespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Size</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Total size</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableTables</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>12</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabTypes</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Types</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type length</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>By value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is defined</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Array delimiter</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Align</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Storage</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Element</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Input function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Output function</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Corresponding object</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableTypes</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>14</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel11</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Types:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableTypes</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabViews</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Views</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Owner</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>ACL</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableViews</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>4</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel7</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Views:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableViews</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTabWidget</sender>
+        <signal>currentChanged(QWidget*)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotCurrentTabChanged(QWidget*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableAggregates</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableAggregatesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableConversions</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableConversionsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableDomains</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableDomainsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableFunctions</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableFunctionsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableOperatorClasses</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableOpClassesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableOperators</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableOperatorsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableSequences</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableSequencesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTables</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableTablesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTypes</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableTypesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableViews</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTableViewsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableAggregates</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableConversions</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableDomains</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableFunctions</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableOperatorClasses</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableOperators</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableSequences</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTables</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTypes</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableViews</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSchemaPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotCurrentTabChanged( QWidget *)</slot>
+    <slot access="protected">slotTableAggregatesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableConversionsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableDomainsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableFunctionsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableOpClassesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableOperatorsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableSequencesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableTablesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableTypesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableViewsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,369 @@
+//
+// C++ Implementation: kpgsequenceproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsequenceproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include "../kpgsqldialog.h"
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgsequence.h"
+#include "../DbObjects/kpgschema.h"
+#include "../kpgsqldialog.h"
+#include "../kpgutil.h"
+
+
+KPGSequencePropPage::KPGSequencePropPage(QWidget *parent, KPGSequence *pSequence)
+ : KPGSequencePropPageBase(parent, "KPGSequencePropPage")
+{
+  m_pSequence = pSequence;
+
+  m_pTabWidget->setTabIconSet(tabStatistics, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+  m_pButtonRefresh->setIconSet(QIconSet(QPixmap(BarIcon("reload.png")))); 
+  m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png")))); 
+  
+  displayProperties();
+}
+
+
+KPGSequencePropPage::~KPGSequencePropPage()
+{
+}
+
+void KPGSequencePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+	
+	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pSequence->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the sequence"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pSequence->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the sequence"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pSequence->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the sequence"));
+	
+	//--- ACL
+	setACL(m_pSequence->acl());
+	
+	//--- Last value
+	m_pTableProperties->setText(iRow, 0, i18n("Last value"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->lastValue()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Last counter value"));
+	
+	//--- Minimum value
+	m_pTableProperties->setText(iRow, 0, i18n("Minimum value"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->minValue()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Minimum counter value"));
+	
+	//--- Maximum value
+	m_pTableProperties->setText(iRow, 0, i18n("Maximum value"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->maxValue()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Maximum counter value"));
+	
+	//--- Cache value
+	m_pTableProperties->setText(iRow, 0, i18n("Cache value"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->cacheValue()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Cache counter value"));
+	
+	//--- Is Cycled
+	m_pTableProperties->setText(iRow, 0, i18n("Is Cycled"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pSequence->isCycled() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True, if counter value is cycled, when reaching max. value"));
+	
+	//--- Increment By
+	m_pTableProperties->setText(iRow, 0, i18n("Increment By"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pSequence->incrementBy()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Increment value for sequence"));
+		
+				
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+  
+    displayIoStatistics();
+}
+
+void KPGSequencePropPage::displayIoStatistics()
+{
+    QHeader* pHeader = m_pTableIoStatistics->horizontalHeader();
+    
+    pHeader->setLabel(0, i18n("Name"));
+    pHeader->setLabel(1, i18n("Value"));
+    pHeader->setLabel(2, i18n("Description"));
+    
+    try
+    {
+        pqxx::result pqxxResultStatistics = m_pSequence->queryIoStatistics();
+    
+        if(pqxxResultStatistics.size() != 1)
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+        }
+        
+        if(m_pSequence->text(0) != pqxxResultStatistics[0]["relname"].c_str())
+        {
+            kdDebug() << k_funcinfo <<  ": sequence name not match" << endl;
+            return;
+        }
+        
+        int iRow = 0;
+        
+        //--- blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("blks_read"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["blks_read"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Total number of disc blocks read"));
+        
+        //--- blks_hit
+        m_pTableIoStatistics->setText(iRow, 0, i18n("blks_hit"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["blks_hit"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of buffer hits"));
+        
+    }
+    catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+    
+    for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableIoStatistics->adjustColumn(nCol);
+    }
+}
+
+void KPGSequencePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGSequencePropPage::slotRefreshStatistics()
+{
+  	displayIoStatistics();
+}
+
+void KPGSequencePropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(3, UserIcon((*it).canInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(4, UserIcon((*it).canUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(5, UserIcon((*it).canDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(6, UserIcon((*it).canCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(7, UserIcon((*it).canCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(8, UserIcon((*it).canCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+		
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(9, UserIcon((*it).canGrantSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(10, UserIcon((*it).canGrantInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(11, UserIcon((*it).canGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(12, UserIcon((*it).canGrantDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(13, UserIcon((*it).canGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(14, UserIcon((*it).canGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(15, UserIcon((*it).canGrantCreateTrigger() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGSequencePropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleSelect() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				pItem->setPixmap(3, UserIcon((*it).toggleInsert() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 4:
+				pItem->setPixmap(4, UserIcon((*it).toggleUpdate() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 5:
+				pItem->setPixmap(5, UserIcon((*it).toggleDelete() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 6:
+				pItem->setPixmap(6, UserIcon((*it).toggleCreateRule() ? "box_checked.png" : "box_clear.png"));
+				break;         
+				
+			case 7:
+				pItem->setPixmap(7, UserIcon((*it).toggleCreateReference() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 8:
+				pItem->setPixmap(8, UserIcon((*it).toggleCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				break;
+						
+			case 9:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(9, UserIcon((*it).toggleGrantSelect() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 10:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(10, UserIcon((*it).toggleGrantInsert() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 11:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(11, UserIcon((*it).toggleGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 12:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(12, UserIcon((*it).toggleGrantDelete() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 13:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(13, UserIcon((*it).toggleGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+				
+				break;         
+				
+			case 14:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(14, UserIcon((*it).toggleGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 15:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(15, UserIcon((*it).toggleGrantCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				
+				break;    
+				
+			default:
+					kdError() << k_funcinfo << " Unexpected column !" << endl;
+					break;      
+		}
+		
+		m_pPushButtonUpdateACL->setEnabled(true);
+		return;
+		}
+	}
+}
+
+void KPGSequencePropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (m_pSequence->parent()->parent());
+		
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("TABLE " + KPGUtil::fullyQualifiedName(pSchema->text(0), m_pSequence->text(0))));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGSequencePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgsequenceproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+//
+// C++ Interface: kpgsequenceproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSEQUENCEPROPPAGE_H
+#define KPGSEQUENCEPROPPAGE_H
+
+#include "kpgsequenceproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGSequence;
+
+/**
+  * Sequence properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGSequencePropPage : public KPGSequencePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGSequencePropPage(QWidget *parent, KPGSequence *);
+    ~KPGSequencePropPage();
+        
+    // Display properties of underlying database object    
+    virtual void displayProperties();
+  	void displayIoStatistics();    
+        
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	    
+    void setACL(const QString &);
+    
+protected:
+
+    KPGSequence *m_pSequence;
+    KPGAclItemList m_listOfAclItems;
+    
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);
+		            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+		
+	virtual void slotRefreshStatistics();
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+    
+signals:
+
+	void sigSearchObject(const pqxx::oid);
+	
+    void sigRunWizard(const QString &);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,218 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgsequenceproppagebase.ui'
+**
+** Created: Út dub 1 13:07:20 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsequenceproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <kpushbutton.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+#include "klistview.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGSequencePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSequencePropPageBase::KPGSequencePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSequencePropPageBase" );
+    KPGSequencePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSequencePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant TRIGGER" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    tabStatistics = new QWidget( m_pTabWidget, "tabStatistics" );
+    tabStatisticsLayout = new QGridLayout( tabStatistics, 1, 1, 11, 6, "tabStatisticsLayout"); 
+
+    m_pTableIoStatistics = new QTable( tabStatistics, "m_pTableIoStatistics" );
+    m_pTableIoStatistics->setNumRows( 2 );
+    m_pTableIoStatistics->setNumCols( 3 );
+    m_pTableIoStatistics->setReadOnly( TRUE );
+    m_pTableIoStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableIoStatistics, 1, 1, 0, 1 );
+
+    textLabel1_2 = new QLabel( tabStatistics, "textLabel1_2" );
+
+    tabStatisticsLayout->addMultiCellWidget( textLabel1_2, 0, 0, 0, 1 );
+
+    m_pButtonRefresh = new KPushButton( tabStatistics, "m_pButtonRefresh" );
+
+    tabStatisticsLayout->addWidget( m_pButtonRefresh, 2, 0 );
+    spacer1 = new QSpacerItem( 257, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabStatisticsLayout->addItem( spacer1, 2, 1 );
+    m_pTabWidget->insertTab( tabStatistics, QString::fromLatin1("") );
+
+    KPGSequencePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(621, 361).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefresh, SIGNAL( clicked() ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel1_3->setBuddy( m_pListViewACL );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSequencePropPageBase::~KPGSequencePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSequencePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Sequence properties" ) );
+    textLabel1->setText( tr2i18n( "&Sequence properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setLabel( 4, tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 5, tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setLabel( 6, tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setLabel( 7, tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 8, tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setLabel( 9, tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->header()->setLabel( 10, tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->header()->setLabel( 11, tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 12, tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->header()->setLabel( 13, tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->header()->setLabel( 14, tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 15, tr2i18n( "Grant TRIGGER" ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+    textLabel1_2->setText( tr2i18n( "Sequence I/O statistics:" ) );
+    m_pButtonRefresh->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefresh->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabStatistics, tr2i18n( "Statistics" ) );
+}
+
+void KPGSequencePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGSequencePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGSequencePropPageBase::slotRefreshStatistics()
+{
+    qWarning( "KPGSequencePropPageBase::slotRefreshStatistics(): Not implemented yet" );
+}
+
+void KPGSequencePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGSequencePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGSequencePropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGSequencePropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGSequencePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGSequencePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgsequenceproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequenceproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,428 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSequencePropPageBase</class>
+<comment>Sequence properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSequencePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>621</width>
+            <height>361</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Sequence properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>10</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Sequence properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabStatistics</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Statistics</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>2</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Sequence I/O statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefresh</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="2" column="1">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>257</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSequencePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefresh</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSequencePropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGSequencePropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSequencePropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGSequencePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshStatistics()</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,47 @@
+//
+// C++ Implementation: kpgsequencesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsequencesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgsequencesfolder.h"
+
+
+KPGSequencesFolderPropPage::KPGSequencesFolderPropPage(QWidget* parent, KPGSequencesFolder * pSequencesFolder )
+	: KPGPropertyPage(parent, "KPGSequencesFolderPropPage")
+{
+	m_pSequencesFolder = pSequencesFolder;
+	displayProperties();
+}
+
+KPGSequencesFolderPropPage::~KPGSequencesFolderPropPage()
+{
+}
+
+void KPGSequencesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Sequences &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+	pHeader->setLabel(nCol++, i18n("ACL"));
+	
+	KPGUtil::fillPropertiesTable(m_pSequencesFolder->resultSequences(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgsequencesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgsequencesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSEQUENCESFOLDERPROPPAGE_H
+#define KPGSEQUENCESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGSequencesFolder;
+
+/**
+  * Sequences folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGSequencesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGSequencesFolderPropPage(QWidget*, KPGSequencesFolder *);
+    ~KPGSequencesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGSequencesFolder * m_pSequencesFolder;
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,217 @@
+/***************************************************************************
+                          kpgserverproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgserverproppage.h"
+
+// include files for Qt
+#include <qtextcodec.h>
+#include <qstring.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+
+#include <ktabwidget.h>
+
+// include files for KDE
+#include <kiconloader.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgserver.h"
+#include "../kpgsqldialog.h"
+
+KPGServerPropPage::KPGServerPropPage(QWidget *parent, KPGServer *pServer)
+ : KPGServerPropPageBase(parent, "KPGServerPropPage")
+{
+	m_pServer = pServer;
+  	m_pTableDatabases->verticalHeader()->setResizeEnabled( false );
+  
+  	m_pTabWidget->setTabIconSet(tabActivity, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+  
+  	m_pButtonRefresh->setIconSet(QIconSet(QPixmap(BarIcon("reload.png")))); 
+  	m_pButtonCopySql->setIconSet(QIconSet(QPixmap(BarIcon("editcopy.png")))); 
+  	m_pButtonCancelQuery->setIconSet(QIconSet(QPixmap(BarIcon("stop.png")))); 
+  	
+  	displayProperties();
+}
+
+
+KPGServerPropPage::~KPGServerPropPage()
+{
+}
+
+void KPGServerPropPage::displayProperties()
+{
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	int iColumns = 9;
+	
+	// Is it 8.0 or newer ?
+	if(m_pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((m_pServer->versionMajor() == 8) && (m_pServer->versionMiddle() >= 1)) || ((m_pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+		iColumns += 1;
+	}
+	
+	// Display server properties
+	setVersionInfo(m_pServer->versionInfo());
+	m_ptextLabelConnectionEncoding->setText(m_pServer->connection()->clientEncoding());
+	
+	//----------------------------------------------------------------------------
+	int nTableCols = KPGUtil::fillPropertiesTable(m_pServer->resultDatabases(), m_pTableDatabases, true, iColumns);
+	
+	// field names
+	QHeader* pHeader = m_pTableDatabases->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+	
+	if(m_pServer->versionMajor() <= 7)
+		pHeader->setLabel(nCol++, i18n("Path"));
+	else
+		pHeader->setLabel(nCol++, i18n("Tablespace"));
+		
+	pHeader->setLabel(nCol++, i18n("Encoding"));
+	
+	if(bVersion81_OrNewer) 
+  	{
+  		pHeader->setLabel(nCol++, i18n("Size"));
+  	}
+	
+	pHeader->setLabel(nCol++, i18n("Can create"));
+	pHeader->setLabel(nCol++, i18n("Default variables"));
+	pHeader->setLabel(nCol++, i18n("Allow connection"));
+	pHeader->setLabel(nCol++, i18n("Is template"));
+	pHeader->setLabel(nCol++, i18n("ACL"));
+		
+		
+	for(int nCol = 0; nCol < nTableCols; nCol++)
+	{
+		m_pTableDatabases->adjustColumn(nCol);
+	}
+	
+	displayActivity();
+}
+
+void KPGServerPropPage::displayActivity()
+{
+	try
+	{
+		pqxx::result pqxxResultActivity = m_pServer->queryActivity();
+		
+		// fill properties table with result data
+		int nTableCols = KPGUtil::fillPropertiesTable(pqxxResultActivity, m_pTableActivity);
+		
+		// field names
+		QHeader* pHeader = m_pTableActivity->horizontalHeader();
+	
+		int nCol = 0;
+		pHeader->setLabel(nCol++, i18n("Database"));
+		pHeader->setLabel(nCol++, i18n("Process ID"));
+		pHeader->setLabel(nCol++, i18n("User"));
+		pHeader->setLabel(nCol++, i18n("Current query"));
+		pHeader->setLabel(nCol++, i18n("Query start"));
+		
+		for(int nCol = 0; nCol < nTableCols; nCol++)
+		{
+		    m_pTableActivity->adjustColumn(nCol);
+		}
+	
+	}
+	catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+}
+
+void KPGServerPropPage::setVersionInfo(const QString & strVersionInfo)
+{
+	m_pLineEditVersion->setText(strVersionInfo);
+}
+
+void KPGServerPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableDatabases->cellWidget(iRow, iCol);
+    if(w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+      emit sigSearchObject(_oid);
+}
+
+void KPGServerPropPage::slotRefreshActivity()
+{
+	displayActivity();
+}
+
+void KPGServerPropPage::slotCopySql()
+{
+	int currentRow = m_pTableActivity->currentRow();
+	if(currentRow < 0) return;
+	
+	QString sqlQuery = m_pTableActivity->text(currentRow, 3);
+	
+	QApplication::clipboard()->setText(sqlQuery);
+}
+
+void KPGServerPropPage::slotCancelQuery()
+{
+	int currentRow = m_pTableActivity->currentRow();
+	if(currentRow < 0) return;
+	
+	QString strPID = m_pTableActivity->text(currentRow, 1);
+	bool bOk;
+	int iPID = strPID.toInt(&bOk);
+	
+	if (KMessageBox::questionYesNo(this, i18n("Cancel a backend's current query for PID %1 ?").arg(iPID)) != KMessageBox::Yes) return;
+	
+	try
+	{
+		bool bResult = m_pServer->cancelBackend(iPID);
+		if(bResult)
+			slotRefreshActivity();
+	}
+	catch (const std::exception &e)
+    {
+        QTextCodec *pTextCodec = QTextCodec::codecForLocale(); 
+		KMessageBox::sorry(this, pTextCodec->toUnicode(e.what()));
+    }
+}
+
+// Consumes request for context menu for property table
+void KPGServerPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgserverproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+/***************************************************************************
+                          kpgserverproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGSERVERPROPPAGE_H
+#define KPGSERVERPROPPAGE_H
+
+#include "kpgserverproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGServer;
+
+/**
+  * PostgreSQL Database server property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGServerPropPage : public KPGServerPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGServerPropPage(QWidget *parent, KPGServer *);
+    ~KPGServerPropPage();
+		
+	// Display properties of underlying database object
+	void displayProperties();
+    void displayActivity();	
+		
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableDatabases; }
+		
+	void setVersionInfo(const QString &);
+    
+protected:
+
+    KPGServer *m_pServer;
+    
+protected slots:
+    
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &);  
+                
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+    virtual void slotRefreshActivity();
+    virtual void slotCopySql();
+    virtual void slotCancelQuery();
+    
+signals:
+
+    void sigSearchObject(const pqxx::oid);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,179 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgserverproppagebase.ui'
+**
+** Created: Út dub 1 13:07:20 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgserverproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qtable.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGServerPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGServerPropPageBase::KPGServerPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGServerPropPageBase" );
+    KPGServerPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGServerPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pLineEditVersion = new KLineEdit( tabProperties, "m_pLineEditVersion" );
+    m_pLineEditVersion->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pLineEditVersion, 1, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTableDatabases = new QTable( tabProperties, "m_pTableDatabases" );
+    m_pTableDatabases->setNumRows( 3 );
+    m_pTableDatabases->setNumCols( 3 );
+    m_pTableDatabases->setReadOnly( TRUE );
+    m_pTableDatabases->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableDatabases, 3, 0 );
+
+    layout2 = new QHBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1_3 = new QLabel( tabProperties, "textLabel1_3" );
+    layout2->addWidget( textLabel1_3 );
+
+    m_ptextLabelConnectionEncoding = new QLabel( tabProperties, "m_ptextLabelConnectionEncoding" );
+    layout2->addWidget( m_ptextLabelConnectionEncoding );
+    spacer2 = new QSpacerItem( 41, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout2->addItem( spacer2 );
+
+    tabPropertiesLayout->addLayout( layout2, 4, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabActivity = new QWidget( m_pTabWidget, "tabActivity" );
+    tabActivityLayout = new QGridLayout( tabActivity, 1, 1, 11, 6, "tabActivityLayout"); 
+
+    textLabel1_2 = new QLabel( tabActivity, "textLabel1_2" );
+
+    tabActivityLayout->addMultiCellWidget( textLabel1_2, 0, 0, 0, 3 );
+
+    m_pTableActivity = new QTable( tabActivity, "m_pTableActivity" );
+    m_pTableActivity->setNumRows( 3 );
+    m_pTableActivity->setNumCols( 3 );
+    m_pTableActivity->setReadOnly( TRUE );
+    m_pTableActivity->setSelectionMode( QTable::SingleRow );
+
+    tabActivityLayout->addMultiCellWidget( m_pTableActivity, 1, 1, 0, 3 );
+
+    m_pButtonRefresh = new KPushButton( tabActivity, "m_pButtonRefresh" );
+
+    tabActivityLayout->addWidget( m_pButtonRefresh, 2, 0 );
+
+    m_pButtonCopySql = new KPushButton( tabActivity, "m_pButtonCopySql" );
+
+    tabActivityLayout->addWidget( m_pButtonCopySql, 2, 1 );
+    spacer1 = new QSpacerItem( 120, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabActivityLayout->addItem( spacer1, 2, 3 );
+
+    m_pButtonCancelQuery = new KPushButton( tabActivity, "m_pButtonCancelQuery" );
+
+    tabActivityLayout->addWidget( m_pButtonCancelQuery, 2, 2 );
+    m_pTabWidget->insertTab( tabActivity, QString::fromLatin1("") );
+
+    KPGServerPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(450, 405).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableDatabases, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefresh, SIGNAL( clicked() ), this, SLOT( slotRefreshActivity() ) );
+    connect( m_pButtonCopySql, SIGNAL( clicked() ), this, SLOT( slotCopySql() ) );
+    connect( m_pTableDatabases, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pButtonCancelQuery, SIGNAL( clicked() ), this, SLOT( slotCancelQuery() ) );
+
+    // buddies
+    textLabel1_2->setBuddy( m_pTableActivity );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGServerPropPageBase::~KPGServerPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGServerPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "DB Server properties" ) );
+    textLabel1->setText( tr2i18n( "Database server:" ) );
+    textLabel2->setText( tr2i18n( "Databases:" ) );
+    textLabel1_3->setText( tr2i18n( "Connection client encoding:" ) );
+    m_ptextLabelConnectionEncoding->setText( QString::null );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    textLabel1_2->setText( tr2i18n( "Server processes:" ) );
+    m_pButtonRefresh->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefresh->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pButtonCopySql->setText( tr2i18n( "&Copy query" ) );
+    m_pButtonCopySql->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pButtonCancelQuery->setText( tr2i18n( "C&ancel query" ) );
+    m_pButtonCancelQuery->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pTabWidget->changeTab( tabActivity, tr2i18n( "Activity" ) );
+}
+
+void KPGServerPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGServerPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGServerPropPageBase::slotRefreshActivity()
+{
+    qWarning( "KPGServerPropPageBase::slotRefreshActivity(): Not implemented yet" );
+}
+
+void KPGServerPropPageBase::slotCopySql()
+{
+    qWarning( "KPGServerPropPageBase::slotCopySql(): Not implemented yet" );
+}
+
+void KPGServerPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGServerPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGServerPropPageBase::slotCancelQuery()
+{
+    qWarning( "KPGServerPropPageBase::slotCancelQuery(): Not implemented yet" );
+}
+
+#include "kpgserverproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgserverproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,266 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGServerPropPageBase</class>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGServerPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>450</width>
+            <height>405</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>DB Server properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Database server:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pLineEditVersion</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Databases:</string>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pTableDatabases</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLayoutWidget" row="4" column="0">
+                        <property name="name">
+                            <cstring>layout2</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1_3</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Connection client encoding:</string>
+                                </property>
+                            </widget>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>m_ptextLabelConnectionEncoding</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <spacer>
+                                <property name="name">
+                                    <cstring>spacer2</cstring>
+                                </property>
+                                <property name="orientation">
+                                    <enum>Horizontal</enum>
+                                </property>
+                                <property name="sizeType">
+                                    <enum>Expanding</enum>
+                                </property>
+                                <property name="sizeHint">
+                                    <size>
+                                        <width>41</width>
+                                        <height>20</height>
+                                    </size>
+                                </property>
+                            </spacer>
+                        </hbox>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabActivity</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Activity</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="4">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Server processes:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableActivity</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0" rowspan="1" colspan="4">
+                        <property name="name">
+                            <cstring>m_pTableActivity</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefresh</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="2" column="1">
+                        <property name="name">
+                            <cstring>m_pButtonCopySql</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Copy query</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+C</string>
+                        </property>
+                    </widget>
+                    <spacer row="2" column="3">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>120</width>
+                                <height>20</height>
+                            </size>
+                        </property>
+                    </spacer>
+                    <widget class="KPushButton" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pButtonCancelQuery</cstring>
+                        </property>
+                        <property name="text">
+                            <string>C&amp;ancel query</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+A</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableDatabases</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGServerPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefresh</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGServerPropPageBase</receiver>
+        <slot>slotRefreshActivity()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCopySql</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGServerPropPageBase</receiver>
+        <slot>slotCopySql()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableDatabases</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGServerPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCancelQuery</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGServerPropPageBase</receiver>
+        <slot>slotCancelQuery()</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshActivity()</slot>
+    <slot access="protected">slotCopySql()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotCancelQuery()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,175 @@
+/***************************************************************************
+                          kpgtablecolumnproppage  -  description
+                             -------------------
+    begin                : So no 7 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgtablecolumnproppage.h"
+
+#include <qtable.h>  
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtablecolumn.h"
+
+
+KPGTableColumnPropPage::KPGTableColumnPropPage(QWidget *parent, KPGTableColumn * pTableColumn)
+ : KPGTableColumnPropPageBase(parent, "KPGTableColumnPropPage")
+{
+	m_pTableColumn = pTableColumn;
+	displayProperties();
+}
+
+
+KPGTableColumnPropPage::~KPGTableColumnPropPage()
+{
+}
+
+void KPGTableColumnPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTableColumn->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("The column name"));
+	
+	//--- Type Name
+	m_pTableProperties->setText(iRow, 0, i18n("Type"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Type" );
+	pLabel->setValues(m_pTableColumn->oidType(), m_pTableColumn->typName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("The column type"));
+	
+	//--- Created as
+	m_pTableProperties->setText(iRow, 0, i18n("Created as"));
+	m_pTableProperties->setText(iRow, 1, m_pTableColumn->createdAs());
+	m_pTableProperties->setText(iRow++, 2, i18n("The column type specified in CREATE TABLE statement"));
+		
+	//--- Type length
+	m_pTableProperties->setText(iRow, 0, i18n("Type length"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->attLen()));
+	m_pTableProperties->setText(iRow++, 2, i18n("For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a \"varlena\" type (one that has a length word), -2 indicates a null-terminated C string."));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pTableColumn->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the column"));
+	
+	//--- Statistics target
+	m_pTableProperties->setText(iRow, 0, i18n("Statistics target"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->statTarget()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Controls the level of detail of statistics accumulated for this column by ANALYZE. A zero value indicates that no statistics should be collected. A negative value says to use the system default statistics target. The exact meaning of positive values is data type-dependent. For scalar data types, attstattarget is both the target number of \"most common values\" to collect, and the target number of histogram bins to create."));
+	
+	
+	//--- Attribute number
+	m_pTableProperties->setText(iRow, 0, i18n("Attribute number"));
+  m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->attNum()));
+	m_pTableProperties->setText(iRow++, 2, i18n("The number of the column. Ordinary columns are numbered from 1 up. System columns, such as oid, have (arbitrary) negative numbers."));
+	
+	//--- Number of dimensions
+	m_pTableProperties->setText(iRow, 0, i18n("Number of dimensions"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->attNdims()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of dimensions, if the column is an array type; otherwise 0. (Presently, the number of dimensions of an array is not enforced, so any nonzero value effectively means \"it's an array\".) "));
+	
+	//--- Type mode
+	m_pTableProperties->setText(iRow, 0, i18n("Type mode"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->attTypmod()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Records type-specific data supplied at type creation time (for example, the maximum length of a varchar column). It is passed to \
+type-specific input functions and length coercion functions. The value will generally be -1 for types that do not need atttypmod. "));
+	
+	//--- By Value
+	m_pTableProperties->setText(iRow, 0, i18n("By value"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pTableColumn->byValue() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Determines whether internal routines pass a value of this type by value or by reference. It had better be false if typlen is not 1, 2, or 4 (or 8 on machines where Date is 8 bytes). Variable-length types are always passed by reference. Note that typbyval can be false even if the length would allow pass-by-value; this is currently true for type float4, for example."));
+	
+	//--- Not null
+	m_pTableProperties->setText(iRow, 0, i18n("Not null"));
+  m_pTableProperties->setPixmap(iRow, 1, m_pTableColumn->isNotNull() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This represents a not-null constraint. It is possible to change this column to enable or disable the constraint."));
+	
+	//--- Not null
+	m_pTableProperties->setText(iRow, 0, i18n("Has default"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pTableColumn->hasDefault() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This column has a default value, in which case there will be a \
+	corresponding entry in the pg_attrdef catalog that actually defines the value."));
+	
+	//--- Is dropped
+	m_pTableProperties->setText(iRow, 0, i18n("Is dropped"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pTableColumn->isDropped() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This column has been dropped and is no longer \
+	valid. A dropped column is still physically present in the table, but is ignored by \
+	the parser and so cannot be accessed via SQL."));
+	
+	//--- Is local
+	m_pTableProperties->setText(iRow, 0, i18n("Is local"));
+  	m_pTableProperties->setPixmap(iRow, 1, m_pTableColumn->isLocal() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("This column is defined locally in the relation. Note that a column may be locally defined and inherited simultaneously. "));
+  
+	//--- Storage
+	m_pTableProperties->setText(iRow, 0, i18n("Storage"));
+	m_pTableProperties->setText(iRow, 1, m_pTableColumn->storage());
+	m_pTableProperties->setText(iRow++, 2, i18n("Column storage. For TOAST-able data types, this can be altered after column creation to control storage policy."));
+	
+	//--- Type mode
+	m_pTableProperties->setText(iRow, 0, i18n("Inherited count"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTableColumn->inhCount()));
+	m_pTableProperties->setText(iRow++, 2, i18n("The number of direct ancestors this column has. A column with a nonzero number of ancestors cannot be dropped nor renamed. "));
+	
+	//--- Default value
+	m_pTableProperties->setText(iRow, 0, i18n("Default value"));
+  	m_pTableProperties->setText(iRow, 1, m_pTableColumn->defaultValue());
+	m_pTableProperties->setText(iRow++, 2, i18n("A human-readable representation of the default value"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pTableColumn->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the datatype namespace"));
+
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGTableColumnPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGTableColumnPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgtablecolumnproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+/***************************************************************************
+                          kpgtablecolumnproppage  -  description
+                             -------------------
+    begin                : So no 7 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGTABLECOLUMNPROPPAGE_H
+#define KPGTABLECOLUMNPROPPAGE_H
+
+#include "kpgtablecolumnproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGTableColumn;
+
+/**
+  * Table column property page
+  *
+  * @author Lumir Vanek
+*/
+class KPGTableColumnPropPage : public KPGTableColumnPropPageBase, public KPGAbstractPropertyPage
+{
+    Q_OBJECT
+public:
+    KPGTableColumnPropPage(QWidget *parent, KPGTableColumn *);
+    ~KPGTableColumnPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGTableColumn * m_pTableColumn;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+signals:
+
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtablecolumnproppagebase.ui'
+**
+** Created: Út dub 1 13:07:20 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtablecolumnproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGTableColumnPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTableColumnPropPageBase::KPGTableColumnPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTableColumnPropPageBase" );
+    KPGTableColumnPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTableColumnPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGTableColumnPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 18 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGTableColumnPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(389, 464).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTableColumnPropPageBase::~KPGTableColumnPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTableColumnPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Table column Properties" ) );
+    textLabel1->setText( tr2i18n( "&Column properties:" ) );
+}
+
+void KPGTableColumnPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTableColumnPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTableColumnPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTableColumnPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgtablecolumnproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTableColumnPropPageBase</class>
+<comment>Table column property page</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTableColumnPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>389</width>
+            <height>464</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Table column Properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Column properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>18</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTableColumnPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTableColumnPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,63 @@
+//
+// C++ Implementation: kpgtablecolumnsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablecolumnsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+
+KPGTableColumnsFolderPropPage::KPGTableColumnsFolderPropPage(QWidget* parent, KPGTableColumnsFolder *pTableColumnsFolder)
+	: KPGPropertyPage(parent, "KPGTableColumnsFolderPropPage")
+{
+	m_pTableColumnsFolder = pTableColumnsFolder;
+	displayProperties();
+}
+
+
+KPGTableColumnsFolderPropPage::~KPGTableColumnsFolderPropPage()
+{
+}
+
+void KPGTableColumnsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Columns &list:"));
+		
+	// field names
+  	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Type"));
+	pHeader->setLabel(nCol++, i18n("Type length"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Statistics target"));
+	pHeader->setLabel(nCol++, i18n("Attribute number"));
+	pHeader->setLabel(nCol++, i18n("Dimensions"));
+	pHeader->setLabel(nCol++, i18n("Type mode"));
+	pHeader->setLabel(nCol++, i18n("By value"));
+	pHeader->setLabel(nCol++, i18n("Not null"));
+	pHeader->setLabel(nCol++, i18n("Has default"));
+	pHeader->setLabel(nCol++, i18n("Is dropped"));
+	pHeader->setLabel(nCol++, i18n("Is local"));
+	pHeader->setLabel(nCol++, i18n("Storage"));
+	pHeader->setLabel(nCol++, i18n("Inherited count"));
+	pHeader->setLabel(nCol++, i18n("Default value"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+
+	KPGUtil::fillPropertiesTable(m_pTableColumnsFolder->resultColumns(), m_pTableItems);
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablecolumnsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtablecolumnsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLECOLUMNSFOLDERPROPPAGE_H
+#define KPGTABLECOLUMNSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTableColumnsFolder;
+
+/**
+  * Table columns folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTableColumnsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTableColumnsFolderPropPage(QWidget* parent, KPGTableColumnsFolder *);
+    ~KPGTableColumnsFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTableColumnsFolder * m_pTableColumnsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Implementation: kpgtableconstraintsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableconstraintsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtableconstraintsfolder.h"
+
+KPGTableConstraintsFolderPropPage::KPGTableConstraintsFolderPropPage(QWidget* parent, KPGTableConstraintsFolder * pTableConstraintsFolder)
+	: KPGPropertyPage(parent, "KPGTableConstraintsFolderPropPage")
+{
+	m_pTableConstraintsFolder = pTableConstraintsFolder;
+	displayProperties();
+}
+
+
+KPGTableConstraintsFolderPropPage::~KPGTableConstraintsFolderPropPage()
+{
+}
+
+void KPGTableConstraintsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Constraints &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Type"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Id Deferrable"));
+	pHeader->setLabel(nCol++, i18n("Is Deferred"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+  
+  	KPGUtil::fillPropertiesTable(m_pTableConstraintsFolder->resultConstraints(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableconstraintsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtableconstraintsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLECONSTRAINTSFOLDERPROPPAGE_H
+#define KPGTABLECONSTRAINTSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTableConstraintsFolder;
+
+/**
+  * Table constraints folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTableConstraintsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTableConstraintsFolderPropPage(QWidget* parent, KPGTableConstraintsFolder *);
+    ~KPGTableConstraintsFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+
+protected:
+
+	KPGTableConstraintsFolder * m_pTableConstraintsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,77 @@
+//
+// C++ Implementation: kpgtableindexesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtableindexesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgtableindexesfolder.h"
+
+
+KPGTableIndexesFolderPropPage::KPGTableIndexesFolderPropPage(QWidget* parent, KPGTableIndexesFolder * pTableIndexesFolder)
+	: KPGPropertyPage(parent, "KPGTableIndexesFolderPropPage")
+{
+	m_pTableIndexesFolder = pTableIndexesFolder;
+	displayProperties();
+}
+
+
+KPGTableIndexesFolderPropPage::~KPGTableIndexesFolderPropPage()
+{
+}
+
+void KPGTableIndexesFolderPropPage::displayProperties()
+{
+	// Get pointer to server for version info
+	//                      table   -> tblfold-> schema ->database->server 
+	KPGServer *pServer = static_cast <KPGServer *> (m_pTableIndexesFolder->parent()->parent()->parent()->parent()->parent());
+	
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	int iColumns = 7;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+       iColumns += 1;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+		iColumns += 1;
+	}
+	
+	setLabelText(i18n("Endexes &list:"));
+		
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+	int nCol = 0;
+  	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Type"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Index key"));
+	pHeader->setLabel(nCol++, i18n("Is Unique"));
+	pHeader->setLabel(nCol++, i18n("Is Primary"));
+	pHeader->setLabel(nCol++, i18n("Is Clustered"));
+	if(bVersion80_OrNewer) pHeader->setLabel(nCol++, i18n("Tablespace"));
+	if(bVersion81_OrNewer) pHeader->setLabel(nCol++, i18n("Size"));
+		
+	KPGUtil::fillPropertiesTable(m_pTableIndexesFolder->resultIndexes(), m_pTableItems, true, iColumns);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableindexesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtableindexesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLEINDEXESFOLDERPROPPAGE_H
+#define KPGTABLEINDEXESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTableIndexesFolder;
+
+/**
+  * Table indexes folder properties
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTableIndexesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTableIndexesFolderPropPage(QWidget* parent, KPGTableIndexesFolder *);
+    ~KPGTableIndexesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTableIndexesFolder * m_pTableIndexesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,694 @@
+/***************************************************************************
+                          kpgtableproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgtableproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <klocale.h>
+#include <kcursor.h>
+#include <kdebug.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgschema.h"
+#include "../kpgutil.h"
+#include "../kpgsqldialog.h"
+
+
+KPGTablePropPage::KPGTablePropPage(QWidget *parent, KPGTable *pTable)
+ : KPGTablePropPageBase(parent, "KPGTablePropPage")
+{
+  	m_pTable = pTable;
+  
+	m_pTabWidget->setTabIconSet(tabColumns, QIconSet(*KPGTreeItem::m_pIconColumnOther)); 
+	m_pTabWidget->setTabIconSet(tabConstraints, QIconSet(*KPGTreeItem::m_pIconPrimaryKeyConstr)); 
+	m_pTabWidget->setTabIconSet(tabIndexes, QIconSet(*KPGTreeItem::m_pIconIndex)); 
+	m_pTabWidget->setTabIconSet(tabRules, QIconSet(*KPGTreeItem::m_pIconRule)); m_pTabWidget->setTabIconSet(tabTriggers, QIconSet(*KPGTreeItem::m_pIconTrigger)); 
+	m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png")))); 
+	m_pTabWidget->setTabIconSet(tabStatistics, QIconSet(QPixmap(SmallIcon("ksysguard.png")))); 
+	m_pButtonRefresh->setIconSet(QIconSet(QPixmap(BarIcon("reload.png")))); 
+	
+	m_bPageColumnsDisplaied = false;
+    m_bPageConstraintsDisplaied = false;
+    m_bPageIndexesDisplaied = false;
+    m_bPageRulesDisplaied = false;
+    m_bPageTriggersDisplaied = false;
+    m_bPageStatisticsDisplaied = false;
+    
+    displayProperties();
+}
+
+KPGTablePropPage::~KPGTablePropPage()
+{
+}
+
+void KPGTablePropPage::displayProperties()
+{
+	
+	// Get pointer to server for version info
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (m_pTable->parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+	}
+	
+	//--- Header field names
+  	QHeader* hHeader = m_pTableProperties->horizontalHeader();
+
+  	hHeader->setLabel(0, i18n("Name"));
+	hHeader->setLabel(1, i18n("Value"));
+	hHeader->setLabel(2, i18n("Description"));
+		
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTable->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTable->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the table"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pTable->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the table"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pTable->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the table"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Kind"));
+	m_pTableProperties->setText(iRow, 1, m_pTable->kind());
+	m_pTableProperties->setText(iRow++, 2, i18n("Kind of the table"));
+	
+	//--- ACL
+	setACL(m_pTable->acl());
+	
+	//--- Has OIDs
+	m_pTableProperties->setText(iRow, 0, i18n("Has OIDs"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pTable->hasOids()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if we generate an OID for each row of the relation."));
+	
+	//--- Has subclass
+	m_pTableProperties->setText(iRow, 0, i18n("Has subclass"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pTable->hasSubclass()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("At least one table inherits from this one"));
+	
+	//--- Estimated rows
+	m_pTableProperties->setText(iRow, 0, i18n("Estimated rows"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTable->estimatedRows()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of rows in the table. This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and CREATE INDEX. "));
+	
+	//--- Primary key name
+	m_pTableProperties->setText(iRow, 0, i18n("Primary key name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTable->primaryKeyName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Primary key name"));
+	
+	//--- Primary key columns
+	m_pTableProperties->setText(iRow, 0, i18n("Primary key columns"));
+  	m_pTableProperties->setText(iRow, 1, m_pTable->primaryKeyColNumbers());
+	m_pTableProperties->setText(iRow++, 2, i18n("Primary key columns numbers"));
+	
+    //--- Tablespace
+	m_pTableProperties->setText(iRow, 0, i18n("Tablespace"));
+	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Tablespace" );
+	pLabel->setValues(m_pTable->oidTablespace(), m_pTable->tablespace());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Tablespace name"));
+	
+	//--- Toast table
+	m_pTableProperties->setText(iRow, 0, i18n("Toast table"));
+	pLabel = new KPGLinkLabel( m_pTableProperties, "Toast table" );
+	pLabel->setValues(m_pTable->oidToastTable(), m_pTable->toastTable());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n(" TOAST table associated with this table. The TOAST table stores large attributes \"out of line\" in a secondary table."));
+	
+	//--- Pretty size of table
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, m_pTable->prettySize());
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the table"));
+	
+	//--- Pretty total size
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded total size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, m_pTable->prettySizeTotal());
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the table, including indexes and toasted data"));
+	
+	//--- Exact size of table
+	m_pTableProperties->setText(iRow, 0, i18n("Exact size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, QString("%L1 B").arg(m_pTable->size()));
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the table"));
+	
+	//--- Exact total size
+	m_pTableProperties->setText(iRow, 0, i18n("Exact total size"));
+	if(bVersion81_OrNewer)
+	 	m_pTableProperties->setText(iRow, 1, QString("%L1 B").arg(m_pTable->sizeTotal()));
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the table, including indexes and toasted data"));
+
+		
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGTablePropPage::displayColumns()
+{
+	KPGUtil::fillPropertiesTable(m_pTable->resultColumns(), m_pTableColumns);
+	m_bPageColumnsDisplaied = true;
+}
+
+void KPGTablePropPage::displayConstraints()
+{
+	KPGUtil::fillPropertiesTable(m_pTable->resultConstraints(), m_pTableConstraints);
+	m_bPageConstraintsDisplaied = true;
+}
+
+void KPGTablePropPage::displayIndexes()
+{
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (m_pTable->parent()->parent()->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	// fill properties table with result data
+	KPGUtil::fillPropertiesTable(m_pTable->resultIndexes(), m_pTableIndexes, true, (pServer->versionMajor() >= 8) ? 8 : 7);
+	m_bPageIndexesDisplaied = true;
+}
+
+void KPGTablePropPage::displayRules()
+{
+	KPGUtil::fillPropertiesTable(m_pTable->resultRules(), m_pTableRules);
+	m_bPageRulesDisplaied = true;
+}
+
+void KPGTablePropPage::displayTriggers()
+{
+	KPGUtil::fillPropertiesTable(m_pTable->resultTriggers(), m_pTableTriggers);
+	m_bPageTriggersDisplaied = false;
+}
+
+void KPGTablePropPage::displayStatistics()
+{
+    try
+    {
+        pqxx::result pqxxResultStatistics = m_pTable->queryStatistics();
+    
+        if(pqxxResultStatistics.size() != 1)
+        {
+        	kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+        	return;
+        }
+        
+        if(m_pTable->text(0) != pqxxResultStatistics[0]["relname"].c_str())
+        {
+        	kdDebug() << k_funcinfo << " table name not match" << endl;
+        	return;
+        }
+        
+        int iRow = 0;
+        
+        //--- seq_scan
+        m_pTableStatistics->setText(iRow, 0, i18n("seq_scan"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["seq_scan"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of sequential scans"));
+        
+        //--- seq_scan
+        m_pTableStatistics->setText(iRow, 0, i18n("seq_tup_read"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["seq_tup_read"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples read"));
+        
+        //--- idx_scan
+        m_pTableStatistics->setText(iRow, 0, i18n("idx_scan"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_scan"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of index scans"));
+        
+        //--- idx_scan
+        m_pTableStatistics->setText(iRow, 0, i18n("idx_tup_fetch"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_tup_fetch"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of index tuples read"));
+        
+        //--- n_tup_ins
+        m_pTableStatistics->setText(iRow, 0, i18n("n_tup_ins"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["n_tup_ins"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples inserted"));
+        
+        //--- n_tup_upd
+        m_pTableStatistics->setText(iRow, 0, i18n("n_tup_upd"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["n_tup_upd"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples updated"));
+        
+        //--- n_tup_del
+        m_pTableStatistics->setText(iRow, 0, i18n("n_tup_del"));
+        m_pTableStatistics->setText(iRow, 1, pqxxResultStatistics[0]["n_tup_del"].c_str());
+        m_pTableStatistics->setText(iRow++, 2, i18n("Total number of tuples deleted"));
+        
+    	for(int nCol = 0; nCol < 3; nCol++)
+		{
+			m_pTableStatistics->adjustColumn(nCol);
+		}
+    }
+    catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+}
+
+void KPGTablePropPage::displayIoStatistics()
+{
+    try
+    {
+        pqxx::result pqxxResultStatistics = m_pTable->queryIoStatistics();
+    
+        if(pqxxResultStatistics.size() != 1) // TODO querying pq_xactloct return no rows... Why ?
+        {
+            kdError() << k_funcinfo "Expect one row in result !" <<  endl;
+            return;
+        }
+        
+        if(m_pTable->text(0) != pqxxResultStatistics[0]["relname"].c_str())
+        {
+            kdDebug() << k_funcinfo << " table name not match" << endl;
+            return;
+        }
+        
+        int iRow = 0;
+        
+        //--- heap_blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("heap_blks_read"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["heap_blks_read"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Total number of disc blocks read"));
+        
+        //--- heap_blks_hit
+        m_pTableIoStatistics->setText(iRow, 0, i18n("heap_blks_hit"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["heap_blks_hit"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of buffer hits"));
+        
+        //--- idx_blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_read"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_read"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Total number of disc block read"));
+        
+        //--- idx_blks_hit
+        m_pTableIoStatistics->setText(iRow, 0, i18n("idx_blks_hit"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["idx_blks_hit"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of buffer hits in all indexes"));
+        
+        //--- toast_blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("toast_blks_read"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["toast_blks_read"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of disc block read from table auxiliary TOAST table"));
+        
+        //--- n_tup_upd
+        m_pTableIoStatistics->setText(iRow, 0, i18n("toast_blks_hit"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["toast_blks_hit"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of bufer hits from table auxiliary TOAST table"));
+        
+        //--- tidx_blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("tidx_blks_read"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["tidx_blks_read"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of disc block read from table auxiliary TOAST table's index"));
+        
+        //--- tidx_blks_read
+        m_pTableIoStatistics->setText(iRow, 0, i18n("tidx_blks_hit"));
+        m_pTableIoStatistics->setText(iRow, 1, pqxxResultStatistics[0]["tidx_blks_hit"].c_str());
+        m_pTableIoStatistics->setText(iRow++, 2, i18n("Number of bufer hits from table auxiliary TOAST table's index"));
+        
+        for(int nCol = 0; nCol < 3; nCol++)
+		{
+			m_pTableStatistics->adjustColumn(nCol);
+		}
+    }
+    catch (const KPGSqlException &e)
+	{
+	   KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	}
+}
+
+void KPGTablePropPage::slotTablePropDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+    if(w == 0)
+      return;
+          
+    KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+    pqxx::oid _oid = pLabel->oid();
+      
+    if(_oid != 0)
+      emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotTableColumnsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableColumns->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotTableConstraintsDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableConstraints->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotTableIndexesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableIndexes->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotTableRulesDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableRules->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotTableTriggersDblClicked(int iRow, int iCol, int, const QPoint&)
+{
+    QWidget *w = m_pTableTriggers->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+void KPGTablePropPage::slotRefreshStatistics()
+{
+	displayStatistics();
+	displayIoStatistics();
+}
+
+void KPGTablePropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(3, UserIcon((*it).canInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(4, UserIcon((*it).canUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(5, UserIcon((*it).canDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(6, UserIcon((*it).canCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(7, UserIcon((*it).canCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(8, UserIcon((*it).canCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+		
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(9, UserIcon((*it).canGrantSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(10, UserIcon((*it).canGrantInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(11, UserIcon((*it).canGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(12, UserIcon((*it).canGrantDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(13, UserIcon((*it).canGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(14, UserIcon((*it).canGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(15, UserIcon((*it).canGrantCreateTrigger() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGTablePropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleSelect() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				pItem->setPixmap(3, UserIcon((*it).toggleInsert() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 4:
+				pItem->setPixmap(4, UserIcon((*it).toggleUpdate() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 5:
+				pItem->setPixmap(5, UserIcon((*it).toggleDelete() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 6:
+				pItem->setPixmap(6, UserIcon((*it).toggleCreateRule() ? "box_checked.png" : "box_clear.png"));
+				break;         
+				
+			case 7:
+				pItem->setPixmap(7, UserIcon((*it).toggleCreateReference() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 8:
+				pItem->setPixmap(8, UserIcon((*it).toggleCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				break;
+						
+			case 9:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(9, UserIcon((*it).toggleGrantSelect() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 10:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(10, UserIcon((*it).toggleGrantInsert() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 11:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(11, UserIcon((*it).toggleGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 12:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(12, UserIcon((*it).toggleGrantDelete() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 13:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(13, UserIcon((*it).toggleGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+				
+				break;         
+				
+			case 14:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(14, UserIcon((*it).toggleGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 15:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(15, UserIcon((*it).toggleGrantCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				
+				break;    
+				
+			default:
+					kdError() << k_funcinfo << " Unexpected column !" << endl;
+					break;      
+		}
+		
+		m_pPushButtonUpdateACL->setEnabled(true);
+		return;
+		}
+	}
+}
+
+void KPGTablePropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (m_pTable->parent()->parent());
+		
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("TABLE " + KPGUtil::fullyQualifiedName(pSchema->text(0), m_pTable->text(0))));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGTablePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+// Return Result table for clipboard actions and export. 
+QTable* KPGTablePropPage::tableResult() 
+{ 
+	switch(m_pTabWidget->currentPageIndex())
+	{
+		case 0: return m_pTableProperties; 
+				break;
+				
+		case 1: return 0; 
+				break;
+				
+		case 2: return m_pTableColumns; 
+				break;
+				
+		case 3: return m_pTableConstraints; 
+				break;
+				
+		case 4: return m_pTableIndexes; 
+				break;
+				
+		case 5: return m_pTableRules; 
+				break;
+								
+		case 6: return m_pTableTriggers; 
+				break;	
+						
+		case 7: return 0; 
+				break;	
+	}
+	
+	return 0;
+}
+
+void KPGTablePropPage::slotCurrentTabChanged(QWidget *pPropertyPage)
+{	
+	setCursor(KCursor::waitCursor());
+
+	if((pPropertyPage == tabColumns) && (!m_bPageColumnsDisplaied))
+	   displayColumns();
+	else if((pPropertyPage == tabConstraints) && (!m_bPageConstraintsDisplaied))
+	   displayConstraints();
+	if((pPropertyPage == tabIndexes) && (!m_bPageIndexesDisplaied))
+		displayIndexes();
+	if((pPropertyPage == tabRules) && (!m_bPageRulesDisplaied))
+	   displayRules();   
+	if((pPropertyPage == tabTriggers) && (!m_bPageTriggersDisplaied))
+	   displayTriggers();
+	if((pPropertyPage == tabStatistics) && (!m_bPageStatisticsDisplaied))
+	   slotRefreshStatistics();     
+	   
+	setCursor(KCursor::arrowCursor());	
+}
+
+#include "kpgtableproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+/***************************************************************************
+                          kpgtableproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGTABLEPROPPAGE_H
+#define KPGTABLEPROPPAGE_H
+
+#include "kpgtableproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGTable;
+
+/**
+  * Table properties Page
+  *
+  * @author Lumir Vanek
+  */
+class KPGTablePropPage : public KPGTablePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGTablePropPage(QWidget *parent, KPGTable *);
+    ~KPGTablePropPage();
+    
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult();
+	
+	// Display properties of underlying database object
+    virtual void displayProperties();
+    
+protected:
+
+    void setACL(const QString &);
+    
+    void displayColumns();	
+	void displayConstraints();
+	void displayIndexes();	
+	void displayRules();	
+	void displayTriggers();
+	
+	void displayStatistics();
+	void displayIoStatistics();
+
+protected:
+    KPGTable *m_pTable;
+    KPGAclItemList m_listOfAclItems;
+    
+    bool m_bPageColumnsDisplaied;
+    bool m_bPageConstraintsDisplaied;
+    bool m_bPageIndexesDisplaied;
+    bool m_bPageRulesDisplaied;
+    bool m_bPageTriggersDisplaied;
+    bool m_bPageStatisticsDisplaied;
+		
+protected slots:
+
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableColumnsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableConstraintsDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableIndexesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableRulesDblClicked(int, int, int, const QPoint &);
+    virtual void slotTableTriggersDblClicked(int, int, int, const QPoint &);
+                
+    virtual void slotCurrentTabChanged(QWidget *); 
+                
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+    virtual void slotRefreshStatistics();
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+
+signals:
+    void sigSearchObject(const pqxx::oid);
+    void sigRunWizard(const QString &);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,617 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtableproppagebase.ui'
+**
+** Created: Út dub 1 13:07:21 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtableproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <kpushbutton.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+#include "klistview.h"
+#include "kpushbutton.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGTablePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTablePropPageBase::KPGTablePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTablePropPageBase" );
+    KPGTablePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTablePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 16 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setShowGrid( TRUE );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSorting( FALSE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+    textLabel2->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel2, 0, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant TRIGGER" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    tabColumns = new QWidget( m_pTabWidget, "tabColumns" );
+    tabColumnsLayout = new QGridLayout( tabColumns, 1, 1, 11, 6, "tabColumnsLayout"); 
+
+    textLabel1 = new QLabel( tabColumns, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabColumnsLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableColumns = new QTable( tabColumns, "m_pTableColumns" );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Type length" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Statistics target" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Attributes" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Dimensions" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Type mode" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "By value" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Not null" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Has default" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Is dropped" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Is local" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Storage" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Inherited count" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Default value" ) );
+    m_pTableColumns->setNumCols( m_pTableColumns->numCols() + 1 );
+    m_pTableColumns->horizontalHeader()->setLabel( m_pTableColumns->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableColumns->setNumRows( m_pTableColumns->numRows() + 1 );
+    m_pTableColumns->verticalHeader()->setLabel( m_pTableColumns->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableColumns->setNumRows( m_pTableColumns->numRows() + 1 );
+    m_pTableColumns->verticalHeader()->setLabel( m_pTableColumns->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableColumns->setNumRows( m_pTableColumns->numRows() + 1 );
+    m_pTableColumns->verticalHeader()->setLabel( m_pTableColumns->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableColumns->setNumRows( 3 );
+    m_pTableColumns->setNumCols( 17 );
+    m_pTableColumns->setReadOnly( TRUE );
+    m_pTableColumns->setSorting( FALSE );
+    m_pTableColumns->setSelectionMode( QTable::SingleRow );
+
+    tabColumnsLayout->addWidget( m_pTableColumns, 1, 0 );
+    m_pTabWidget->insertTab( tabColumns, QString::fromLatin1("") );
+
+    tabConstraints = new QWidget( m_pTabWidget, "tabConstraints" );
+    tabConstraintsLayout = new QGridLayout( tabConstraints, 1, 1, 11, 6, "tabConstraintsLayout"); 
+
+    m_pTableConstraints = new QTable( tabConstraints, "m_pTableConstraints" );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Is deferrable" ) );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Is deferred" ) );
+    m_pTableConstraints->setNumCols( m_pTableConstraints->numCols() + 1 );
+    m_pTableConstraints->horizontalHeader()->setLabel( m_pTableConstraints->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableConstraints->setNumRows( m_pTableConstraints->numRows() + 1 );
+    m_pTableConstraints->verticalHeader()->setLabel( m_pTableConstraints->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableConstraints->setNumRows( m_pTableConstraints->numRows() + 1 );
+    m_pTableConstraints->verticalHeader()->setLabel( m_pTableConstraints->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableConstraints->setNumRows( m_pTableConstraints->numRows() + 1 );
+    m_pTableConstraints->verticalHeader()->setLabel( m_pTableConstraints->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableConstraints->setNumRows( 3 );
+    m_pTableConstraints->setNumCols( 6 );
+    m_pTableConstraints->setReadOnly( TRUE );
+    m_pTableConstraints->setSelectionMode( QTable::SingleRow );
+
+    tabConstraintsLayout->addWidget( m_pTableConstraints, 1, 0 );
+
+    textLabel3 = new QLabel( tabConstraints, "textLabel3" );
+    textLabel3->setTextFormat( QLabel::PlainText );
+
+    tabConstraintsLayout->addWidget( textLabel3, 0, 0 );
+    m_pTabWidget->insertTab( tabConstraints, QString::fromLatin1("") );
+
+    tabIndexes = new QWidget( m_pTabWidget, "tabIndexes" );
+    tabIndexesLayout = new QGridLayout( tabIndexes, 1, 1, 11, 6, "tabIndexesLayout"); 
+
+    m_pTableIndexes = new QTable( tabIndexes, "m_pTableIndexes" );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Index key" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Is Unique" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Is Primary" ) );
+    m_pTableIndexes->setNumCols( m_pTableIndexes->numCols() + 1 );
+    m_pTableIndexes->horizontalHeader()->setLabel( m_pTableIndexes->numCols() - 1, tr2i18n( "Is Clustered" ) );
+    m_pTableIndexes->setNumRows( m_pTableIndexes->numRows() + 1 );
+    m_pTableIndexes->verticalHeader()->setLabel( m_pTableIndexes->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableIndexes->setNumRows( m_pTableIndexes->numRows() + 1 );
+    m_pTableIndexes->verticalHeader()->setLabel( m_pTableIndexes->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableIndexes->setNumRows( m_pTableIndexes->numRows() + 1 );
+    m_pTableIndexes->verticalHeader()->setLabel( m_pTableIndexes->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableIndexes->setNumRows( 3 );
+    m_pTableIndexes->setNumCols( 7 );
+    m_pTableIndexes->setReadOnly( TRUE );
+    m_pTableIndexes->setSelectionMode( QTable::SingleRow );
+
+    tabIndexesLayout->addWidget( m_pTableIndexes, 1, 0 );
+
+    textLabel4 = new QLabel( tabIndexes, "textLabel4" );
+    textLabel4->setTextFormat( QLabel::PlainText );
+
+    tabIndexesLayout->addWidget( textLabel4, 0, 0 );
+    m_pTabWidget->insertTab( tabIndexes, QString::fromLatin1("") );
+
+    tabRules = new QWidget( m_pTabWidget, "tabRules" );
+    tabRulesLayout = new QGridLayout( tabRules, 1, 1, 11, 6, "tabRulesLayout"); 
+
+    m_pTableRules = new QTable( tabRules, "m_pTableRules" );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Is Instead" ) );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Event type" ) );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Qualifying Condition" ) );
+    m_pTableRules->setNumCols( m_pTableRules->numCols() + 1 );
+    m_pTableRules->horizontalHeader()->setLabel( m_pTableRules->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableRules->setNumRows( m_pTableRules->numRows() + 1 );
+    m_pTableRules->verticalHeader()->setLabel( m_pTableRules->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableRules->setNumRows( m_pTableRules->numRows() + 1 );
+    m_pTableRules->verticalHeader()->setLabel( m_pTableRules->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableRules->setNumRows( m_pTableRules->numRows() + 1 );
+    m_pTableRules->verticalHeader()->setLabel( m_pTableRules->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableRules->setNumRows( 3 );
+    m_pTableRules->setNumCols( 6 );
+    m_pTableRules->setReadOnly( TRUE );
+    m_pTableRules->setSelectionMode( QTable::SingleRow );
+
+    tabRulesLayout->addWidget( m_pTableRules, 1, 0 );
+
+    textLabel5 = new QLabel( tabRules, "textLabel5" );
+    textLabel5->setTextFormat( QLabel::PlainText );
+
+    tabRulesLayout->addWidget( textLabel5, 0, 0 );
+    m_pTabWidget->insertTab( tabRules, QString::fromLatin1("") );
+
+    tabTriggers = new QWidget( m_pTabWidget, "tabTriggers" );
+    tabTriggersLayout = new QGridLayout( tabTriggers, 1, 1, 11, 6, "tabTriggersLayout"); 
+
+    textLabel6 = new QLabel( tabTriggers, "textLabel6" );
+    textLabel6->setTextFormat( QLabel::PlainText );
+
+    tabTriggersLayout->addWidget( textLabel6, 0, 0 );
+
+    m_pTableTriggers = new QTable( tabTriggers, "m_pTableTriggers" );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Enabled" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Deferrable" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Initially Deferred" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Arguments" ) );
+    m_pTableTriggers->setNumCols( m_pTableTriggers->numCols() + 1 );
+    m_pTableTriggers->horizontalHeader()->setLabel( m_pTableTriggers->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableTriggers->setNumRows( m_pTableTriggers->numRows() + 1 );
+    m_pTableTriggers->verticalHeader()->setLabel( m_pTableTriggers->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableTriggers->setNumRows( m_pTableTriggers->numRows() + 1 );
+    m_pTableTriggers->verticalHeader()->setLabel( m_pTableTriggers->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableTriggers->setNumRows( m_pTableTriggers->numRows() + 1 );
+    m_pTableTriggers->verticalHeader()->setLabel( m_pTableTriggers->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableTriggers->setNumRows( 3 );
+    m_pTableTriggers->setNumCols( 7 );
+    m_pTableTriggers->setReadOnly( TRUE );
+    m_pTableTriggers->setSelectionMode( QTable::SingleRow );
+
+    tabTriggersLayout->addWidget( m_pTableTriggers, 1, 0 );
+    m_pTabWidget->insertTab( tabTriggers, QString::fromLatin1("") );
+
+    tabStatistics = new QWidget( m_pTabWidget, "tabStatistics" );
+    tabStatisticsLayout = new QGridLayout( tabStatistics, 1, 1, 11, 6, "tabStatisticsLayout"); 
+
+    textLabel1_2 = new QLabel( tabStatistics, "textLabel1_2" );
+
+    tabStatisticsLayout->addWidget( textLabel1_2, 0, 0 );
+
+    textLabel2_2 = new QLabel( tabStatistics, "textLabel2_2" );
+
+    tabStatisticsLayout->addWidget( textLabel2_2, 2, 0 );
+
+    m_pTableStatistics = new QTable( tabStatistics, "m_pTableStatistics" );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableStatistics->setNumCols( m_pTableStatistics->numCols() + 1 );
+    m_pTableStatistics->horizontalHeader()->setLabel( m_pTableStatistics->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "4" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "5" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "6" ) );
+    m_pTableStatistics->setNumRows( m_pTableStatistics->numRows() + 1 );
+    m_pTableStatistics->verticalHeader()->setLabel( m_pTableStatistics->numRows() - 1, tr2i18n( "7" ) );
+    m_pTableStatistics->setNumRows( 7 );
+    m_pTableStatistics->setNumCols( 3 );
+    m_pTableStatistics->setReadOnly( TRUE );
+    m_pTableStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableStatistics, 1, 1, 0, 1 );
+
+    m_pTableIoStatistics = new QTable( tabStatistics, "m_pTableIoStatistics" );
+    m_pTableIoStatistics->setNumCols( m_pTableIoStatistics->numCols() + 1 );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( m_pTableIoStatistics->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableIoStatistics->setNumCols( m_pTableIoStatistics->numCols() + 1 );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( m_pTableIoStatistics->numCols() - 1, tr2i18n( "Value" ) );
+    m_pTableIoStatistics->setNumCols( m_pTableIoStatistics->numCols() + 1 );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( m_pTableIoStatistics->numCols() - 1, tr2i18n( "Description" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "4" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "5" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "6" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "7" ) );
+    m_pTableIoStatistics->setNumRows( m_pTableIoStatistics->numRows() + 1 );
+    m_pTableIoStatistics->verticalHeader()->setLabel( m_pTableIoStatistics->numRows() - 1, tr2i18n( "8" ) );
+    m_pTableIoStatistics->setNumRows( 8 );
+    m_pTableIoStatistics->setNumCols( 3 );
+    m_pTableIoStatistics->setReadOnly( TRUE );
+    m_pTableIoStatistics->setSelectionMode( QTable::SingleRow );
+
+    tabStatisticsLayout->addMultiCellWidget( m_pTableIoStatistics, 3, 3, 0, 1 );
+
+    m_pButtonRefresh = new KPushButton( tabStatistics, "m_pButtonRefresh" );
+
+    tabStatisticsLayout->addWidget( m_pButtonRefresh, 4, 0 );
+    spacer1 = new QSpacerItem( 371, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    tabStatisticsLayout->addItem( spacer1, 4, 1 );
+    m_pTabWidget->insertTab( tabStatistics, QString::fromLatin1("") );
+
+    KPGTablePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(690, 492).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableColumns, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableColumnsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableConstraints, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableConstraintsDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableIndexes, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableIndexesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableRules, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableRulesDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableTriggers, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTableTriggersDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pButtonRefresh, SIGNAL( clicked() ), this, SLOT( slotRefreshStatistics() ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableColumns, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableConstraints, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableIndexes, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableRules, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTableTriggers, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+    connect( m_pTabWidget, SIGNAL( currentChanged(QWidget*) ), this, SLOT( slotCurrentTabChanged(QWidget*) ) );
+
+    // buddies
+    textLabel2->setBuddy( m_pTableProperties );
+    textLabel1_3->setBuddy( m_pListViewACL );
+    textLabel1->setBuddy( m_pTableColumns );
+    textLabel3->setBuddy( m_pTableConstraints );
+    textLabel4->setBuddy( m_pTableIndexes );
+    textLabel5->setBuddy( m_pTableRules );
+    textLabel6->setBuddy( m_pTableTriggers );
+    textLabel1_2->setBuddy( m_pTableStatistics );
+    textLabel2_2->setBuddy( m_pTableIoStatistics );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTablePropPageBase::~KPGTablePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTablePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Table Properties" ) );
+    textLabel2->setText( tr2i18n( "&Properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setLabel( 4, tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 5, tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setLabel( 6, tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setLabel( 7, tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 8, tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setLabel( 9, tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->header()->setLabel( 10, tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->header()->setLabel( 11, tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 12, tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->header()->setLabel( 13, tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->header()->setLabel( 14, tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 15, tr2i18n( "Grant TRIGGER" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+    textLabel1->setText( tr2i18n( "&Columns:" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 2, tr2i18n( "Type length" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 3, tr2i18n( "Description" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 4, tr2i18n( "Statistics target" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 5, tr2i18n( "Attributes" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 6, tr2i18n( "Dimensions" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 7, tr2i18n( "Type mode" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 8, tr2i18n( "By value" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 9, tr2i18n( "Not null" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 10, tr2i18n( "Has default" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 11, tr2i18n( "Is dropped" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 12, tr2i18n( "Is local" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 13, tr2i18n( "Storage" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 14, tr2i18n( "Inherited count" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 15, tr2i18n( "Default value" ) );
+    m_pTableColumns->horizontalHeader()->setLabel( 16, tr2i18n( "Namespace" ) );
+    m_pTableColumns->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableColumns->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableColumns->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTabWidget->changeTab( tabColumns, tr2i18n( "Columns" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 3, tr2i18n( "Is deferrable" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 4, tr2i18n( "Is deferred" ) );
+    m_pTableConstraints->horizontalHeader()->setLabel( 5, tr2i18n( "Namespace" ) );
+    m_pTableConstraints->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableConstraints->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableConstraints->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel3->setText( tr2i18n( "&Constraints:" ) );
+    m_pTabWidget->changeTab( tabConstraints, tr2i18n( "Constrains" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 3, tr2i18n( "Index key" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 4, tr2i18n( "Is Unique" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 5, tr2i18n( "Is Primary" ) );
+    m_pTableIndexes->horizontalHeader()->setLabel( 6, tr2i18n( "Is Clustered" ) );
+    m_pTableIndexes->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableIndexes->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableIndexes->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel4->setText( tr2i18n( "&Indexes:" ) );
+    m_pTabWidget->changeTab( tabIndexes, tr2i18n( "Indexes" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 2, tr2i18n( "Is Instead" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 3, tr2i18n( "Event type" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 4, tr2i18n( "Qualifying Condition" ) );
+    m_pTableRules->horizontalHeader()->setLabel( 5, tr2i18n( "Namespace" ) );
+    m_pTableRules->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableRules->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableRules->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel5->setText( tr2i18n( "&Rules:" ) );
+    m_pTabWidget->changeTab( tabRules, tr2i18n( "Rules" ) );
+    textLabel6->setText( tr2i18n( "&Triggers:" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 1, tr2i18n( "Description" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 2, tr2i18n( "Enabled" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 3, tr2i18n( "Deferrable" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 4, tr2i18n( "Initially Deferred" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 5, tr2i18n( "Arguments" ) );
+    m_pTableTriggers->horizontalHeader()->setLabel( 6, tr2i18n( "Namespace" ) );
+    m_pTableTriggers->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableTriggers->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableTriggers->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTabWidget->changeTab( tabTriggers, tr2i18n( "Triggers" ) );
+    textLabel1_2->setText( tr2i18n( "Table access statistics:" ) );
+    textLabel2_2->setText( tr2i18n( "Table I/O statistics:" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 1, tr2i18n( "Value" ) );
+    m_pTableStatistics->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 3, tr2i18n( "4" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 4, tr2i18n( "5" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 5, tr2i18n( "6" ) );
+    m_pTableStatistics->verticalHeader()->setLabel( 6, tr2i18n( "7" ) );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( 1, tr2i18n( "Value" ) );
+    m_pTableIoStatistics->horizontalHeader()->setLabel( 2, tr2i18n( "Description" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 3, tr2i18n( "4" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 4, tr2i18n( "5" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 5, tr2i18n( "6" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 6, tr2i18n( "7" ) );
+    m_pTableIoStatistics->verticalHeader()->setLabel( 7, tr2i18n( "8" ) );
+    m_pButtonRefresh->setText( tr2i18n( "&Refresh" ) );
+    m_pButtonRefresh->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pTabWidget->changeTab( tabStatistics, tr2i18n( "Statistics" ) );
+}
+
+void KPGTablePropPageBase::slotTableColumnsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTableColumnsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTableConstraintsDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTableConstraintsDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTableIndexesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTableIndexesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTableRulesDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTableRulesDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTableTriggersDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTableTriggersDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotRefreshStatistics()
+{
+    qWarning( "KPGTablePropPageBase::slotRefreshStatistics(): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGTablePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGTablePropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTablePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablePropPageBase::slotCurrentTabChanged(QWidget*)
+{
+    qWarning( "KPGTablePropPageBase::slotCurrentTabChanged(QWidget*): Not implemented yet" );
+}
+
+#include "kpgtableproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtableproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1389 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTablePropPageBase</class>
+<comment>Table Properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTablePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>690</width>
+            <height>492</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Table Properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>16</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="showGrid">
+                            <bool>true</bool>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabColumns</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Columns</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Columns:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableColumns</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type length</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Statistics target</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Attributes</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Dimensions</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type mode</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>By value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Not null</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Has default</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is dropped</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is local</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Storage</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Inherited count</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Default value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableColumns</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>17</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="sorting">
+                            <bool>false</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabConstraints</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Constrains</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is deferrable</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is deferred</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableConstraints</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Constraints:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableConstraints</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabIndexes</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Indexes</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Index key</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Unique</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Primary</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Clustered</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableIndexes</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>7</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Indexes:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableIndexes</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabRules</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Rules</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Is Instead</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Event type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Qualifying Condition</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableRules</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>6</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel5</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Rules:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableRules</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabTriggers</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Triggers</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel6</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Triggers:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableTriggers</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Enabled</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Deferrable</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Initially Deferred</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Arguments</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableTriggers</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>7</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabStatistics</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Statistics</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Table access statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2_2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Table I/O statistics:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0" rowspan="1" colspan="2">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>4</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>5</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>6</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>7</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>7</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="3" column="0" rowspan="1" colspan="2">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Value</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Description</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>4</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>5</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>6</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>7</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>8</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableIoStatistics</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>8</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="KPushButton" row="4" column="0">
+                        <property name="name">
+                            <cstring>m_pButtonRefresh</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Refresh</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+R</string>
+                        </property>
+                    </widget>
+                    <spacer row="4" column="1">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>371</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableColumns</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTableColumnsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableConstraints</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTableConstraintsDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableIndexes</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTableIndexesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableRules</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTableRulesDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTriggers</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTableTriggersDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonRefresh</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotRefreshStatistics()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableColumns</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableConstraints</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableIndexes</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableRules</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableTriggers</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTabWidget</sender>
+        <signal>currentChanged(QWidget*)</signal>
+        <receiver>KPGTablePropPageBase</receiver>
+        <slot>slotCurrentTabChanged(QWidget*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTableColumnsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableConstraintsDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableIndexesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableRulesDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTableTriggersDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotRefreshStatistics()</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+    <slot>slotCurrentTabChanged(QWidget *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistview.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,88 @@
+//
+// C++ Implementation: kpgtablesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgserver.h"
+
+KPGTablesFolderPropPage::KPGTablesFolderPropPage(QWidget* parent, KPGTablesFolder * pTablesFolder)
+	: KPGPropertyPage(parent, "KPGTablesFolderPropPage")
+{
+	m_pTablesFolder = pTablesFolder;
+	displayProperties();
+}
+
+
+KPGTablesFolderPropPage::~KPGTablesFolderPropPage()
+{
+}
+
+void KPGTablesFolderPropPage::displayProperties()
+{
+	// Get pointer to server for version info
+    KPGServer *pServer = static_cast <KPGServer *> (m_pTablesFolder->parent()->parent()->parent());
+    
+    bool bVersion80_OrNewer = false;
+	bool bVersion81_OrNewer = false;
+	//int iColumns = 9;
+	    
+	// Is it 8.0 or newer ?
+	if(pServer->versionMajor() > 7)
+    {             
+       bVersion80_OrNewer = true;
+       //iColumns += 1;
+    }     
+	    
+    // Is it 8.1 or newer ?
+	if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 1)) || ((pServer->versionMajor() > 8))) 
+	{
+		bVersion81_OrNewer = true;
+		//iColumns += 2;
+	}
+
+  	setLabelText(i18n("Tables &list:"));
+	
+	//----------------------------------------------------------------------------
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+	pHeader->setLabel(nCol++, i18n("Has OIDs"));
+  	pHeader->setLabel(nCol++, i18n("Has subclass"));
+  	pHeader->setLabel(nCol++, i18n("Estimated rows"));
+  	pHeader->setLabel(nCol++, i18n("Primary key name"));
+  	pHeader->setLabel(nCol++, i18n("Primary key columns"));
+  	pHeader->setLabel(nCol++, i18n("ACL"));
+  	pHeader->setLabel(nCol++, i18n("Kind"));
+  	pHeader->setLabel(nCol++, i18n("Toast table"));
+  	
+  	if(bVersion80_OrNewer) 
+  	{
+  		pHeader->setLabel(nCol++, i18n("Tablespace"));
+  	}
+  	
+  	if(bVersion81_OrNewer) 
+  	{
+  		pHeader->setLabel(nCol++, i18n("Size"));
+  		pHeader->setLabel(nCol++, i18n("Total size"));
+  	}
+    
+  	KPGUtil::fillPropertiesTable(m_pTablesFolder->resultTables(), m_pTableItems, true, nCol);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtablesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLESFOLDERPROPPAGE_H
+#define KPGTABLESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTablesFolder;
+
+/**
+  * Tables folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTablesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTablesFolderPropPage(QWidget* parent, KPGTablesFolder *);
+    ~KPGTablesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTablesFolder * m_pTablesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,201 @@
+//
+// C++ Implementation: kpgtablespaceproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablespaceproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h> 
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgtablespace.h"
+
+
+KPGTablespacePropPage::KPGTablespacePropPage(QWidget *parent, KPGTablespace * pTablespace)
+ : KPGTablespacePropPageBase(parent, "KPGTablespacePropPage")
+{
+	m_pTablespace = pTablespace;
+	m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png"))));
+	
+	displayProperties();
+}
+
+
+KPGTablespacePropPage::~KPGTablespacePropPage()
+{
+}
+
+void KPGTablespacePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+		
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTablespace->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTablespace->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the tablespace"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pTablespace->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the tablespace"));
+	
+	//--- Location
+	m_pTableProperties->setText(iRow, 0, i18n("Location"));
+  	m_pTableProperties->setText(iRow, 1, m_pTablespace->location());
+	m_pTableProperties->setText(iRow++, 2, i18n("Location of the tablespace"));
+	
+	//--- Pretty size
+	m_pTableProperties->setText(iRow, 0, i18n("Rounded size"));
+	if(m_pTablespace->version81_OrNewer())
+	 	m_pTableProperties->setText(iRow, 1, m_pTablespace->prettySize());
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the tablespace"));
+	
+	//--- Exact size
+	m_pTableProperties->setText(iRow, 0, i18n("Exact size"));
+	if(m_pTablespace->version81_OrNewer())
+	 	m_pTableProperties->setText(iRow, 1, QString("%L1 B").arg(m_pTablespace->size()));
+	else
+		m_pTableProperties->setText(iRow, 1, "N/A");
+	m_pTableProperties->setText(iRow++, 2, i18n("Disk space used by the tablespace"));
+	
+	//--- ACL
+	setACL(m_pTablespace->acl());
+  
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGTablespacePropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canCreate() ? "box_checked.png" : "box_clear.png"));
+		
+		if((*it).canPassGrantToOther())
+		pItem->setPixmap(3, UserIcon((*it).canGrantCreate() ? "box_checked.png" : "box_clear.png"));
+	} 
+}
+
+void KPGTablespacePropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleCreate() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(3, UserIcon((*it).toggleGrantCreate() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			default:
+					kdError() << k_funcinfo << " Unexpected column !" << endl;
+					break;      
+		}
+		
+		m_pPushButtonUpdateACL->setEnabled(true);
+		return;
+		}
+	}
+}
+
+void KPGTablespacePropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("TABLESPACE " + m_pTablespace->text(0)));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGTablespacePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgtablespaceproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Interface: kpgtablespaceproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLESPACEPROPPAGE_H
+#define KPGTABLESPACEPROPPAGE_H
+
+#include "kpgtablespaceproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGTablespace;
+
+/**
+  * Tablespace property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGTablespacePropPage : public KPGTablespacePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGTablespacePropPage(QWidget *parent, KPGTablespace *);
+    ~KPGTablespacePropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+    void setACL(const QString &);
+    
+protected:
+    KPGTablespace * m_pTablespace;
+    KPGAclItemList m_listOfAclItems;
+    
+signals:
+	void sigSearchObject(const pqxx::oid);
+    void sigRunWizard(const QString &);	
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+	
+protected slots:
+  
+    virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+                
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,155 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtablespaceproppagebase.ui'
+**
+** Created: Út dub 1 13:07:21 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtablespaceproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <kpushbutton.h>
+#include <klineedit.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+#include "klineedit.h"
+#include "klistview.h"
+
+/*
+ *  Constructs a KPGTablespacePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTablespacePropPageBase::KPGTablespacePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTablespacePropPageBase" );
+    KPGTablespacePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTablespacePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 6 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant CREATE" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    KPGTablespacePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(491, 326).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel1_3->setBuddy( m_pListViewACL );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTablespacePropPageBase::~KPGTablespacePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTablespacePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Tablespace properties" ) );
+    textLabel1->setText( tr2i18n( "&Tablespace properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "CREATE" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "Grant CREATE" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+}
+
+void KPGTablespacePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTablespacePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTablespacePropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGTablespacePropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGTablespacePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGTablespacePropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGTablespacePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTablespacePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgtablespaceproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespaceproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,218 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTablespacePropPageBase</class>
+<comment>Tablespace properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTablespacePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>491</width>
+            <height>326</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Tablespace properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Tablespace properties:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>6</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant CREATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablespacePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGTablespacePropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGTablespacePropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTablespacePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistview.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Implementation: kpgtablespacesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablespacesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+
+
+KPGTablespacesFolderPropPage::KPGTablespacesFolderPropPage(QWidget* parent, KPGTablespacesFolder * pTablespacesFolder)
+	: KPGPropertyPage(parent, "KPGTablespacesFolderPropPage")
+{
+	m_pTablespacesFolder = pTablespacesFolder;
+	displayProperties();
+}
+
+
+KPGTablespacesFolderPropPage::~KPGTablespacesFolderPropPage()
+{
+}
+
+void KPGTablespacesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Tablespaces &list:"));
+	int iColumns = 4;
+	if(m_pTablespacesFolder->version81_OrNewer())
+  	{
+  		iColumns += 1;
+  	}
+  	
+  	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Owner"));
+	pHeader->setLabel(nCol++, i18n("Location"));
+  	pHeader->setLabel(nCol++, i18n("ACL"));
+  	
+  	if(m_pTablespacesFolder->version81_OrNewer())
+  	{
+  		pHeader->setLabel(nCol++, i18n("Rounded size"));
+  	}
+  	
+  	KPGUtil::fillPropertiesTable(m_pTablespacesFolder->resultTablespaces(), m_pTableItems, true, iColumns);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtablespacesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtablespacesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLESPACESFOLDERPROPPAGE_H
+#define KPGTABLESPACESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTablespacesFolder;
+
+/**
+  * Tablespaces folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTablespacesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTablespacesFolderPropPage(QWidget* parent, KPGTablespacesFolder *);
+    ~KPGTablespacesFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTablespacesFolder * m_pTablespacesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,125 @@
+//
+// C++ Implementation: kpgtriggerproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtriggerproppage.h"
+
+#include <qtable.h> 
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../kpglinklabel.h"
+#include "../DbObjects/kpgtrigger.h"
+#include "../kpgutil.h"
+#include "../kpglinklabel.h"
+
+
+KPGTriggerPropPage::KPGTriggerPropPage(QWidget *parent, KPGTrigger * pTrigger)
+ : KPGTriggerPropPageBase(parent, "KPGTriggerPropPage")
+{
+	m_pTrigger = pTrigger;
+	displayProperties();
+}
+
+
+KPGTriggerPropPage::~KPGTriggerPropPage()
+{
+}
+
+void KPGTriggerPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTrigger->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTrigger->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Trigger name (must be unique among triggers of same table)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pTrigger->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the trigger"));
+		
+	//--- Is Enabled
+	m_pTableProperties->setText(iRow, 0, i18n("Is Enabled"));
+  	m_pTableProperties->setText(iRow, 1, m_pTrigger->enabled()); // TODO 8.3 changed !
+	m_pTableProperties->setText(iRow++, 2, i18n("True if trigger is enabled (not presently checked everywhere it should be, so disabling a trigger by setting this false does not work reliably)"));
+	
+	//--- Is Deferrable
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferrable"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pTrigger->isDeferrable()) ? i18n("True") : i18n("False"));
+	m_pTableProperties->setText(iRow++, 2, i18n("True if deferrable"));
+	
+	//--- Is Is initially Deferred
+	m_pTableProperties->setText(iRow, 0, i18n("Is initially Deferred"));
+ 	m_pTableProperties->setPixmap(iRow, 1, (m_pTrigger->isInitiallyDeferred()) ? i18n("True") : i18n("False"));
+	m_pTableProperties->setText(iRow++, 2, i18n("True if initially deferred"));
+	
+	//--- Number of argument
+	m_pTableProperties->setText(iRow, 0, i18n("Number of arguments"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTrigger->numArguments()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of argument strings passed to trigger function"));
+	
+	//--- Arguments
+	m_pTableProperties->setText(iRow, 0, i18n("Arguments"));
+  	m_pTableProperties->setText(iRow, 1, m_pTrigger->arguments());
+	m_pTableProperties->setText(iRow++, 2, i18n("Argument strings to pass to trigger, each null-terminated"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pTrigger->nameSpace());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+	
+	//--- Procedure name
+	m_pTableProperties->setText(iRow, 0, i18n("Procedure name"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Procedure name" );
+	pLabel->setValues(m_pTrigger->oidProcedure(), m_pTrigger->procName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the trigger procedure, to be called"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGTriggerPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGTriggerPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgtriggerproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgtriggerproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTRIGGERPROPPAGE_H
+#define KPGTRIGGERPROPPAGE_H
+
+#include "kpgtriggerproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGTrigger;
+
+/**
+  * Table trigger property page
+  *
+  * @author Lumir Vanek
+  */
+class KPGTriggerPropPage : public KPGTriggerPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGTriggerPropPage(QWidget *parent, KPGTrigger *);
+    ~KPGTriggerPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGTrigger * m_pTrigger;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+		
+signals:
+	void sigSearchObject(const pqxx::oid);	
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtriggerproppagebase.ui'
+**
+** Created: Út dub 1 13:07:21 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtriggerproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGTriggerPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTriggerPropPageBase::KPGTriggerPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTriggerPropPageBase" );
+    KPGTriggerPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTriggerPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 10 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGTriggerPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGTriggerPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(352, 316).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTriggerPropPageBase::~KPGTriggerPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTriggerPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Table trigger properties" ) );
+    textLabel1->setText( tr2i18n( "&Trigger properties:" ) );
+}
+
+void KPGTriggerPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTriggerPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTriggerPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTriggerPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgtriggerproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggerproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTriggerPropPageBase</class>
+<comment>Table trigger properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTriggerPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>352</width>
+            <height>316</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Table trigger properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>10</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Trigger properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTriggerPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTriggerPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,53 @@
+//
+// C++ Implementation: kpgtriggersfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtriggersfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtriggersfolder.h"
+
+
+KPGTriggersFolderPropPage::KPGTriggersFolderPropPage(QWidget* parent, KPGTriggersFolder * pTriggersFolder)
+	: KPGPropertyPage(parent, "KPGTriggersFolderPropPage")
+{
+	m_pTriggersFolder = pTriggersFolder;
+	displayProperties();
+}
+
+
+KPGTriggersFolderPropPage::~KPGTriggersFolderPropPage()
+{
+}
+
+void KPGTriggersFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Triggers &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Is Enabled"));
+  	pHeader->setLabel(nCol++, i18n("Is Deferrable"));
+  	pHeader->setLabel(nCol++, i18n("Is initially Deferred"));
+  	pHeader->setLabel(nCol++, i18n("Number of arguments"));
+  	pHeader->setLabel(nCol++, i18n("Arguments"));
+	pHeader->setLabel(nCol++, i18n("Namespace"));
+	pHeader->setLabel(nCol++, i18n("Procedure"));
+
+  	KPGUtil::fillPropertiesTable(m_pTriggersFolder->resultTriggers(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtriggersfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtriggersfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTRIGGERSFOLDERPROPPAGE_H
+#define KPGTRIGGERSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTriggersFolder;
+
+/**
+  * Triggers folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTriggersFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTriggersFolderPropPage(QWidget* parent, KPGTriggersFolder *);
+    ~KPGTriggersFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTriggersFolder * m_pTriggersFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+//
+// C++ Implementation: kpgtypeattributeproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtypeattributeproppage.h"
+
+#include <qtable.h>  
+
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgtypeattribute.h"
+#include "../kpglinklabel.h"
+
+
+KPGTypeAttributePropPage::KPGTypeAttributePropPage(QWidget *parent, KPGTypeAttribute * pTypeAttribute)
+ : KPGTypeAttributePropPageBase(parent, "KPGTypeAttributePropPage")
+{
+	m_pTypeAttribute = pTypeAttribute;
+	displayProperties();
+}
+
+KPGTypeAttributePropPage::~KPGTypeAttributePropPage()
+{
+}
+
+void KPGTypeAttributePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pTypeAttribute->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("The attribute name"));
+	
+	//--- Type Name
+	m_pTableProperties->setText(iRow, 0, i18n("Type"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel(m_pTableProperties, "Type" );
+	pLabel->setValues(m_pTypeAttribute->oidType(), m_pTypeAttribute->typName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("The attribute type"));
+	
+	//--- Type length
+	m_pTableProperties->setText(iRow, 0, i18n("Type length"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTypeAttribute->attLen()));
+	m_pTableProperties->setText(iRow++, 2, i18n("For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length\
+type, typlen is negative. -1 indicates a \"varlena\" type (one that has a length word), -2 indicates a null-terminated C string."));
+	
+	//--- Attribute number
+	m_pTableProperties->setText(iRow, 0, i18n("Attribute number"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTypeAttribute->attNum()));
+	m_pTableProperties->setText(iRow++, 2, i18n("The number of the attribute. Ordinary columns are numbered from 1 up. System columns, such as oid, have (arbitrary) negative \
+numbers."));
+	
+	//--- Number of dimensions
+	m_pTableProperties->setText(iRow, 0, i18n("Number of dimensions"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTypeAttribute->attNdims()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Number of dimensions, if the attribute is an array type; otherwise 0. (Presently, the number of dimensions of an array is not \
+enforced, so any nonzero value effectively means \"it's an array\".) "));
+	
+	//--- Type mode
+	m_pTableProperties->setText(iRow, 0, i18n("Type mode"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pTypeAttribute->attTypmod()));
+	m_pTableProperties->setText(iRow++, 2, i18n("Records type-specific data supplied at table creation time (for example, the maximum length of a varchar attribute). It is \
+	passed to type-specific input functions and length coercion functions. The value will generally be -1 for types that do not need atttypmod. "));
+
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+  	m_pTableProperties->setText(iRow, 1, m_pTypeAttribute->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the datatype namespace"));
+
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+void KPGTypeAttributePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGTypeAttributePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgtypeattributeproppage.moc"
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,62 @@
+//
+// C++ Interface: kpgtypeattributeproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPEATTRIBUTEPROPPAGE_H
+#define KPGTYPEATTRIBUTEPROPPAGE_H
+
+#include "kpgtypeattributeproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGTypeAttribute;
+
+/**
+  * Type attribute property page
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTypeAttributePropPage : public KPGTypeAttributePropPageBase, public KPGAbstractPropertyPage
+{
+    Q_OBJECT
+public:
+    KPGTypeAttributePropPage(QWidget *parent, KPGTypeAttribute *);
+    ~KPGTypeAttributePropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGTypeAttribute * m_pTypeAttribute;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+signals:
+
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtypeattributeproppagebase.ui'
+**
+** Created: Út dub 1 13:07:21 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtypeattributeproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGTypeAttributePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTypeAttributePropPageBase::KPGTypeAttributePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTypeAttributePropPageBase" );
+    KPGTypeAttributePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTypeAttributePropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGTypeAttributePropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 7 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGTypeAttributePropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(389, 218).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTypeAttributePropPageBase::~KPGTypeAttributePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTypeAttributePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Type attribute Properties" ) );
+    textLabel1->setText( tr2i18n( "&Attribute properties:" ) );
+}
+
+void KPGTypeAttributePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTypeAttributePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTypeAttributePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTypeAttributePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgtypeattributeproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeattributeproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTypeAttributePropPageBase</class>
+<comment>Type attribute property page</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTypeAttributePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>389</width>
+            <height>218</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Type attribute Properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Attribute properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>7</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTypeAttributePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTypeAttributePropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,182 @@
+//
+// C++ Implementation: kpgtypeproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtypeproppage.h"
+
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgtype.h"
+#include "../DbObjects/kpgtreeitem.h"
+#include "../kpglinklabel.h"
+#include "../kpgutil.h"
+
+
+KPGTypePropPage::KPGTypePropPage(QWidget *parent, KPGType * pType)
+ : KPGTypePropPageBase(parent, "KPGTypePropPage")
+{
+	m_pType = pType;
+	m_pTabWidget->setTabIconSet(tabAttributes, QIconSet(*KPGTreeItem::m_pIconTypeBase)); 
+	displayProperties();
+}
+
+
+KPGTypePropPage::~KPGTypePropPage()
+{
+}
+
+void KPGTypePropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pType->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+		
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Type name"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the type"));
+	
+	//--- Type Name
+	m_pTableProperties->setText(iRow, 0, i18n("Kind"));
+ 	m_pTableProperties->setText(iRow, 1, m_pType->kind());
+	m_pTableProperties->setText(iRow++, 2, i18n("Kind of this type"));
+	
+	//--- Type length
+	m_pTableProperties->setText(iRow, 0, i18n("Type length"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pType->typLen()));
+	m_pTableProperties->setText(iRow++, 2, i18n("For a fixed-size type, typlen is the number of bytes in the internal representation of the type. But for a variable-length type, typlen is negative. -1 indicates a \"varlena\" type (one that has a length word), -2 indicates a null-terminated C string."));
+	
+	//--- By Value
+	m_pTableProperties->setText(iRow, 0, i18n("By value"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pType->byValue()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Determines whether internal routines pass a value of this \
+	type by value or by reference. It had better be false if typlen is not 1, 2, or 4 \
+	(or 8 on machines where Date is 8 bytes). Variable-length types are always passed by \
+	reference. Note that typbyval can be false even if the length would allow pass-by-value; \
+	this is currently true for type float4, for example."));
+	
+	//--- Is Defined
+	m_pTableProperties->setText(iRow, 0, i18n("Is Defined"));
+  	m_pTableProperties->setPixmap(iRow, 1, (m_pType->isDefined()) ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("True if the type is defined, false if this is a placeholder entry for a not-yet-defined type. When typisdefined is false, nothing except the type name, namespace, and OID can be relied on."));
+	
+	//--- Array delimiter
+	m_pTableProperties->setText(iRow, 0, i18n("Array delimiter"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->typDelim());
+	m_pTableProperties->setText(iRow++, 2, i18n("Character that separates two values of this type when parsing array input. Note that the delimiter is associated with the array element data type, not the array data type."));
+	
+	//--- Align
+	m_pTableProperties->setText(iRow, 0, i18n("Align"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->typAlign());
+	m_pTableProperties->setText(iRow++, 2, i18n("Alignment required when storing a value of this type. It applies to storage on disk as well as most representations of the value inside PostgreSQL. When multiple values are stored consecutively, such as in the representation of a complete row on disk, padding is inserted before a datum of this type so that it begins on the specified boundary."));
+	
+	//--- Storage
+	m_pTableProperties->setText(iRow, 0, i18n("Storage"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->typStorage());
+	m_pTableProperties->setText(iRow++, 2, i18n("Storage tells for varlena types (those with typlen = -1) if the type is prepared for toasting and what the default strategy for attributes of this type should be."));
+	
+	//--- Element
+	m_pTableProperties->setText(iRow, 0, i18n("Element"));
+  	KPGLinkLabel *pLabel = new KPGLinkLabel( m_pTableProperties, "Element" );
+	pLabel->setValues(m_pType->oidTypElem(), m_pType->element());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Element type name"));
+	
+	//--- Input function
+	m_pTableProperties->setText(iRow, 0, i18n("Input function"));
+  	pLabel = new KPGLinkLabel( m_pTableProperties, "Input function" );
+	pLabel->setValues(m_pType->oidInputFunc(), m_pType->inputFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Input conversion function"));
+		
+	//--- Output function
+	m_pTableProperties->setText(iRow, 0, i18n("Output function"));
+  	pLabel = new KPGLinkLabel( m_pTableProperties, "Output function" );
+	pLabel->setValues(m_pType->oidOutputFunc(), m_pType->outputFunc());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("Output conversion function "));
+		
+	//--- Table OID
+	m_pTableProperties->setText(iRow, 0, i18n("Corresponding object"));
+  	pLabel = new KPGLinkLabel( m_pTableProperties, "Corresponding object" );
+	pLabel->setValues(m_pType->oidTable(), m_pType->tableName());
+	m_pTableProperties->setCellWidget(iRow, 1, pLabel);
+	m_pTableProperties->setText(iRow++, 2, i18n("If this is a composite type, then this points to the the corresponding table, view or sequence."));
+		
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pType->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the type"));
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+	
+	//--- Attributes
+	displayAttributes();
+}
+
+void KPGTypePropPage::displayAttributes()
+{	
+	if((m_pType->kind() == "base") || (m_pType->kind() == "pseudo"))
+	{
+	   // base and pseudo types don't have properties
+	   m_pTabWidget->setTabEnabled(tabAttributes, false);
+	   return;
+	}
+	else
+	{
+		m_pTabWidget->setTabEnabled(tabAttributes, true);
+	}
+	    
+    KPGUtil::fillPropertiesTable(m_pType->resultAttributes(), m_pTableAttributes);
+}
+
+void KPGTypePropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+// Consumes request for context menu for property table
+void KPGTypePropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgtypeproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,62 @@
+//
+// C++ Interface: kpgtypeproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPEPROPPAGE_H
+#define KPGTYPEPROPPAGE_H
+
+#include "kpgtypeproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGType;
+
+/**
+  * Data type properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGTypePropPage : public KPGTypePropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGTypePropPage(QWidget *parent, KPGType *);
+    ~KPGTypePropPage();
+	
+	// Display properties of underlying database object
+	void displayProperties();
+	void displayAttributes();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGType * m_pType;
+	
+protected slots:
+    
+	virtual void slotTablePropDblClicked(int, int, int, const QPoint &);	
+	            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+		
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,149 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgtypeproppagebase.ui'
+**
+** Created: Út dub 1 13:07:22 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgtypeproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include <qimage.h>
+#include <qpixmap.h>
+
+
+/*
+ *  Constructs a KPGTypePropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGTypePropPageBase::KPGTypePropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGTypePropPageBase" );
+    KPGTypePropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGTypePropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 15 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabAttributes = new QWidget( m_pTabWidget, "tabAttributes" );
+    tabAttributesLayout = new QGridLayout( tabAttributes, 1, 1, 11, 6, "tabAttributesLayout"); 
+
+    m_pTableAttributes = new QTable( tabAttributes, "m_pTableAttributes" );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Name" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Type" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Type length" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Attribute number" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Dimensions" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Type mode" ) );
+    m_pTableAttributes->setNumCols( m_pTableAttributes->numCols() + 1 );
+    m_pTableAttributes->horizontalHeader()->setLabel( m_pTableAttributes->numCols() - 1, tr2i18n( "Namespace" ) );
+    m_pTableAttributes->setNumRows( m_pTableAttributes->numRows() + 1 );
+    m_pTableAttributes->verticalHeader()->setLabel( m_pTableAttributes->numRows() - 1, tr2i18n( "1" ) );
+    m_pTableAttributes->setNumRows( m_pTableAttributes->numRows() + 1 );
+    m_pTableAttributes->verticalHeader()->setLabel( m_pTableAttributes->numRows() - 1, tr2i18n( "2" ) );
+    m_pTableAttributes->setNumRows( m_pTableAttributes->numRows() + 1 );
+    m_pTableAttributes->verticalHeader()->setLabel( m_pTableAttributes->numRows() - 1, tr2i18n( "3" ) );
+    m_pTableAttributes->setNumRows( 3 );
+    m_pTableAttributes->setNumCols( 7 );
+    m_pTableAttributes->setReadOnly( TRUE );
+    m_pTableAttributes->setSelectionMode( QTable::SingleRow );
+
+    tabAttributesLayout->addWidget( m_pTableAttributes, 1, 0 );
+
+    textLabel2 = new QLabel( tabAttributes, "textLabel2" );
+    textLabel2->setTextFormat( QLabel::PlainText );
+
+    tabAttributesLayout->addWidget( textLabel2, 0, 0 );
+    m_pTabWidget->insertTab( tabAttributes, QString::fromLatin1("") );
+
+    KPGTypePropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(651, 448).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pTableAttributes, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTableAttributes );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGTypePropPageBase::~KPGTypePropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGTypePropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Data type properties" ) );
+    textLabel1->setText( tr2i18n( "&Type properties:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 0, tr2i18n( "Name" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 1, tr2i18n( "Type" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 2, tr2i18n( "Type length" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 3, tr2i18n( "Attribute number" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 4, tr2i18n( "Dimensions" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 5, tr2i18n( "Type mode" ) );
+    m_pTableAttributes->horizontalHeader()->setLabel( 6, tr2i18n( "Namespace" ) );
+    m_pTableAttributes->verticalHeader()->setLabel( 0, tr2i18n( "1" ) );
+    m_pTableAttributes->verticalHeader()->setLabel( 1, tr2i18n( "2" ) );
+    m_pTableAttributes->verticalHeader()->setLabel( 2, tr2i18n( "3" ) );
+    textLabel2->setText( tr2i18n( "&Attributes:" ) );
+    m_pTabWidget->changeTab( tabAttributes, tr2i18n( "Attributes" ) );
+}
+
+void KPGTypePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGTypePropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGTypePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGTypePropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgtypeproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypeproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,224 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGTypePropPageBase</class>
+<comment>Data type properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGTypePropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>651</width>
+            <height>448</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Data type properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Type properties:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>15</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabAttributes</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Attributes</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <column>
+                            <property name="text">
+                                <string>Name</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type length</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Attribute number</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Dimensions</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Type mode</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Namespace</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </column>
+                        <row>
+                            <property name="text">
+                                <string>1</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>2</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <row>
+                            <property name="text">
+                                <string>3</string>
+                            </property>
+                            <property name="pixmap">
+                                <pixmap></pixmap>
+                            </property>
+                        </row>
+                        <property name="name">
+                            <cstring>m_pTableAttributes</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>3</number>
+                        </property>
+                        <property name="numCols">
+                            <number>7</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Attributes:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableAttributes</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTypePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTypePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableAttributes</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGTypePropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked( int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,58 @@
+//
+// C++ Implementation: kpgtypesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtypesfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgtypesfolder.h"
+
+
+KPGTypesFolderPropPage::KPGTypesFolderPropPage(QWidget* parent, KPGTypesFolder * pTypesFolder)
+	: KPGPropertyPage(parent, "KPGTypesFolderPropPage")
+{
+	m_pTypesFolder = pTypesFolder;
+	displayProperties();
+}
+
+
+KPGTypesFolderPropPage::~KPGTypesFolderPropPage()
+{
+}
+
+void KPGTypesFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Types &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Type"));
+  	pHeader->setLabel(nCol++, i18n("Type length"));
+	pHeader->setLabel(nCol++, i18n("By value"));
+	pHeader->setLabel(nCol++, i18n("Is defined"));
+	pHeader->setLabel(nCol++, i18n("Array delimiter"));
+	pHeader->setLabel(nCol++, i18n("Align"));
+	pHeader->setLabel(nCol++, i18n("Storage"));
+	pHeader->setLabel(nCol++, i18n("Element"));
+	pHeader->setLabel(nCol++, i18n("Input function"));
+	pHeader->setLabel(nCol++, i18n("Output function"));
+	pHeader->setLabel(nCol++, i18n("Corresponding object"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+	
+	KPGUtil::fillPropertiesTable(m_pTypesFolder->resultTypes(), m_pTableItems);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgtypesfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgtypesfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTYPESFOLDERPROPPAGE_H
+#define KPGTYPESFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGTypesFolder;
+
+/**
+  * Data Types folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGTypesFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGTypesFolderPropPage(QWidget* parent, KPGTypesFolder *);
+    ~KPGTypesFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGTypesFolder * m_pTypesFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,86 @@
+//
+// C++ Implementation: kpguniqueconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpguniqueconstrproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpguniqueconstr.h"
+
+KPGUniqueConstrPropPage::KPGUniqueConstrPropPage(QWidget *parent, KPGUniqueConstr * pUniqueConstr)
+ : KPGUniqueConstrPropPageBase(parent, "KPGUniqueConstrPropPage")
+{
+	m_pUniqueConstr = pUniqueConstr;
+	displayProperties();
+}
+
+
+KPGUniqueConstrPropPage::~KPGUniqueConstrPropPage()
+{
+}
+
+void KPGUniqueConstrPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pUniqueConstr->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pUniqueConstr->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Constraint name (not necessarily unique!)"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+    m_pTableProperties->setText(iRow, 1, m_pUniqueConstr->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the constraint"));
+	
+	//--- Is Deferrable
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferrable"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pUniqueConstr->isDeferrable() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferrable ?"));
+	
+	//--- Is Deferred
+	m_pTableProperties->setText(iRow, 0, i18n("Is Deferred"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pUniqueConstr->isDeferred()  ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("Is the constraint deferred by default ?"));
+	
+	//--- Namespace
+	m_pTableProperties->setText(iRow, 0, i18n("Namespace"));
+    m_pTableProperties->setText(iRow, 1, m_pUniqueConstr->nspName());
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the namespace"));
+			
+	for(int nCol = 0; nCol < 3; nCol++)
+    {
+        m_pTableProperties->adjustColumn(nCol);
+    }
+}
+
+// Consumes request for context menu for property table
+void KPGUniqueConstrPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpguniqueconstrproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpguniqueconstrproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUNIQUECONSTRPROPPAGE_H
+#define KPGUNIQUECONSTRPROPPAGE_H
+
+#include "kpguniqueconstrproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGUniqueConstr;
+
+/**
+  * Unique Constraint properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGUniqueConstrPropPage : public KPGUniqueConstrPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGUniqueConstrPropPage(QWidget *parent, KPGUniqueConstr *);
+    ~KPGUniqueConstrPropPage();
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGUniqueConstr * m_pUniqueConstr;
+	
+protected slots:
+  
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+signals:
+	void sigSearchObject(const pqxx::oid);
+	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,78 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpguniqueconstrproppagebase.ui'
+**
+** Created: Út dub 1 13:07:22 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpguniqueconstrproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qtable.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGUniqueConstrPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGUniqueConstrPropPageBase::KPGUniqueConstrPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGUniqueConstrPropPageBase" );
+    KPGUniqueConstrPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGUniqueConstrPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGUniqueConstrPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 6 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGUniqueConstrPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+    languageChange();
+    resize( QSize(349, 224).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGUniqueConstrPropPageBase::~KPGUniqueConstrPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGUniqueConstrPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Unique constraint properties" ) );
+    textLabel1->setText( tr2i18n( "&Unique constraint properties:" ) );
+}
+
+void KPGUniqueConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGUniqueConstrPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpguniqueconstrproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguniqueconstrproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGUniqueConstrPropPageBase</class>
+<comment>Unique constraint properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGUniqueConstrPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>349</width>
+            <height>224</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Unique constraint properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Unique constraint properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>6</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGUniqueConstrPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: kpguserproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpguserproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpguser.h"
+
+KPGUserPropPage::KPGUserPropPage(QWidget *parent, KPGUser * pUser)
+ : KPGUserPropPageBase(parent, "KPGUserPropPage")
+{
+	m_pUser = pUser;
+	displayProperties();
+}
+
+
+KPGUserPropPage::~KPGUserPropPage()
+{
+}
+
+void KPGUserPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+    pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+    m_pTableProperties->setText(iRow, 1, m_pUser->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("User name"));
+	
+	//--- System ID
+	m_pTableProperties->setText(iRow, 0, i18n("System ID"));
+    m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pUser->sysId()));
+	m_pTableProperties->setText(iRow++, 2, i18n("User id (arbitrary number used to reference this user)"));
+	
+	
+	//--- Create DB
+	m_pTableProperties->setText(iRow, 0, i18n("May Create DB"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pUser->canCreateDb() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("User may create databases"));
+	
+	//--- Is superuser
+	m_pTableProperties->setText(iRow, 0, i18n("Is Superuser"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pUser->isSuper() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("User is a superuser"));
+			
+	//--- May update catalog
+	m_pTableProperties->setText(iRow, 0, i18n("May update catalog"));
+    m_pTableProperties->setPixmap(iRow, 1, m_pUser->canCatUpd() ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+	m_pTableProperties->setText(iRow++, 2, i18n("User may update system catalogs. (Even a superuser may not do this unless this column is true.)"));
+	
+	//--- Valid until
+	m_pTableProperties->setText(iRow, 0, i18n("Valid until"));
+    m_pTableProperties->setText(iRow, 1, m_pUser->validUntilAsString());
+	m_pTableProperties->setText(iRow++, 2, i18n("Account expiry time (only used for password authentication)"));
+	
+	
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+}
+
+// Consumes request for context menu for property table
+void KPGUserPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpguserproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpguserproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUSERPROPPAGE_H
+#define KPGUSERPROPPAGE_H
+
+#include "kpguserproppagebase.h"
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+class KPGUser;
+
+/**
+  * User properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGUserPropPage : public KPGUserPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGUserPropPage(QWidget *parent, KPGUser *);
+    ~KPGUserPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+protected:
+
+	KPGUser * m_pUser;
+	
+protected slots:
+            
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+		
+signals:
+  	void sigSearchObject(const pqxx::oid);   
+   	            
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,78 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpguserproppagebase.ui'
+**
+** Created: Út dub 1 13:07:22 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpguserproppagebase.h"
+
+#include <qvariant.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGUserPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGUserPropPageBase::KPGUserPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGUserPropPageBase" );
+    KPGUserPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGUserPropPageBaseLayout"); 
+
+    m_pTableProperties = new QTable( this, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 6 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    KPGUserPropPageBaseLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGUserPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(351, 222).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGUserPropPageBase::~KPGUserPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGUserPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "User properties" ) );
+    textLabel1->setText( tr2i18n( "&User properties:" ) );
+}
+
+void KPGUserPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGUserPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpguserproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+/****************************************************************************
+** Form interface generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpguserproppagebase.ui'
+**
+** Created: Fri Sep 15 15:55:30 2006
+**      by: The User Interface Compiler ($Id: kpguserproppagebase.h,v 1.19 2006/09/15 12:44:09 lvanek Exp $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef KPGUSERPROPPAGEBASE_H
+#define KPGUSERPROPPAGEBASE_H
+
+#include <qvariant.h>
+#include <qwidget.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QTable;
+class QLabel;
+
+class KPGUserPropPageBase : public QWidget
+{
+    Q_OBJECT
+
+public:
+    KPGUserPropPageBase( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+    ~KPGUserPropPageBase();
+
+    QTable* m_pTableProperties;
+    QLabel* textLabel1;
+
+protected:
+    QGridLayout* KPGUserPropPageBaseLayout;
+
+protected slots:
+    virtual void languageChange();
+
+    virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);
+
+
+};
+
+#endif // KPGUSERPROPPAGEBASE_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpguserproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGUserPropPageBase</class>
+<comment>User properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGUserPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>351</width>
+            <height>222</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>User properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTable" row="1" column="0">
+            <property name="name">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+            <property name="numRows">
+                <number>6</number>
+            </property>
+            <property name="numCols">
+                <number>3</number>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>SingleRow</enum>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;User properties:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableProperties</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGUserPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,85 @@
+//
+// C++ Implementation: kpgusersfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgusersfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgusersfolder.h"
+
+
+KPGUsersFolderPropPage::KPGUsersFolderPropPage(QWidget* parent, KPGUsersFolder * pUsersFolder)
+	: KPGPropertyPage(parent, "KPGUsersFolderPropPage")
+{
+	m_pUsersFolder = pUsersFolder;
+	displayProperties();
+}
+
+
+KPGUsersFolderPropPage::~KPGUsersFolderPropPage()
+{
+}
+
+void KPGUsersFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Users &list:"));
+	
+	//----------------------------------------------------------------------------
+	// Display users list
+		
+	// Fill output area with query result
+	int nRows = m_pUsersFolder->resultUsers().size();
+	int nCols = m_pUsersFolder->resultUsers().columns();
+	
+	m_pTableItems->setNumRows(nRows);
+	m_pTableItems->setNumCols(nCols);
+	
+	// field names
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+	
+	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("User ID"));
+	pHeader->setLabel(nCol++, i18n("Name"));
+	pHeader->setLabel(nCol++, i18n("May Create DB"));
+	pHeader->setLabel(nCol++, i18n("Is Superuser"));
+	pHeader->setLabel(nCol++, i18n("May update catalog"));
+	pHeader->setLabel(nCol++, i18n("Valid until"));
+		
+	// data
+	for(int nRow = 0; nRow < nRows; nRow++)
+	{
+		for(int nCol = 0; nCol < nCols; nCol++)
+		{
+			if(m_pUsersFolder->resultUsers().column_type(nCol) == 16) // boolean
+			{
+			   bool bValue;
+			   m_pUsersFolder->resultUsers()[nRow][nCol].to(bValue);
+					   
+			   m_pTableItems->setPixmap(nRow, nCol, bValue ? *KPGUtil::m_pIconTrue : *KPGUtil::m_pIconFalse);
+			}
+			else
+			{
+			   QString strValue(m_pUsersFolder->resultUsers()[nRow][nCol].c_str());
+			   m_pTableItems->setText(nRow, nCol, strValue);
+			}
+		}
+	}
+	
+	for(int nCol = 0; nCol < nCols; nCol++)
+	{
+		m_pTableItems->adjustColumn(nCol);
+	}
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgusersfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgusersfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUSERSFOLDERPROPPAGE_H
+#define KPGUSERSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGUsersFolder;
+
+/**
+  * Users folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGUsersFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGUsersFolderPropPage(QWidget* parent, KPGUsersFolder *);
+    ~KPGUsersFolderPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGUsersFolder * m_pUsersFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,311 @@
+//
+// C++ Implementation: kpgviewproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgviewproppage.h"
+
+// include files for Qt
+#include <qiconset.h>
+#include <qtable.h>  
+
+// include files for KDE
+#include <ktabwidget.h>
+#include <kiconloader.h>
+#include <kpushbutton.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpglinklabel.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgview.h"
+#include "../DbObjects/kpgschema.h"
+#include "../kpgutil.h"
+
+
+KPGViewPropPage::KPGViewPropPage(QWidget *parent, KPGView * pView)
+ : KPGViewPropPageBase(parent, "KPGViewPropPage")
+{
+	m_pView = pView;
+  	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditDefinition);
+	
+	// Apply current configuration
+	slotSqlEditorSettingsChanged();
+ 	// and make sure to be informed about its changes.
+	connect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+  	m_pTabWidget->setTabIconSet(tabACL, QIconSet(QPixmap(UserIcon("group.png")))); 
+  	
+  	displayProperties();
+}
+
+
+KPGViewPropPage::~KPGViewPropPage()
+{
+	disconnect( KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()) );
+  
+  	delete m_pSyntaxHighlighter;
+}
+
+void KPGViewPropPage::displayProperties()
+{
+	QHeader* pHeader = m_pTableProperties->horizontalHeader();
+
+  	pHeader->setLabel(0, i18n("Name"));
+	pHeader->setLabel(1, i18n("Value"));
+	pHeader->setLabel(2, i18n("Description"));
+	
+	int iRow = 0;
+  	
+	//--- OID
+	m_pTableProperties->setText(iRow, 0, i18n("OID"));
+  	m_pTableProperties->setText(iRow, 1, QString("%1").arg(m_pView->oid()));
+	m_pTableProperties->setText(iRow++, 2, i18n("PostgreSQL row identifier"));
+	
+	//--- Name
+	m_pTableProperties->setText(iRow, 0, i18n("Name"));
+  	m_pTableProperties->setText(iRow, 1, m_pView->text(0));
+	m_pTableProperties->setText(iRow++, 2, i18n("Name of the view"));
+	
+	//--- Description
+	m_pTableProperties->setText(iRow, 0, i18n("Description"));
+  	m_pTableProperties->setText(iRow, 1, m_pView->description());
+	m_pTableProperties->setText(iRow++, 2, i18n("Description of the view"));
+	
+	//--- Owner
+	m_pTableProperties->setText(iRow, 0, i18n("Owner"));
+  	m_pTableProperties->setText(iRow, 1, m_pView->owner());
+	m_pTableProperties->setText(iRow++, 2, i18n("Owner of the view"));
+	
+	//--- ACL
+	setACL(m_pView->acl());
+				
+	for(int nCol = 0; nCol < 3; nCol++)
+	{
+		m_pTableProperties->adjustColumn(nCol);
+	}
+	
+	m_pTextEditDefinition->setText(m_pView->definition());
+}
+
+void KPGViewPropPage::slotSqlEditorSettingsChanged()
+{
+    m_pTextEditDefinition->setFont( KPoGreView::configuration()->sqleditor()->font() );
+	
+    m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+void KPGViewPropPage::slotTablePropDblClicked(int iRow, int iCol, int /*iButton*/, const QPoint & /*ptMousePos*/)
+{
+    QWidget *w = m_pTableProperties->cellWidget(iRow, iCol);
+	if(w == 0)
+		return;
+					
+	KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+	pqxx::oid _oid = pLabel->oid();
+			
+	if(_oid != 0)
+		emit sigSearchObject(_oid);
+}
+
+
+void KPGViewPropPage::setACL(const QString &strACL)
+{
+	m_pListViewACL->clear();
+	m_listOfAclItems.clear();
+	m_pLineEditACL->setText(strACL);
+	
+	QString strAclItem; // string for one ACL item, e.g. miriam=arwdRxt/miriam
+	for(unsigned int i = 0; i < strACL.length(); i++)
+	{
+		if(strACL[i] == '{')
+		continue;
+		
+		if((strACL[i] == ',') || (strACL[i] == ','))
+		{
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+		strAclItem.truncate(0); // clear ACL string
+		}
+		else
+		{
+		strAclItem.append(strACL[i]);
+		}
+	}
+	
+	if(!strAclItem.isEmpty())
+		m_listOfAclItems.append(KPGAclItem(strAclItem)); // create new ACL item
+	
+	// Traverse list of ACL items
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		QListViewItem * pItem = new QListViewItem( m_pListViewACL, 0 );
+		(*it).setListViewItem(pItem);
+		
+		pItem->setText( 0, (*it).grantee() );
+		pItem->setText( 1, (*it).grantor() );
+		
+		pItem->setPixmap(2, UserIcon((*it).canSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(3, UserIcon((*it).canInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(4, UserIcon((*it).canUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(5, UserIcon((*it).canDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(6, UserIcon((*it).canCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(7, UserIcon((*it).canCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(8, UserIcon((*it).canCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+		
+		if((*it).canPassGrantToOther())
+		{  
+		pItem->setPixmap(9, UserIcon((*it).canGrantSelect() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(10, UserIcon((*it).canGrantInsert() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(11, UserIcon((*it).canGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(12, UserIcon((*it).canGrantDelete() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(13, UserIcon((*it).canGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(14, UserIcon((*it).canGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+		pItem->setPixmap(15, UserIcon((*it).canGrantCreateTrigger() ? "box_checked.png" : "box_clear.png")); 
+		}
+	} 
+}
+
+void KPGViewPropPage::slotAclListViewClicked(QListViewItem *pItem, const QPoint &, int iColumn)
+{
+	// Find KPGAclItem using pItem value
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		if(pItem == (*it).getListViewItem())
+		{
+		// found ...
+		
+		switch(iColumn)
+		{
+			case 0:
+			case 1: // do nothing on first 2 columns
+				break;
+			
+			case 2:
+				pItem->setPixmap(2, UserIcon((*it).toggleSelect() ? "box_checked.png" : "box_clear.png"));
+				break;
+		
+			case 3:
+				pItem->setPixmap(3, UserIcon((*it).toggleInsert() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 4:
+				pItem->setPixmap(4, UserIcon((*it).toggleUpdate() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 5:
+				pItem->setPixmap(5, UserIcon((*it).toggleDelete() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 6:
+				pItem->setPixmap(6, UserIcon((*it).toggleCreateRule() ? "box_checked.png" : "box_clear.png"));
+				break;         
+				
+			case 7:
+				pItem->setPixmap(7, UserIcon((*it).toggleCreateReference() ? "box_checked.png" : "box_clear.png"));
+				break;
+				
+			case 8:
+				pItem->setPixmap(8, UserIcon((*it).toggleCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				break;
+						
+			case 9:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(9, UserIcon((*it).toggleGrantSelect() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 10:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(10, UserIcon((*it).toggleGrantInsert() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 11:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(11, UserIcon((*it).toggleGrantUpdate() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 12:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(12, UserIcon((*it).toggleGrantDelete() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 13:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(13, UserIcon((*it).toggleGrantCreateRule() ? "box_checked.png" : "box_clear.png"));
+				
+				break;         
+				
+			case 14:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(14, UserIcon((*it).toggleGrantCreateReference() ? "box_checked.png" : "box_clear.png"));
+				
+				break;
+				
+			case 15:
+				if((*it).canPassGrantToOther())
+				pItem->setPixmap(15, UserIcon((*it).toggleGrantCreateTrigger() ? "box_checked.png" : "box_clear.png"));
+				
+				break;    
+				
+			default:
+					kdError() << k_funcinfo << " Unexpected column !" << endl;
+					break;      
+		}
+		
+			m_pPushButtonUpdateACL->setEnabled(true);
+			return;
+		}
+	}
+}
+
+void KPGViewPropPage::slotUpdateACL()
+{
+	QString strSQL;
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (m_pView->parent()->parent());
+		
+	// Traverse all items and get their SQL's
+	KPGAclItemList::iterator it;
+	for ( it = m_listOfAclItems.begin(); it != m_listOfAclItems.end(); ++it )
+	{   
+		strSQL.append((*it).getSQL("TABLE " + KPGUtil::fullyQualifiedName(pSchema->text(0), m_pView->text(0))));
+	}
+	
+	if(!strSQL.isEmpty())
+		emit sigRunWizard(strSQL);
+}
+
+// Consumes request for context menu for property table
+void KPGViewPropPage::slotTablePropContextMenuRequested(int row, int col, const QPoint & pos)
+{
+	emit sigTablePropContextMenuRequested(row, col, pos);	
+}
+
+#include "kpgviewproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+//
+// C++ Interface: kpgviewproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGVIEWPROPPAGE_H
+#define KPGVIEWPROPPAGE_H
+
+#include "kpgviewproppagebase.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+#include "../kpgaclitem.h"
+
+class KPGView;
+
+/**
+  * Database View properties
+  *
+  * @author Lumir Vanek
+  */
+class KPGSyntaxHighlighter;
+
+class KPGViewPropPage : public KPGViewPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGViewPropPage(QWidget *, KPGView *);
+    ~KPGViewPropPage();
+    
+    // Display properties of underlying database object
+	virtual void displayProperties();
+    
+    // Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return m_pTableProperties; }
+	
+    void setACL(const QString &);
+    
+protected:
+
+	// Syntax highlighter for view definition
+	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+	
+	KPGView * m_pView;
+	KPGAclItemList m_listOfAclItems;
+          
+protected slots:
+
+    // Changes syntax highlighting colors.
+    void slotSqlEditorSettingsChanged();
+
+    virtual void slotTablePropDblClicked(int, int, int, const QPoint &);  
+	virtual void slotAclListViewClicked(QListViewItem *, const QPoint &, int);
+    virtual void slotUpdateACL();
+                
+	// Consumes request for context menu for property table
+	virtual void slotTablePropContextMenuRequested(int, int, const QPoint &);    
+	
+signals:
+	void sigSearchObject(const pqxx::oid);
+    void sigRunWizard(const QString &);
+                
+    // Emit request for context menu for property table
+	void sigTablePropContextMenuRequested(int, int, const QPoint &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,199 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgviewproppagebase.ui'
+**
+** Created: Út dub 1 13:07:22 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgviewproppagebase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qtextedit.h>
+#include <kpushbutton.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+#include "klistview.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGViewPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGViewPropPageBase::KPGViewPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGViewPropPageBase" );
+    KPGViewPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGViewPropPageBaseLayout"); 
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+    m_pTabWidget->setTabPosition( QTabWidget::Bottom );
+
+    tabProperties = new QWidget( m_pTabWidget, "tabProperties" );
+    tabPropertiesLayout = new QGridLayout( tabProperties, 1, 1, 11, 6, "tabPropertiesLayout"); 
+
+    m_pTableProperties = new QTable( tabProperties, "m_pTableProperties" );
+    m_pTableProperties->setNumRows( 4 );
+    m_pTableProperties->setNumCols( 3 );
+    m_pTableProperties->setReadOnly( TRUE );
+    m_pTableProperties->setSelectionMode( QTable::SingleRow );
+
+    tabPropertiesLayout->addWidget( m_pTableProperties, 1, 0 );
+
+    textLabel1 = new QLabel( tabProperties, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    tabPropertiesLayout->addWidget( textLabel1, 0, 0 );
+
+    textLabel2 = new QLabel( tabProperties, "textLabel2" );
+
+    tabPropertiesLayout->addWidget( textLabel2, 2, 0 );
+
+    m_pTextEditDefinition = new QTextEdit( tabProperties, "m_pTextEditDefinition" );
+    m_pTextEditDefinition->setTextFormat( QTextEdit::PlainText );
+    m_pTextEditDefinition->setReadOnly( TRUE );
+
+    tabPropertiesLayout->addWidget( m_pTextEditDefinition, 3, 0 );
+    m_pTabWidget->insertTab( tabProperties, QString::fromLatin1("") );
+
+    tabACL = new QWidget( m_pTabWidget, "tabACL" );
+    tabACLLayout = new QGridLayout( tabACL, 1, 1, 11, 6, "tabACLLayout"); 
+
+    m_pPushButtonUpdateACL = new KPushButton( tabACL, "m_pPushButtonUpdateACL" );
+    m_pPushButtonUpdateACL->setEnabled( FALSE );
+
+    tabACLLayout->addWidget( m_pPushButtonUpdateACL, 2, 0 );
+
+    m_pListViewACL = new KListView( tabACL, "m_pListViewACL" );
+    m_pListViewACL->addColumn( tr2i18n( "Granted to" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Granted by" ) );
+    m_pListViewACL->addColumn( tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setResizeEnabled( FALSE, m_pListViewACL->header()->count() - 1 );
+    m_pListViewACL->addColumn( tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->addColumn( tr2i18n( "Grant TRIGGER" ) );
+
+    tabACLLayout->addMultiCellWidget( m_pListViewACL, 1, 1, 0, 2 );
+
+    textLabel1_3 = new QLabel( tabACL, "textLabel1_3" );
+
+    tabACLLayout->addMultiCellWidget( textLabel1_3, 0, 0, 0, 2 );
+
+    textLabel1_4 = new QLabel( tabACL, "textLabel1_4" );
+
+    tabACLLayout->addWidget( textLabel1_4, 2, 1 );
+
+    m_pLineEditACL = new KLineEdit( tabACL, "m_pLineEditACL" );
+    m_pLineEditACL->setReadOnly( TRUE );
+
+    tabACLLayout->addWidget( m_pLineEditACL, 2, 2 );
+    m_pTabWidget->insertTab( tabACL, QString::fromLatin1("") );
+
+    KPGViewPropPageBaseLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(543, 463).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pTableProperties, SIGNAL( doubleClicked(int,int,int,const QPoint&) ), this, SLOT( slotTablePropDblClicked(int,int,int,const QPoint&) ) );
+    connect( m_pListViewACL, SIGNAL( clicked(QListViewItem*,const QPoint&,int) ), this, SLOT( slotAclListViewClicked(QListViewItem*,const QPoint&,int) ) );
+    connect( m_pPushButtonUpdateACL, SIGNAL( clicked() ), this, SLOT( slotUpdateACL() ) );
+    connect( m_pTableProperties, SIGNAL( contextMenuRequested(int,int,const QPoint&) ), this, SLOT( slotTablePropContextMenuRequested(int,int,const QPoint&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableProperties );
+    textLabel2->setBuddy( m_pTextEditDefinition );
+    textLabel1_3->setBuddy( m_pListViewACL );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGViewPropPageBase::~KPGViewPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGViewPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "View properties" ) );
+    textLabel1->setText( tr2i18n( "&View properties:" ) );
+    textLabel2->setText( tr2i18n( "View &definition:" ) );
+    m_pTabWidget->changeTab( tabProperties, tr2i18n( "Properties" ) );
+    m_pPushButtonUpdateACL->setText( tr2i18n( "&Update..." ) );
+    m_pPushButtonUpdateACL->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pListViewACL->header()->setLabel( 0, tr2i18n( "Granted to" ) );
+    m_pListViewACL->header()->setLabel( 1, tr2i18n( "Granted by" ) );
+    m_pListViewACL->header()->setLabel( 2, tr2i18n( "SELECT" ) );
+    m_pListViewACL->header()->setLabel( 3, tr2i18n( "INSERT" ) );
+    m_pListViewACL->header()->setLabel( 4, tr2i18n( "UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 5, tr2i18n( "DELETE" ) );
+    m_pListViewACL->header()->setLabel( 6, tr2i18n( "RULE" ) );
+    m_pListViewACL->header()->setLabel( 7, tr2i18n( "REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 8, tr2i18n( "TRIGGER" ) );
+    m_pListViewACL->header()->setLabel( 9, tr2i18n( "Grant SELECT" ) );
+    m_pListViewACL->header()->setLabel( 10, tr2i18n( "Grant INSERT" ) );
+    m_pListViewACL->header()->setLabel( 11, tr2i18n( "Grant UPDATE" ) );
+    m_pListViewACL->header()->setLabel( 12, tr2i18n( "Grant DELETE" ) );
+    m_pListViewACL->header()->setLabel( 13, tr2i18n( "Grant RULE" ) );
+    m_pListViewACL->header()->setLabel( 14, tr2i18n( "Grant REFERENCES" ) );
+    m_pListViewACL->header()->setLabel( 15, tr2i18n( "Grant TRIGGER" ) );
+    textLabel1_3->setText( tr2i18n( "Users and groups privileges:" ) );
+    textLabel1_4->setText( tr2i18n( "Raw ACL:" ) );
+    m_pTabWidget->changeTab( tabACL, tr2i18n( "Privileges" ) );
+}
+
+void KPGViewPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&)
+{
+    qWarning( "KPGViewPropPageBase::slotTablePropDblClicked(int,int,int,const QPoint&): Not implemented yet" );
+}
+
+void KPGViewPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int)
+{
+    qWarning( "KPGViewPropPageBase::slotAclListViewClicked(QListViewItem*,const QPoint&,int): Not implemented yet" );
+}
+
+void KPGViewPropPageBase::slotUpdateACL()
+{
+    qWarning( "KPGViewPropPageBase::slotUpdateACL(): Not implemented yet" );
+}
+
+void KPGViewPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&)
+{
+    qWarning( "KPGViewPropPageBase::slotTablePropContextMenuRequested(int,int,const QPoint&): Not implemented yet" );
+}
+
+#include "kpgviewproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,373 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGViewPropPageBase</class>
+<comment>View properties</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGViewPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>543</width>
+            <height>463</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>View properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <property name="tabPosition">
+                <enum>Bottom</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabProperties</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Properties</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QTable" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                        <property name="numRows">
+                            <number>4</number>
+                        </property>
+                        <property name="numCols">
+                            <number>3</number>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                        <property name="selectionMode">
+                            <enum>SingleRow</enum>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;View properties:</string>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTableProperties</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="0">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>View &amp;definition:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QTextEdit" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pTextEditDefinition</cstring>
+                        </property>
+                        <property name="textFormat">
+                            <enum>PlainText</enum>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tabACL</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Privileges</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KPushButton" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pPushButtonUpdateACL</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Update...</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+U</string>
+                        </property>
+                    </widget>
+                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="3">
+                        <column>
+                            <property name="text">
+                                <string>Granted to</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Granted by</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>false</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant SELECT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant INSERT</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant UPDATE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant DELETE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant RULE</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant REFERENCES</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <column>
+                            <property name="text">
+                                <string>Grant TRIGGER</string>
+                            </property>
+                            <property name="clickable">
+                                <bool>true</bool>
+                            </property>
+                            <property name="resizable">
+                                <bool>true</bool>
+                            </property>
+                        </column>
+                        <property name="name">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="0" column="0" rowspan="1" colspan="3">
+                        <property name="name">
+                            <cstring>textLabel1_3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Users and groups privileges:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pListViewACL</cstring>
+                        </property>
+                    </widget>
+                    <widget class="QLabel" row="2" column="1">
+                        <property name="name">
+                            <cstring>textLabel1_4</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Raw ACL:</string>
+                        </property>
+                    </widget>
+                    <widget class="KLineEdit" row="2" column="2">
+                        <property name="name">
+                            <cstring>m_pLineEditACL</cstring>
+                        </property>
+                        <property name="readOnly">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>doubleClicked(int,int,int,const QPoint&amp;)</signal>
+        <receiver>KPGViewPropPageBase</receiver>
+        <slot>slotTablePropDblClicked(int,int,int,const QPoint&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewACL</sender>
+        <signal>clicked(QListViewItem*,const QPoint&amp;,int)</signal>
+        <receiver>KPGViewPropPageBase</receiver>
+        <slot>slotAclListViewClicked(QListViewItem*,const QPoint&amp;,int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonUpdateACL</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGViewPropPageBase</receiver>
+        <slot>slotUpdateACL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTableProperties</sender>
+        <signal>contextMenuRequested(int,int,const QPoint&amp;)</signal>
+        <receiver>KPGViewPropPageBase</receiver>
+        <slot>slotTablePropContextMenuRequested(int,int,const QPoint&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablePropDblClicked(int, int, int, const QPoint &amp;)</slot>
+    <slot access="protected">slotAclListViewClicked(QListViewItem *, const QPoint &amp;, int)</slot>
+    <slot access="protected">slotUpdateACL()</slot>
+    <slot access="protected">slotTablePropContextMenuRequested(int, int, const QPoint &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Implementation: kpgviewsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgviewsfolderproppage.h"
+
+#include <qtable.h>
+
+#include <klocale.h>
+
+#include "../kpgutil.h"
+#include "../DbObjects/kpgviewsfolder.h"
+
+
+KPGViewsFolderPropPage::KPGViewsFolderPropPage(QWidget* parent, KPGViewsFolder * pViewsFolder)
+	: KPGPropertyPage(parent, "KPGViewsFolderPropPage")
+{
+	m_pViewsFolder = pViewsFolder;
+	displayProperties();
+}
+
+
+KPGViewsFolderPropPage::~KPGViewsFolderPropPage()
+{
+}
+
+void KPGViewsFolderPropPage::displayProperties()
+{
+	setLabelText(i18n("Views &list:"));
+	
+	QHeader* pHeader = m_pTableItems->horizontalHeader();
+
+  	int nCol = 0;
+	pHeader->setLabel(nCol++, i18n("Name"));
+  	pHeader->setLabel(nCol++, i18n("Description"));
+	pHeader->setLabel(nCol++, i18n("Owner"));
+  	pHeader->setLabel(nCol++, i18n("ACL"));
+
+	KPGUtil::fillPropertiesTable(m_pViewsFolder->resultViews(), m_pTableItems);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgviewsfolderproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgviewsfolderproppage
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGVIEWSFOLDERPROPPAGE_H
+#define KPGVIEWSFOLDERPROPPAGE_H
+
+#include "kpgpropertypage.h"
+
+class KPGViewsFolder;
+
+/**
+  * Database Views folder properties
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGViewsFolderPropPage : public KPGPropertyPage
+{
+public:
+    KPGViewsFolderPropPage(QWidget* parent, KPGViewsFolder *);
+    ~KPGViewsFolderPropPage();
+
+	// Display properties of underlying database object
+	virtual void displayProperties();
+	
+protected:
+
+	KPGViewsFolder * m_pViewsFolder;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+/***************************************************************************
+                          kpgvoidproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgvoidproppage.h"
+
+KPGVoidPropPage::KPGVoidPropPage(QWidget *parent)
+ : KPGVoidPropPageBase(parent, "KPGVoidPropPage")
+{
+}
+
+
+KPGVoidPropPage::~KPGVoidPropPage()
+{
+}
+
+void KPGVoidPropPage::displayProperties()
+{
+	// do nothing
+}
+
+#include "kpgvoidproppage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+/***************************************************************************
+                          kpgvoidproppage  -  description
+                             -------------------
+    begin                : So led 31 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGVOIDPROPPAGE_H
+#define KPGVOIDPROPPAGE_H
+
+// application specific includes
+#include "kpgabstractpropertypage.h"
+
+#include "kpgvoidproppagebase.h"
+
+/**
+  * Void Property Page
+  *
+  * @author Lumir Vanek
+  */
+class KPGVoidPropPage : public KPGVoidPropPageBase, public KPGAbstractPropertyPage
+{
+	Q_OBJECT
+public:
+    KPGVoidPropPage(QWidget *parent);
+    ~KPGVoidPropPage();
+	
+	// Display properties of underlying database object
+	virtual void displayProperties();
+
+	// Return Result table for clipboard actions and export. 
+	virtual QTable* tableResult() { return 0; }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,57 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/PropertyPages/kpgvoidproppagebase.ui'
+**
+** Created: Út dub 1 13:07:22 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgvoidproppagebase.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGVoidPropPageBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGVoidPropPageBase::KPGVoidPropPageBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGVoidPropPageBase" );
+    KPGVoidPropPageBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGVoidPropPageBaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGVoidPropPageBaseLayout->addWidget( textLabel1, 0, 0 );
+    languageChange();
+    resize( QSize(280, 182).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGVoidPropPageBase::~KPGVoidPropPageBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGVoidPropPageBase::languageChange()
+{
+    setCaption( tr2i18n( "Void Property" ) );
+    textLabel1->setText( tr2i18n( "<p align=\"center\">No properties</p>" ) );
+}
+
+#include "kpgvoidproppagebase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/PropertyPages/kpgvoidproppagebase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,33 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGVoidPropPageBase</class>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGVoidPropPageBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>280</width>
+            <height>182</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Void Property</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&lt;p align="center"&gt;No properties&lt;/p&gt;</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+METASOURCES = AUTO
+libQueryResult_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libQueryResult.la
+
+libQueryResult_la_SOURCES = kpgqueryresultchildview.cpp \
+kpgqueryresultwindowbase.ui kpgqueryresultwindow.cpp kpgsqledit.cpp kpgcompletionbox.cpp \
+kpgsqleditorsettings.cpp kpgsyntaxhighlighter.cpp kpgsqleditorsettingspage.ui kpgsqlparser.cpp
+
+EXTRA_DIST = 
+
+noinst_HEADERS = kpgqueryresultchildview.h kpgqueryresultwindow.h kpgsqledit.h \
+kpgcompletionbox.h kpgsqleditorsettings.h kpgsyntaxhighlighter.h kpgsqlparser.h
+libQueryResult_la_LIBADD = $(PQXX_LIBS)

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,796 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/QueryResult
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libQueryResult_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_libQueryResult_la_OBJECTS = kpgqueryresultchildview.lo \
+	kpgqueryresultwindow.lo kpgsqledit.lo kpgcompletionbox.lo \
+	kpgsqleditorsettings.lo kpgsyntaxhighlighter.lo \
+	kpgsqlparser.lo
+#>- libQueryResult_la_OBJECTS = $(am_libQueryResult_la_OBJECTS)
+#>+ 8
+libQueryResult_la_final_OBJECTS = libQueryResult_la.all_cpp.lo 
+libQueryResult_la_nofinal_OBJECTS = kpgqueryresultchildview.lo \
+	kpgqueryresultwindow.lo kpgsqledit.lo kpgcompletionbox.lo \
+	kpgsqleditorsettings.lo kpgsyntaxhighlighter.lo \
+	kpgsqlparser.lo kpgqueryresultwindowbase.lo kpgsqleditorsettingspage.lo\
+kpgqueryresultchildview.moc.lo kpgcompletionbox.moc.lo kpgqueryresultwindow.moc.lo kpgsqledit.moc.lo 
+ at KDE_USE_FINAL_FALSE@libQueryResult_la_OBJECTS = $(libQueryResult_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libQueryResult_la_OBJECTS = $(libQueryResult_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libQueryResult_la_SOURCES)
+DIST_SOURCES = $(libQueryResult_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+#>- METASOURCES = AUTO
+libQueryResult_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libQueryResult.la
+#>- libQueryResult_la_SOURCES = kpgqueryresultchildview.cpp \
+#>- kpgqueryresultwindowbase.ui kpgqueryresultwindow.cpp kpgsqledit.cpp kpgcompletionbox.cpp \
+#>- kpgsqleditorsettings.cpp kpgsyntaxhighlighter.cpp kpgsqleditorsettingspage.ui kpgsqlparser.cpp
+#>+ 3
+libQueryResult_la_SOURCES=kpgqueryresultchildview.cpp \
+ kpgqueryresultwindow.cpp kpgsqledit.cpp kpgcompletionbox.cpp \
+kpgsqleditorsettings.cpp kpgsyntaxhighlighter.cpp  kpgsqlparser.cpp kpgqueryresultwindowbase.cpp kpgsqleditorsettingspage.cpp
+
+EXTRA_DIST = 
+noinst_HEADERS = kpgqueryresultchildview.h kpgqueryresultwindow.h kpgsqledit.h \
+kpgcompletionbox.h kpgsqleditorsettings.h kpgsyntaxhighlighter.h kpgsqlparser.h
+
+libQueryResult_la_LIBADD = $(PQXX_LIBS)
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/QueryResult/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libQueryResult.la: $(libQueryResult_la_OBJECTS) $(libQueryResult_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libQueryResult_la_LDFLAGS) $(libQueryResult_la_OBJECTS) $(libQueryResult_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcompletionbox.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgqueryresultchildview.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgqueryresultwindow.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsqledit.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsqleditorsettings.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsqlparser.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsyntaxhighlighter.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgqueryresultchildview.moc.cpp: $(srcdir)/kpgqueryresultchildview.h
+	$(MOC) $(srcdir)/kpgqueryresultchildview.h -o kpgqueryresultchildview.moc.cpp
+
+#>+ 2
+mocs: kpgqueryresultchildview.moc.cpp
+
+#>+ 3
+kpgcompletionbox.moc.cpp: $(srcdir)/kpgcompletionbox.h
+	$(MOC) $(srcdir)/kpgcompletionbox.h -o kpgcompletionbox.moc.cpp
+
+#>+ 2
+mocs: kpgcompletionbox.moc.cpp
+
+#>+ 3
+kpgqueryresultwindow.moc.cpp: $(srcdir)/kpgqueryresultwindow.h
+	$(MOC) $(srcdir)/kpgqueryresultwindow.h -o kpgqueryresultwindow.moc.cpp
+
+#>+ 2
+mocs: kpgqueryresultwindow.moc.cpp
+
+#>+ 3
+kpgsqledit.moc.cpp: $(srcdir)/kpgsqledit.h
+	$(MOC) $(srcdir)/kpgsqledit.h -o kpgsqledit.moc.cpp
+
+#>+ 2
+mocs: kpgsqledit.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgqueryresultchildview.moc.cpp kpgcompletionbox.moc.cpp kpgqueryresultwindow.moc.cpp kpgsqledit.moc.cpp
+
+#>+ 2
+KDE_DIST=Makefile.in kpgsqleditorsettingspage.ui kpgqueryresultwindowbase.ui Makefile.am 
+
+#>+ 5
+clean-ui:
+	-rm -f \
+	kpgqueryresultwindowbase.cpp kpgqueryresultwindowbase.h kpgqueryresultwindowbase.moc \
+	kpgsqleditorsettingspage.cpp kpgsqleditorsettingspage.h kpgsqleditorsettingspage.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/QueryResult/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/QueryResult/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libQueryResult_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpgqueryresultchildview.cpp $(srcdir)/kpgqueryresultwindow.cpp $(srcdir)/kpgsqledit.cpp $(srcdir)/kpgcompletionbox.cpp $(srcdir)/kpgsqleditorsettings.cpp $(srcdir)/kpgsyntaxhighlighter.cpp $(srcdir)/kpgsqlparser.cpp $(srcdir)/kpgqueryresultwindowbase.cpp $(srcdir)/kpgsqleditorsettingspage.cpp kpgqueryresultchildview.moc.cpp kpgcompletionbox.moc.cpp kpgqueryresultwindow.moc.cpp kpgsqledit.moc.cpp  kpgsqleditorsettingspage.moc kpgqueryresultwindowbase.moc
+	@echo 'creating libQueryResult_la.all_cpp.cpp ...'; \
+	rm -f libQueryResult_la.all_cpp.files libQueryResult_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libQueryResult_la.all_cpp.final; \
+	for file in kpgqueryresultchildview.cpp kpgqueryresultwindow.cpp kpgsqledit.cpp kpgcompletionbox.cpp kpgsqleditorsettings.cpp kpgsyntaxhighlighter.cpp kpgsqlparser.cpp kpgqueryresultwindowbase.cpp kpgsqleditorsettingspage.cpp kpgqueryresultchildview.moc.cpp kpgcompletionbox.moc.cpp kpgqueryresultwindow.moc.cpp kpgsqledit.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libQueryResult_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libQueryResult_la.all_cpp.final; \
+	done; \
+	cat libQueryResult_la.all_cpp.final libQueryResult_la.all_cpp.files > libQueryResult_la.all_cpp.cpp; \
+	rm -f libQueryResult_la.all_cpp.final libQueryResult_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libQueryResult_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libQueryResult_la_OBJECTS="$(libQueryResult_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libQueryResult_la_OBJECTS="$(libQueryResult_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libQueryResult_la_OBJECTS="$(libQueryResult_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libQueryResult_la_OBJECTS="$(libQueryResult_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 10
+nmcheck: 
+nmcheck-am: nmcheck
+$(srcdir)/kpgqueryresultchildview.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgsqleditorsettings.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgsqlparser.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgsqledit.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgqueryresultwindow.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgsyntaxhighlighter.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+$(srcdir)/kpgcompletionbox.cpp: kpgqueryresultwindowbase.h kpgsqleditorsettingspage.h 
+
+#>+ 30
+kpgqueryresultwindowbase.cpp: $(srcdir)/kpgqueryresultwindowbase.ui kpgqueryresultwindowbase.h kpgqueryresultwindowbase.moc
+	rm -f kpgqueryresultwindowbase.cpp
+	echo '#include <kdialog.h>' > kpgqueryresultwindowbase.cpp
+	echo '#include <klocale.h>' >> kpgqueryresultwindowbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgqueryresultwindowbase.h $(srcdir)/kpgqueryresultwindowbase.ui > kpgqueryresultwindowbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgqueryresultwindowbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgqueryresultwindowbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgqueryresultwindowbase.cpp ;\
+	rm -f kpgqueryresultwindowbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgqueryresultwindowbase.moc"' >> kpgqueryresultwindowbase.cpp; else rm -f kpgqueryresultwindowbase.cpp ; exit $$ret ; fi
+
+kpgqueryresultwindowbase.h: $(srcdir)/kpgqueryresultwindowbase.ui
+	rm -rf kpgqueryresultwindowbase.h;
+	$(UIC) $(srcdir)/kpgqueryresultwindowbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgqueryresultwindowbase.h ;
+kpgqueryresultwindowbase.moc: kpgqueryresultwindowbase.h
+	$(MOC) kpgqueryresultwindowbase.h -o kpgqueryresultwindowbase.moc
+
+kpgsqleditorsettingspage.cpp: $(srcdir)/kpgsqleditorsettingspage.ui kpgsqleditorsettingspage.h kpgsqleditorsettingspage.moc
+	rm -f kpgsqleditorsettingspage.cpp
+	echo '#include <kdialog.h>' > kpgsqleditorsettingspage.cpp
+	echo '#include <klocale.h>' >> kpgsqleditorsettingspage.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsqleditorsettingspage.h $(srcdir)/kpgsqleditorsettingspage.ui > kpgsqleditorsettingspage.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsqleditorsettingspage.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsqleditorsettingspage,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsqleditorsettingspage.cpp ;\
+	rm -f kpgsqleditorsettingspage.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsqleditorsettingspage.moc"' >> kpgsqleditorsettingspage.cpp; else rm -f kpgsqleditorsettingspage.cpp ; exit $$ret ; fi
+
+kpgsqleditorsettingspage.h: $(srcdir)/kpgsqleditorsettingspage.ui
+	rm -rf kpgsqleditorsettingspage.h;
+	$(UIC) $(srcdir)/kpgsqleditorsettingspage.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsqleditorsettingspage.h ;
+kpgsqleditorsettingspage.moc: kpgsqleditorsettingspage.h
+	$(MOC) kpgsqleditorsettingspage.h -o kpgsqleditorsettingspage.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,570 @@
+//
+// C++ Implementation: kpgcompletionbox
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcompletionbox.h"
+
+// include files for Qt
+#include <qapplication.h>
+
+// include files for KDE
+#include <kdebug.h>
+
+KPGCompletionBox::KPGCompletionBox(QWidget *pParent, const char *szName)
+ : KListBox(pParent, szName, WType_Popup)
+{
+    m_parent        = pParent;
+    tabHandling     = true;
+    down_workaround = false;
+    upwardBox       = false;
+    emitSelected    = true;
+
+    setColumnMode( 1 );
+    setLineWidth( 1 );
+    setFrameStyle( QFrame::Box | QFrame::Plain );
+
+    if ( pParent )
+        setFocusProxy( pParent );
+    else
+        setFocusPolicy( NoFocus );
+
+    setVScrollBarMode( Auto );
+    setHScrollBarMode( AlwaysOff );
+
+    connect( this, SIGNAL( doubleClicked( QListBoxItem * )), SLOT( slotActivated( QListBoxItem * )) );
+    connect( this, SIGNAL( currentChanged( QListBoxItem * )), SLOT( slotCurrentChanged() ));
+    connect( this, SIGNAL( clicked( QListBoxItem * )), SLOT( slotItemClicked( QListBoxItem * )) );
+}
+
+
+KPGCompletionBox::~KPGCompletionBox()
+{
+}
+
+QStringList KPGCompletionBox::items() const
+{
+    QStringList list;
+
+    const QListBoxItem* currItem = firstItem();
+
+    while (currItem) {
+        list.append(currItem->text());
+        currItem = currItem->next();
+    }
+
+    return list;
+}
+
+void KPGCompletionBox::slotActivated( QListBoxItem *item )
+{
+    if ( !item )
+        return;
+
+    hide();
+    emit activated( item->text() );
+}
+
+bool KPGCompletionBox::eventFilter( QObject *o, QEvent *e )
+{
+    int type = e->type();
+
+    if ( o == m_parent ) {
+        if ( isVisible() ) {
+            if ( type == QEvent::KeyPress ) {
+                QKeyEvent *ev = static_cast<QKeyEvent *>( e );
+                switch ( ev->key() ) {
+                    case Key_BackTab:
+                        if ( tabHandling && (ev->state() == NoButton ||
+                             (ev->state() & ShiftButton)) ) {
+                            up();
+                            ev->accept();
+                            return true;
+                        }
+                        break;
+                    case Key_Tab:
+                        if ( tabHandling && (ev->state() == NoButton) ) {
+                            down(); // Only on TAB!!
+                            ev->accept();
+                            return true;
+                        }
+                        break;
+                    case Key_Down:
+                        down();
+                        ev->accept();
+                        return true;
+                    case Key_Up:
+                        // If there is no selected item and we've popped up above
+                        // our parent, select the first item when they press up.
+                        if ( selectedItem() ||
+                             mapToGlobal( QPoint( 0, 0 ) ).y() >
+                             m_parent->mapToGlobal( QPoint( 0, 0 ) ).y() )
+                            up();
+                        else
+                            down();
+                        ev->accept();
+                        return true;
+                    case Key_Prior:
+                        pageUp();
+                        ev->accept();
+                        return true;
+                    case Key_Next:
+                        pageDown();
+                        ev->accept();
+                        return true;
+                    case Key_Escape:
+                        canceled();
+                        ev->accept();
+                        return true;
+                    case Key_Enter:
+                    case Key_Return:
+                        {
+							/*if ( ev->state() & ShiftButton ) {
+								hide();
+								ev->accept();  // Consume the Enter event
+								return true;
+							}*/
+							kdDebug() << "Enter !" << endl;
+							int nCurrentItem = currentItem();
+							if(nCurrentItem >= 0)
+							{
+								slotItemClicked(item(nCurrentItem));
+								ev->accept();  // Consume the Enter event
+								return true;
+							}
+                        }
+                        break;
+                    case Key_End:
+                        if ( ev->state() & ControlButton )
+                        {
+                            end();
+                            ev->accept();
+                            return true;
+                        }
+                    case Key_Home:
+                        if ( ev->state() & ControlButton )
+                        {
+                            home();
+                            ev->accept();
+                            return true;
+                        }
+                    default:
+                        break;
+                }
+            }
+            else if ( type == QEvent::AccelOverride ) {
+                // Override any acceleartors that match
+                // the key sequences we use here...
+                QKeyEvent *ev = static_cast<QKeyEvent *>( e );
+                switch ( ev->key() ) {
+                    case Key_Down:
+                    case Key_Up:
+                    case Key_Prior:
+                    case Key_Next:
+                    case Key_Escape:
+                    case Key_Enter:
+                    case Key_Return:
+                      ev->accept();
+                      return true;
+                      break;
+                    case Key_Tab:
+                    case Key_BackTab:
+                        if ( ev->state() == NoButton ||
+                            (ev->state() & ShiftButton))
+                        {
+                            ev->accept();
+                            return true;
+                        }
+                        break;
+                    case Key_Home:
+                    case Key_End:
+                        if ( ev->state() & ControlButton )
+                        {
+                            ev->accept();
+                            return true;
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+
+            // parent loses focus or gets a click -> we hide
+            else if ( type == QEvent::FocusOut || type == QEvent::Resize ||
+                      type == QEvent::Close || type == QEvent::Hide ||
+                      type == QEvent::Move ) {
+                hide();
+            }
+        }
+    }
+
+    // any mouse-click on something else than "this" makes us hide
+    else if ( type == QEvent::MouseButtonPress ) {
+        QMouseEvent *ev = static_cast<QMouseEvent *>( e );
+        if ( !rect().contains( ev->pos() )) // this widget
+            hide();
+
+        if ( !emitSelected && currentItem() && !::qt_cast<QScrollBar*>(o) )
+        {
+          emit highlighted( currentText() );
+          hide();
+          ev->accept();  // Consume the mouse click event...
+          return true;
+        }
+    }
+
+    return KListBox::eventFilter( o, e );
+}
+
+void KPGCompletionBox::popup()
+{
+    if ( count() == 0 )
+        hide();
+    else {
+        ensureCurrentVisible();
+        bool block = signalsBlocked();
+        blockSignals( true );
+        setCurrentItem( 0 );
+        blockSignals( block );
+        clearSelection();
+        if ( !isVisible() )
+            show();
+        else if ( size().height() != sizeHint().height() )
+            calculateSize();
+    }
+}
+
+void KPGCompletionBox::calculateSize()
+{
+    //int currentGeom = height();
+    QPoint currentPos = pos();
+    QRect geom = calculateGeometry();
+    resize( geom.size() );
+}
+
+void KPGCompletionBox::show()
+{
+    upwardBox = false;
+    if ( m_parent ) 
+    {
+        calculateSize();
+        qApp->installEventFilter( this );
+    }
+
+    qApp->sendPostedEvents();
+    KListBox::show();
+}
+
+void KPGCompletionBox::hide()
+{
+    if ( m_parent )
+        qApp->removeEventFilter( this );
+    cancelText = QString::null;
+    KListBox::hide();
+}
+
+QRect KPGCompletionBox::calculateGeometry() const
+{
+    int x = 0, y = 0;
+    int ih = itemHeight();
+    int h = QMIN( 15 * ih, (int) count() * ih ) + 2*frameWidth();
+
+    int w QMAX( KListBox::minimumSizeHint().width(), 200 );
+    
+    return QRect(x, y, w, h);
+}
+
+QSize KPGCompletionBox::sizeHint() const
+{
+    return calculateGeometry().size();
+}
+
+void KPGCompletionBox::down()
+{
+    int i = currentItem();
+
+    if ( i == 0 && down_workaround ) {
+        down_workaround = false;
+        setCurrentItem( 0 );
+        setSelected( 0, true );
+        emit highlighted( currentText() );
+    }
+
+    else if ( i < (int) count() - 1 )
+        setCurrentItem( i + 1 );
+}
+
+void KPGCompletionBox::up()
+{
+    if ( currentItem() > 0 )
+        setCurrentItem( currentItem() - 1 );
+}
+
+void KPGCompletionBox::pageDown()
+{
+    int i = currentItem() + numItemsVisible();
+    i = i > (int)count() - 1 ? (int)count() - 1 : i;
+    setCurrentItem( i );
+}
+
+void KPGCompletionBox::pageUp()
+{
+    int i = currentItem() - numItemsVisible();
+    i = i < 0 ? 0 : i;
+    setCurrentItem( i );
+}
+
+void KPGCompletionBox::home()
+{
+    setCurrentItem( 0 );
+}
+
+void KPGCompletionBox::end()
+{
+    setCurrentItem( count() -1 );
+}
+
+void KPGCompletionBox::setTabHandling( bool enable )
+{
+    tabHandling = enable;
+}
+
+bool KPGCompletionBox::isTabHandling() const
+{
+    return tabHandling;
+}
+
+void KPGCompletionBox::setCancelledText( const QString& text )
+{
+    cancelText = text;
+}
+
+QString KPGCompletionBox::cancelledText() const
+{
+    return cancelText;
+}
+
+void KPGCompletionBox::canceled()
+{
+    if ( !cancelText.isNull() )
+        emit userCancelled( cancelText );
+    if ( isVisible() )
+        hide();
+}
+
+/*
+void KPGCompletionBox::insertItems( const QStringList& items, int index )
+{
+    bool block = signalsBlocked();
+    blockSignals( true );
+    insertStringList( items, index );
+    blockSignals( block );
+    down_workaround = true;
+}
+*/
+
+void KPGCompletionBox::setItems(const QStringList& items, const KPGOidNameList &listOfCodeCompletionObjects)
+{
+    bool block = signalsBlocked();
+    blockSignals( true );
+
+    clear();
+
+    QListBoxItem * pAfter = 0;
+    for(QStringList::ConstIterator cit = items.begin(); cit != items.end(); ++cit)
+    {
+        // For each item, get it's icon in listOfCodeCompletionObjects
+        const KPGOidName * pOidName = listOfCodeCompletionObjects.getConstItemByName(*cit);
+        if(pOidName != 0)
+        {
+            if(pAfter)
+                pAfter = new KPGCompletionBoxItem(this, * pOidName->icon(), (*cit), pAfter);
+            else
+                pAfter = new KPGCompletionBoxItem(this, * pOidName->icon(), (*cit));
+        }
+    }
+
+    if ( isVisible() && size().height() != sizeHint().height() )
+        calculateSize();
+
+    blockSignals( block );
+    down_workaround = true;
+}
+
+// This same as above for list with aliases
+void KPGCompletionBox::setItems(const QStringList& items, const KPGOidNameAliasesList &listOfCodeCompletionObjects)
+{
+    bool block = signalsBlocked();
+    blockSignals( true );
+
+    clear();
+
+    QListBoxItem * pAfter = 0;
+    for(QStringList::ConstIterator cit = items.begin(); cit != items.end(); ++cit)
+    {
+        // For each item, get it's icon in listOfCodeCompletionObjects
+        const KPGOidNameAliases * pOidNameAliases = listOfCodeCompletionObjects.getConstItemByName(*cit);
+        if(pOidNameAliases != 0)
+        {
+            if(pAfter)
+                pAfter = new KPGCompletionBoxItem(this, * pOidNameAliases->icon(), (*cit), pAfter);
+            else
+                pAfter = new KPGCompletionBoxItem(this, * pOidNameAliases->icon(), (*cit));
+        }
+    }
+
+    if ( isVisible() && size().height() != sizeHint().height() )
+        calculateSize();
+
+    blockSignals( block );
+    down_workaround = true;
+}
+
+void KPGCompletionBox::setItems(const QStringList& items, const KPGListTableColumns &listOfCodeCompletionTableColumns)
+{
+    bool block = signalsBlocked();
+    blockSignals( true );
+
+    clear();
+
+    QListBoxItem * pAfter = 0;
+    //kdDebug() << "------------------" << endl;
+    for(QStringList::ConstIterator citItems = items.begin(); citItems != items.end(); ++citItems)
+    {
+        for(KPGListTableColumns::const_iterator citColumns = listOfCodeCompletionTableColumns.begin(); citColumns != listOfCodeCompletionTableColumns.end(); ++citColumns)
+        {
+           KPGTableColumnWizInfo column = (*citColumns);
+           if((*citItems) == column.name())
+           {
+                //kdDebug() << (*citItems) << endl;
+                
+                if(pAfter)
+                    pAfter = new KPGCompletionBoxItem(this, column.icon(), column.name(), pAfter);
+                else
+                    pAfter = new KPGCompletionBoxItem(this, column.icon(), column.name());
+                
+                break;
+            }
+        }
+    }
+    //kdDebug() << "------------------" << endl;
+
+    if ( isVisible() && size().height() != sizeHint().height() )
+        calculateSize();
+
+    blockSignals( block );
+    down_workaround = true;
+}
+
+/* Old way with hock to reduce flickring
+void KPGCompletionBox::setItems( const QStringList& items, const KPGOidNameList &listOfCodeCompletionObjects )
+{
+    bool block = signalsBlocked();
+    blockSignals( true );
+
+    QListBoxItem* item = firstItem();
+    if ( !item ) 
+    {
+        QListBoxItem * pAfter = 0;
+        for(QStringList::ConstIterator cit = items.begin(); cit != items.end(); ++cit)
+        {
+            const KPGOidName * oidName = listOfCodeCompletionObjects.getItemByName(*cit);
+            if(oidName != 0)
+            {
+                if(pAfter)
+                    pAfter = new KPGCompletionBoxItem(this, * oidName->icon(), (*cit), pAfter);
+                else
+                    pAfter = new KPGCompletionBoxItem(this, * oidName->icon(), (*cit));
+            }
+        }
+    }
+    
+    else 
+    {
+        //Keep track of whether we need to change anything,
+        //so we can avoid a repaint for identical updates,
+        //to reduce flicker
+        bool dirty = false;
+        for (QStringList::ConstIterator cit = items.constBegin(); it != items.constEnd(); ++it) 
+        {
+            if(item) 
+            {
+                const bool changed = ((KPGCompletionBoxItem*)item)->reuse(*cit);
+                dirty = dirty || changed;
+                item = item->next();
+            }
+            else 
+            {
+                dirty = true;
+                
+                //Inserting an item is a way of making this dirty                
+                insertItem( new KPGCompletionBoxItem(*cit) );
+                
+            }
+        }
+
+        //If there is an unused item, mark as dirty -> less items now
+        if ( item ) 
+        {
+            dirty = true;
+        }
+
+        QListBoxItem* tmp = item;
+        while ( (item = tmp ) ) 
+        {
+            tmp = item->next();
+            delete item;
+        }
+
+        if (dirty)
+            triggerUpdate( false );
+    }
+
+    if ( isVisible() && size().height() != sizeHint().height() )
+        calculateSize();
+
+    blockSignals( block );
+    down_workaround = true;
+}
+*/
+
+
+void KPGCompletionBox::slotCurrentChanged()
+{
+    down_workaround = false;
+}
+
+void KPGCompletionBox::slotItemClicked( QListBoxItem *item )
+{
+    if ( item )
+    {
+        if ( down_workaround ) 
+        {
+            down_workaround = false;
+            emit highlighted( item->text() );
+        }
+
+        hide();
+        emit activated( item->text() );
+    }
+}
+
+void KPGCompletionBox::setActivateOnSelect(bool state)
+{
+    emitSelected = state;
+}
+
+bool KPGCompletionBox::activateOnSelect() const
+{
+    return emitSelected;
+}
+
+void KPGCompletionBox::virtual_hook( int id, void* data )
+{ KListBox::virtual_hook( id, data ); }
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgcompletionbox.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,253 @@
+//
+// C++ Interface: kpgcompletionbox
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOMPLETIONBOX_H
+#define KPGCOMPLETIONBOX_H
+
+#include <klistbox.h>
+
+#include "../DbObjects/kpgtreeitem.h"
+#include "../Wizards/kpgtablecolumnwizinfo.h"
+
+/**
+Completion box for KPGSqlEdit. Based on KDE KCompletionBox,
+but changed for using inside KTextEdit
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGCompletionBox : public KListBox
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructs a KPGCompletionBox.
+     *
+     * The parent widget is used to give the focus back when pressing the
+     * up-button on the very first item.
+     */
+    KPGCompletionBox( QWidget *parent, const char *name = 0 );
+
+    /**
+     * Destroys the box
+     */
+    ~KPGCompletionBox();
+
+    virtual QSize sizeHint() const;
+
+    /**
+     * @returns true if selecting an item results in the emition of the selected signal.
+     *
+     */
+    bool activateOnSelect() const;
+
+public slots:
+    /**
+     * Returns a list of all items currently in the box.
+     */
+    QStringList items() const;
+
+    /**
+     * Inserts @p items into the box. Does not clear the items before.
+     * @p index determines at which position @p items will be inserted.
+     * (defaults to appending them at the end)
+     */
+    //void insertItems(const QStringList&, int index = -1);
+
+    /**
+     * Clears the box and inserts @p items.
+     */
+     void setItems(const QStringList&, const KPGOidNameList &);
+     void setItems(const QStringList&, const KPGOidNameAliasesList &);
+     void setItems(const QStringList&, const KPGListTableColumns &);
+
+    /**
+     * Adjusts the size of the box to fit the width of the parent given in the
+     * constructor and pops it up at the most appropriate place, relative to
+     * the parent.
+     *
+     * Depending on the screensize and the position of the parent, this may
+     * be a different place, however the default is to pop it up and the
+     * lower left corner of the parent.
+     *
+     * Make sure to hide() the box when appropriate.
+     */
+    virtual void popup();
+
+    /**
+     * Makes this widget (when visible) capture Tab-key events to traverse the
+     * items in the dropdown list.
+     *
+     * Default off, as it conflicts with the usual behavior of Tab to traverse
+     * widgets. It is useful for cases like Konqueror's Location Bar, though.
+     *
+     * @see isTabHandling
+     */
+    void setTabHandling( bool enable );
+
+    /**
+     * @returns true if this widget is handling Tab-key events to traverse the
+     * items in the dropdown list, otherwise false.
+     *
+     * Default is false.
+     *
+     * @see setTabHandling
+     */
+    bool isTabHandling() const;
+
+    /**
+     * Sets the text to be emitted if the user chooses not to
+     * pick from the available matches.
+     *
+     * If the canceled text is not set through this function, the
+     * userCancelled signal will not be emitted.
+     *
+     * @see userCancelled( const QString& )
+     * @param txt  the text to be emitted if the user cancels this box
+     */
+    void setCancelledText( const QString& txt);
+
+    /**
+     * @returns the text set via setCancelledText() or QString::null.
+     */
+    QString cancelledText() const;
+
+    /**
+     * Set whether or not the selected signal should be emitted when an
+     * item is selected. By default the selected signal is emitted.
+     *
+     * @param state false if the signal should not be emitted.
+     */
+    void setActivateOnSelect(bool state);
+
+
+    /**
+     * Moves the selection one line down or select the first item if nothing is selected yet.
+     */
+    void down();
+
+    /**
+     * Moves the selection one line up or select the first item if nothing is selected yet.
+     */
+    void up();
+
+    /**
+     * Moves the selection one page down.
+     */
+    void pageDown();
+
+    /**
+     * Moves the selection one page up.
+     */
+    void pageUp();
+
+    /**
+     * Moves the selection up to the first item.
+     */
+    void home();
+
+    /**
+     * Moves the selection down to the last item.
+     */
+    void end();
+
+    /**
+     * Re-implemented for internal reasons.  API is unaffected.
+     */
+    virtual void show();
+
+    /**
+     * Re-implemented for internal reasons.  API is unaffected.
+     */
+    virtual void hide();
+
+signals:
+    /**
+     * Emitted when an item was selected, contains the text of
+     * the selected item.
+     */
+    void activated( const QString& );
+
+    /**
+     * Emitted whenever the user chooses to ignore the available
+     * selections and close the this box.
+     */
+    void userCancelled( const QString& );
+
+protected:
+    /**
+     * This calculates the size of the dropdown and the relative position of the top
+     * left corner with respect to the parent widget. This matches the geometry and position
+     * normally used by K/QComboBox when used with one.
+     */
+    QRect calculateGeometry() const;
+
+    /**
+     * This properly sizes the listbox.
+     */
+    void calculateSize();
+
+    /**
+     * Reimplemented from KListBox to get events from the viewport (to hide
+     * this widget on mouse-click, Escape-presses, etc.
+     */
+    virtual bool eventFilter( QObject *, QEvent * );
+
+protected slots:
+    /**
+     * Called when an item was activated. Emits
+     * activated() with the item.
+     */
+    virtual void slotActivated( QListBoxItem * );
+
+private slots:
+    void slotSetCurrentItem( QListBoxItem *i ) { setCurrentItem( i ); } 
+    void slotCurrentChanged();
+    void canceled();
+    void slotItemClicked( QListBoxItem * );
+
+protected:
+    virtual void virtual_hook( int id, void* data );
+
+private:
+    QWidget *m_parent; // necessary to set the focus back
+    QString cancelText;
+    bool tabHandling;
+    bool down_workaround;
+    bool upwardBox;
+    bool emitSelected;
+};
+
+
+class KPGCompletionBoxItem : public QListBoxPixmap
+{
+public:
+
+    KPGCompletionBoxItem(KPGCompletionBox * listbox, const QPixmap & pix, const QString & text)
+    : QListBoxPixmap(listbox, pix, text ) {;}
+        
+    KPGCompletionBoxItem(KPGCompletionBox * listbox, const QPixmap & pix, const QString & text, QListBoxItem* after)
+    :  QListBoxPixmap(listbox, pix, text, after) {;}
+
+    KPGCompletionBoxItem(const QPixmap & pix, const QString & text)
+    : QListBoxPixmap(pix, text)  {;}
+
+    //Returns true if dirty.
+    bool reuse(const QString& newText)
+    {
+        if(text() == newText)
+            return false;
+            
+        setText(newText);
+        return true;
+    }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,160 @@
+//
+// C++ Implementation: kpgqueryresultchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgqueryresultchildview.h"
+
+// include files for Qt
+#include <qdir.h>
+#include <qlayout.h>
+
+// include files for KDE
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kio/job.h>
+#include <kio/netaccess.h>
+#include <kiconloader.h>
+#include <ktextedit.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "kpgsqledit.h"
+#include "kpgqueryresultwindow.h"
+#include "../kpogreview.h"
+
+KPGQueryResultChildView::KPGQueryResultChildView(KPoGreView *pPoGreView, 
+	KParts::Factory* pKatePartFactory,
+	KXMLGUIFactory * pXmlGuiFactory,
+	const QString & strNamespaceName,
+	const QString & strSelectedName
+	)
+ : KMdiChildView(i18n("Untitled"), pPoGreView, "KPGQueryResultChildView")
+{
+	m_pPoGreView = pPoGreView;
+	
+	QBoxLayout* pLayout = new QHBoxLayout(this, 0, -1, "layout" );
+
+	m_pQueryResultWindow = new KPGQueryResultWindow(this, 
+		pPoGreView, 
+		pKatePartFactory, 
+		pXmlGuiFactory,
+		strNamespaceName,
+		strSelectedName);
+	
+	pLayout->addWidget( m_pQueryResultWindow );
+	
+	setIcon( SmallIcon("openterm") );
+	newDocument();
+	
+	connect(m_pQueryResultWindow, SIGNAL(sigUpdateTabTooltip(const QString &)),
+		this, SLOT(slotUpdateTabTooltip(const QString &)));
+		
+	connect(m_pQueryResultWindow, SIGNAL(sigFileNameChanged(const QString &)),
+		this, SLOT(slotFileNameChanged(const QString &)));
+}
+
+KPGQueryResultChildView::~KPGQueryResultChildView()
+{
+}
+
+const KURL KPGQueryResultChildView::url() const
+{
+  	return m_pQueryResultWindow->url();
+}
+
+bool KPGQueryResultChildView::newDocument()
+{
+	m_pQueryResultWindow->setQueryTextChanged(false);
+	//m_urlSqlFile.setFileName(i18n("Untitled"));
+	
+	return true;
+}
+
+bool KPGQueryResultChildView::openDocument(const KURL& url)
+{
+	if (url.isEmpty()) return false;
+
+	if (!KIO::NetAccess::exists(url, true, this))
+	{
+		KMessageBox::error (this, i18n("The given file could not be read, check if it exists or if it is readable for the current user."));
+		return false;
+	}
+  
+	m_pQueryResultWindow->loadURL(url);
+	setCaption(url.fileName());
+	return true;
+}
+
+ // Return true, if SQL script is modified
+const bool KPGQueryResultChildView::isModified() const 
+{
+	return m_pQueryResultWindow->isModified();
+}
+
+// Get document encoding
+const QString KPGQueryResultChildView::encoding() const
+{
+    return m_pQueryResultWindow->encoding();
+}
+
+// Set document encoding
+void KPGQueryResultChildView::setEncoding(const QString& strEncoding)
+{
+    m_pQueryResultWindow->setEncoding(strEncoding);
+}
+
+bool KPGQueryResultChildView::requestClose()
+{
+	if(m_pQueryResultWindow->running())
+	{
+		KMessageBox::sorry(this, i18n("Query is running, cannot close !"));	 
+		return false;
+	}
+	
+	if(isModified())
+	{
+		if(KMessageBox::questionYesNo(this, i18n("SQL script is not saved, really close window ?")) == KMessageBox::Yes) 
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+	
+	return true;
+}
+
+// Re-route signal, add pointer of this class
+void KPGQueryResultChildView::slotUpdateTabTooltip(const QString &strText)
+{
+	emit sigUpdateTabTooltip(this, strText);
+}
+
+void KPGQueryResultChildView::slotFileNameChanged(const QString &strName)
+{
+	setCaption(strName);
+}
+
+// Add KPGQueryResultWindow GUI client and its Kate GUI client to factory
+void KPGQueryResultChildView::slotActivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pQueryResultWindow->addToGuiFactory();
+}
+
+// Remove KPGQueryResultWindow GUI client and its Kate GUI client from factory
+void KPGQueryResultChildView::slotDeactivated()
+{
+	//kdDebug() << k_funcinfo << endl;
+	m_pQueryResultWindow->removeFromGuiFactory();
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultchildview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+//
+// C++ Interface: kpgqueryresultchildview
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGQUERYRESULTCHILDVIEW_H
+#define KPGQUERYRESULTCHILDVIEW_H
+
+#include <kmdichildview.h>
+#include <kparts/factory.h> // KPart Factory
+#include <kurl.h>
+
+class KPGQueryResultWindow;
+class KPoGreView;
+class KXMLGUIFactory;
+
+/**
+  * MDI child view for query/result window
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGQueryResultChildView : public KMdiChildView
+{
+	Q_OBJECT
+public:
+    KPGQueryResultChildView(KPoGreView *, KParts::Factory *, KXMLGUIFactory *, const QString &, const QString &);
+    ~KPGQueryResultChildView();
+
+	KPGQueryResultWindow * getQueryResultWindow() const { return m_pQueryResultWindow; }
+
+	// Initializes the document generally
+    bool newDocument();
+    
+	// Loads the document by filename and format 
+    bool openDocument(const KURL& url);
+        
+    // Return true, if SQL script is modified
+    const bool isModified() const;
+
+	// Get document encoding
+    const QString encoding() const;
+
+	// Set document encoding
+    void setEncoding(const QString& );
+    
+	// Get document URL
+	const KURL url() const;
+
+	// Return true, if window can be closed
+	bool requestClose();
+		
+signals:
+	
+	// Fired when need update tooltip text
+	void sigUpdateTabTooltip(KMdiChildView *, const QString &);
+	
+public slots:
+
+	// Fired when need update tooltip text
+	void slotUpdateTabTooltip(const QString &);
+	
+	void slotFileNameChanged(const QString &);
+	
+	// Add KPGQueryResultWindow GUI client and its Kate GUI client to factory
+	void slotActivated();
+
+	// Remove KPGQueryResultWindow GUI client and its Kate GUI client from factory
+	void slotDeactivated();
+	
+private:
+	KPGQueryResultWindow *m_pQueryResultWindow;
+	KPoGreView* m_pPoGreView;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1489 @@
+//
+// C++ Implementation: kpgqueryresultwindow
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgqueryresultwindow.h"
+
+
+// include files for Qt
+#include <qtable.h>
+#include <qwidgetstack.h> 
+#include <qtextcodec.h>
+#include <qsplitter.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qregexp.h>
+#include <qtimer.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <kpushbutton.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+#include <klocale.h>
+#include <kfinddialog.h>
+#include <kfind.h>
+
+// include files for KatePart
+#include <kate/document.h>  // KatePart document
+#include <ktexteditor/encodinginterface.h>
+#include <ktexteditor/viewstatusmsginterface.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "kpgqueryresultchildview.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../kpgutil.h"
+#include "kpgsyntaxhighlighter.h"
+#include "kpgsqlparser.h"
+
+#define NUM_OF_RECORDS_PER_PAGE 500 // How many records are loaded to result table 
+#define UPDATE_TIMER_INTERVAL 1000 // 1 sec for updatiing code completion
+
+KPGQueryResultWindow::KPGQueryResultWindow(KPGQueryResultChildView *parent, 
+	KPoGreView *pPoGreView,
+	KParts::Factory *pKatePartFactory,
+	KXMLGUIFactory *pXmlGuiFactory,
+	const QString & strNamespaceName,
+	const QString & strSelectedName
+	)
+	: 
+	KXMLGUIClient(pPoGreView),
+	KPGQueryResultWindowBase(parent, "KPGQueryResultWindow"),
+ 	m_pPoGreView(pPoGreView),
+	m_bCodeCompletionListUpdated(true),
+	m_pUpdateCodeCompletionListTimer(0),
+	m_pFind(0)
+{
+	// Setup GUI
+	setXMLFile("kpgqueryreslt.rc", true);
+	m_pXmlGuiFactory = pXmlGuiFactory;
+	m_bIsAddedToGuiFactory = false;
+
+	//-----------------------------------------------------------------
+	// Query/result actions
+	m_pActRunQuery = new KAction(i18n("&Run query"), "fork", Key_F8, this, SLOT(slotRunQuery()), actionCollection(), "queryresult_run_query");
+	
+	m_pActStopQuery = new KAction(i18n("&Stop query"), "stop", 0, this, SLOT(slotStopQuery()), actionCollection(), "queryresult_stop_query");
+	
+	m_pActFetchNext = new KAction(i18n("Fetch &next"), "1downarrow", 0, this, SLOT(slotFetchNext()), actionCollection(), "queryresult_fetch_next");
+	
+	m_pActFetchAll = new KAction(i18n("Fetch &all"), "2downarrow", 0, this, SLOT(slotFetchAll()), actionCollection(), "queryresult_fetch_all");
+		
+	m_pActFindInResult = new KAction(i18n("&Find in result..."), "find", 0, this, SLOT(slotFindInResult()), actionCollection(), "edit_find_in_result");
+	m_pActFindInResult->setWhatsThis(i18n("Find in result table."));
+	
+	m_pActFindNextInResult = new KAction(i18n("Find next in result"), "next", 0, this, SLOT(slotFindNextInResult()), actionCollection(), "edit_find_next_in_result");
+	m_pActFindNextInResult->setWhatsThis(i18n("Find next in result table."));
+    
+	m_pActRunQuery->setEnabled(false);
+	m_pActStopQuery->setEnabled(false);
+	m_pActFetchNext->setEnabled(false);
+  	m_pActFetchAll->setEnabled(false);
+  	
+  	//-----------------------------------------------------------------
+	// Common clipboard actions
+	m_pActCopyCell = new KAction(i18n("&Copy cell"), "editcopy", 0, this, SLOT(slotCopyCell()), actionCollection(), "copy_cell");
+	
+	m_pActCopyRow = new KAction(i18n("Copy &row"), 0, 0, this, SLOT(slotCopyRow()), actionCollection(), "copy_row");
+	
+	m_pActCopyTableCsv = new KAction(i18n("Copy table to C&SV"), 0, 0, this, SLOT(slotCopyTableCsv()), actionCollection(), "copy_table_csv");
+	
+	m_pActCopyTableXml = new KAction(i18n("Copy table to &XML"), 0, 0, this, SLOT(slotCopyTableXml()), actionCollection(), "copy_table_xml");
+	
+	//-----------------------------------------------------------------
+	// Create Kate part editor
+    m_pKateView = createKatePart(pKatePartFactory);
+	m_pFrameEditQueryLayout->addWidget(m_pKateView, 0, 0 );
+			
+	// install a working kate part popup dialog thingy
+  	if (static_cast<Kate::View*>(m_pKateView->qt_cast("Kate::View")))
+  	{
+    	static_cast <Kate::View*> (m_pKateView->qt_cast("Kate::View"))->installPopup ((QPopupMenu*)(pXmlGuiFactory->container("ktexteditor_popup", pPoGreView)) );
+  	}
+    
+    m_pKateView->setLineNumbersOn(true);
+    m_pKateView->setIconBorder(true);
+	
+	KTextEditor::HighlightingInterface *pHighlightIface = KTextEditor::highlightingInterface(m_pKateView->getDoc());
+        
+    m_iHighlightMode = 0;
+    for(uint i = 0; i < pHighlightIface->hlModeCount(); i++) 
+    {
+    	//kdDebug() << "hlmode("<<i<<"): " << pHighlightIface->hlModeName(i) << endl;
+        if (pHighlightIface->hlModeName(i).contains("SQL (PostgreSQL)", false))
+        {
+        	pHighlightIface->setHlMode(i);
+        	m_iHighlightMode = i;
+        	break;
+        }
+     }
+	
+	QString strSetSearchPath;
+	
+	if(strNamespaceName != QString::null)
+	{
+		strSetSearchPath = "SET search_path TO " + strNamespaceName + ";\n";
+	}
+	
+	setEditorText(strSetSearchPath + "SELECT * FROM ;");
+	 		
+ 	if(strSelectedName != QString::null)
+ 	{
+ 		KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+		pEditIface->insertText((strNamespaceName == QString::null) ? 0 : 1, 14, strSelectedName);
+ 	}
+ 		
+ 	viewCursorInterface(m_pKateView)->setCursorPosition((strNamespaceName == QString::null) ? 0 : 1, 14);	
+ 		
+	connect(m_pKateView->document(), SIGNAL(textChanged()), this, SLOT(slotTextEditQueryTextChanged()));
+	
+	connect(m_pKateView->document(), SIGNAL(fileNameChanged()), this, SLOT(slotFileNameChanged()));
+		
+	connect(m_pTableResult, SIGNAL(contextMenuRequested(int, int, const QPoint &)), this, SLOT(slotContextMenuRequested(int, int, const QPoint &)));
+	
+	m_ConnectionInThread.setEventReceiver(this, &m_pqxxResult);
+	
+	m_nTotalRows = 0;
+	m_nTotalCols = 0;
+	m_nFetchedRows = 0;
+   
+    m_pFrameOptions->hide();
+    
+    //-----------------------------------------------------------------
+	// Setup status message handling
+    //KTextEditor::ViewStatusMsgInterface *pViewStatusMsgIface = KTextEditor::viewStatusMsgInterface(m_pKateView);
+    
+    connect(m_pKateView, SIGNAL(viewStatusMsg(const QString &)), this, SLOT(slotTextEditStatusMsg(const QString &)));
+    
+    //-----------------------------------------------------------------
+    // Add SQL keywords to code completion list
+    clearListOfObjectsForCodeCompletion();
+    m_eCompletionMode = modeNone;
+        
+    connect(m_pKateView, SIGNAL(completionDone()), this, SLOT(slotCompletionDone()));
+    connect(m_pKateView, SIGNAL(completionAborted()), this, SLOT(slotCompletionAborted()));
+    
+    // Setup timer
+	m_pUpdateCodeCompletionListTimer = new QTimer(this);
+    connect(m_pUpdateCodeCompletionListTimer, SIGNAL(timeout()), this, SLOT(slotUpdateCodeCompletionList()));
+	m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+KPGQueryResultWindow::~KPGQueryResultWindow()
+{
+	m_pUpdateCodeCompletionListTimer->stop(); // stop timer, but don't delete it
+	
+	if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+	
+	if(m_pKateView)
+    {
+    	m_pKateView->removeEventFilter(this);
+        removeFromGuiFactory();
+
+        // remove the view, then the doc
+        Kate::Document *pDoc = m_pKateView->getDoc();
+        delete m_pKateView;
+        delete pDoc;
+    }
+}
+
+// Add yourself and Kate view to GUI factory
+void KPGQueryResultWindow::addToGuiFactory()
+{
+	if(m_pKateView && !m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->addClient(this);
+        m_pXmlGuiFactory->addClient(m_pKateView);
+        m_bIsAddedToGuiFactory = true;
+        m_pKateView->setFocus();
+    }
+}
+    
+// Remove yourself and Kate view from GUI factory
+void KPGQueryResultWindow::removeFromGuiFactory()
+{
+    if(m_pKateView && m_bIsAddedToGuiFactory)
+    {
+        m_pXmlGuiFactory->removeClient(this);
+        m_pXmlGuiFactory->removeClient(m_pKateView);
+        m_bIsAddedToGuiFactory = false;
+    }
+}
+
+// Create Kate part view
+Kate::View* KPGQueryResultWindow::createKatePart(KParts::Factory* pFactory)
+{
+    // The library was found, so create the Kate::Document
+    KTextEditor::Document *doc = (KTextEditor::Document *) pFactory->createPart(m_pFrameEditQuery, "", this, "", "KTextEditor::Document");
+
+    // The document only represents the document, to view
+    // the document's content
+    // we have to create a view for the document.
+    Kate::View *pView = (Kate::View *) doc->createView( m_pFrameEditQuery, 0L );
+	pView->installEventFilter(this); // we need watch kaybord events in our eventFilter
+	
+    // all went well, so return the view
+    return pView;
+}
+
+// Display popup menu
+void KPGQueryResultWindow::slotContextMenuRequested(int, int, const QPoint &pos)
+{
+	QWidget * pContainer = m_pXmlGuiFactory->container("popupQueryResultTable", this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name popupQueryResultTable" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}
+
+// Set editor text
+void KPGQueryResultWindow::setEditorText(const QString &strTest)
+{
+	// Setup edited text
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+	pEditIface->setText(strTest);
+		
+	KTextEditor::UndoInterface *pUndoIface = KTextEditor::undoInterface(m_pKateView->document());
+	pUndoIface->clearUndo();
+	pUndoIface->clearRedo();
+
+	m_pKateView->document()->setModified(false);
+}
+
+// Open document from given URL
+void KPGQueryResultWindow::loadURL(const KURL &url)
+{
+  	m_pKateView->document()->openURL(url);
+  	
+  	KTextEditor::HighlightingInterface *pHighlightIface = KTextEditor::highlightingInterface(m_pKateView->getDoc());
+  	
+  	pHighlightIface->setHlMode(m_iHighlightMode);
+}
+
+// Get editor text
+const QString KPGQueryResultWindow::editorText() const 
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+    return pEditIface->text();
+}
+
+// Get document encoding
+const QString KPGQueryResultWindow::encoding() const
+{
+	if(KTextEditor::encodingInterface(m_pKateView->getDoc()))
+	{
+		return KTextEditor::encodingInterface(m_pKateView->document())->encoding();
+	}
+	
+	return QString::null;
+}
+
+// Set document encoding
+void KPGQueryResultWindow::setEncoding(const QString& strEncoding)
+{
+	if(KTextEditor::encodingInterface(m_pKateView->document()))
+	{
+		KTextEditor::encodingInterface(m_pKateView->document())->setEncoding(strEncoding);
+	}
+}
+
+// Get document URL
+const KURL KPGQueryResultWindow::url() const
+{
+  	return m_pKateView->document()->url();
+}
+
+// Set flag indicating changed query text
+void KPGQueryResultWindow::setQueryTextChanged(bool bModified) 
+{ 
+   m_pKateView->document()->setModified(bModified);
+}
+
+// Is SQL query changed after last open/save ?
+bool KPGQueryResultWindow::isModified() const 
+{ 
+	return m_pKateView->document()->isModified();
+}
+
+// Set state of action Run query
+void KPGQueryResultWindow::setEnableRunQuery(bool bEnable) 
+{
+    m_pActRunQuery->setEnabled(bEnable);
+}
+
+void KPGQueryResultWindow::slotServerChanged(const QString& strServer)
+{
+    m_pActRunQuery->setEnabled(false);
+	emit sigRequestDatabasesList(this, strServer);
+}
+
+// Send SQL query to DB
+void KPGQueryResultWindow::slotRunQuery()
+{
+    // search selected server and database
+	QListViewItem * pItem = m_pPoGreView->getTreeView()->firstChild();
+	KPGDatabase *pDatabase = lookupDatabase(pItem);
+	if(pDatabase)
+		runQuery(pDatabase);
+	else
+		kdError() << k_funcinfo << "Can't obtain database !" << endl;   
+}
+
+// Stop SQL operation
+void KPGQueryResultWindow::slotStopQuery()
+{
+    stopQuery(); 
+}
+
+// Fetch next X rows from large result
+void KPGQueryResultWindow::slotFetchNext()
+{
+	fetchNext();
+}
+
+// Fetch all rows from large result    
+void KPGQueryResultWindow::slotFetchAll()
+{
+    fetchAll(); 
+}
+
+// Find first occurence of text in result table    
+void KPGQueryResultWindow::slotFindInResult()
+{
+	findInResultFirst(m_listOfResultQuerySearchHistory); 
+}
+
+// Find next occurence of text in result table    
+void KPGQueryResultWindow::slotFindNextInResult()
+{
+	findInResultNext(); 
+}
+
+void KPGQueryResultWindow::slotCopyCell()
+{
+	KPGUtil::copyCell(m_pTableResult);
+}
+
+void KPGQueryResultWindow::slotCopyRow()
+{
+	KPGUtil::copyRow(m_pTableResult);
+}
+
+void KPGQueryResultWindow::slotCopyTableCsv()
+{
+	KPGUtil::copyTableCsv(m_pTableResult);
+}
+
+void KPGQueryResultWindow::slotCopyTableXml()
+{
+	KPGUtil::copyTableXml(m_pTableResult);
+}
+
+void KPGQueryResultWindow::slotDatabaseChanged(const QString& strDatabase)
+{
+    if(strDatabase != QString::null)
+	{
+    	kdDebug() << k_funcinfo << "Database selected: " << strDatabase << endl;
+    	emit sigRequestListOfDatabaseObjectsForCodeCompletion(this, strDatabase);
+    }
+    
+    KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+    
+    bool bEnableRunQuery = ((m_pComboBoxDatabase->count() > 0) && 
+	   (pEditIface->text().length() > 0));
+	   
+	m_pActRunQuery->setEnabled(bEnableRunQuery);
+}
+
+void KPGQueryResultWindow::slotTextEditQueryTextChanged()
+{
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+	
+	bool bEnableRunQuery = ((m_pComboBoxDatabase->count() > 0) && 
+	   (pEditIface->text().length() > 0));
+	   
+
+	m_pActRunQuery->setEnabled(bEnableRunQuery);
+	   
+	updateTabToolTip();
+		
+	m_bCodeCompletionListUpdated = false;
+}
+
+void KPGQueryResultWindow::slotFileNameChanged()
+{
+	//kdDebug() << k_funcinfo << m_pKateView->getDoc()->docName() << endl;
+	emit sigFileNameChanged(m_pKateView->getDoc()->docName());
+}
+
+// Set KATE editor status message
+void KPGQueryResultWindow::slotTextEditStatusMsg(const QString &strMessage)
+{
+	m_pLabelKateStatus->setText(strMessage);
+}
+
+bool KPGQueryResultWindow::resultEmpty() const
+{ 
+	return m_pTableResult->numRows() == 0; 
+}
+
+KPGDatabase *KPGQueryResultWindow::lookupDatabase(QListViewItem * pItem)
+{
+	// get selected server and database
+	QString strServer(m_pComboBoxServer->currentText());
+	QString strDatabase(m_pComboBoxDatabase->currentText());
+		
+	if(strServer.length() == 0)
+	{
+		kdError() << k_funcinfo << " Server is not selected " << endl;
+		return 0;
+	}
+		
+	if(strDatabase.length() == 0)
+	{
+		kdError() << k_funcinfo << " Database is not selected " << endl;
+		return 0;
+	}
+		
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+            KPGServer *pServer = static_cast <KPGServer *> (pItem);
+            if(pServer->text(0) != strServer)
+            { 
+                pItem = pItem->nextSibling(); continue; }
+                        
+                //--- traverse list of connected databases
+                QListViewItem * pItem2 = pServer->firstChild();
+                
+                while(pItem2)
+                {
+                if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+                {
+                    KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+                    if(pDatabase->text(0) != strDatabase)
+                    { 
+                        pItem2 = pItem2->nextSibling(); continue; 
+                    }
+                
+                    if(pDatabase->connection())
+                    { 
+                        return pDatabase;      
+                    }
+                    else
+                    {
+                        kdError() << k_funcinfo << " Database is disconected " << endl;
+                        return 0;
+                    }
+                }     
+                pItem2 = pItem2->nextSibling();
+			}  
+		}
+		pItem = pItem->nextSibling();
+	}
+	
+	return 0;
+}
+
+void KPGQueryResultWindow::runQuery(KPGDatabase *pDatabase)
+{
+	// clear previous result
+	m_pTableResult->setNumRows(0);
+	m_pTableResult->setNumCols(0);
+	m_pTextEditResult->clear();
+	m_pTextLabelExecutionTime->setText("");
+	
+	// clear error marks
+	KTextEditor::MarkInterface *pMarkIface = KTextEditor::markInterface(m_pKateView->document());
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+							
+	unsigned int uiNumLines = pEditIface->numLines();
+	for(unsigned int line = 0; line < uiNumLines; line++)
+	{						
+		pMarkIface->removeMark(line, KTextEditor::MarkInterface::Error); 
+	}
+	
+	// free memory
+	m_pqxxResult.clear(); 
+		
+	int iTransType = m_pComboBoxTransaction->currentItem();
+	KPGConnection::ETransType transType = KPGConnection::eTransNormal;
+	switch(iTransType)
+	{
+		case 0: transType = KPGConnection::eTransNormal;
+				break;
+				
+		case 1: transType = KPGConnection::eTransRobust;
+				break;
+				
+		case 2: transType = KPGConnection::eTransNone;
+				break;
+	}
+	
+	QString strConectionString( );
+	
+	m_pKateView->setEnabled(false);
+	m_pComboBoxServer->setEnabled(false);
+	m_pComboBoxDatabase->setEnabled(false);
+	m_pComboBoxTransaction->setEnabled(false);
+	emit sigSetTerminalIcon(this, 1); // red terminal icon
+	((QWidget *) parent())->setCursor(KCursor::waitCursor());
+	
+	m_pActRunQuery->setEnabled(false);
+	m_pActStopQuery->setEnabled(true);
+	m_pActFetchNext->setEnabled(false);
+  	m_pActFetchAll->setEnabled(false);
+  	m_pActFindInResult->setEnabled(false); 
+    m_pActFindNextInResult->setEnabled(false);
+    
+	// Run connection in thread
+	m_ConnectionInThread.disconnectFromServer(); // close connection if any
+	
+	try
+	{
+		m_ConnectionInThread.connectToServer(pDatabase->connection()->options());
+	}
+	catch (const std::exception &e)
+    {
+        kdError() << "Failed to open connection " << e.what() << endl;
+        KMessageBox::sorry(this, e.what());
+        return;
+    }
+    
+    QString strSql;
+    
+    if(m_pCheckBoxExplain->isChecked())
+    {
+    	strSql.append("EXPLAIN ");
+    
+    	if(m_pCheckBoxAnalyze->isChecked())
+    		strSql.append("ANALYZE ");
+    		
+		if(m_pCheckBoxVerbose->isChecked())
+			strSql.append("VERBOSE ");
+    }
+    
+    strSql.append(editorText());
+    
+	m_ConnectionInThread.setSQL(strSql, transType);
+	m_ConnectionInThread.start();
+}
+
+void KPGQueryResultWindow::customEvent(QCustomEvent *pEvent)
+{
+	KPGQueryResultEvent *pQueryResultEvent = static_cast <KPGQueryResultEvent *> (pEvent);
+	
+	//kdDebug() << QString("Result size is: %1").arg(m_pqxxResult.size()) << endl;
+	
+	m_nFetchedRows = 0;
+		
+	// Get codec for connection client encoding
+ 	m_pTextCodec = pQueryResultEvent->connection()->textCodec();
+			
+	// Display result
+	if(m_pqxxResult.size() > 0)
+	{
+		displayExecutionTime(pQueryResultEvent->executionMiliseconds());   
+		displayResult(); 
+		m_pWidgetStackResults->raiseWidget(0);
+	}
+	else
+	{
+		m_nTotalRows = 0;
+		m_nTotalCols = 0;
+	
+		if(pQueryResultEvent->error().isEmpty() == false)
+		{
+			QString strErrorText(pQueryResultEvent->error());
+			
+			
+			if(pQueryResultEvent->connection()->notifications().count() > 0)
+			{
+				m_pTextEditResult->setText(pQueryResultEvent->connection()->notifications().join("") + strErrorText);
+				pQueryResultEvent->connection()->clearNotifications();
+			}
+			else
+			{
+				m_pTextEditResult->setText(strErrorText);
+			}
+			
+			
+			if(strErrorText.contains("syntax error at or near") > 0)
+			{
+				// Parse error message and obtain number of character position
+				QRegExp patternNumber = QRegExp("\\d+\n", false);
+				int iPos = patternNumber.search(strErrorText, 0);
+				
+				if(iPos > 0)
+				{
+					QString strNumber = strErrorText.mid(iPos);
+					kdDebug() << "Error at character: " << strNumber << endl;
+					
+					bool bConversionOk;
+					int iErrorPosition = strNumber.toInt(&bConversionOk);
+					
+					if(bConversionOk)
+					{
+						if(iErrorPosition > 1) iErrorPosition--; // 1 based -> 0 based
+						
+						// Place cursor and error mark in editor to error position
+						
+						KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+						
+						KTextEditor::MarkInterface *pMarkIface = KTextEditor::markInterface(m_pKateView->getDoc());
+						
+						unsigned int uiNumLines = pEditIface->numLines();
+												
+						for(unsigned int line = 0; line < uiNumLines; line++)
+						{
+							int iLineLength = pEditIface->lineLength(line);
+							if(iErrorPosition <= iLineLength)
+							{
+								viewCursorInterface(m_pKateView)->setCursorPosition(line, iErrorPosition);
+								pMarkIface->addMark(line, KTextEditor::MarkInterface::Error);
+								
+								break;
+							}
+							else
+							{
+								iErrorPosition -= iLineLength;
+							}
+						}
+					}
+				}
+			}
+		}
+		else
+		{
+			displayExecutionTime(pQueryResultEvent->executionMiliseconds());      
+			
+			if(pQueryResultEvent->connection()->notifications().count() > 0)
+			{
+				m_pTextEditResult->setText(pQueryResultEvent->connection()->notifications().join(""));
+				pQueryResultEvent->connection()->clearNotifications();
+			}
+			else  
+			{
+				m_pTextEditResult->setText(i18n("Operation successfull, no rows returned"));
+			}
+		}
+		m_pWidgetStackResults->raiseWidget(1); 
+	}
+	
+	m_pKateView->setEnabled(true);
+	m_pKateView->setFocus();
+	m_pComboBoxServer->setEnabled(true);
+	m_pComboBoxDatabase->setEnabled(true);
+	m_pComboBoxTransaction->setEnabled(true);
+	emit sigSetTerminalIcon(this, 2); // blue terminal icon
+	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	
+	m_ConnectionInThread.wait();
+		
+	m_pActRunQuery->setEnabled(true);
+	m_pActStopQuery->setEnabled(false);
+	m_pActFetchNext->setEnabled((fetchedAllRows()) ? false : true);
+  	m_pActFetchAll->setEnabled((fetchedAllRows()) ? false : true);
+  	m_pActFindInResult->setEnabled((resultEmpty()) ?  false : true);
+}
+
+void KPGQueryResultWindow::stopQuery()
+{
+	if(m_ConnectionInThread.running ())
+	{
+		m_ConnectionInThread.terminate();
+		m_ConnectionInThread.wait();
+		m_ConnectionInThread.leaveConnection();
+		
+		m_pTextEditResult->setText(i18n("Operation terminated"));
+		m_pWidgetStackResults->raiseWidget(1); 
+		
+		m_pKateView->setEnabled(true);
+		m_pComboBoxServer->setEnabled(true);
+		m_pComboBoxDatabase->setEnabled(true);
+		m_pComboBoxTransaction->setEnabled(true);
+		emit sigSetTerminalIcon(this, 0); // black terminal icon 
+        
+		m_pActRunQuery->setEnabled(true);
+		m_pActStopQuery->setEnabled(false);
+		m_pActFetchNext->setEnabled(false);
+		m_pActFetchAll->setEnabled(false);
+		
+		m_pqxxResult.clear(); // free memory
+		m_nTotalRows = 0;
+		m_nTotalCols = 0;
+			
+		((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	} 
+}
+
+
+void KPGQueryResultWindow::displayExecutionTime(int iMiliseconds)
+{
+    int hour = 0; int min = 0; int sec = 0;
+    int milis = iMiliseconds;
+    while(milis >= 1000)
+    {
+      milis -= 1000;
+      sec++;
+    }
+    while(sec >= 60)
+    {
+      sec -=60;
+      min++;
+    }
+    while(min >= 60)
+    {
+      min -= 60;
+      hour++;
+    }
+    
+    QString execTime;
+    if(hour > 0) execTime.append(QString("%1 h :").arg(hour));
+    execTime.append(QString("%1 m : ").arg(min));
+    execTime.append(QString("%1 s : ").arg(sec));
+    execTime.append(QString("%1 ms").arg(milis));
+      
+    m_pTextLabelExecutionTime->setText(execTime);
+}
+
+// Display SQL result
+void KPGQueryResultWindow::displayResult()
+{
+	bool bAllRowsFetched = true;
+	
+	// Fill output area with query result
+	m_nTotalRows = m_pqxxResult.size();
+	m_nTotalCols = m_pqxxResult.columns();
+		
+	m_pTableResult->setNumRows(min(m_nTotalRows, NUM_OF_RECORDS_PER_PAGE));
+	m_pTableResult->setNumCols(m_nTotalCols);
+	
+	// Field names
+	QHeader* hHeader = m_pTableResult->horizontalHeader();
+	
+	for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+	{
+		hHeader->setLabel(nCol, m_pqxxResult.column_name(nCol));
+	}
+	
+	
+	// Data
+	for(unsigned int nRow = 0; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pTextCodec->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+		if(nRow + 1 >= NUM_OF_RECORDS_PER_PAGE)
+		{
+			bAllRowsFetched = false;
+			break;
+		}
+	}
+	
+	for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+	{
+		m_pTableResult->adjustColumn(nCol);
+	}
+	
+	if(bAllRowsFetched) m_pqxxResult.clear(); // free memory
+}
+
+// Fetch next X rows from large result
+void KPGQueryResultWindow::fetchNext()
+{
+	unsigned int nRows = m_nTotalRows - m_nFetchedRows;
+	nRows = min(nRows, NUM_OF_RECORDS_PER_PAGE);
+	m_pTableResult->setNumRows(nRows + m_pTableResult->numRows());
+	
+	// Data
+	unsigned int nRow = m_nFetchedRows;
+	unsigned int nFetchedRows = 0;
+	
+	for(; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pTextCodec->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+		nFetchedRows++;
+		if(nFetchedRows >= NUM_OF_RECORDS_PER_PAGE)
+		{
+			m_pActFetchNext->setEnabled(true);
+			m_pActFetchAll->setEnabled(true);
+            break;
+		}
+	}
+	
+	if(nRow == m_nTotalRows)
+	{
+		m_pActFetchNext->setEnabled(false);
+		m_pActFetchAll->setEnabled(false);
+		m_pqxxResult.clear(); // free memory
+	}
+	
+	
+}
+  
+// Fetch all rows from large result  
+void KPGQueryResultWindow::fetchAll()
+{
+	unsigned int nRows = m_nTotalRows - m_nFetchedRows;
+	
+	if(nRows > 10000)
+	{ 
+		if( KMessageBox::questionYesNo(this, QString("There are %1 rows in result. Fething them may take long time and much anmount of memory. Continue ?").arg(nRows)) != KMessageBox::Yes )
+		{
+			return;
+		}
+	}
+	
+	((QWidget *) parent())->setCursor(KCursor::waitCursor());
+	m_pTableResult->setNumRows(nRows + m_pTableResult->numRows());
+	
+	// Data
+	unsigned int nRow = m_nFetchedRows;
+	for(; nRow < m_nTotalRows; nRow++)
+	{
+		for(unsigned int nCol = 0; nCol < m_nTotalCols; nCol++)
+		{
+			QString strValue(m_pTextCodec->toUnicode(m_pqxxResult[nRow][nCol].c_str()));
+			m_pTableResult->setText(nRow, nCol, strValue);
+		}
+		
+		m_nFetchedRows++;
+	}
+	
+	((QWidget *) parent())->setCursor(KCursor::arrowCursor());
+	
+	m_pActFetchNext->setEnabled(false);
+	m_pActFetchAll->setEnabled(false);
+    
+	m_pqxxResult.clear(); // free memory
+}  
+
+void KPGQueryResultWindow::updateTabToolTip()
+{
+	QString strText = editorText().left(150);
+	emit sigUpdateTabTooltip(strText);
+}
+
+void KPGQueryResultWindow::slotExplainToggled(bool bToggled)
+{
+	m_pCheckBoxAnalyze->setEnabled(bToggled);
+	m_pCheckBoxVerbose->setEnabled(bToggled);
+}
+
+void KPGQueryResultWindow::slotButtonOptionsToggleg(bool bToggled)
+{
+	if(bToggled)
+	{
+		m_pFrameOptions->show();
+	}
+	else
+	{
+		m_pFrameOptions->hide();
+	}
+}
+
+// Find first occurence of text in result table
+void KPGQueryResultWindow::findInResultFirst(QStringList &listOfSearchHistory)
+{
+    KFindDialog dlg(this, "", 0, listOfSearchHistory, false);
+    dlg.setHasCursor(false);
+        
+    int c = dlg.exec();
+    
+    if(c != QDialog::Accepted)
+        return;
+
+    listOfSearchHistory = dlg.findHistory();
+        
+    
+    if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+    m_pFind = new KFind(dlg.pattern(), dlg.options(), this);
+
+    // Connect highlight signal to code which handles highlighting
+    // of found text.
+    connect( m_pFind, SIGNAL( highlight( const QString &, int, int ) ),
+             this, SLOT( slotHighlight( const QString &, int, int ) ) );
+             
+    // Connect findNext signal - called when pressing the button in the dialog
+    connect( m_pFind, SIGNAL( findNext() ), this, SLOT( slotFindInResultNext() ) );
+
+    m_iRowToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? m_pTableResult->numRows() - 1 : 0;
+    m_iColToSearch = (m_pFind->options() & KFindDialog::FindBackwards) ? m_pTableResult->numCols() - 1 : 0;
+    m_pFind->setData(m_pTableResult->text(m_iRowToSearch, m_iColToSearch));
+
+    slotFindInResultNext();
+}
+
+// Find next occurence of text in result table
+void KPGQueryResultWindow::findInResultNext()
+{
+    m_iRowToSearch = m_pTableResult->currentRow();
+	m_iColToSearch = m_pTableResult->currentColumn();
+	if(m_iRowToSearch < 0) return;
+	if(m_iColToSearch < 0) return;
+	
+    slotFindInResultNext();
+}
+
+// Find next occurence of text
+void KPGQueryResultWindow::slotFindInResultNext()
+{
+	if (!m_pFind) // shouldn't be called before find is activated
+        return;
+
+    KFind::Result res = KFind::NoMatch;
+    while ( res == KFind::NoMatch &&
+    		((m_pFind->options() & KFindDialog::FindBackwards) ? 
+    				(m_iRowToSearch >= 0) : (m_iRowToSearch < m_pTableResult->numRows())
+    		) 
+          ) 
+    	{
+    		//kdDebug() << "searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+        	
+        	Q_ASSERT(m_iRowToSearch >= 0);
+            Q_ASSERT(m_iRowToSearch < m_pTableResult->numRows());
+            Q_ASSERT(m_iColToSearch >= 0);
+            Q_ASSERT(m_iColToSearch < m_pTableResult->numCols());
+            	
+        	if(m_pFind->needData()) 
+        	{
+            	m_pFind->setData(m_pTableResult->text(m_iRowToSearch, m_iColToSearch));
+        	}
+        
+        	// Let KFind inspect the text fragment, and display a dialog if a match is found
+        	res = m_pFind->find();
+        
+        	if( res == KFind::NoMatch ) 
+        	{
+            	if((m_pFind->options() & KFindDialog::FindBackwards))
+            	{
+            		if(m_iColToSearch == 0)
+            		{
+            			m_iColToSearch = m_pTableResult->numCols() - 1;
+            			m_iRowToSearch--;
+            		}
+            		else
+            		{
+            			m_iColToSearch--;
+            		}
+            	}
+            	else
+            	{
+            		if(m_iColToSearch == m_pTableResult->numCols() - 1)
+            		{
+            			m_iColToSearch = 0;
+            			m_iRowToSearch++;
+            		}
+            		else
+            		{
+            			m_iColToSearch++;
+            		}
+            	}
+        	}
+        	//kdDebug() << "2searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+		}
+
+    if( res == KFind::NoMatch ) 
+    { // i.e. at end
+        m_pFind->displayFinalDialog();
+        m_pFind->resetCounts();
+        m_pTableResult->removeSelection(0);
+    }
+}
+
+// Highligth found text
+void KPGQueryResultWindow::slotHighlight( const QString &, int, int)
+{
+    //kdDebug() << "highlight: " << index << " " << length << endl;
+    m_pTableResult->setCurrentCell(m_iRowToSearch, m_iColToSearch);
+}
+
+// Re-route signal from KPGSqlEdit
+void KPGQueryResultWindow::slotRequestTableColumnsListsForCodeCompletion(pqxx::oid oidTable)
+{
+	emit sigRequestTableColumnsListsForCodeCompletion(this, oidTable);
+}
+
+// Re-route signal from KPGSqlEdit
+void KPGQueryResultWindow::slotRequestSchemaChildsListsForCodeCompletion(pqxx::oid oidSchema)
+{
+    emit sigRequestSchemaChildsListsForCodeCompletion(this, oidSchema);
+}
+
+// Re-route signal from KPGSqlEdit
+void KPGQueryResultWindow::slotRequestFunctionReturnTypeAttributesListsForCodeCompletion(pqxx::oid oidFunction)
+{
+	emit sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(this, oidFunction);
+}
+
+// Fired from m_pUpdateCodeCompletionListTimer. Updates aliases 
+// in m_listOfCodeCompletionObjects according to current SQL
+void KPGQueryResultWindow::slotUpdateCodeCompletionList()
+{
+	if(m_bCodeCompletionListUpdated) return;
+	kdDebug() << k_funcinfo << endl;
+	m_pUpdateCodeCompletionListTimer->stop(); 
+
+	KPGSqlParser::updateAliases(editorText(), m_listOfCodeCompletionObjects); 
+
+	m_bCodeCompletionListUpdated = true;
+	m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL );
+}
+
+// Fired when the completion list disappears and a completion has been inserted into text.
+void KPGQueryResultWindow::slotCompletionDone()
+{
+	kdDebug() << k_funcinfo << endl;
+	m_eCompletionMode = modeNone;
+}
+	
+// Fired when the completion list disappears and no completion has been done
+void KPGQueryResultWindow::slotCompletionAborted()
+{
+	kdDebug() << k_funcinfo << endl;
+	m_eCompletionMode = modeNone;
+}
+
+// Return the string to complete (the letters behind the cursor)
+QString KPGQueryResultWindow::word()
+{
+	uint cline, ccol;
+	viewCursorInterface(m_pKateView)->cursorPositionReal(&cline, &ccol);
+	if (! ccol) return QString::null; // no word
+	
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+	
+	//m_RegExp.setWildcard(false);
+	m_RegExp.setPattern( "\\b(\\w+)$" );
+	if ( m_RegExp.searchRev(pEditIface->text( cline, 0, cline, ccol )) < 0 )
+		return QString::null; // no word
+		
+	kdDebug() << m_RegExp.cap( 1 ) << endl;
+	return m_RegExp.cap( 1 );
+}
+
+// Return the string to complete (the letters behind the cursor)
+QString KPGQueryResultWindow::wordBeforeDot()
+{
+	uint cline, ccol;
+	viewCursorInterface(m_pKateView)->cursorPositionReal(&cline, &ccol);
+	if (! ccol) return QString::null; // no word
+	
+	KTextEditor::EditInterface *pEditIface = KTextEditor::editInterface(m_pKateView->document());
+				
+	//m_RegExp.setWildcard(true);
+	m_RegExp.setPattern( "\\b(\\w+\\.)$" );
+	if ( m_RegExp.searchRev(pEditIface->text( cline, 0, cline, ccol )) < 0 )
+		return QString::null; // no word
+		
+	kdDebug() << m_RegExp.cap( 1 );
+	return m_RegExp.cap( 1 );
+}
+
+// Set list of main DB objects for code completion
+void KPGQueryResultWindow::setListOfObjectsForCodeCompletion(const KPGOidNameList &listOfCodeCompletionObjects)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+    clearListOfObjectsForCodeCompletion();
+    
+    // Add given DB objects
+    for(KPGOidNameList::const_iterator cit = listOfCodeCompletionObjects.begin(); cit != listOfCodeCompletionObjects.end(); ++cit)
+    {
+        m_listOfCodeCompletionObjects.append(KPGOidNameAliases(*cit));
+    }
+    
+    // Sort list of code completions
+    m_listOfCodeCompletionObjects.sort();
+    
+    // Create list of all completions
+    /*for(KPGOidNameAliasesList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+	{
+        KTextEditor::CompletionEntry e;
+    	e.text = ((*cit).name());
+        m_completionList.append(e);
+    }*/
+                
+    m_bCodeCompletionListUpdated = false;
+    if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+// Set list of schema childs for code completion
+void KPGQueryResultWindow::setListOfSchemaChildsForCodeCompletion(const KPGOidNameList &listOfCodeCompletionObjects)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+    clearListOfSchemaChildsForCodeCompletion();
+    
+    // Add given DB objects
+    for(KPGOidNameList::const_iterator cit = listOfCodeCompletionObjects.begin(); cit != listOfCodeCompletionObjects.end(); ++cit)
+    {
+        m_listOfCodeCompletionSchemaChilds.append(*cit);
+    }
+    
+    // Sort list of code completions
+    m_listOfCodeCompletionSchemaChilds.sort();
+    
+    // Create list of all completions
+    /*for(KPGOidNameList::const_iterator cit = m_listOfCodeCompletionSchemaChilds.begin(); cit != m_listOfCodeCompletionSchemaChilds.end(); ++cit)
+	{
+        KTextEditor::CompletionEntry e;
+    	e.text = ((*cit).name());
+        m_completionList.append(e);
+    }*/
+                
+    m_bCodeCompletionListUpdated = false;
+    if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+// Clear list of DB objects for code completion
+void KPGQueryResultWindow::clearListOfObjectsForCodeCompletion()
+{
+	m_listOfCodeCompletionObjects.clear();
+    // @deprecated m_completionList.clear();
+    
+    // Add SQL keywords to list
+    /*  @deprecated QStringList strKeyWords = KPGSyntaxHighlighter::listOfKeyWords();
+    
+    for(QStringList::const_iterator cit = strKeyWords.begin(); cit != strKeyWords.end(); ++cit)
+    {
+    	KTextEditor::CompletionEntry e;
+    	e.text = (*cit);
+        m_completionList.append(e);
+    }*/
+}
+
+// Clear list of schema childs for code completion
+void KPGQueryResultWindow::clearListOfSchemaChildsForCodeCompletion()
+{
+    m_listOfCodeCompletionSchemaChilds.clear();
+    // @deprecated m_completionList.clear();
+}
+
+// Set list of table columns/type attributes for code completion
+void KPGQueryResultWindow::setListOfColumnsForCodeCompletion(const KPGListTableColumns &listOfTableColumns)
+{
+	clearListOfColumnsForCodeCompletion();
+    
+    // Add given table columns, create list of all completions
+    for(KPGListTableColumns::const_iterator cit = listOfTableColumns.begin(); cit != listOfTableColumns.end(); ++cit)
+    {
+        m_listOfCodeCompletionColumns.append(*cit);
+        
+        /* @deprecated KTextEditor::CompletionEntry e;
+    	e.text = ((*cit).name());
+        m_completionList.append(e);*/
+    }
+}
+
+// Clear list of table columns/type attributes for code completion
+void KPGQueryResultWindow::clearListOfColumnsForCodeCompletion()
+{
+	m_listOfCodeCompletionColumns.clear();
+    // @deprecated m_completionList.clear();
+}
+
+// Filters events - for watching Ctrl+SPACE and others keys, that starts code completion
+bool KPGQueryResultWindow::eventFilter(QObject *pObject, QEvent *pEvent)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+	
+	if(pObject == m_pKateView)
+	{	
+		switch(pEvent->type())
+		{
+			case QEvent::KeyPress: 
+				{
+					QKeyEvent *pKeyEvent = static_cast <QKeyEvent*> (pEvent);
+							
+					if((pKeyEvent->key() == Key_Space) && (pKeyEvent->state() & ControlButton))
+					{
+						kdDebug() << k_funcinfo << "updateCtrlSpaceCompletion " << endl;
+						updateCtrlSpaceCompletion(); 
+						return true;
+					}
+				}
+				break;
+				
+			case QEvent::KeyRelease: 
+				{
+					QKeyEvent *pKeyEvent = static_cast <QKeyEvent*> (pEvent);
+							
+					if(pKeyEvent->key() == Key_Period)
+					{
+						kdDebug() << k_funcinfo << "updatePeriodCompletion " << endl;
+						updatePeriodCompletion(); 
+						return true;
+					}
+				}
+				break;
+			
+			default: 
+				break;
+		}
+	}
+	
+	bool bRetVal = KPGQueryResultWindowBase::eventFilter(pObject, pEvent);
+	
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+	
+	return bRetVal;
+}
+
+// Get uncompleted word, set it to completion and set completed items to box, eventually show it
+void KPGQueryResultWindow::updateCtrlSpaceCompletion()
+{
+    QString strWord(word());
+		
+	QStringList strKeyWords = KPGSyntaxHighlighter::listOfKeyWords();
+    QValueList<KTextEditor::CompletionEntry> listMatches;
+    for(QStringList::const_iterator cit = strKeyWords.begin(); cit != strKeyWords.end(); ++cit)
+    {
+    	KTextEditor::CompletionEntry e;
+    	e.text = (*cit);
+    	e.comment = "KEYWORD";
+        listMatches.append(e);
+    }
+    
+    for(KPGOidNameAliasesList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+	    {
+            KTextEditor::CompletionEntry e;
+			//e.type = (*i).type;
+			e.text = (*cit).name();
+			
+			switch((*cit).type())
+			{
+				case KPGTreeItem::nodeTable:  
+						e.comment = i18n("Table");
+						break;
+													   	
+				case KPGTreeItem::nodeFunction:  
+						e.comment = i18n("Function");
+						e.postfix = (*cit).argumentTypes();
+						break;
+													   						   	
+				default: break;							   						   	
+			}
+			
+			if(((*cit).description() != QString::null) && ((*cit).description().length() > 0))
+			{
+				e.comment += ": " + (*cit).description();
+			}
+			
+			listMatches.append(e);
+        }
+		
+	m_eCompletionMode = modeMainObjects;
+	updateCompletion(strWord, listMatches);
+}
+
+// Set columns into completion if table/function name is left before period: aaa.
+void KPGQueryResultWindow::updatePeriodCompletion()
+{
+    QString strWord(wordBeforeDot());
+    QString strWordWithoutDot(strWord.left(strWord.length() - 1));	
+		
+	if(strWord.length() > 0)
+	{											
+		// If code completion is not up-to date, update it first
+        if(!m_bCodeCompletionListUpdated)
+        {
+        	slotUpdateCodeCompletionList();
+        }
+        
+        kdDebug() << k_funcinfo << " for: " << strWordWithoutDot << endl;
+		
+		// Uncompleted word is table or alias
+		      
+        // Find table or function, 1st by name, 2nd by alias
+        const KPGOidNameAliases * pOidNameAliases = m_listOfCodeCompletionObjects.getConstItemByName(strWordWithoutDot); 
+        if(pOidNameAliases == 0)
+        {
+            pOidNameAliases = m_listOfCodeCompletionObjects.getConstItemByAlias(strWordWithoutDot); 
+        }
+            
+        if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeSchema))
+        {
+            emit sigRequestSchemaChildsListsForCodeCompletion(this, pOidNameAliases->oid());
+            QValueList<KTextEditor::CompletionEntry> listMatches;
+                
+            for(KPGOidNameList::const_iterator cit = m_listOfCodeCompletionSchemaChilds.begin(); cit != m_listOfCodeCompletionSchemaChilds.end(); ++cit)
+            {
+                KTextEditor::CompletionEntry e;
+				//e.type = "";
+				e.text = (*cit).name();
+				//e.comment = (*i).comment;
+				//e.userdata = (*i).userdata;
+					
+				switch((*cit).type())
+				{
+					case KPGTreeItem::nodeTable:  
+							e.comment = i18n("Table");
+							break;
+													   	
+					case KPGTreeItem::nodeFunction:  
+							e.comment = i18n("Function");
+							e.postfix = (*cit).argumentTypes();
+							break;
+													   						   	
+					default: break;					   						   	
+				}
+					
+				if(((*cit).description() != QString::null) && ((*cit).description().length() > 0))
+				{
+					e.comment += ": " + (*cit).description();
+				}
+			
+				listMatches.append(e);
+            }
+                
+            m_eCompletionMode = modeSchemaChilds;
+            updateCompletion(strWordWithoutDot, listMatches);
+        }
+        else if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeTable))
+        {
+          	// Uncompleted word is table column
+		    
+            emit sigRequestTableColumnsListsForCodeCompletion(this, pOidNameAliases->oid());
+                
+            QValueList<KTextEditor::CompletionEntry> listMatches;
+            for(KPGListTableColumns::const_iterator cit = m_listOfCodeCompletionColumns.begin(); cit != m_listOfCodeCompletionColumns.end(); ++cit)
+            {
+                KTextEditor::CompletionEntry e;
+				e.type = "COLUMN";
+				e.text = (*cit).name();
+				e.comment = (*cit).typName() + i18n(" column");
+				//e.userdata = (*i).userdata;
+					
+				if(((*cit).description() != QString::null) && ((*cit).description().length() > 0))
+				{
+					e.comment += ": " + (*cit).description();
+				}
+					
+				listMatches.append(e);
+            }
+                
+            m_eCompletionMode = modeTableColumns;
+            updateCompletion(listMatches);
+        }
+        else if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeFunction))
+        {
+            // Uncompleted word is function return type column
+            emit sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(this, pOidNameAliases->oid());
+                
+            QValueList<KTextEditor::CompletionEntry> listMatches;
+            for(KPGListTableColumns::const_iterator cit = m_listOfCodeCompletionColumns.begin(); cit != m_listOfCodeCompletionColumns.end(); ++cit)
+            {
+                KTextEditor::CompletionEntry e;
+				e.type = "COLUMN";
+				e.text = (*cit).name();
+				e.comment = i18n("Function column");
+				//e.userdata = (*i).userdata;
+				listMatches.append(e);
+            }
+                                                
+            m_eCompletionMode = modeTableColumns;
+            updateCompletion(listMatches);
+        }
+	}
+}
+
+// Set completed items to box, eventually show it
+void KPGQueryResultWindow::updateCompletion(const QString &strWord, const QValueList<KTextEditor::CompletionEntry> & completionList)
+{	
+	if(completionList.count() > 0)
+	{
+		//m_completionList = completionList;
+		
+		KTextEditor::CodeCompletionInterface * pCodeComplIface = KTextEditor::codeCompletionInterface(m_pKateView);
+		
+		pCodeComplIface->showCompletionBox(completionList, strWord.length(), true);
+	}
+	else
+	{
+	    m_eCompletionMode = modeNone;
+	}
+}
+
+// Set completed items to box, eventually show it
+void KPGQueryResultWindow::updateCompletion(const QValueList<KTextEditor::CompletionEntry> & completionList)
+{	
+	if(completionList.count() > 0)
+	{
+		//m_completionList = completionList;
+		
+		KTextEditor::CodeCompletionInterface * pCodeComplIface = KTextEditor::codeCompletionInterface(m_pKateView);
+		
+		pCodeComplIface->showCompletionBox(completionList, 0, true);
+	}
+	else
+	{
+	    m_eCompletionMode = modeNone;
+	}
+}
+
+// Scan for possible completions, ignoring any dublets
+/*QValueList<KTextEditor::CompletionEntry> KPGQueryResultWindow::allMatches(const QString &word)
+{
+	QValueList<KTextEditor::CompletionEntry> completionList;
+	
+	QValueList < KTextEditor::CompletionEntry >::const_iterator i = m_completionList.begin();
+	for (++i; i != m_completionList.end(); ++i)
+	{
+			if((*i).text.startsWith(word))
+			{
+				KTextEditor::CompletionEntry e;
+				e.type = (*i).type;
+				e.text = (*i).text;
+				e.prefix = (*i).prefix;
+				e.postfix = (*i).postfix;
+				e.comment = (*i).comment;
+				e.userdata = (*i).userdata;
+				completionList.append(e);
+			}
+	}
+	
+	return completionList;
+}*/

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindow.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,382 @@
+//
+// C++ Interface: kpgqueryresultwindow
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGQUERYRESULTWINDOW_H
+#define KPGQUERYRESULTWINDOW_H
+
+#include "kpgqueryresultwindowbase.h"
+
+#include <qregexp.h>
+
+#include <kparts/factory.h> // KPart Factory
+#include <kate/view.h>      // Katepart view
+
+#include "../kpgconnectioninthread.h"
+#include "../Wizards/kpgtablecolumnwizinfo.h"
+
+class QListViewItem;
+class KFind;
+class KCompletionBox;
+class KXMLGUIFactory;
+
+class KPGDatabase;
+class KPoGreView;
+class KPGQueryResultChildView;
+
+
+/**
+  * SQL Query / result window. 
+  * Allow enter SQL query, run it and display the result.
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGQueryResultWindow : public KPGQueryResultWindowBase, virtual public KXMLGUIClient
+{
+	Q_OBJECT
+public: 
+	KPGQueryResultWindow(KPGQueryResultChildView *, KPoGreView *, KParts::Factory* , KXMLGUIFactory *, const QString &, const QString &);
+	~KPGQueryResultWindow();
+    
+    // Enumerates code completion modes
+     enum ECompletionMode { modeNone = 0, modeMainObjects, modeSchemaChilds, modeTableColumns };
+    
+    // Open document from given URL
+    void loadURL(const KURL &);
+    
+    // Get document encoding
+    const QString encoding() const;
+    
+    // Set document encoding
+    void setEncoding(const QString& );
+    
+    // Get document URL
+	const KURL url() const;
+	
+    // Get editor text
+    const QString editorText() const;
+    
+    // Add yourself and Kate view to GUI factory
+    void addToGuiFactory();
+    
+    // Remove yourself and Kate view from GUI factory
+    void removeFromGuiFactory();
+    
+    // Display popup menu
+	void popupContextMenu(const QString &, const QPoint &);
+	
+    // Set state of action Run query
+    void setEnableRunQuery(bool bEnable);
+      	  	
+  	// Returns QTable with result
+  	QTable *tableResult() const { return m_pTableResult; }
+
+	// Is SQL query changed after last open/save ?
+	bool isModified() const;
+	
+	// Set flag indicating changed query text
+	void setQueryTextChanged(bool);
+	
+	// Signalize, if result contain at least one row
+	bool resultEmpty() const;
+  
+  	// Is all rows fetched from resultset do m_pTableResult ?
+  	bool fetchedAllRows() const { return m_nTotalRows == m_nFetchedRows;  }
+  
+  	// Lookup KPGDatabase for selected server and database in combo boxes 
+  	KPGDatabase * lookupDatabase(QListViewItem *);
+  		
+	// Returns TRUE if the connection thread is running; otherwise returns FALSE.
+	bool running() const { return  m_ConnectionInThread.running(); }
+	
+	// Fetch next X rows from large result
+	void fetchNext();
+	
+	// Fetch all rows from large result  
+	void fetchAll();
+	
+	// Filters events
+	bool eventFilter(QObject *, QEvent *);
+	
+	//-------------------------------------------------------------------------
+    //
+    // Code completion implementation
+    //
+    //-------------------------------------------------------------------------
+    
+	// Set list of main DB objects for code completion to SQL editor 
+	void setListOfObjectsForCodeCompletion(const KPGOidNameList &);
+	
+	// Clear list of objects for code completion to SQL editor 
+	void clearListOfObjectsForCodeCompletion();
+	
+	// Clear list of schema childs for code completion
+	void clearListOfSchemaChildsForCodeCompletion();
+	
+	// Set list of schema childs for code completion to SQL editor 
+	void setListOfSchemaChildsForCodeCompletion(const KPGOidNameList &);
+	
+	// Set list of table columns/type attributes for code completition to SQL editor 
+	void setListOfColumnsForCodeCompletion(const KPGListTableColumns &);
+	
+	// Clear list of table columns for code completition
+	void clearListOfColumnsForCodeCompletion();
+				
+	//-------------------------------------------------------------------------
+    //
+    // Find in result implementation
+    //
+    //-------------------------------------------------------------------------
+    			
+	// Find first occurence of text in result table
+	void findInResultFirst(QStringList &);
+		
+	// Find next occurence of text in result table
+	void findInResultNext();
+		
+protected:
+   
+    // Create Kate part view
+	Kate::View* createKatePart(KParts::Factory*);
+	
+	// Set editor text
+    void setEditorText(const QString &);
+    
+    // Receive event from KPGConnectionInThread
+    virtual void customEvent(QCustomEvent *);
+
+    // Display SQL result
+    void displayResult();
+    
+    // Display query execution time
+    void displayExecutionTime(int);
+  
+  	void updateTabToolTip();
+  
+	// Run SQL query
+	void runQuery(KPGDatabase *);
+	
+	// Terminate thread that run SQL query
+	void stopQuery();
+
+	//-------------------------------------------------------------------------
+    //
+    // Code completion implementation
+    //
+    //-------------------------------------------------------------------------
+
+	// Return the string to complete (the letters behind the cursor)
+	QString word();
+	
+	// Return the string to complete (the letters behind the cursor), like xxx.
+	QString wordBeforeDot();
+	
+	// Get uncompleted word, set it to completition and set completed items to box, eventually show it
+    void updateCtrlSpaceCompletion();
+    
+    // Set table columns into completition if table name is left before period: table.
+    void updatePeriodCompletion();
+    
+    // Set completed items to box, eventually show it
+	void updateCompletion(const QString &, const QValueList<KTextEditor::CompletionEntry> &);
+	
+	// Set completed items to box, eventually show it
+	void updateCompletion(const QValueList<KTextEditor::CompletionEntry> &);
+	
+	// Scan for possible completions, ignoring any dublets
+	//QValueList<KTextEditor::CompletionEntry> allMatches(const QString &);
+
+public slots:
+
+	void slotDatabaseChanged(const QString&);
+  
+protected slots:
+    
+	//--- Query/result actions
+	void slotRunQuery();
+    void slotStopQuery();
+    void slotFetchNext();
+    void slotFetchAll();
+    void slotFindInResult();
+    void slotFindNextInResult();
+
+	//--- Common clibpoard actions
+    void slotCopyCell();
+    void slotCopyRow();
+    void slotCopyTableCsv();
+    void slotCopyTableXml();
+    
+	// Display popup menu for result QTable
+	void slotContextMenuRequested(int, int, const QPoint &);
+	
+	// Fired, when server changed in combobox
+	void slotServerChanged(const QString &);
+    
+	// Called, when user change text in SQL input area. Mark document as modified.
+   	void slotTextEditQueryTextChanged();
+   	
+   	// SQL file name changed
+   	void slotFileNameChanged();
+   	
+   	// Called, when Kate editor change status message
+   	void slotTextEditStatusMsg(const QString &);
+
+	virtual void slotExplainToggled(bool);
+	
+	virtual void slotButtonOptionsToggleg(bool);
+	
+	//-------------------------------------------------------------------------
+    //
+    // Code completion related slots
+    //
+    //-------------------------------------------------------------------------
+    
+	// Called, when m_pTextEditQuery needed schema childs list, for code completion 
+	void slotRequestSchemaChildsListsForCodeCompletion(pqxx::oid);
+	
+	// Called, when m_pTextEditQuery needed table columns list, for code completion 
+	void slotRequestTableColumnsListsForCodeCompletion(pqxx::oid);
+	
+	// Called, when m_pTextEditQuery needed function columns list, for code completion 
+	void slotRequestFunctionReturnTypeAttributesListsForCodeCompletion(pqxx::oid);
+	
+	// Fired from m_pUpdateCodeCompletionListTimer
+    void slotUpdateCodeCompletionList();
+	
+	// Fired when the completion list disappears and a completion has been inserted into text.
+	void slotCompletionDone();
+	
+	// Fired when the completion list disappears and no completion has been done
+	void slotCompletionAborted();
+	
+	// Find next occurence of text
+    void slotFindInResultNext();
+    
+    // Highligth found text
+    void slotHighlight( const QString &, int, int);
+	
+private:
+	int max(int a, int b) { return a > b ? a : b; }
+	int min(int a, int b) { return a < b ? a : b; }
+		
+signals:
+
+	// Emited, when info about databases list is needed
+	void sigRequestDatabasesList(KPGQueryResultWindow *, const QString&);
+	
+	// Emited, when database is selected and list of object for code completition is needed
+	void sigRequestListOfDatabaseObjectsForCodeCompletion(KPGQueryResultWindow *, const QString&);
+	
+	// Emited, when m_listOfCodeCompletionSchemaChilds need update
+	void sigRequestSchemaChildsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+	
+	// Emited, when list of code completion table columns need update
+	void sigRequestTableColumnsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+	
+	// Emited, when list of code completion table columns need update
+	void sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+				
+	// Emited for request to change terminal icon in QTabWidget 
+	void sigSetTerminalIcon(KPGQueryResultWindow *, int);
+	
+	// Emited when need update tooltip text
+	void sigUpdateTabTooltip(const QString &);
+	
+	void sigFileNameChanged(const QString &);
+		  
+protected:
+
+	// For replacing in data tables and result tables
+	QStringList m_listOfQueryReplacementHistory;
+	
+	// For searching in data tables and result tables
+	QStringList m_listOfResultQuerySearchHistory;
+
+	// Main app view
+	KPoGreView *m_pPoGreView;
+
+	// Query/result actions
+	KAction* m_pActRunQuery;
+    KAction* m_pActStopQuery;
+    KAction* m_pActFetchNext;
+    KAction* m_pActFetchAll;
+    KAction* m_pActFindInResult;
+    KAction* m_pActFindNextInResult;
+	    
+	// Common clipboard actions
+    KAction* m_pActCopyCell;
+	KAction* m_pActCopyRow;
+	KAction* m_pActCopyTableCsv;
+	KAction* m_pActCopyTableXml;
+	
+	// Kate part editor
+    Kate::View* m_pKateView;
+
+	// XML GUI factory
+    KXMLGUIFactory * m_pXmlGuiFactory;
+    
+    // True, if Kate View is in GUI factory
+    bool m_bIsAddedToGuiFactory;
+
+    // Codec for encode/decode strings from/to database
+    QTextCodec *m_pTextCodec;
+	
+	// Number of higlighting mode to set
+	uint m_iHighlightMode;
+	
+	// Thread that run queries on background
+	KPGConnectionInThread m_ConnectionInThread;
+	
+	// Resultset to display
+	pqxx::result m_pqxxResult;
+	
+	unsigned int m_nTotalRows; // Number of rows in result
+	unsigned int m_nFetchedRows; // Number of fetched rows from result
+	unsigned int m_nTotalCols; // Number of columns in result
+	
+	//-------------------------------------------------------------------------
+    //
+    // Code completion variables
+    //
+    //-------------------------------------------------------------------------
+
+	// Regexp for code completion support
+	QRegExp m_RegExp;
+	
+	// List of main database objects for code completition, from PUBLIC schema
+	KPGOidNameAliasesList m_listOfCodeCompletionObjects;
+	
+	// List of schema childs (tables, views, functions, sequences) for code completition
+	KPGOidNameList m_listOfCodeCompletionSchemaChilds;
+	
+	// List of table/function columns for code completition
+	KPGListTableColumns m_listOfCodeCompletionColumns;
+	
+	// List of code completion entries
+	//QValueList<KTextEditor::CompletionEntry> m_completionList;
+	
+	// Flag, indicating, if m_listOfCodeCompletionObjects need to be updated.
+	bool m_bCodeCompletionListUpdated;
+	
+	// Timer, that ensure periodically update m_listOfCodeCompletionObjects
+	QTimer *m_pUpdateCodeCompletionListTimer;
+	
+	// Current completition mode
+	ECompletionMode m_eCompletionMode;
+	
+private:
+	// A generic implementation of the "find" function
+	KFind *m_pFind;
+	
+	int m_iRowToSearch;
+	int m_iColToSearch;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,265 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/QueryResult/kpgqueryresultwindowbase.ui'
+**
+** Created: Út dub 1 13:07:24 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgqueryresultwindowbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qsplitter.h>
+#include <qframe.h>
+#include <qcheckbox.h>
+#include <qwidgetstack.h>
+#include <qtable.h>
+#include <ktextedit.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "ktextedit.h"
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGQueryResultWindowBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGQueryResultWindowBase::KPGQueryResultWindowBase( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGQueryResultWindowBase" );
+    KPGQueryResultWindowBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGQueryResultWindowBaseLayout"); 
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    m_pTextLabelServer = new QLabel( this, "m_pTextLabelServer" );
+    m_pTextLabelServer->setTextFormat( QLabel::PlainText );
+    layout3->addWidget( m_pTextLabelServer );
+
+    m_pComboBoxServer = new KComboBox( FALSE, this, "m_pComboBoxServer" );
+    m_pComboBoxServer->setMinimumSize( QSize( 170, 0 ) );
+    layout3->addWidget( m_pComboBoxServer );
+
+    KPGQueryResultWindowBaseLayout->addLayout( layout3, 0, 0 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    m_pTextLabelDatabase = new QLabel( this, "m_pTextLabelDatabase" );
+    m_pTextLabelDatabase->setTextFormat( QLabel::PlainText );
+    layout4->addWidget( m_pTextLabelDatabase );
+
+    m_pComboBoxDatabase = new KComboBox( FALSE, this, "m_pComboBoxDatabase" );
+    m_pComboBoxDatabase->setMinimumSize( QSize( 170, 0 ) );
+    layout4->addWidget( m_pComboBoxDatabase );
+
+    KPGQueryResultWindowBaseLayout->addLayout( layout4, 0, 1 );
+
+    m_pSplitterVertical = new QSplitter( this, "m_pSplitterVertical" );
+    m_pSplitterVertical->setOrientation( QSplitter::Vertical );
+
+    frame4 = new QFrame( m_pSplitterVertical, "frame4" );
+    frame4->setFrameShape( QFrame::StyledPanel );
+    frame4->setFrameShadow( QFrame::Raised );
+    frame4->setLineWidth( 0 );
+    frame4Layout = new QGridLayout( frame4, 1, 1, 0, 6, "frame4Layout"); 
+
+    m_pFrameEditQuery = new QFrame( frame4, "m_pFrameEditQuery" );
+    m_pFrameEditQuery->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)5, 0, 0, m_pFrameEditQuery->sizePolicy().hasHeightForWidth() ) );
+    m_pFrameEditQuery->setFrameShape( QFrame::StyledPanel );
+    m_pFrameEditQuery->setFrameShadow( QFrame::Raised );
+    m_pFrameEditQuery->setLineWidth( 0 );
+    m_pFrameEditQuery->setMargin( 0 );
+    m_pFrameEditQueryLayout = new QGridLayout( m_pFrameEditQuery, 1, 1, 0, 6, "m_pFrameEditQueryLayout"); 
+
+    frame4Layout->addWidget( m_pFrameEditQuery, 0, 0 );
+
+    m_pFrameOptions = new QFrame( frame4, "m_pFrameOptions" );
+    m_pFrameOptions->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, 0, 0, m_pFrameOptions->sizePolicy().hasHeightForWidth() ) );
+    m_pFrameOptions->setFrameShape( QFrame::StyledPanel );
+    m_pFrameOptions->setFrameShadow( QFrame::Raised );
+    m_pFrameOptions->setLineWidth( 0 );
+    m_pFrameOptionsLayout = new QGridLayout( m_pFrameOptions, 1, 1, 0, 6, "m_pFrameOptionsLayout"); 
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    m_pTextLabelXAct = new QLabel( m_pFrameOptions, "m_pTextLabelXAct" );
+    layout5->addWidget( m_pTextLabelXAct );
+
+    m_pComboBoxTransaction = new KComboBox( FALSE, m_pFrameOptions, "m_pComboBoxTransaction" );
+    layout5->addWidget( m_pComboBoxTransaction );
+
+    m_pFrameOptionsLayout->addLayout( layout5, 0, 0 );
+    spacer2 = new QSpacerItem( 21, 40, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    m_pFrameOptionsLayout->addItem( spacer2, 3, 0 );
+
+    layout6 = new QGridLayout( 0, 1, 1, 0, 6, "layout6"); 
+
+    m_pCheckBoxExplain = new QCheckBox( m_pFrameOptions, "m_pCheckBoxExplain" );
+    m_pCheckBoxExplain->setChecked( FALSE );
+
+    layout6->addMultiCellWidget( m_pCheckBoxExplain, 0, 0, 0, 1 );
+    spacer2_2 = new QSpacerItem( 20, 20, QSizePolicy::Fixed, QSizePolicy::Minimum );
+    layout6->addItem( spacer2_2, 1, 0 );
+
+    layout5_2 = new QVBoxLayout( 0, 0, 6, "layout5_2"); 
+
+    m_pCheckBoxAnalyze = new QCheckBox( m_pFrameOptions, "m_pCheckBoxAnalyze" );
+    m_pCheckBoxAnalyze->setEnabled( FALSE );
+    layout5_2->addWidget( m_pCheckBoxAnalyze );
+
+    m_pCheckBoxVerbose = new QCheckBox( m_pFrameOptions, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setEnabled( FALSE );
+    layout5_2->addWidget( m_pCheckBoxVerbose );
+
+    layout6->addLayout( layout5_2, 1, 1 );
+
+    m_pFrameOptionsLayout->addLayout( layout6, 1, 0 );
+
+    layout6_2 = new QVBoxLayout( 0, 0, 6, "layout6_2"); 
+
+    textLabel1_2 = new QLabel( m_pFrameOptions, "textLabel1_2" );
+    layout6_2->addWidget( textLabel1_2 );
+
+    m_pTextLabelExecutionTime = new QLabel( m_pFrameOptions, "m_pTextLabelExecutionTime" );
+    m_pTextLabelExecutionTime->setMargin( 3 );
+    layout6_2->addWidget( m_pTextLabelExecutionTime );
+
+    m_pFrameOptionsLayout->addLayout( layout6_2, 2, 0 );
+
+    frame4Layout->addWidget( m_pFrameOptions, 0, 1 );
+
+    m_pWidgetStackResults = new QWidgetStack( m_pSplitterVertical, "m_pWidgetStackResults" );
+    m_pWidgetStackResults->setLineWidth( 1 );
+
+    WStackPageTable = new QWidget( m_pWidgetStackResults, "WStackPageTable" );
+    WStackPageTableLayout = new QGridLayout( WStackPageTable, 1, 1, 0, 6, "WStackPageTableLayout"); 
+
+    m_pTableResult = new QTable( WStackPageTable, "m_pTableResult" );
+    m_pTableResult->setNumRows( 0 );
+    m_pTableResult->setNumCols( 0 );
+    m_pTableResult->setReadOnly( TRUE );
+    m_pTableResult->setSorting( FALSE );
+    m_pTableResult->setSelectionMode( QTable::SingleRow );
+
+    WStackPageTableLayout->addWidget( m_pTableResult, 0, 0 );
+    m_pWidgetStackResults->addWidget( WStackPageTable, 0 );
+
+    WStackPageTextEdit = new QWidget( m_pWidgetStackResults, "WStackPageTextEdit" );
+    WStackPageTextEditLayout = new QGridLayout( WStackPageTextEdit, 1, 1, 0, 6, "WStackPageTextEditLayout"); 
+
+    m_pTextEditResult = new KTextEdit( WStackPageTextEdit, "m_pTextEditResult" );
+    m_pTextEditResult->setTextFormat( KTextEdit::PlainText );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WStackPageTextEditLayout->addWidget( m_pTextEditResult, 0, 0 );
+    m_pWidgetStackResults->addWidget( WStackPageTextEdit, 1 );
+
+    KPGQueryResultWindowBaseLayout->addMultiCellWidget( m_pSplitterVertical, 1, 1, 0, 4 );
+
+    layout20 = new QVBoxLayout( 0, 0, 6, "layout20"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout20->addWidget( textLabel1 );
+
+    m_pPushButtonOptions = new KPushButton( this, "m_pPushButtonOptions" );
+    m_pPushButtonOptions->setToggleButton( TRUE );
+    m_pPushButtonOptions->setOn( FALSE );
+    layout20->addWidget( m_pPushButtonOptions );
+
+    KPGQueryResultWindowBaseLayout->addLayout( layout20, 0, 2 );
+    spacer9 = new QSpacerItem( 60, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGQueryResultWindowBaseLayout->addItem( spacer9, 0, 3 );
+
+    layout8 = new QVBoxLayout( 0, 0, 6, "layout8"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout8->addWidget( textLabel2 );
+
+    m_pLabelKateStatus = new QLabel( this, "m_pLabelKateStatus" );
+    m_pLabelKateStatus->setAlignment( int( QLabel::AlignVCenter | QLabel::AlignRight ) );
+    layout8->addWidget( m_pLabelKateStatus );
+
+    KPGQueryResultWindowBaseLayout->addLayout( layout8, 0, 4 );
+    languageChange();
+    resize( QSize(647, 469).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxServer, SIGNAL( activated(const QString&) ), this, SLOT( slotServerChanged(const QString&) ) );
+    connect( m_pCheckBoxExplain, SIGNAL( toggled(bool) ), this, SLOT( slotExplainToggled(bool) ) );
+    connect( m_pPushButtonOptions, SIGNAL( toggled(bool) ), this, SLOT( slotButtonOptionsToggleg(bool) ) );
+    connect( m_pComboBoxDatabase, SIGNAL( activated(const QString&) ), this, SLOT( slotDatabaseChanged(const QString&) ) );
+
+    // buddies
+    m_pTextLabelServer->setBuddy( m_pComboBoxServer );
+    m_pTextLabelDatabase->setBuddy( m_pComboBoxDatabase );
+    m_pTextLabelXAct->setBuddy( m_pComboBoxTransaction );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGQueryResultWindowBase::~KPGQueryResultWindowBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGQueryResultWindowBase::languageChange()
+{
+    setCaption( tr2i18n( "SQL Query" ) );
+    m_pTextLabelServer->setText( tr2i18n( "Ser&ver:" ) );
+    m_pTextLabelDatabase->setText( tr2i18n( "D&atabase:" ) );
+    m_pTextLabelXAct->setText( tr2i18n( "&XAct:" ) );
+    m_pComboBoxTransaction->clear();
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Transaction" ) );
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Robust trans." ) );
+    m_pComboBoxTransaction->insertItem( tr2i18n( "Nontransaction" ) );
+    m_pCheckBoxExplain->setText( tr2i18n( "Ex&plain" ) );
+    m_pCheckBoxExplain->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    m_pCheckBoxAnalyze->setText( tr2i18n( "&Analyze" ) );
+    m_pCheckBoxAnalyze->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "&Verbose" ) );
+    m_pCheckBoxVerbose->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    textLabel1_2->setText( tr2i18n( "Execution time:" ) );
+    textLabel1->setText( QString::null );
+    m_pPushButtonOptions->setText( tr2i18n( "&Options" ) );
+    m_pPushButtonOptions->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    textLabel2->setText( QString::null );
+    m_pLabelKateStatus->setText( tr2i18n( "xxx" ) );
+}
+
+void KPGQueryResultWindowBase::slotServerChanged(const QString&)
+{
+    qWarning( "KPGQueryResultWindowBase::slotServerChanged(const QString&): Not implemented yet" );
+}
+
+void KPGQueryResultWindowBase::slotExplainToggled(bool)
+{
+    qWarning( "KPGQueryResultWindowBase::slotExplainToggled(bool): Not implemented yet" );
+}
+
+void KPGQueryResultWindowBase::slotButtonOptionsToggleg(bool)
+{
+    qWarning( "KPGQueryResultWindowBase::slotButtonOptionsToggleg(bool): Not implemented yet" );
+}
+
+void KPGQueryResultWindowBase::slotDatabaseChanged(const QString&)
+{
+    qWarning( "KPGQueryResultWindowBase::slotDatabaseChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgqueryresultwindowbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgqueryresultwindowbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,544 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGQueryResultWindowBase</class>
+<comment>Window that contain SQL editor and result table</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGQueryResultWindowBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>647</width>
+            <height>469</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>SQL Query</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>m_pTextLabelServer</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Ser&amp;ver:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxServer</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxServer</cstring>
+                    </property>
+                    <property name="minimumSize">
+                        <size>
+                            <width>170</width>
+                            <height>0</height>
+                        </size>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>m_pTextLabelDatabase</cstring>
+                    </property>
+                    <property name="text">
+                        <string>D&amp;atabase:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxDatabase</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxDatabase</cstring>
+                    </property>
+                    <property name="minimumSize">
+                        <size>
+                            <width>170</width>
+                            <height>0</height>
+                        </size>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QSplitter" row="1" column="0" rowspan="1" colspan="5">
+            <property name="name">
+                <cstring>m_pSplitterVertical</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <widget class="QFrame">
+                <property name="name">
+                    <cstring>frame4</cstring>
+                </property>
+                <property name="frameShape">
+                    <enum>StyledPanel</enum>
+                </property>
+                <property name="frameShadow">
+                    <enum>Raised</enum>
+                </property>
+                <property name="lineWidth">
+                    <number>0</number>
+                </property>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <widget class="QFrame" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pFrameEditQuery</cstring>
+                        </property>
+                        <property name="sizePolicy">
+                            <sizepolicy>
+                                <hsizetype>7</hsizetype>
+                                <vsizetype>5</vsizetype>
+                                <horstretch>0</horstretch>
+                                <verstretch>0</verstretch>
+                            </sizepolicy>
+                        </property>
+                        <property name="frameShape">
+                            <enum>StyledPanel</enum>
+                        </property>
+                        <property name="frameShadow">
+                            <enum>Raised</enum>
+                        </property>
+                        <property name="lineWidth">
+                            <number>0</number>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <property name="margin">
+                                <number>0</number>
+                            </property>
+                        </grid>
+                    </widget>
+                    <widget class="QFrame" row="0" column="1">
+                        <property name="name">
+                            <cstring>m_pFrameOptions</cstring>
+                        </property>
+                        <property name="sizePolicy">
+                            <sizepolicy>
+                                <hsizetype>1</hsizetype>
+                                <vsizetype>1</vsizetype>
+                                <horstretch>0</horstretch>
+                                <verstretch>0</verstretch>
+                            </sizepolicy>
+                        </property>
+                        <property name="frameShape">
+                            <enum>StyledPanel</enum>
+                        </property>
+                        <property name="frameShadow">
+                            <enum>Raised</enum>
+                        </property>
+                        <property name="lineWidth">
+                            <number>0</number>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <property name="margin">
+                                <number>0</number>
+                            </property>
+                            <widget class="QLayoutWidget" row="0" column="0">
+                                <property name="name">
+                                    <cstring>layout5</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>m_pTextLabelXAct</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>&amp;XAct:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxTransaction</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KComboBox">
+                                        <item>
+                                            <property name="text">
+                                                <string>Transaction</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>Robust trans.</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>Nontransaction</string>
+                                            </property>
+                                        </item>
+                                        <property name="name">
+                                            <cstring>m_pComboBoxTransaction</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <spacer row="3" column="0">
+                                <property name="name">
+                                    <cstring>spacer2</cstring>
+                                </property>
+                                <property name="orientation">
+                                    <enum>Vertical</enum>
+                                </property>
+                                <property name="sizeType">
+                                    <enum>Expanding</enum>
+                                </property>
+                                <property name="sizeHint">
+                                    <size>
+                                        <width>21</width>
+                                        <height>40</height>
+                                    </size>
+                                </property>
+                            </spacer>
+                            <widget class="QLayoutWidget" row="1" column="0">
+                                <property name="name">
+                                    <cstring>layout6</cstring>
+                                </property>
+                                <grid>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+                                        <property name="name">
+                                            <cstring>m_pCheckBoxExplain</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Ex&amp;plain</string>
+                                        </property>
+                                        <property name="accel">
+                                            <string>Alt+P</string>
+                                        </property>
+                                        <property name="checked">
+                                            <bool>false</bool>
+                                        </property>
+                                    </widget>
+                                    <spacer row="1" column="0">
+                                        <property name="name">
+                                            <cstring>spacer2_2</cstring>
+                                        </property>
+                                        <property name="orientation">
+                                            <enum>Horizontal</enum>
+                                        </property>
+                                        <property name="sizeType">
+                                            <enum>Fixed</enum>
+                                        </property>
+                                        <property name="sizeHint">
+                                            <size>
+                                                <width>20</width>
+                                                <height>20</height>
+                                            </size>
+                                        </property>
+                                    </spacer>
+                                    <widget class="QLayoutWidget" row="1" column="1">
+                                        <property name="name">
+                                            <cstring>layout5_2</cstring>
+                                        </property>
+                                        <vbox>
+                                            <property name="name">
+                                                <cstring>unnamed</cstring>
+                                            </property>
+                                            <widget class="QCheckBox">
+                                                <property name="name">
+                                                    <cstring>m_pCheckBoxAnalyze</cstring>
+                                                </property>
+                                                <property name="enabled">
+                                                    <bool>false</bool>
+                                                </property>
+                                                <property name="text">
+                                                    <string>&amp;Analyze</string>
+                                                </property>
+                                                <property name="accel">
+                                                    <string>Alt+A</string>
+                                                </property>
+                                            </widget>
+                                            <widget class="QCheckBox">
+                                                <property name="name">
+                                                    <cstring>m_pCheckBoxVerbose</cstring>
+                                                </property>
+                                                <property name="enabled">
+                                                    <bool>false</bool>
+                                                </property>
+                                                <property name="text">
+                                                    <string>&amp;Verbose</string>
+                                                </property>
+                                                <property name="accel">
+                                                    <string>Alt+V</string>
+                                                </property>
+                                            </widget>
+                                        </vbox>
+                                    </widget>
+                                </grid>
+                            </widget>
+                            <widget class="QLayoutWidget" row="2" column="0">
+                                <property name="name">
+                                    <cstring>layout6_2</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel1_2</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Execution time:</string>
+                                        </property>
+                                    </widget>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>m_pTextLabelExecutionTime</cstring>
+                                        </property>
+                                        <property name="margin">
+                                            <number>3</number>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                        </grid>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidgetStack">
+                <property name="name">
+                    <cstring>m_pWidgetStackResults</cstring>
+                </property>
+                <property name="lineWidth">
+                    <number>1</number>
+                </property>
+                <widget class="QWidget">
+                    <property name="name">
+                        <cstring>WStackPageTable</cstring>
+                    </property>
+                    <attribute name="id">
+                        <number>0</number>
+                    </attribute>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <widget class="QTable" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pTableResult</cstring>
+                            </property>
+                            <property name="numRows">
+                                <number>0</number>
+                            </property>
+                            <property name="numCols">
+                                <number>0</number>
+                            </property>
+                            <property name="readOnly">
+                                <bool>true</bool>
+                            </property>
+                            <property name="sorting">
+                                <bool>false</bool>
+                            </property>
+                            <property name="selectionMode">
+                                <enum>SingleRow</enum>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QWidget">
+                    <property name="name">
+                        <cstring>WStackPageTextEdit</cstring>
+                    </property>
+                    <attribute name="id">
+                        <number>1</number>
+                    </attribute>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <widget class="KTextEdit" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pTextEditResult</cstring>
+                            </property>
+                            <property name="textFormat">
+                                <enum>PlainText</enum>
+                            </property>
+                            <property name="readOnly">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+            </widget>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="2">
+            <property name="name">
+                <cstring>layout20</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string></string>
+                    </property>
+                </widget>
+                <widget class="KPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonOptions</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Options</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+O</string>
+                    </property>
+                    <property name="toggleButton">
+                        <bool>true</bool>
+                    </property>
+                    <property name="on">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="3">
+            <property name="name">
+                <cstring>spacer9</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>60</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="4">
+            <property name="name">
+                <cstring>layout8</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string></string>
+                    </property>
+                </widget>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>m_pLabelKateStatus</cstring>
+                    </property>
+                    <property name="text">
+                        <string>xxx</string>
+                    </property>
+                    <property name="alignment">
+                        <set>AlignVCenter|AlignRight</set>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxServer</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGQueryResultWindowBase</receiver>
+        <slot>slotServerChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxExplain</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGQueryResultWindowBase</receiver>
+        <slot>slotExplainToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGQueryResultWindowBase</receiver>
+        <slot>slotButtonOptionsToggleg(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxDatabase</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGQueryResultWindowBase</receiver>
+        <slot>slotDatabaseChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotServerChanged( const QString &amp; )</slot>
+    <slot access="protected">slotExplainToggled(bool)</slot>
+    <slot access="protected">slotButtonOptionsToggleg(bool)</slot>
+    <slot>slotDatabaseChanged(const QString&amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>ktextedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,892 @@
+//
+// C++ Implementation: kpgsqledit
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsqledit.h"
+
+// include files for KDE
+#include <klocale.h>
+#include <kdebug.h>
+#include <kfinddialog.h>
+#include <kreplacedialog.h>
+#include <kfind.h>
+#include <kreplace.h>
+
+// include files for Qt
+#include <private/qrichtext_p.h> // We need QTextCursor
+#include <qtimer.h>
+#include <qregexp.h>
+
+// application specific includes
+#include "kpgsyntaxhighlighter.h"
+#include "kpgcompletionbox.h"
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "kpgsqleditorsettings.h"
+#include "kpgsqlparser.h"
+
+#define UPDATE_TIMER_INTERVAL 1000 // 1 sec
+
+KPGSqlEdit::KPGSqlEdit(QWidget* pParent, const char* szName)
+ : KTextEdit(pParent, szName),
+ m_pUpdateCodeCompletionListTimer(0),
+ m_bCodeCompletionListUpdated(true),
+ m_pFind(0),
+ m_pReplace(0),
+ m_bIgnoreSelectionClearing(false)
+{
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(this);
+	m_pCompletionBox = new KPGCompletionBox(this);
+	m_eCompletionMode = modeNone;
+	
+	// Add SQL keywords to list
+    QStringList strKeyWords = KPGSyntaxHighlighter::listOfKeyWords();
+    
+    for(QStringList::const_iterator cit = strKeyWords.begin(); cit != strKeyWords.end(); ++cit)
+    {
+        // SQL keywords are identified as nodeUnselected
+        m_listOfCodeCompletionObjects.append(KPGOidName(0, *cit, KPGTreeItem::nodeUnselected, KPGTreeItem::m_pIconNull, QString::null));
+    }
+	completionObject()->insertItems(KPGSyntaxHighlighter::listOfKeyWords());
+		
+	// SQL is case insensitive language
+	completionObject()->setIgnoreCase(true); 
+		
+	// Apply current configuration
+	slotSqlEditorSettingsChanged();
+	
+ 	// and make sure to be informed about its changes.
+	connect(KPoGreView::configuration()->sqleditor(), SIGNAL(sigChanged()), this, SLOT(slotSqlEditorSettingsChanged()));
+	connect(m_pCompletionBox, SIGNAL(activated(const QString &)), this, SLOT(setCompletedText(const QString &)));
+	connect(this, SIGNAL(textChanged()), this, SLOT(slotTextChanged()));
+	
+	// Setup timer
+	m_pUpdateCodeCompletionListTimer = new QTimer(this);
+    connect(m_pUpdateCodeCompletionListTimer, SIGNAL(timeout()), this, SLOT(slotUpdateCodeCompletionList()));
+	m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+KPGSqlEdit::~KPGSqlEdit()
+{
+	delete m_pSyntaxHighlighter;
+	if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+	if(m_pReplace != 0) delete m_pReplace;
+	
+	m_pUpdateCodeCompletionListTimer->stop(); // stop timer, but don't delete it
+}
+
+void KPGSqlEdit::slotSqlEditorSettingsChanged()
+{
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+    setFont( KPoGreView::configuration()->sqleditor()->font() );
+    
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+// Filters events - for watching Ctrl+SPACE
+bool KPGSqlEdit::eventFilter(QObject *pObject, QEvent *pEvent)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+	
+	switch(pEvent->type()) 
+	{
+		case QEvent::KeyPress: 
+		{
+			QKeyEvent *pKeyEvent = (QKeyEvent*) pEvent;
+				
+			if((pKeyEvent->key() == Key_Space) && (pKeyEvent->state() & ControlButton) && (m_pCompletionBox->isVisible() == false))
+			{
+			    updateCtrlSpaceCompletion(true); 
+                return true;
+			}
+			else if((pKeyEvent->key() == Key_Period) && (m_pCompletionBox->isVisible() == false))
+			{
+			    updatePeriodCompletion(true); 
+			}
+			
+			break;
+		}
+		default: break;
+	}
+	
+	bool bRetVal = KTextEdit::eventFilter(pObject, pEvent);
+	
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+	
+	return bRetVal;
+}
+
+// Update completion when text changed
+void KPGSqlEdit::slotTextChanged()
+{
+    if(m_pCompletionBox->isVisible())
+	{
+		if(m_eCompletionMode == modeMainObjects)
+		{
+		  updateCtrlSpaceCompletion(false);
+		}
+		else if(m_eCompletionMode == modeSchemaChilds) 
+		{
+		  updatePeriodCompletion(false);
+		}
+		else if(m_eCompletionMode == modeTableColumns) 
+		{
+		  updatePeriodCompletion(false);
+		}
+		else
+		{
+		  m_bCodeCompletionListUpdated = false;
+		  Q_ASSERT(m_pUpdateCodeCompletionListTimer->isActive());
+		}
+	}
+	else
+	{
+	   m_bCodeCompletionListUpdated = false;
+	   Q_ASSERT(m_pUpdateCodeCompletionListTimer->isActive());
+	}
+}
+
+// TODO multiline comments !
+const QString KPGSqlEdit::uncompletedWord()
+{
+	// Get cursor position 
+	int para, index;
+	getCursorPosition(&para, &index );								
+												
+	// Get text at cursor position, look at last word before cursor
+	QString strText(text(para));
+	QString strOneWord("");
+	bool bInsideComment = false;
+	
+	for(unsigned int i = 0; i < strText.length(); i++)
+	{
+		if(i >= (unsigned int) index) break;
+					
+	    QChar ch = strText[i];
+		
+		if((ch == '-') && (i > 0) && (strText[i-1] == '-') && (!bInsideComment))
+		{
+		    bInsideComment = true;
+            continue;
+		}
+		
+		if(bInsideComment) 
+		{
+          if(ch == '\n')
+		  {   bInsideComment = false;
+		      continue;
+		  }
+		  else continue;
+		}
+		
+		if((ch.isLetter()) || (ch.isDigit()) || (ch == '$') || (ch == '_'))
+		{
+		    strOneWord.append(ch);
+		}
+		else
+		{
+		    strOneWord.truncate(0);
+		}
+	}
+	
+	QRegExp patternIdentifier("^[\\w][\\w$]*$"); // SQL identifiers and key words must begin with a letter 
+    // (a-z, but also letters with diacritical marks and non-Latin letters) or an underscore (_). 
+    // Subsequent characters in an identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($). 
+	
+	if((strOneWord.length() > 0) && (!strOneWord[0].isDigit()) && (patternIdentifier.search(strOneWord, 0) == 0))
+		return strOneWord; // Return uncompleted word, only if it's valid identifier
+	else
+	   return QString("");
+}
+
+// Get uncompleted word, set it to completion and set completed items to box, eventually show it
+void KPGSqlEdit::updateCtrlSpaceCompletion(bool bShow)
+{
+    QString strWord(uncompletedWord());
+													
+	// Set-up and eventually show completion box
+	QStringList strListMatches;
+	if(strWord.length() > 0)
+	{											
+		kdDebug() << k_funcinfo << " for: " << strWord << endl;
+		strListMatches = completionObject()->allMatches(strWord.upper());
+	}	
+	else
+	{
+	    for(KPGOidNameAliasesList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+	    {
+            strListMatches.append((*cit).name());
+        }
+	}	
+		
+	m_eCompletionMode = modeMainObjects;
+	updateCompletion(bShow, strListMatches);
+}
+
+// Restore completion words from list of main objects
+void KPGSqlEdit::restoreCtrlSpaceCompletion()
+{
+    completionObject()->clear();
+    
+    // Create list of all completions
+    QStringList strAllCompletions;
+    for(KPGOidNameAliasesList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+	{
+        strAllCompletions.append((*cit).name());
+    }
+        
+    completionObject()->insertItems(strAllCompletions);
+}
+	
+// Set columns into completion if table/function name is left before period: aaa.
+void KPGSqlEdit::updatePeriodCompletion(bool bShow)
+{
+    QString strWord(uncompletedWord());	
+		
+	if(strWord.length() > 0)
+	{											
+		// If code completion is not up-to date, update it first
+        if(!m_bCodeCompletionListUpdated)
+        {
+        	slotUpdateCodeCompletionList();
+        }
+        
+        kdDebug() << k_funcinfo << " for: " << strWord << endl;
+		if(bShow)
+		{
+		    // Uncompleted word is table or alias
+		      
+            // Find table or function, 1st by name, 2nd by alias
+            const KPGOidNameAliases * pOidNameAliases = m_listOfCodeCompletionObjects.getConstItemByName(strWord); 
+            if(pOidNameAliases == 0)
+            {
+                pOidNameAliases = m_listOfCodeCompletionObjects.getConstItemByAlias(strWord); 
+            }
+            
+            if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeSchema))
+            {
+                emit sigRequestSchemaChildsListsForCodeCompletion(pOidNameAliases->oid());
+                QStringList strListMatches;
+                
+                for(KPGOidNameList::const_iterator cit = m_listOfCodeCompletionSchemaChilds.begin(); cit != m_listOfCodeCompletionSchemaChilds.end(); ++cit)
+                {
+                    strListMatches.append((*cit).name());
+                }
+                
+                m_eCompletionMode = modeSchemaChilds;
+                updateCompletion(bShow, strListMatches);
+            }
+            else if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeTable))
+            {
+                emit sigRequestTableColumnsListsForCodeCompletion(pOidNameAliases->oid());
+                
+                QStringList strListMatches;
+                for(KPGListTableColumns::const_iterator cit = m_listOfCodeCompletionColumns.begin(); cit != m_listOfCodeCompletionColumns.end(); ++cit)
+                {
+                    strListMatches.append((*cit).name());
+                }
+                
+                m_eCompletionMode = modeTableColumns;
+                updateCompletion(bShow, strListMatches);
+            }
+            else if(pOidNameAliases && (pOidNameAliases->type() == KPGTreeItem::nodeFunction))
+            {
+                emit sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(pOidNameAliases->oid());
+                
+                QStringList strListMatches;
+                for(KPGListTableColumns::const_iterator cit = m_listOfCodeCompletionColumns.begin(); cit != m_listOfCodeCompletionColumns.end(); ++cit)
+                {
+                    strListMatches.append((*cit).name());
+                }
+                
+                m_eCompletionMode = modeTableColumns;
+                updateCompletion(bShow, strListMatches);
+            }
+		}
+		else
+		{
+		    // Uncompleted word is table column
+		    
+		    // Set-up and eventually show completion box
+            QStringList strListMatches;
+            if(strWord.length() > 0)
+            {											
+                strListMatches = completionObject()->allMatches(strWord.upper());
+            }	
+            else
+            {
+                /*for(KPGOidNameList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+                {
+                    strListMatches.append((*cit).name());
+                }*/
+                Q_ASSERT(false);
+            }
+		    
+		    Q_ASSERT(m_eCompletionMode == modeTableColumns);
+            updateCompletion(bShow, strListMatches);
+		}
+	}
+}
+
+// Set completed items to box, eventually show it
+void KPGSqlEdit::updateCompletion(bool bShow, const QStringList &strListMatches)
+{
+	if(strListMatches.count() > 0)
+	{
+		QTextCursor *pTextCursor = textCursor();
+												
+		// Get cursor place, make correction to display completion box on proper place
+		QPoint point(pTextCursor->globalX(), pTextCursor->globalY() + 18); // TODO: 18 -> fontHeigth
+		point = viewport()->mapToGlobal(contentsToViewport(point));
+										
+		setCompletedItems(strListMatches);
+		m_pCompletionBox->move(point);
+			
+		if(bShow)
+		    m_pCompletionBox->show();
+	}
+	else
+	{
+	    if(m_pCompletionBox->isVisible())
+	    {
+	        m_pCompletionBox->hide();
+	        
+	        if(m_eCompletionMode != modeMainObjects)
+                restoreCtrlSpaceCompletion();
+                
+	        m_eCompletionMode = modeNone;
+	    }
+	}
+}
+
+void KPGSqlEdit::setCompletionObject(KCompletion* comp, bool hsig)
+{
+    KCompletion *oldComp = compObj();
+    if( oldComp && handleSignals() )
+       disconnect( oldComp, SIGNAL( matches( const QStringList& )), this, SLOT( setCompletedItems( const QStringList& )));
+
+    if( comp && hsig )
+      connect( comp, SIGNAL( matches( const QStringList& )), this, SLOT( setCompletedItems( const QStringList& )));
+
+    KCompletionBase::setCompletionObject( comp, hsig );
+}
+
+// Insert code completion
+void KPGSqlEdit::setCompletedText(const QString& strCompletion)
+{
+	// Get cursot position 
+	int para, index;
+	getCursorPosition(&para, &index);								
+												
+	// Get text at cursor position, look at last word before cursor
+	QString strText = text(para);
+	for(int i = index; i > 0; i--)
+	{
+	    QChar ch = strText[i - 1];
+		if((ch == ' ') || (ch == '.') || (ch == '\t') || (ch == '\n') || (ch == '(') || (ch == ')')) break;
+		//kdDebug() << "Removing: " << strText[i-1] << endl;
+		doKeyboardAction(ActionBackspace); // remove uncomplete word
+	}
+	
+	getCursorPosition(&para, &index );	
+	insertAt(strCompletion, para, index ); // insert completed word
+	KTextEdit::setCursorPosition(para, index +  strCompletion.length());
+		
+	if(m_eCompletionMode != modeMainObjects)
+        restoreCtrlSpaceCompletion();
+        
+    m_eCompletionMode = modeNone;
+}
+
+void KPGSqlEdit::setCompletedItems(const QStringList& items)
+{
+    QString txt;
+    if (m_pCompletionBox && m_pCompletionBox->isVisible() )
+    {
+        // The popup is visible already - do the matching on the initial string,
+        // not on the currently selected one.
+        txt = m_pCompletionBox->cancelledText();
+    } 
+    else 
+    {
+        txt = uncompletedWord();
+    }
+    
+    if ( !items.isEmpty() && !(items.count() == 1 && txt == items.first()) )
+    {
+    	if ( m_pCompletionBox->isVisible() )
+        {
+        	bool wasSelected = m_pCompletionBox->isSelected( m_pCompletionBox->currentItem() );
+            const QString currentSelection = m_pCompletionBox->currentText();
+            
+            switch(m_eCompletionMode)
+            {
+            	case modeMainObjects: 
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionObjects);
+            			break;
+            			
+            	case modeSchemaChilds: 
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionSchemaChilds);
+            			break;
+            			
+            	case modeTableColumns:
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionColumns);
+            			break;
+            			
+            	case modeNone: 
+            	        Q_ASSERT(false);
+            	        break;	
+            }
+            
+            QListBoxItem* item = m_pCompletionBox->findItem( currentSelection, Qt::ExactMatch );
+            // If no item is selected, that means the listbox hasn't been manipulated by the user yet,
+            // because it's not possible otherwise to have no selected item. In such case make
+            // always the first item current and unselected, so that the current item doesn't jump.
+            if( !item || !wasSelected )
+            {
+                wasSelected = false;
+                item = m_pCompletionBox->item( 0 );
+            }
+            if ( item )
+            {
+                m_pCompletionBox->blockSignals( true );
+                m_pCompletionBox->setCurrentItem( item );
+                m_pCompletionBox->setSelected( item, wasSelected );
+                m_pCompletionBox->blockSignals( false );
+            }
+        }
+        else // completion box not visible yet -> show it
+        {
+            if ( !txt.isEmpty() )
+	            m_pCompletionBox->setCancelledText( txt );
+            
+            switch(m_eCompletionMode)
+            {
+            	case modeMainObjects: 
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionObjects);
+            			break;
+            			
+            	case modeSchemaChilds: 
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionSchemaChilds);
+            			break;
+            			
+            	case modeTableColumns:
+            			m_pCompletionBox->setItems(items, m_listOfCodeCompletionColumns);
+            			break;
+            			
+            	case modeNone: 
+            	        Q_ASSERT(false);
+            	        break;
+            	
+            }
+            m_pCompletionBox->popup();
+        }
+    }
+    else
+    {
+        if(m_pCompletionBox && m_pCompletionBox->isVisible())
+        {
+            m_pCompletionBox->hide();
+            
+            if(m_eCompletionMode != modeMainObjects)
+                restoreCtrlSpaceCompletion();
+            
+            m_eCompletionMode = modeNone;
+        }    
+    }
+}
+
+// Set list of main DB objects for code completion
+void KPGSqlEdit::setListOfObjectsForCodeCompletion(const KPGOidNameList &listOfCodeCompletionObjects)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+    clearListOfObjectsForCodeCompletion();
+    
+    // Add given DB objects
+    for(KPGOidNameList::const_iterator cit = listOfCodeCompletionObjects.begin(); cit != listOfCodeCompletionObjects.end(); ++cit)
+    {
+        m_listOfCodeCompletionObjects.append(KPGOidNameAliases(*cit));
+    }
+    
+    // Sort list of code completions
+    m_listOfCodeCompletionObjects.sort();
+    
+    // Create list of all completions
+    QStringList strAllCompletions;
+    for(KPGOidNameAliasesList::const_iterator cit = m_listOfCodeCompletionObjects.begin(); cit != m_listOfCodeCompletionObjects.end(); ++cit)
+	{
+        strAllCompletions.append((*cit).name());
+    }
+        
+    completionObject()->insertItems(strAllCompletions);
+    
+    m_bCodeCompletionListUpdated = false;
+    if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+// Set list of schema childs for code completion
+void KPGSqlEdit::setListOfSchemaChildsForCodeCompletion(const KPGOidNameList &listOfCodeCompletionObjects)
+{
+	if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->stop(); 
+    clearListOfSchemaChildsForCodeCompletion();
+    
+    // Add given DB objects
+    for(KPGOidNameList::const_iterator cit = listOfCodeCompletionObjects.begin(); cit != listOfCodeCompletionObjects.end(); ++cit)
+    {
+        m_listOfCodeCompletionSchemaChilds.append(*cit);
+    }
+    
+    // Sort list of code completions
+    m_listOfCodeCompletionSchemaChilds.sort();
+    
+    // Create list of all completions
+    QStringList strAllCompletions;
+    for(KPGOidNameList::const_iterator cit = m_listOfCodeCompletionSchemaChilds.begin(); cit != m_listOfCodeCompletionSchemaChilds.end(); ++cit)
+	{
+        strAllCompletions.append((*cit).name());
+    }
+        
+    completionObject()->insertItems(strAllCompletions);
+    
+    m_bCodeCompletionListUpdated = false;
+    if(m_pUpdateCodeCompletionListTimer) m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL ); 
+}
+
+// Clear list of DB objects for code completion
+void KPGSqlEdit::clearListOfObjectsForCodeCompletion()
+{
+	m_listOfCodeCompletionObjects.clear();
+    completionObject()->clear();
+    
+    // Add SQL keywords to list
+    QStringList strKeyWords = KPGSyntaxHighlighter::listOfKeyWords();
+    
+    for(QStringList::const_iterator cit = strKeyWords.begin(); cit != strKeyWords.end(); ++cit)
+    {
+        // SQL keywords are identified as nodeUnselected
+        m_listOfCodeCompletionObjects.append(KPGOidName(0, *cit, KPGTreeItem::nodeUnselected, KPGTreeItem::m_pIconNull, QString::null));
+    }
+}
+
+// Clear list of schema childs for code completion
+void KPGSqlEdit::clearListOfSchemaChildsForCodeCompletion()
+{
+    m_listOfCodeCompletionSchemaChilds.clear();
+    completionObject()->clear();
+}
+
+// Set list of table columns/type attributes for code completion
+void KPGSqlEdit::setListOfColumnsForCodeCompletion(const KPGListTableColumns &listOfTableColumns)
+{
+	clearListOfColumnsForCodeCompletion();
+    
+    // Add given table columns, create list of all completions
+    QStringList strAllCompletions;
+    for(KPGListTableColumns::const_iterator cit = listOfTableColumns.begin(); cit != listOfTableColumns.end(); ++cit)
+    {
+        m_listOfCodeCompletionColumns.append(*cit);
+        strAllCompletions.append((*cit).name());
+    }
+            
+    completionObject()->insertItems(strAllCompletions);
+}
+
+// Clear list of table columns/type attributes for code completion
+void KPGSqlEdit::clearListOfColumnsForCodeCompletion()
+{
+	m_listOfCodeCompletionColumns.clear();
+    completionObject()->clear();
+}
+
+
+// Fired from m_pUpdateCodeCompletionListTimer. Updates aliases 
+// in m_listOfCodeCompletionObjects according to current SQL
+void KPGSqlEdit::slotUpdateCodeCompletionList()
+{
+	if(m_bCodeCompletionListUpdated) return;
+	kdDebug() << k_funcinfo << endl;
+	m_pUpdateCodeCompletionListTimer->stop(); 
+
+	KPGSqlParser::updateAliases(text(), m_listOfCodeCompletionObjects); 
+
+	m_bCodeCompletionListUpdated = true;
+	m_pUpdateCodeCompletionListTimer->start( UPDATE_TIMER_INTERVAL );
+}
+
+// Set cursor position to given character offset, select character
+void KPGSqlEdit::highlightCharacter(int iPosition)
+{
+	for(int iParagraph = 0; iParagraph < paragraphs(); iParagraph++)
+	{
+		if(iPosition > paragraphLength(iParagraph))
+		{
+			iPosition -= paragraphLength(iParagraph) + 1;
+		}
+		else
+		{
+			KTextEdit::setCursorPosition(iParagraph, iPosition);
+			KTextEdit::setSelection(iParagraph, iPosition-1, iParagraph, iPosition);
+			KTextEdit::ensureCursorVisible();
+			return;
+		}
+	}
+}
+
+// Find first occurence of text
+void KPGSqlEdit::findFirst(QStringList &listOfSearchHistory)
+{
+    // don't listen to selection changes
+    m_bIgnoreSelectionClearing = true;
+    
+    KFindDialog dlg(this, "", 0, listOfSearchHistory, hasSelectedText());
+    dlg.setHasCursor(false);
+        
+    int c = dlg.exec();
+    // listen to selection changes
+    m_bIgnoreSelectionClearing = false;
+    
+    if(c != QDialog::Accepted)
+        return;
+
+    listOfSearchHistory = dlg.findHistory();
+    
+    if(m_pFind != 0) 
+    {
+    	disconnect( m_pFind, 0, this, 0);
+    	delete m_pFind;
+    }
+    m_pFind = new KFind(dlg.pattern(), dlg.options(), this);
+
+    // Connect highlight signal to code which handles highlighting
+    // of found text.
+    connect( m_pFind, SIGNAL( highlight( const QString &, int, int ) ),
+             this, SLOT( slotHighlight( const QString &, int, int ) ) );
+             
+    // Connect findNext signal - called when pressing the button in the dialog
+    connect( m_pFind, SIGNAL( findNext() ), this, SLOT( slotFindNext() ) );
+
+	setUpFindBoundaries(dlg.options(), &m_iStartPara, &m_iStartIdx, &m_iEndPara, &m_iEndIdx);
+    
+    m_iParaToSearch = m_iStartPara;
+    m_pFind->setData(text(m_iStartPara), m_iStartIdx);
+
+    slotFindNext();
+}
+
+// Find next occurence of text
+void KPGSqlEdit::findNext()
+{
+	if (!m_pFind) // shouldn't be called before find is activated
+        return;
+        
+	getCursorPosition(&m_iParaToSearch, &m_iStartIdx);
+	m_pFind->setData(text(m_iParaToSearch), m_iStartIdx);
+	
+	slotFindNext();
+}
+
+// Find next occurence of text
+void KPGSqlEdit::slotFindNext() 
+{
+    if (!m_pFind) // shouldn't be called before find is activated
+        return;
+	
+    KFind::Result res = KFind::NoMatch;
+    while ( res == KFind::NoMatch &&
+            m_iParaToSearch <= QMAX(m_iStartPara, m_iEndPara) &&
+            m_iParaToSearch >= QMIN(m_iStartPara, m_iEndPara) 
+          ) 
+    	{
+    		//kdDebug() << "searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+        
+        	if(m_pFind->needData()) 
+        	{
+            	int idx = (m_iParaToSearch == m_iEndPara) ? m_iEndIdx : -1;
+            	m_pFind->setData(text(m_iParaToSearch), idx);
+        	}
+        
+        	// Let KFind inspect the text fragment, and display a dialog if a match is found
+        	res = m_pFind->find();
+        
+        	if( res == KFind::NoMatch ) 
+        	{
+            	m_iParaToSearch += (m_pFind->options() & KFindDialog::FindBackwards) ? -1 : 1;
+        	}
+        	//kdDebug() << "2searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+		}
+
+    if( res == KFind::NoMatch ) 
+    { // i.e. at end
+        m_pFind->displayFinalDialog();
+        m_pFind->resetCounts();
+        //delete m_pFind;
+        //m_pFind = 0L;
+        removeSelection(0);
+    }
+}
+
+// Highligth found text
+void KPGSqlEdit::slotHighlight( const QString &, int index, int length)
+{
+    //kdDebug() << "highlight: " << index << " " << length << endl;
+    setSelection(m_iParaToSearch, index, m_iParaToSearch, index + length );
+}
+
+void KPGSqlEdit::selectAll( bool b )
+{
+    if (!b && m_bIgnoreSelectionClearing)
+        return;
+    
+    KTextEdit::selectAll(b);
+}
+
+// Replace first occurence of text
+void KPGSqlEdit::replace(QStringList &listOfSearchHistory, QStringList &listOfReplacementHistory)
+{
+	// don't listen to selection changes
+    m_bIgnoreSelectionClearing = true;
+    
+    KReplaceDialog dlg(this, "", 0, listOfSearchHistory, listOfReplacementHistory, hasSelectedText());
+    dlg.setHasCursor(false);
+        
+    int c = dlg.exec();
+    // listen to selection changes
+    m_bIgnoreSelectionClearing = false;
+    
+    if(c != QDialog::Accepted)
+        return;
+
+    listOfSearchHistory = dlg.findHistory();
+    listOfReplacementHistory = dlg.replacementHistory();
+        
+    
+    if(m_pReplace != 0) delete m_pReplace;
+    m_pReplace = new KReplace(dlg.pattern(), dlg.replacement(), dlg.options(), this);
+
+    // Connect highlight signal to code which handles highlighting
+    // of found text.
+    connect( m_pReplace, SIGNAL( highlight( const QString &, int, int ) ),
+             this, SLOT( slotHighlight( const QString &, int, int ) ) );
+             
+    // Connect findNext signal - called when pressing the button in the dialog
+    connect( m_pReplace, SIGNAL( findNext() ), this, SLOT( slotReplaceNext() ) );
+
+	// Connect replace signal - called when doing a replacement
+  	connect( m_pReplace, SIGNAL( replace(const QString &, int, int, int) ),
+          this, SLOT( slotReplace(const QString &, int, int, int) ) );
+
+	setUpFindBoundaries(dlg.options(), &m_iStartPara, &m_iStartIdx, &m_iEndPara, &m_iEndIdx);
+	
+    m_iParaToSearch = m_iStartPara;
+    m_pReplace->setData(text(m_iStartPara ), m_iStartIdx);
+
+    slotReplaceNext();
+}
+
+// Replace next occurence of text
+void KPGSqlEdit::slotReplaceNext()
+{
+    if (!m_pReplace) // shouldn't be called before find is activated
+        return;
+
+	KFind::Result res = KFind::NoMatch;
+    while ( res == KFind::NoMatch &&
+            m_iParaToSearch <= QMAX(m_iStartPara, m_iEndPara ) &&
+            m_iParaToSearch >= QMIN(m_iStartPara, m_iEndPara ) ) 
+    {
+    	//kdDebug() << "searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+        
+       	if(m_pReplace->needData()) 
+       	{
+           	int idx = (m_iParaToSearch == m_iEndPara) ? m_iEndIdx : -1;
+           	m_pReplace->setData( text(m_iParaToSearch), idx);
+       	}
+        
+       	// Let KFind inspect the text fragment, and display a dialog if a match is found
+       	res = m_pReplace->replace();
+        
+       	if( res == KFind::NoMatch ) 
+       	{
+           	m_iParaToSearch += (m_pReplace->options() & KFindDialog::FindBackwards) ? -1 : 1;
+       	}
+       	//kdDebug() << "2searching  1:" << m_iParaToSearch << " 2: " << m_iEndPara << " 3: " << m_iStartPara << endl;
+	}
+
+    if( res == KFind::NoMatch ) 
+    { // i.e. at end
+        m_pReplace->displayFinalDialog();
+        delete m_pReplace;
+        m_pReplace = 0L;
+        removeSelection(0);
+    }
+    
+    m_pSyntaxHighlighter->rehighlight();
+}
+
+// Implement updating of replaced text during the replace operation
+void KPGSqlEdit::slotReplace(const QString &strText, int replacementIndex, int replacedLength, int /*matchedLength*/)
+{
+	kdDebug() << k_funcinfo << " " << strText << " replacementIndex: " << replacementIndex << " replacedLength: " << replacedLength<< endl;
+	
+	// don't listen to selection changes
+    m_bIgnoreSelectionClearing = true;
+    m_pSyntaxHighlighter->disable();
+    
+	removeParagraph(m_iParaToSearch);
+	insertParagraph(strText, m_iParaToSearch);
+	
+	// listen to selection changes
+    m_bIgnoreSelectionClearing = false;
+    m_pSyntaxHighlighter->enable();
+}
+  
+// Set up boudaries for find/replace
+void KPGSqlEdit::setUpFindBoundaries(long lOptions, int *piStartPara, int *piStartIdx, int *piEndPara, int *piEndIdx)
+{ 
+    if(lOptions & KFindDialog::SelectedText ) 
+    {
+        Q_ASSERT(hasSelectedText());
+        if(lOptions & KFindDialog::FindBackwards) 
+        	getSelection(piEndPara, piEndIdx, piStartPara, piStartIdx);
+        else
+        	getSelection(piStartPara, piStartIdx, piEndPara, piEndIdx);
+    } 
+    else 
+    {
+    	*piStartIdx  = -1; // Interpreted as "process all data" by KFind
+    	*piEndIdx    = -1; // Interpreted as "process all data" by KFind
+    	
+    	if(lOptions & KFindDialog::FindBackwards) 
+		{
+			*piStartPara = paragraphs();
+			*piEndPara   = 0;
+		}
+    	else
+    	{
+        	*piStartPara = 0;
+        	*piEndPara   = paragraphs();
+        }
+    }
+}
+
+
+void KPGSqlEdit::virtual_hook( int id, void* data )
+{ KCompletionBase::virtual_hook( id, data ); }

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqledit.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,188 @@
+//
+// C++ Interface: kpgsqledit
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSQLEDIT_H
+#define KPGSQLEDIT_H
+
+// include files for KDE
+#include <ktextedit.h>
+#include <kcompletion.h>
+
+#include "../DbObjects/kpgtreeitem.h"
+#include "../Wizards/kpgtablecolumnwizinfo.h"
+
+// Forward references
+class KPGCompletionBox;
+class KPGSyntaxHighlighter;
+class KFind;
+class KReplace;
+class QTimer;
+
+/**
+  * SQL editor with sytnax highlighting and code completion
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGSqlEdit : public KTextEdit, public KCompletionBase
+{
+	Q_OBJECT
+public:
+	// Enumerates code completion modes
+     enum ECompletionMode { modeNone = 0, modeMainObjects, modeSchemaChilds, modeTableColumns };
+
+    KPGSqlEdit(QWidget*, const char*);
+    ~KPGSqlEdit();
+
+	// Filters events
+	bool eventFilter(QObject *, QEvent *);
+		
+	virtual void setCompletionObject(KCompletion *, bool = true );
+	
+	// Set list of main objects for code completition to SQL editor 
+	void setListOfObjectsForCodeCompletion(const KPGOidNameList &);
+	
+	// Set list of schema childs for code completion
+    void setListOfSchemaChildsForCodeCompletion(const KPGOidNameList &);
+	
+	// Clear list of DB objects for code completion
+	void clearListOfObjectsForCodeCompletion();
+	
+	// Clear list of schema childs for code completion
+	void clearListOfSchemaChildsForCodeCompletion();
+	
+	// Set list of table columns for code completion
+	void setListOfColumnsForCodeCompletion(const KPGListTableColumns &);
+	
+	// Clear list of table columns for code completition
+	void clearListOfColumnsForCodeCompletion();
+	
+	// Set cursor position to given character offset
+	void highlightCharacter(int);
+	
+	// Find first occurence of text
+    void findFirst(QStringList &);
+    
+    // Find next occurence of text
+	void findNext();
+	
+	// Replace first occurence of text
+	void replace(QStringList &, QStringList &);
+	
+protected:
+
+	// Return word before cursor position
+	const QString uncompletedWord();
+	
+	// Get uncompleted word, set it to completition and set completed items to box, eventually show it
+    void updateCtrlSpaceCompletion(bool);
+    
+    // Set table columns into completition if table name is left before period: table.
+    void updatePeriodCompletion(bool);
+	
+	// Set completed items to box, eventually show it
+	void updateCompletion(bool, const QStringList &);
+	
+	// Restore completion words from list of main objects
+	void restoreCtrlSpaceCompletion();
+	
+protected:
+
+	// Syntax highlighter
+	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+	
+	// Current completition mode
+	ECompletionMode m_eCompletionMode;
+	
+	// Completion box for code completion
+	KPGCompletionBox *m_pCompletionBox;
+	
+	// List of main database objects for code completition, from PUBLIC schema
+	KPGOidNameAliasesList m_listOfCodeCompletionObjects;
+	
+	// List of schema childs (tables, views, functions, sequences) for code completition
+	KPGOidNameList m_listOfCodeCompletionSchemaChilds;
+	
+	// List of table/function columns for code completition
+	KPGListTableColumns m_listOfCodeCompletionColumns;
+	
+	// Timer, that ensure periodically update m_listOfCodeCompletionObjects
+	QTimer *m_pUpdateCodeCompletionListTimer;
+	
+	// Flag, indicating, if m_listOfCodeCompletionObjects need to be updated.
+	bool m_bCodeCompletionListUpdated;
+	
+private:
+	// A generic implementation of the "find" function
+	KFind *m_pFind;
+
+	// A generic implementation of the "replace" function
+	KReplace *m_pReplace;
+    
+    int m_iParaToSearch;
+
+    bool m_bIgnoreSelectionClearing;
+	
+	int m_iStartPara, m_iStartIdx, m_iEndPara, m_iEndIdx;
+	
+public slots:
+
+	// KCompletionBase mandatory reimplementation
+	virtual void setCompletedText(const QString&);
+	
+	// KCompletionBase mandatory reimplementation
+    virtual void setCompletedItems(const QStringList&);	
+	
+	// We override this because normally, QTextEdit deselects all the text when
+    // the clipboard changes.  This is highly undesirable when there is a modal
+    // dialog that the user is working with, which for example searches the
+    // selection
+    virtual void selectAll(bool);
+	
+protected slots:
+    
+	// Changes syntax highlighting colors.
+	void slotSqlEditorSettingsChanged();
+	
+	// Update completition when taxt changed
+	void slotTextChanged();
+	
+	// Highligth found text
+    void slotHighlight( const QString &, int, int);
+    
+    // Find next occurence of text
+    void slotFindNext();
+    
+    // Replace next occurence of text
+    void slotReplaceNext();
+    
+    // Implement updating of replaced text during the replace operation
+    void slotReplace(const QString &, int, int, int);
+    
+    // Fired from m_pUpdateCodeCompletionListTimer
+    void slotUpdateCodeCompletionList();
+		
+signals:
+	// Emited, when m_listOfCodeCompletionColumns need update
+	void sigRequestTableColumnsListsForCodeCompletion(pqxx::oid);
+			
+	// Emited, when m_listOfCodeCompletionTableColumns need update
+	void sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(pqxx::oid);
+	
+	// Emited, when m_listOfCodeCompletionSchemaChilds need update
+	void sigRequestSchemaChildsListsForCodeCompletion(pqxx::oid);
+	
+protected:
+	void setUpFindBoundaries(long, int *, int *, int *, int *);
+    
+    virtual void virtual_hook( int id, void* data );
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,166 @@
+/***************************************************************************
+                          kpgsqleditorsettings.cpp  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgsqleditorsettings.h"
+
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h>
+
+#include <qframe.h>
+#include <qspinbox.h>
+
+#include "kpgsqleditorsettingspage.h"
+
+#define CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT "DefaultText"
+#define DFLT_VALUE_COLOR_DEFAULT_TEXT QColor( "#000000" )
+
+#define CONF_ENTRY_NAME_COLOR_KEYWORDS "KeyWords"
+#define DFLT_VALUE_COLOR_KEYWORDS QColor( "#800000" )
+
+#define CONF_ENTRY_NAME_COLOR_DATATYPES "DataTypes"
+#define DFLT_VALUE_COLOR_DATATYPES QColor( "#000080" )
+
+#define CONF_ENTRY_NAME_COLOR_OPERATORS "Operators"
+#define DFLT_VALUE_COLOR_OPERATORS QColor( "#00ffff" )
+
+#define CONF_ENTRY_NAME_COLOR_QUOTED_STRINGS "QuotedStrings"
+#define DFLT_VALUE_COLOR_QUOTED_STRINGS QColor( "#00ff00" )
+
+#define CONF_ENTRY_NAME_COLOR_NUMBERS "Numbers"
+#define DFLT_VALUE_COLOR_NUMBERS QColor( "#ffff00" )
+
+#define CONF_ENTRY_NAME_COLOR_COMENTS "Comments"
+#define DFLT_VALUE_COLOR_COMENTS QColor( "#808080" )
+
+#define CONF_ENTRY_NAME_EDITOR_FONT "EditorFont"
+
+KPGSqlEditorSettings::KPGSqlEditorSettings( QObject * pParent, const char * pszName )
+ : KPGSettings( "SQL editor", pParent, pszName ),
+   m_colorDefaultText( DFLT_VALUE_COLOR_DEFAULT_TEXT ),
+   m_colorKeyWords( DFLT_VALUE_COLOR_KEYWORDS ),
+   m_colorDataTypes( DFLT_VALUE_COLOR_DATATYPES ),
+   m_colorOperators( DFLT_VALUE_COLOR_OPERATORS ),
+   m_colorQuotedStrings( DFLT_VALUE_COLOR_QUOTED_STRINGS ),
+   m_colorNumbers( DFLT_VALUE_COLOR_NUMBERS ),
+   m_colorComments( DFLT_VALUE_COLOR_COMENTS ),
+   m_pDialogPage(0)
+{
+}
+
+void KPGSqlEditorSettings::write( KConfig * pConfig ) const
+{
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT, m_colorDefaultText );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_KEYWORDS, m_colorKeyWords );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_DATATYPES, m_colorDataTypes );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_OPERATORS, m_colorOperators );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_QUOTED_STRINGS, m_colorQuotedStrings );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_COMENTS, m_colorComments );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_NUMBERS, m_colorNumbers );
+    
+    pConfig->writeEntry( CONF_ENTRY_NAME_EDITOR_FONT, m_Font);
+}
+
+
+void KPGSqlEditorSettings::read( const KConfig * pConfig )
+{
+	m_colorDefaultText = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT, & DFLT_VALUE_COLOR_DEFAULT_TEXT );
+	m_colorKeyWords = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_KEYWORDS, & DFLT_VALUE_COLOR_KEYWORDS );
+	m_colorDataTypes = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_DATATYPES, & DFLT_VALUE_COLOR_DATATYPES );
+	m_colorOperators = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_OPERATORS, & DFLT_VALUE_COLOR_OPERATORS );
+	m_colorQuotedStrings = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_QUOTED_STRINGS, & DFLT_VALUE_COLOR_QUOTED_STRINGS );
+	m_colorComments = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_COMENTS, & DFLT_VALUE_COLOR_COMENTS );
+	m_colorNumbers = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_NUMBERS, &DFLT_VALUE_COLOR_NUMBERS  );
+    
+    m_Font = pConfig->readFontEntry( CONF_ENTRY_NAME_EDITOR_FONT );
+}
+
+
+QString KPGSqlEditorSettings::dialogPageName() const
+{
+	return i18n( "SQL editor" );
+}
+
+QString KPGSqlEditorSettings::dialogPageHeader() const
+{
+	return i18n( "SQL editor properties" );
+}
+
+QString KPGSqlEditorSettings::dialogPageIcon() const
+{
+	return "colorize";
+}
+
+
+QWidget * KPGSqlEditorSettings::dialogPage( QFrame * pParent )
+{
+	if ( ! m_pDialogPage )
+	{
+		// create the page if necessary
+		m_pDialogPage = new KPGSqlEditorSettingsPage( pParent, "text view config.dialog page" );
+
+		// and fill its widgets with the corresponding values
+		updatePage();
+
+		connect( m_pDialogPage->m_pColorDefaultText, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorKeyWords, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorOperators, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorQuotedStrings, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorNumbers, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorComments, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorDataTypes, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+        
+        connect( m_pDialogPage->m_pFontChooser, SIGNAL(fontSelected( const QFont &)), this, SIGNAL(sigDialogPageChanged()) );
+	}
+
+	return m_pDialogPage;
+}
+
+
+void KPGSqlEditorSettings::setFromPage()
+{
+	if ( m_pDialogPage )
+	{
+		m_colorDefaultText = m_pDialogPage->m_pColorDefaultText->color();
+		m_colorKeyWords = m_pDialogPage->m_pColorKeyWords->color();
+		m_colorOperators = m_pDialogPage->m_pColorOperators->color();
+		m_colorOperators = m_pDialogPage->m_pColorOperators->color();
+		m_colorQuotedStrings = m_pDialogPage->m_pColorQuotedStrings->color();
+		m_colorComments = m_pDialogPage->m_pColorComments->color();
+		m_colorNumbers = m_pDialogPage->m_pColorNumbers->color();
+        
+        m_Font = m_pDialogPage->m_pFontChooser->font();
+	}
+}
+
+void KPGSqlEditorSettings::updatePage() const
+{
+	if ( m_pDialogPage )
+	{
+		m_pDialogPage->m_pColorDefaultText->setColor( m_colorDefaultText );
+		m_pDialogPage->m_pColorKeyWords->setColor( m_colorKeyWords );
+		m_pDialogPage->m_pColorDataTypes->setColor( m_colorDataTypes );
+		m_pDialogPage->m_pColorOperators->setColor( m_colorOperators );
+		m_pDialogPage->m_pColorQuotedStrings->setColor( m_colorQuotedStrings );
+		m_pDialogPage->m_pColorComments->setColor( m_colorComments );
+		m_pDialogPage->m_pColorNumbers->setColor( m_colorNumbers );
+        
+        m_pDialogPage->m_pFontChooser->setFont(m_Font);
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettings.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+/***************************************************************************
+                          kpgsqleditorsettings.h  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGSQLEDITORSETTINGS_H
+#define KPGSQLEDITORSETTINGS_H
+
+#include "../kpgsettings.h"
+
+#include <qcolor.h>
+#include <qfont.h>
+
+class KPGSqlEditorSettingsPage;
+
+/**This class represents the group of configuration settings for the SQL query editor
+  *
+  *@author Lumir Vanek
+  */
+
+class KPGSqlEditorSettings : public KPGSettings
+{
+public:
+
+	KPGSqlEditorSettings( QObject * pParent = 0, const char * pszName = 0 );
+
+	// The following functions can be used to access this object's settings.
+	const QColor & colorDefaultText() const { return m_colorDefaultText; }
+	const QColor & colorKeyWords() const { return  m_colorKeyWords; }
+	const QColor & colorDataTypes() const { return  m_colorDataTypes; }
+	const QColor & colorOperators() const { return  m_colorOperators; }
+	const QColor & colorQuotedStrings() const { return  m_colorQuotedStrings; }
+	const QColor & colorComments() const { return  m_colorComments; }
+	const QColor & colorNumbers() const { return  m_colorNumbers; }
+
+    const QFont & font() const { return  m_Font; }
+        
+	/**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual QString dialogPageName() const;
+		
+    /**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual QString dialogPageHeader() const;
+		
+    /**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual QString dialogPageIcon() const;
+	
+    /**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual QWidget * dialogPage( QFrame * pParent );
+
+protected:
+
+	/**
+	 * Derived from @ref KPGSettings
+	 */
+	
+    virtual void write( KConfig * ) const;
+	/**
+	 * Derived from @ref KPGSettings
+	 */
+		
+    virtual void read( const KConfig * );
+	/**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual void setFromPage();
+		
+    /**
+	 * Derived from @ref KPGSettings
+	 */
+	virtual void updatePage() const;
+
+	// the settings itself
+    QColor m_colorDefaultText;
+    QColor m_colorKeyWords;
+    QColor m_colorDataTypes;
+    QColor m_colorOperators;
+    QColor m_colorQuotedStrings;
+    QColor m_colorNumbers;
+    QColor m_colorComments;
+
+    QFont m_Font;
+
+	/**
+	 * the corresponding configuration dialog page
+	 * It is created on demand by @ref dialogPage.
+	 */
+	KPGSqlEditorSettingsPage * m_pDialogPage;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,178 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/QueryResult/kpgsqleditorsettingspage.ui'
+**
+** Created: Út dub 1 13:07:24 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsqleditorsettingspage.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qtabwidget.h>
+#include <qgroupbox.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcolorbutton.h"
+#include "kfontdialog.h"
+
+/*
+ *  Constructs a KPGSqlEditorSettingsPage as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSqlEditorSettingsPage::KPGSqlEditorSettingsPage( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSqlEditorSettingsPage" );
+    setMinimumSize( QSize( 522, 480 ) );
+    KPGSqlEditorSettingsPageLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSqlEditorSettingsPageLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::AutoText );
+    textLabel1->setAlignment( int( QLabel::AlignVCenter ) );
+    textLabel1->setIndent( -1 );
+
+    KPGSqlEditorSettingsPageLayout->addWidget( textLabel1, 1, 0 );
+    spacer3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGSqlEditorSettingsPageLayout->addItem( spacer3, 2, 0 );
+
+    m_pTabWidget = new QTabWidget( this, "m_pTabWidget" );
+
+    tab = new QWidget( m_pTabWidget, "tab" );
+    tabLayout = new QGridLayout( tab, 1, 1, 11, 6, "tabLayout"); 
+
+    m_pBoxSyntaxHL = new QGroupBox( tab, "m_pBoxSyntaxHL" );
+    m_pBoxSyntaxHL->setFrameShape( QGroupBox::GroupBoxPanel );
+    m_pBoxSyntaxHL->setFrameShadow( QGroupBox::Sunken );
+
+    m_pColorDataTypes = new KColorButton( m_pBoxSyntaxHL, "m_pColorDataTypes" );
+    m_pColorDataTypes->setGeometry( QRect( 112, 82, 354, 24 ) );
+
+    m_pColorOperators = new KColorButton( m_pBoxSyntaxHL, "m_pColorOperators" );
+    m_pColorOperators->setGeometry( QRect( 112, 112, 354, 24 ) );
+
+    m_pColorQuotedStrings = new KColorButton( m_pBoxSyntaxHL, "m_pColorQuotedStrings" );
+    m_pColorQuotedStrings->setGeometry( QRect( 112, 142, 354, 24 ) );
+
+    m_pColorNumbers = new KColorButton( m_pBoxSyntaxHL, "m_pColorNumbers" );
+    m_pColorNumbers->setGeometry( QRect( 112, 172, 354, 24 ) );
+
+    m_pColorComments = new KColorButton( m_pBoxSyntaxHL, "m_pColorComments" );
+    m_pColorComments->setGeometry( QRect( 112, 202, 354, 24 ) );
+
+    m_pColorKeyWords = new KColorButton( m_pBoxSyntaxHL, "m_pColorKeyWords" );
+    m_pColorKeyWords->setGeometry( QRect( 112, 52, 354, 24 ) );
+
+    m_pLblColorComments = new QLabel( m_pBoxSyntaxHL, "m_pLblColorComments" );
+    m_pLblColorComments->setGeometry( QRect( 11, 202, 95, 24 ) );
+
+    m_pLblColorNumbers = new QLabel( m_pBoxSyntaxHL, "m_pLblColorNumbers" );
+    m_pLblColorNumbers->setGeometry( QRect( 11, 172, 95, 24 ) );
+
+    m_pLblColorQuotedStrings = new QLabel( m_pBoxSyntaxHL, "m_pLblColorQuotedStrings" );
+    m_pLblColorQuotedStrings->setGeometry( QRect( 11, 142, 95, 24 ) );
+
+    m_pLblColorOperators = new QLabel( m_pBoxSyntaxHL, "m_pLblColorOperators" );
+    m_pLblColorOperators->setGeometry( QRect( 11, 112, 95, 24 ) );
+
+    m_pLblDataTypes = new QLabel( m_pBoxSyntaxHL, "m_pLblDataTypes" );
+    m_pLblDataTypes->setGeometry( QRect( 11, 82, 95, 24 ) );
+
+    m_pLblColorKeywords = new QLabel( m_pBoxSyntaxHL, "m_pLblColorKeywords" );
+    m_pLblColorKeywords->setGeometry( QRect( 11, 52, 95, 24 ) );
+
+    m_pLblColorDfltText = new QLabel( m_pBoxSyntaxHL, "m_pLblColorDfltText" );
+    m_pLblColorDfltText->setGeometry( QRect( 11, 22, 95, 24 ) );
+
+    m_pColorDefaultText = new KColorButton( m_pBoxSyntaxHL, "m_pColorDefaultText" );
+    m_pColorDefaultText->setGeometry( QRect( 112, 22, 354, 24 ) );
+    m_pColorDefaultText->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, m_pColorDefaultText->sizePolicy().hasHeightForWidth() ) );
+
+    tabLayout->addWidget( m_pBoxSyntaxHL, 0, 0 );
+    m_pTabWidget->insertTab( tab, QString::fromLatin1("") );
+
+    tab_2 = new QWidget( m_pTabWidget, "tab_2" );
+    tabLayout_2 = new QGridLayout( tab_2, 1, 1, 11, 6, "tabLayout_2"); 
+
+    m_pFontChooser = new KFontChooser( tab_2, "m_pFontChooser" );
+
+    tabLayout_2->addWidget( m_pFontChooser, 0, 0 );
+    m_pTabWidget->insertTab( tab_2, QString::fromLatin1("") );
+
+    KPGSqlEditorSettingsPageLayout->addWidget( m_pTabWidget, 0, 0 );
+    languageChange();
+    resize( QSize(577, 590).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    m_pLblColorComments->setBuddy( m_pColorComments );
+    m_pLblColorNumbers->setBuddy( m_pColorNumbers );
+    m_pLblColorQuotedStrings->setBuddy( m_pColorQuotedStrings );
+    m_pLblColorOperators->setBuddy( m_pColorOperators );
+    m_pLblDataTypes->setBuddy( m_pColorDataTypes );
+    m_pLblColorKeywords->setBuddy( m_pColorKeyWords );
+    m_pLblColorDfltText->setBuddy( m_pColorDefaultText );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSqlEditorSettingsPage::~KPGSqlEditorSettingsPage()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSqlEditorSettingsPage::languageChange()
+{
+    setCaption( tr2i18n( "SQL editor settings" ) );
+    textLabel1->setText( tr2i18n( "<b>Note: </b>This setting is related to build-in editor, used in final wizards page.<br> Query/result window uses Kate part editor, configured by main menu item:<br>Settings - Configure Editor." ) );
+    m_pBoxSyntaxHL->setTitle( tr2i18n( "Syntax highlighting" ) );
+    QWhatsThis::add( m_pBoxSyntaxHL, tr2i18n( "<b>Syntax highlightning</b>\n"
+"<br>\n"
+"You can define the colors to be used, when showing your XML documents as raw text." ) );
+    m_pColorDataTypes->setText( QString::null );
+    QToolTip::add( m_pColorDataTypes, tr2i18n( "Choose color for PostgreSQL datatypes" ) );
+    QWhatsThis::add( m_pColorDataTypes, tr2i18n( "<b>Syntax Errors</b><br/>Choose color for PostgreSQL datatypes" ) );
+    m_pColorOperators->setText( QString::null );
+    QToolTip::add( m_pColorOperators, tr2i18n( "Choose color for SQL operators" ) );
+    QWhatsThis::add( m_pColorOperators, tr2i18n( "<b>Attribute names</b><br/>Choose color for  SQL operators" ) );
+    m_pColorQuotedStrings->setText( QString::null );
+    QToolTip::add( m_pColorQuotedStrings, tr2i18n( "Choose color for quoted strings" ) );
+    QWhatsThis::add( m_pColorQuotedStrings, tr2i18n( "<b>Attribute values</b><br/>Choose color for quoted strings" ) );
+    m_pColorNumbers->setText( QString::null );
+    QToolTip::add( m_pColorNumbers, tr2i18n( "Choose color for numbers" ) );
+    QWhatsThis::add( m_pColorNumbers, tr2i18n( "<b>Syntax characters</b><br/>Choose color for numbers" ) );
+    m_pColorComments->setText( QString::null );
+    QToolTip::add( m_pColorComments, tr2i18n( "Choose color for comments" ) );
+    QWhatsThis::add( m_pColorComments, tr2i18n( "<b>Comments</b><br/>Choose color for comments" ) );
+    m_pColorKeyWords->setText( QString::null );
+    QToolTip::add( m_pColorKeyWords, tr2i18n( "Choose color for SQL keywords" ) );
+    QWhatsThis::add( m_pColorKeyWords, tr2i18n( "<b>Keywords</b><br/>Choose color for SQL keywords" ) );
+    m_pLblColorComments->setText( tr2i18n( "Co&mments:" ) );
+    m_pLblColorNumbers->setText( tr2i18n( "&Numbers:" ) );
+    m_pLblColorQuotedStrings->setText( tr2i18n( "&Quoted strings:" ) );
+    m_pLblColorOperators->setText( tr2i18n( "&Operators:" ) );
+    m_pLblDataTypes->setText( tr2i18n( "&Data types:" ) );
+    m_pLblColorKeywords->setText( tr2i18n( "&Keywords:" ) );
+    m_pLblColorDfltText->setText( tr2i18n( "Default &Text:" ) );
+    m_pColorDefaultText->setText( QString::null );
+    QToolTip::add( m_pColorDefaultText, tr2i18n( "Choose color for default text" ) );
+    QWhatsThis::add( m_pColorDefaultText, tr2i18n( "<b></b>Default Text<br/>Choose color for default text" ) );
+    m_pTabWidget->changeTab( tab, tr2i18n( "Colors" ) );
+    m_pTabWidget->changeTab( tab_2, tr2i18n( "Font" ) );
+}
+
+#include "kpgsqleditorsettingspage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqleditorsettingspage.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,427 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSqlEditorSettingsPage</class>
+<comment>Syntax highlighting ant font settings</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSqlEditorSettingsPage</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>577</width>
+            <height>590</height>
+        </rect>
+    </property>
+    <property name="minimumSize">
+        <size>
+            <width>522</width>
+            <height>480</height>
+        </size>
+    </property>
+    <property name="caption">
+        <string>SQL editor settings</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="1" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&lt;b&gt;Note: &lt;/b&gt;This setting is related to build-in editor, used in final wizards page.&lt;br&gt; Query/result window uses Kate part editor, configured by main menu item:&lt;br&gt;Settings - Configure Editor.</string>
+            </property>
+            <property name="textFormat">
+                <enum>AutoText</enum>
+            </property>
+            <property name="alignment">
+                <set>AlignVCenter</set>
+            </property>
+            <property name="indent">
+                <number>-1</number>
+            </property>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTabWidget</cstring>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tab</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Colors</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QGroupBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pBoxSyntaxHL</cstring>
+                        </property>
+                        <property name="frameShape">
+                            <enum>GroupBoxPanel</enum>
+                        </property>
+                        <property name="frameShadow">
+                            <enum>Sunken</enum>
+                        </property>
+                        <property name="title">
+                            <string>Syntax highlighting</string>
+                        </property>
+                        <property name="whatsThis" stdset="0">
+                            <string>&lt;b&gt;Syntax highlightning&lt;/b&gt;
+&lt;br&gt;
+You can define the colors to be used, when showing your XML documents as raw text.</string>
+                        </property>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorDataTypes</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>82</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for PostgreSQL datatypes</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Syntax Errors&lt;/b&gt;&lt;br/&gt;Choose color for PostgreSQL datatypes</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorOperators</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>112</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for SQL operators</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Attribute names&lt;/b&gt;&lt;br/&gt;Choose color for  SQL operators</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorQuotedStrings</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>142</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for quoted strings</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Attribute values&lt;/b&gt;&lt;br/&gt;Choose color for quoted strings</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorNumbers</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>172</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for numbers</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Syntax characters&lt;/b&gt;&lt;br/&gt;Choose color for numbers</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorComments</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>202</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for comments</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Comments&lt;/b&gt;&lt;br/&gt;Choose color for comments</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorKeyWords</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>52</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for SQL keywords</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;Keywords&lt;/b&gt;&lt;br/&gt;Choose color for SQL keywords</string>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorComments</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>202</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>Co&amp;mments:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorComments</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorNumbers</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>172</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Numbers:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorNumbers</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorQuotedStrings</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>142</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Quoted strings:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorQuotedStrings</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorOperators</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>112</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Operators:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorOperators</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblDataTypes</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>82</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Data types:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorDataTypes</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorKeywords</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>52</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Keywords:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorKeyWords</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>m_pLblColorDfltText</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>11</x>
+                                    <y>22</y>
+                                    <width>95</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="text">
+                                <string>Default &amp;Text:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pColorDefaultText</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton">
+                            <property name="name">
+                                <cstring>m_pColorDefaultText</cstring>
+                            </property>
+                            <property name="geometry">
+                                <rect>
+                                    <x>112</x>
+                                    <y>22</y>
+                                    <width>354</width>
+                                    <height>24</height>
+                                </rect>
+                            </property>
+                            <property name="sizePolicy">
+                                <sizepolicy>
+                                    <hsizetype>7</hsizetype>
+                                    <vsizetype>0</vsizetype>
+                                    <horstretch>0</horstretch>
+                                    <verstretch>0</verstretch>
+                                </sizepolicy>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                            <property name="toolTip" stdset="0">
+                                <string>Choose color for default text</string>
+                            </property>
+                            <property name="whatsThis" stdset="0">
+                                <string>&lt;b&gt;&lt;/b&gt;Default Text&lt;br/&gt;Choose color for default text</string>
+                            </property>
+                        </widget>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tab</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Font</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KFontChooser" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pFontChooser</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kfontdialog.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,185 @@
+//
+// C++ Implementation: kpgsqlparser
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsqlparser.h"
+
+// include files for Qt
+#include <qregexp.h>
+
+// include files for KDE
+#include <kdebug.h>
+
+#include "../kpgutil.h"
+
+// Parse SQL and update object aliases in OID/names list
+void KPGSqlParser::updateAliases(const QString &strSql, KPGOidNameAliasesList & listOfCodeCompletionObjects)
+{
+	// Clear existing aliases
+	for(KPGOidNameAliasesList::iterator it = listOfCodeCompletionObjects.begin(); it != listOfCodeCompletionObjects.end(); ++it)
+    {
+        (*it).clearAliases();
+    }
+    
+    // Setup regexp's
+	QRegExp patternIdentifier("^[\\w][\\w$]*$"); // SQL identifiers and key words must begin with a letter 
+    // (a-z, but also letters with diacritical marks and non-Latin letters) or an underscore (_). 
+    // Subsequent characters in an identifier or key word can be letters, underscores, digits (0-9), or dollar signs ($). 
+    
+    QRegExp patternCommentMultiline("/\\*[^*]*[^/]*\\*/"); 
+    QRegExp patternCommentSingleline("--[^\\n]*$");
+    QRegExp patternQuotedIdentifier("^\".*\"$");
+        
+    // Remove comments from the given SQL
+    // 1. multi-line
+    QString strSqlWithoutComments(strSql);
+    strSqlWithoutComments.remove(patternCommentMultiline);
+                
+    // 2. single-line 
+    QStringList linesIn = QStringList::split("\n", strSqlWithoutComments);
+    QStringList linesOut;
+    for(QStringList::Iterator it = linesIn.begin(); it != linesIn.end(); ++it ) 
+    {
+        QString line(*it);
+        int iCommentPos = patternCommentSingleline.search(line, 0);
+        if(iCommentPos < 0)
+        {
+            linesOut.append(line);
+        }
+        else
+        {
+            while(iCommentPos >= 0)
+            {
+                // TODO: Check, if the comment isn't arounded by the quotes
+                //QRegExp patternQuotedString("'.?" + strRegExp + ".?'")
+                                
+                if(true)
+                {    
+                    line.remove(patternCommentSingleline);
+                    linesOut.append(line);
+                    
+                    break;
+                }
+                else
+                    iCommentPos = patternCommentSingleline.search(line, iCommentPos + 1);
+            }
+        }     
+    }
+            
+    strSqlWithoutComments = linesOut.join("\n" );
+    kdDebug() << "SQL without comments: " << strSqlWithoutComments << endl;
+     
+    // Process parsing 
+    int iPos = 0;
+    do
+    {
+    	QString strNamespace, strName, strAlias;
+		bool bNameFound = false;
+			
+		// Read name, eventually fully qualified
+		while(iPos < (int) strSql.length())
+		{
+			QChar ch = strSqlWithoutComments[iPos];
+			if(ch.isSpace()) 
+			{
+				if(strName.isEmpty())
+					{ iPos++; continue; } // eat whitespaces
+				else
+					{ bNameFound = true ; break; } // name is readed
+			}
+			
+			if(ch == '.')
+			{
+				strNamespace = strName;
+				strName.setLength(0);
+			}
+				
+			if((ch == ',') || (ch == ';')) 
+			{
+				if(! strName.isEmpty()) bNameFound = true;
+				iPos++;
+				break;
+			}
+			 
+			strName.append(ch);
+			iPos++;
+		}
+			
+		// Try find the name in list of objects
+		KPGOidNameAliases *pOidNameAliases = 0;
+			
+		if(bNameFound)
+		{	
+		     // Remove function arguments, if any 
+		     int posLeftParenthesis; 
+			 if((posLeftParenthesis = strName.find('(')) > 0)
+			 {
+			    strName = strName.left(posLeftParenthesis);
+		     }
+		     
+		     // Remove quotes from identifier, if any
+		     if(patternQuotedIdentifier.search(strName, 0) == 0)
+             {
+                strName = KPGUtil::unquotedName(strName);
+             }
+			     
+		     // Find name, only if it's valid identifier
+		     if((strName.length() > 0) && (!strName[0].isDigit()) && (patternIdentifier.search(strName, 0) == 0))
+		     {
+		        // TODO if(isKeyWord(strName) == false) ... 
+		        
+		        // Find name in the list ...
+			    pOidNameAliases = listOfCodeCompletionObjects.getItemByName(strName);
+			    if(!pOidNameAliases) bNameFound = false;
+			 }
+		}
+			
+		if(bNameFound) // ... and update it's alias
+		{
+			// Read alias
+			while(iPos < (int) strSqlWithoutComments.length())
+			{
+				QChar ch = strSqlWithoutComments[iPos];
+				if(ch.isSpace()) 
+				{
+					if(strAlias.isEmpty())
+						{ iPos++; continue; } // eat whitespaces
+					else
+						break; // alias is readed
+				}
+			
+				if((ch == '.') || (ch == ',') || (ch == ';'))
+				{
+					iPos++;
+					break;
+				}
+				
+				strAlias.append(ch);
+				iPos++;
+			}
+		}
+					
+		if(!strAlias.isEmpty())
+		{
+		    if(pOidNameAliases && (pOidNameAliases->oidUnderlyingType() != 0)) // it is table or function returning set ?
+			{
+			    if(listOfCodeCompletionObjects.containAlias(strAlias))
+			    {
+			    		kdDebug() << "Alias " << strAlias << " is already used !" << endl;
+			    }
+			    else
+			    {
+			        pOidNameAliases->appendAlias(strAlias);
+			        kdDebug() << "Setting alias " << strAlias << " for " << strName << endl;
+			    }
+			}
+		}		
+    } while(iPos < (int) strSqlWithoutComments.length());
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsqlparser.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: kpgsqlparser
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSQLPARSER_H
+#define KPGSQLPARSER_H
+
+#include "../DbObjects/kpgtreeitem.h"
+
+/**
+SQL parser to help make code completition in KPGSqlEdit
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGSqlParser
+{
+private:	// Don't instantiate me
+    KPGSqlParser() {;}
+    ~KPGSqlParser() {;}
+
+public:
+
+	// Parse SQL and update object aliases in OID/names list
+	static void updateAliases(const QString &, KPGOidNameAliasesList &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,629 @@
+/***************************************************************************
+                          kpgsyntaxhighlighter.cpp  -  description
+                             -------------------
+    begin                : led 13 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgsyntaxhighlighter.h"
+
+#include <iostream>
+
+// include files for Qt
+#include <qcolor.h>
+#include <qregexp.h>
+#include <qstring.h>
+#include <qstringlist.h>
+
+#include <ktextedit.h>
+
+// SQL language keywords list
+#define NUM_KEYWORDS 297
+const char *arStrKeyWords[NUM_KEYWORDS] = {
+"ABORT",
+"ABSOLUTE",
+"ACCESS",
+"ACTION",
+"ADD",
+"AFTER",
+"AGGREGATE",
+"ALL",
+"ALSO",
+"ALTER",
+"ANALYSE",
+"ANALYZE",
+"AND",
+"ANY",
+"ARRAY",
+"AS",
+"ASC",
+"ASSERTION",
+"ASSIGNMENT",
+"AT",
+"AUTHORIZATION",
+"BACKWARD",
+"BEFORE",
+"BEGIN",
+"BETWEEN",
+"BINARY",
+"BOTH",
+"BY",
+"CACHE",
+"CALLED",
+"CASCADE",
+"CASE",
+"CAST",
+"CLASS",
+"CLOSE",
+"CLUSTER",
+"COALESCE",
+"COLLATE",
+"COLUMN",
+"COMMENT",
+"COMMIT",
+"COMMITTED",
+"CONSTRAINT",
+"CONSTRAINTS",
+"CONVERSION",
+"CONVERT",
+"COPY",
+"CREATE",
+"CREATEDB",
+"CREATEUSER",
+"CROSS",
+"CSV",
+"CURRENT_DATE",
+"CURRENT_TIME",
+"CURRENT_TIMESTAMP",
+"CURRENT_USER",
+"CURSOR",
+"CYCLE",
+"DATABASE",
+"DAY",
+"DEALLOCATE",
+"DEC",
+"DECLARE",
+"DEFAULT",
+"DEFAULTS",
+"DEFERRABLE",
+"DEFERRED",
+"DEFINER",
+"DELETE",
+"DELIMITER",
+"DELIMITERS",
+"DESC",
+"DISTINCT",
+"DO",
+"DOMAIN",
+"DROP",
+"EACH",
+"ELSE",
+"ENCODING",
+"ENCRYPTED",
+"END",
+"ESCAPE",
+"EXCEPT",
+"EXCLUDING",
+"EXCLUSIVE",
+"EXECUTE",
+"EXISTS",
+"EXPLAIN",
+"EXTERNAL",
+"EXTRACT",
+"FALSE",
+"FETCH",
+"FIRST",
+"FOR",
+"FORCE",
+"FOREIGN",
+"FORWARD",
+"FREEZE",
+"FROM",
+"FULL",
+"FUNCTION",
+"GLOBAL",
+"GRANT",
+"GROUP",
+"HANDLER",
+"HAVING",
+"HOLD",
+"HOUR",
+"CHAIN",
+"CHARACTERISTICS",
+"CHECK",
+"CHECKPOINT",
+"ILIKE",
+"IMMEDIATE",
+"IMMUTABLE",
+"IMPLICIT",
+"IN",
+"INCLUDING",
+"INCREMENT",
+"INDEX",
+"INHERITS",
+"INITIALLY",
+"INNER",
+"INOUT",
+"INPUT",
+"INSENSITIVE",
+"INSERT",
+"INSTEAD",
+"INTERSECT",
+"INTERVAL",
+"INTO",
+"INVOKER",
+"IS",
+"ISNULL",
+"ISOLATION",
+"JOIN",
+"KEY",
+"LANCOMPILER",
+"LANGUAGE",
+"LARGE",
+"LAST",
+"LEADING",
+"LEFT",
+"LEVEL",
+"LIKE",
+"LIMIT",
+"LISTEN",
+"LOAD",
+"LOCAL",
+"LOCALTIME",
+"LOCALTIMESTAMP",
+"LOCATION",
+"LOCK",
+"MATCH",
+"MAXVALUE",
+"MINUTE",
+"MINVALUE",
+"MODE",
+"MONTH",
+"MOVE",
+"NAMES",
+"NATIONAL",
+"NATURAL",
+"NEW",
+"NEXT",
+"NO",
+"NOCREATEDB",
+"NOCREATEUSER",
+"NONE",
+"NOT",
+"NOTHING",
+"NOTIFY",
+"NOTNULL",
+"NOWAIT",
+"NULL",
+"NULLIF",
+"OBJECT",
+"OF",
+"OFF",
+"OFFSET",
+"OIDS",
+"OLD",
+"ON",
+"ONLY",
+"OPERATOR",
+"OPTION",
+"OR",
+"ORDER",
+"OUT",
+"OUTER",
+"OVERLAPS",
+"OVERLAY",
+"OWNER",
+"PARTIAL",
+"PASSWORD",
+"PLACING",
+"POSITION",
+"PRECISION",
+"PREPARE",
+"PRESERVE",
+"PRIMARY",
+"PRIOR",
+"PRIVILEGES",
+"PROCEDURAL",
+"PROCEDURE",
+"QUOTE",
+"READ",
+"REAL",
+"REFERENCES",
+"RECHECK",
+"REINDEX",
+"RELATIVE",
+"RELEASE",
+"RENAME",
+"REPEATABLE",
+"REPLACE",
+"RESET",
+"RESTART",
+"RESTRICT",
+"RETURNS",
+"REVOKE",
+"RIGHT",
+"ROLLBACK",
+"ROW",
+"ROWS",
+"RULE",
+"SAVEPOINT",
+"SCROLL",
+"SECOND",
+"SECURITY",
+"SELECT",
+"SEQUENCE",
+"SERIALIZABLE",
+"SESSION",
+"SESSION_USER",
+"SET",
+"SETOF",
+"SHARE",
+"SHOW",
+"SCHEMA",
+"SIMILAR",
+"SIMPLE",
+"SOME",
+"STABLE",
+"START",
+"STATEMENT",
+"STATISTICS",
+"STDIN",
+"STDOUT",
+"STORAGE",
+"STRICT",
+"SUBSTRING",
+"SYSID",
+"TABLE",
+"TABLESPACE",
+"TEMP",
+"TEMPLATE",
+"TEMPORARY",
+"THEN",
+"TIME",
+"TO",
+"TOAST",
+"TRAILING",
+"TRANSACTION",
+"TREAT",
+"TRIGGER",
+"TRIM",
+"TRUE",
+"TRUNCATE",
+"TRUSTED",
+"TYPE",
+"UNCOMMITTED",
+"UNENCRYPTED",
+"UNION",
+"UNIQUE",
+"UNKNOWN",
+"UNLISTEN",
+"UNTIL",
+"UPDATE",
+"USAGE",
+"USER",
+"USING",
+"VACUUM",
+"VALID",
+"VALIDATOR",
+"VALUES",
+"VERBOSE",
+"VIEW",
+"VOLATILE",
+"WHEN",
+"WHERE",
+"WITH",
+"WITHOUT",
+"WORK",
+"WRITE",
+"YEAR",
+"ZONE"
+};
+
+// SQL language datatypes list
+#define NUM_DATATYPES 41
+const char *arStrDataTypes[NUM_DATATYPES] = {
+"boolean",
+"bool",
+"bit",
+"bytea",
+"varying",
+"character",
+"char",
+"varchar",
+"text",
+"smallint",
+"int2",
+"integer",
+"int",
+"int4",
+"bigint",
+"int8",
+"real",
+"float4",
+"double",
+"precision",
+"float8",
+"float",
+"numeric",
+"decimal",
+"money",
+"serial",
+"date",
+"timestamp",
+"interval",
+"box",
+"line",
+"lseg",
+"circle",
+"path",
+"point",
+"polygon",
+"cidr",
+"inet",
+"macadr",
+"oid",
+"xid" };
+
+// SQL language operators list
+#define NUM_OPERATORS 27
+const char *arStrOperators[NUM_OPERATORS] = {
+"+",
+"-",
+"/",
+"*",
+"%",
+"^",
+"|/",
+"||/",
+"!",
+"!!",
+"@",
+"<",
+">",
+"<=",
+">=",
+"~",
+"!~",
+"~*",
+"!~*",
+"=",
+"!=",
+"<>",
+"&",
+"|",
+"#",
+"<<",
+">>"
+};
+
+#define STATE_IN_COMMENT 1
+
+KPGSyntaxHighlighter::KPGSyntaxHighlighter(QTextEdit *textEdit)
+  : QSyntaxHighlighter(textEdit),
+  m_bEnabled(true)
+{
+  m_clrDefaultText.setRgb(0, 0, 0);
+  m_clrKeyWord.setRgb(128, 0, 0);
+  m_clrDataType.setRgb(0, 255, 255);
+  m_clrOperator.setRgb(0, 255, 0);
+  m_clrQuotedString.setRgb(0, 0, 128);
+  m_clrNumber.setRgb(255, 255, 0);
+  m_clrComment.setRgb(128, 128, 128);
+}
+
+KPGSyntaxHighlighter::~KPGSyntaxHighlighter()
+{
+}
+
+
+// Return QStringList with SQL keywords
+const QStringList KPGSyntaxHighlighter::listOfKeyWords()
+{
+	QStringList strListOfKeyWords;
+	for(int i = 0; i < NUM_KEYWORDS; i++)
+	{
+		strListOfKeyWords.append(arStrKeyWords[i]);
+	}
+	
+	return strListOfKeyWords;
+}
+
+int KPGSyntaxHighlighter::highlightParagraph(const QString& text, int endStateOfLastPara)
+{
+    if(!m_bEnabled) return 0;
+    
+    QRegExp patternComment("/\\*[^*]*[^/]*\\*/");
+    QRegExp patternCommentEnd("[^*]*[^/]*\\*/"); 
+    QRegExp patternQuotedString("\"[^<\"]*\"|'[^<']*'");     	
+    QRegExp patternNumber("\\b\\d+\\b", false); 
+    
+    //first I format the given line to default so any remaining highlighting is removed (Qt does not do it by itself)
+    setFormat(0, text.length(), QColor(0, 0, 0));
+
+    int iPos;
+	unsigned int i = 0;
+	
+	if(endStateOfLastPara == STATE_IN_COMMENT)
+	{
+		for(i = 0; i < text.length(); i++)
+		{
+			// search end of comment
+			iPos = patternCommentEnd.search(text, i);
+	
+			if(iPos >= 0) // end comment found ?
+			{
+				int l = patternCommentEnd.matchedLength();
+				
+				setFormat(0, l, m_clrComment);
+				i += l; // skip comment
+				break;
+			}
+			else
+			{
+				setFormat(0, text.length(), m_clrComment);
+				return STATE_IN_COMMENT; 
+			}
+		}
+	}
+		
+		
+    for(; i < text.length(); i++)
+    {
+		if((text[i] == '-') && (i+1 < text.length()) && (text[i+1] == '-'))
+		{
+			// simple comment found
+			setFormat(i, text.length(), m_clrComment );
+			break; // skip rest of line
+		}
+			
+		if((text[i] == '/') && (i+1 < text.length()) && (text[i+1] == '*'))
+		{
+			iPos=patternComment.search(text, i);
+
+			if((unsigned int) iPos == i) // closed comment found ?
+			{
+				int l = patternComment.matchedLength();
+					
+				setFormat(iPos, l, m_clrComment);
+				i += l; // skip comment
+			}
+			else
+			{
+				setFormat(i, text.length() - i, m_clrComment);
+				return STATE_IN_COMMENT; 
+			}
+		}
+      
+      	if(text[i] != ' ')
+      	{
+			// try find keyword
+			for(int j = 0; j < NUM_KEYWORDS; j++)
+			{
+				if(QChar(text[i]).upper() != QChar(arStrKeyWords[j][0]))
+					continue; // test first character for speed up  
+					
+				if(QChar(text[i]).upper() > QChar(arStrKeyWords[j][0]))
+					break; // test first character for speed up
+				
+				// For spped-up first try dumb test    
+				// first letter match, test whole keyword
+				bool bFound = true;
+				int p = 0;
+				for(unsigned int o = i; o < text.length(); o++)
+				{
+					if(((QChar(text[o]).upper() >= 'A') && (QChar(text[o]).upper() <= 'Z')) || (QChar(text[o]).upper() == '_'))
+					{
+						if(QChar(text[o]).upper() != QChar(arStrKeyWords[j][p++]))
+						{
+							bFound = false;
+							break;
+						}
+					}
+					else
+					break;
+				}
+		
+				if(bFound) // If dumb test success, try smart but slow test
+				{
+					QString strPattern("\\b");
+					strPattern.append(arStrKeyWords[j]);
+					strPattern.append("\\b");
+					QRegExp patternKeyWord(strPattern, false); // search keyword
+					iPos=patternKeyWord.search(text, i);
+					if((unsigned int) iPos == i)
+					{
+						int l = patternKeyWord.matchedLength();
+						setFormat(i, l, m_clrKeyWord );
+						i += l;
+						break;
+					}
+				}
+        	}
+
+			// try find datatype
+			for(int j = 0; j < NUM_DATATYPES; j++)
+			{
+				if(QChar(text[i]).lower() != QChar(arStrDataTypes[j][0]).lower())
+					continue; // test first character for speed up
+	
+				QString strPattern("\\b");  
+				strPattern.append(arStrDataTypes[j]);
+				strPattern.append("\\b");
+				QRegExp patternDataType(strPattern, false); // search datatype
+				iPos=patternDataType.search(text, i);
+				if((unsigned int) iPos == i)
+				{
+					int l = patternDataType.matchedLength();
+					setFormat(i, l, m_clrDataType );
+					i += l;
+					break;
+				}
+			}
+
+			// try find operators
+			for(int j = 0; j < NUM_OPERATORS; j++)
+			{
+				if(QChar(text[i]).lower() != QChar(arStrOperators[j][0]).lower())
+					continue; // test first character for speed up
+	
+				QString strPattern("\\b");  
+				strPattern.append(arStrOperators[j]);
+				strPattern.append("\\b");
+				QRegExp patternOperators(strPattern, false); // search datatype
+				iPos=patternOperators.search(text, i);
+				if((unsigned int) iPos == i)
+				{
+					int l = patternOperators.matchedLength();
+					if(l > 0)
+					{
+						setFormat(i, l, m_clrOperator );
+						i += l;
+					}
+					break;
+				}
+			}
+
+			// try find quoted string
+			if((text[i] == '\'') || (text[i] == '\"'))
+			{
+				// search quoted string
+				iPos=patternQuotedString.search(text, i);
+		
+				if((unsigned int) iPos == i) 
+				{
+					int l = patternQuotedString.matchedLength();
+		
+					setFormat(i+1, l - 2, m_clrQuotedString);
+					
+					i += l;
+				}
+			}
+
+			// try find numbers
+			if((text[i] >= '0') && (text[i] <= '9'))
+			{
+				// search numbers
+				iPos=patternNumber.search(text, i);
+				if((unsigned int) iPos == i)
+				{
+					int l = patternNumber.matchedLength();
+					setFormat(i, l, m_clrNumber );
+					i += l;
+				}
+			} 
+		}
+    }
+
+    return 0;
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/QueryResult/kpgsyntaxhighlighter.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,70 @@
+/***************************************************************************
+                          kpgsyntaxhighlighter.h  -  description
+                             -------------------
+    begin                : � led 13 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGSYNTAXHIGHLIGHTER_H
+#define KPGSYNTAXHIGHLIGHTER_H
+
+#include <qsyntaxhighlighter.h>
+
+/**
+  * SQL Syntax highlighter
+  * @author Lumir Vanek
+  */
+class KPGSyntaxHighlighter : public QSyntaxHighlighter
+{
+public: 
+	KPGSyntaxHighlighter(QTextEdit *);
+	~KPGSyntaxHighlighter();
+	
+	void enable() { m_bEnabled = true; }
+	void disable() { m_bEnabled = false; }
+	
+	// Return QStringList with SQL keywords
+	static const QStringList listOfKeyWords();
+
+	int highlightParagraph(const QString &text, int endStateOfLastPara);
+	
+	void setColorDefaultText(const QColor color) { m_clrDefaultText = color; }
+	void setColorKeyWords(const QColor color) { m_clrKeyWord = color; }
+	void setColorDataTypes(const QColor color) { m_clrDataType = color; }
+	void setColorOperators(const QColor color) { m_clrOperator = color; }
+	void setColorQuotedStrings(const QColor color) { m_clrQuotedString = color; }
+	void setColorNumbers(const QColor color) { m_clrNumber = color; }
+	void setColorComments(const QColor color) { m_clrComment = color; }
+	
+	const QColor colorDefaultText() const { return m_clrDefaultText; }
+	const QColor colorKeyWords() const { return m_clrKeyWord; }
+	const QColor colorDataTypes() const { return m_clrDataType; }
+	const QColor colorOperators() const { return m_clrOperator; }
+	const QColor colorQuotedStrings() const { return m_clrQuotedString; }
+	const QColor colorNumbers() const { return m_clrNumber; }
+	const QColor colorComments() const { return m_clrComment; }
+  
+protected:
+
+	QColor m_clrDefaultText;
+	QColor m_clrKeyWord;
+	QColor m_clrDataType;
+	QColor m_clrOperator;
+	QColor m_clrQuotedString;
+	QColor m_clrNumber; 
+	QColor m_clrComment;
+	
+	bool m_bEnabled;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,96 @@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+METASOURCES = AUTO
+libWizards_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES =  libWizards.la
+libWizards_la_LIBADD = $(PQXX_LIBS) $(LIB_KPARTS)
+
+libWizards_la_SOURCES = kpg7stepswizardbase.ui kpg7stepswizard.cpp \
+				kpgnewobjectdialogbase.ui kpgnewobjectdialog.cpp kpgcreatetablewidget1base.ui \
+				kpgcreatetablewidget2base.ui kpgcreatetablewidget3base.ui kpgcreatetablewidget4base.ui \
+				kpgcreatetablewidget5base.ui kpgcreatetablewidget1.cpp kpgcreatetablewidget2.cpp \
+				kpgcreatetablewidget3.cpp kpg2stepswizardbase.ui kpg2stepswizard.cpp kpgtablecolumnwizinfo.cpp \
+				kpgcreatetablewidget4.cpp kpgcreatetablewidget5.cpp kpgcreatetablewizard.cpp \
+				kpgcreateviewwizard.cpp kpgcreateviewwidget1base.ui kpgcreateviewwidget2base.ui \
+				kpgcreateviewwidget3base.ui kpgcreateviewwidget4base.ui kpgcreateviewwidget1.cpp \
+				kpgcreateviewwidget2.cpp kpgcreateviewwidget3.cpp kpgcreateviewwidget4.cpp \
+				kpg6stepswizardbase.ui kpg6stepswizard.cpp kpg3stepswizardbase.ui kpg3stepswizard.cpp \
+				kpgmodifyviewwidget1base.ui kpgmodifyviewwidget1.cpp kpgmodifyviewwizard.cpp \
+				kpgcreateuserwidget1.cpp kpgcreateuserwidget2base.ui kpgcreateuserwidget2.cpp \
+				kpg4stepswizardbase.ui kpg4stepswizard.cpp kpgcreateuserwizard.cpp kpgcreateuserwidget1base.ui \
+				kpgmodifyuserwizard.cpp kpgmodifyuserwidget1.cpp kpgcreategroupwidget1base.ui \
+				kpgcreategroupwidget1.cpp kpgcreategroupwizard.cpp kpgmodifygroupwizard.cpp \
+				kpgmodifygroupwidget1.cpp kpgcreatedatabasewidget1base.ui kpgcreatedatabasewidget1.cpp \
+				kpgcreatedatabasewizard.cpp kpgcreateschemawidget1base.ui kpgcreateschemawidget1.cpp \
+				kpgcreateschemawizard.cpp kpgrenameobjectwidget1base.ui kpgrenameobjectwidget1.cpp \
+				kpgrenameobjectwizard.cpp kpgcreatelanguagewizard.cpp kpgcreatefunctionwizard.cpp \
+				kpgcreatesequencewizard.cpp kpgcreatelanguagewidget1base.ui kpgcreatesequencewidget1base.ui \
+				kpgcreatefunctionwidget1base.ui kpgcreatefunctionwidget2base.ui kpgcreatefunctionwidget3base.ui \
+				kpg5stepswizardbase.ui kpg5stepswizard.cpp kpgcreatefunctionwidget1.cpp \
+				kpgcreatefunctionwidget2.cpp kpgcreatefunctionwidget3.cpp kpgcreatesequencewidget1.cpp \
+				kpgcreatelanguagewidget1.cpp kpgcreatefunctionwidget4base.ui kpgcreatefunctionwidget4.cpp \
+				kpgmodifyfunctionwizard.cpp kpgcreatelanguagewidget2base.ui kpgcreatelanguagewidget2.cpp \
+				kpgcreatedatabasewidget2base.ui kpgcreateschemawidget2base.ui kpgcreatedatabasewidget2.cpp \
+				kpgcreateschemawidget2.cpp kpgcreatetableconstraintwizard.cpp kpgcreatetablespacewidget1base.ui \
+				kpgcreatetablespacewidget1.cpp kpgcreatetablespacewizard.cpp kpgcreatetablespacewidget2base.ui \
+				kpgcreatetablespacewidget2.cpp kpgcreatetableindexwizard.cpp kpgcreatetablecolumnwizard.cpp \
+				kpgmodifycolumndefaultwidget1base.ui kpgmodifycolumntypewidget1base.ui kpgmodifycolumnstoragewidget1base.ui \
+				kpgmodifycolumnstatswidget1base.ui kpgmodifycolumndefaultwidget1.cpp kpgmodifycolumntypewidget1.cpp \
+				kpgmodifycolumnstoragewidget1.cpp kpgmodifycolumnstatswidget1.cpp kpgmodifytablecolumnwizard.cpp \
+				kpgcreaterulewizard.cpp kpgcreatetriggerwizard.cpp kpgcreatetriggerwidget1base.ui \
+				kpgcreaterulewidget1base.ui kpgcreaterulewidget1.cpp kpgcreatetriggerwidget1.cpp \
+				kpgdropobjectwidget1base.ui kpgdropobjectwidget1.cpp kpgdropobjectwizard.cpp \
+				kpgmodifysequencewidget1base.ui kpgmodifysequencewidget1.cpp kpgmodifysequencewizard.cpp \
+				kpganalysetablewidget1base.ui kpganalysetablewidget1.cpp kpganalysetablewizard.cpp \
+				kpgcopyfromtablewidget1base.ui kpgcopytotablewidget1base.ui kpgcopyfromtablewidget1.cpp \
+				kpgcopytotablewidget1.cpp kpgcopytotablewizard.cpp kpgcopyfromtablewizard.cpp \
+				kpgcopytablewidget2base.ui kpgcopytablewidget2.cpp kpgcopytablewidget3base.ui \
+				kpgcopytablewidget3.cpp kpgvacuumtablewidget1base.ui kpgvacuumtablewidget1.cpp \
+				kpgvacuumtablewizard.cpp kpgsetclustertablewidget1base.ui kpgsetclustertablewidget1.cpp \
+				kpgsetclustertablewizard.cpp kpgsetownerwidget1base.ui kpgsettablespacewidget1base.ui \
+				kpgsetownerwidget1.cpp kpgsettablespacewidget1.cpp kpgsetownerwizard.cpp \
+				kpgsettablespacewizard.cpp kpgcreatedomainwizard.cpp kpgcreatedomainwidget1base.ui \
+				kpgcreatedomainwidget2base.ui kpgcreatedomainwidget1.cpp kpgcreatedomainwidget2.cpp \
+				kpgsetdomaindefaultwizard.cpp kpgcreatedomainconstraintwizard.cpp kpgcreatetypewidget1base.ui \
+				kpgcreatetypewidget2base.ui kpgcreatetypewidget3base.ui kpgcreatetypewidget1.cpp \
+				kpgcreatetypewidget2.cpp kpgcreatetypewidget3.cpp kpgcreatefunctionwidget5.cpp \
+				kpgcreatefunctionwidget5base.ui kpgcreatebasetypewizard.cpp kpgcreatecompositetypewizard.cpp \
+				kpgcreatedomainwidget3base.ui kpgcreatedomainwidget3.cpp kpgcreatecompositetypewidget2base.ui \
+	kpgcreatecompositetypewidget2.cpp konsoleviewwidget.cpp kpgdumpdatabasewizardbase.ui \
+	kpgdumpdatabasewizard.cpp kpgrestoredatabasewizardbase.ui kpgrestoredatabasewizard.cpp \
+	kpgprivilegeswizard.cpp kpgdroptableobjectwizard.cpp kpgsetdescriptionwidget1base.ui \
+	kpgsetdescriptionwidget1.cpp kpgsetdescriptionwizard.cpp
+
+EXTRA_DIST = 
+
+noinst_HEADERS = kpg7stepswizard.h kpgnewobjectdialog.h kpgcreatetablewidget1.h \
+	kpgcreatetablewidget2.h kpgcreatetablewidget3.h kpg2stepswizard.h kpgtablecolumnwizinfo.h \
+	kpgcreatetablewidget4.h kpgcreatetablewidget5.h kpgcreatetablewizard.h kpgcreateviewwizard.h \
+	kpgcreateviewwidget1.h kpgcreateviewwidget2.h kpgcreateviewwidget3.h kpgcreateviewwidget4.h \
+	kpg6stepswizard.h kpg3stepswizard.h kpgmodifyviewwidget1.h kpgmodifyviewwizard.h \
+	kpgcreateuserwidget1.h kpgcreateuserwidget2.h kpg4stepswizard.h kpgcreateuserwizard.h \
+	kpgmodifyuserwizard.h kpgmodifyuserwidget1.h kpgcreategroupwidget1.h kpgcreategroupwizard.h \
+	kpgmodifygroupwizard.h kpgmodifygroupwidget1.h kpgcreatedatabasewidget1.h \
+	kpgcreatedatabasewizard.h kpgcreateschemawidget1.h kpgcreateschemawizard.h \
+	kpgrenameobjectwidget1.h kpgrenameobjectwizard.h kpgcreatelanguagewizard.h \
+	kpgcreatefunctionwizard.h kpgcreatesequencewizard.h kpg5stepswizard.h kpgcreatefunctionwidget1.h \
+	kpgcreatefunctionwidget2.h kpgcreatefunctionwidget3.h kpgcreatesequencewidget1.h \
+	kpgcreatelanguagewidget1.h kpgcreatefunctionwidget4.h kpgmodifyfunctionwizard.h \
+	kpgcreatelanguagewidget2.h kpgcreatedatabasewidget2.h kpgcreateschemawidget2.h \
+	kpgcreatetableconstraintwizard.h kpgcreatetablespacewidget1.h kpgcreatetablespacewizard.h \
+	kpgcreatetablespacewidget2.h kpgcreatetableindexwizard.h kpgcreatetablecolumnwizard.h \
+	kpgmodifycolumndefaultwidget1.h kpgmodifycolumntypewidget1.h kpgmodifycolumnstoragewidget1.h \
+	kpgmodifycolumnstatswidget1.h kpgmodifytablecolumnwizard.h kpgcreaterulewizard.h \
+	kpgcreatetriggerwizard.h kpgcreaterulewidget1.h kpgcreatetriggerwidget1.h kpgdropobjectwidget1.h \
+	kpgdropobjectwizard.h kpgmodifysequencewidget1.h kpgmodifysequencewizard.h \
+	kpganalysetablewidget1.h kpganalysetablewizard.h kpgcopyfromtablewidget1.h \
+	kpgcopytotablewidget1.h kpgcopytotablewizard.h kpgcopyfromtablewizard.h kpgcopytablewidget2.h \
+	kpgcopytablewidget3.h kpgvacuumtablewidget1.h kpgvacuumtablewizard.h \
+	kpgsetclustertablewidget1.h kpgsetclustertablewizard.h kpgsetownerwidget1.h \
+	kpgsettablespacewidget1.h kpgsetownerwizard.h kpgsettablespacewizard.h kpgcreatedomainwizard.h \
+	kpgcreatedomainwidget1.h kpgcreatedomainwidget2.h kpgsetdomaindefaultwizard.h \
+	kpgcreatedomainconstraintwizard.h kpgcreatetypewidget1.h kpgcreatetypewidget2.h kpgcreatetypewidget3.h \
+	kpgcreatefunctionwidget5.h kpgcreatebasetypewizard.h kpgcreatecompositetypewizard.h \
+	kpgcreatedomainwidget3.h kpgcreatecompositetypewidget2.h konsoleviewwidget.h \
+	kpgdumpdatabasewizard.h kpgrestoredatabasewizard.h kpgprivilegeswizard.h \
+	kpgdroptableobjectwizard.h kpgsetdescriptionwidget1.h kpgsetdescriptionwizard.h
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,3051 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/Wizards
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+libWizards_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+am_libWizards_la_OBJECTS = kpg7stepswizard.lo kpgnewobjectdialog.lo \
+	kpgcreatetablewidget1.lo kpgcreatetablewidget2.lo \
+	kpgcreatetablewidget3.lo kpg2stepswizard.lo \
+	kpgtablecolumnwizinfo.lo kpgcreatetablewidget4.lo \
+	kpgcreatetablewidget5.lo kpgcreatetablewizard.lo \
+	kpgcreateviewwizard.lo kpgcreateviewwidget1.lo \
+	kpgcreateviewwidget2.lo kpgcreateviewwidget3.lo \
+	kpgcreateviewwidget4.lo kpg6stepswizard.lo kpg3stepswizard.lo \
+	kpgmodifyviewwidget1.lo kpgmodifyviewwizard.lo \
+	kpgcreateuserwidget1.lo kpgcreateuserwidget2.lo \
+	kpg4stepswizard.lo kpgcreateuserwizard.lo \
+	kpgmodifyuserwizard.lo kpgmodifyuserwidget1.lo \
+	kpgcreategroupwidget1.lo kpgcreategroupwizard.lo \
+	kpgmodifygroupwizard.lo kpgmodifygroupwidget1.lo \
+	kpgcreatedatabasewidget1.lo kpgcreatedatabasewizard.lo \
+	kpgcreateschemawidget1.lo kpgcreateschemawizard.lo \
+	kpgrenameobjectwidget1.lo kpgrenameobjectwizard.lo \
+	kpgcreatelanguagewizard.lo kpgcreatefunctionwizard.lo \
+	kpgcreatesequencewizard.lo kpg5stepswizard.lo \
+	kpgcreatefunctionwidget1.lo kpgcreatefunctionwidget2.lo \
+	kpgcreatefunctionwidget3.lo kpgcreatesequencewidget1.lo \
+	kpgcreatelanguagewidget1.lo kpgcreatefunctionwidget4.lo \
+	kpgmodifyfunctionwizard.lo kpgcreatelanguagewidget2.lo \
+	kpgcreatedatabasewidget2.lo kpgcreateschemawidget2.lo \
+	kpgcreatetableconstraintwizard.lo \
+	kpgcreatetablespacewidget1.lo kpgcreatetablespacewizard.lo \
+	kpgcreatetablespacewidget2.lo kpgcreatetableindexwizard.lo \
+	kpgcreatetablecolumnwizard.lo kpgmodifycolumndefaultwidget1.lo \
+	kpgmodifycolumntypewidget1.lo kpgmodifycolumnstoragewidget1.lo \
+	kpgmodifycolumnstatswidget1.lo kpgmodifytablecolumnwizard.lo \
+	kpgcreaterulewizard.lo kpgcreatetriggerwizard.lo \
+	kpgcreaterulewidget1.lo kpgcreatetriggerwidget1.lo \
+	kpgdropobjectwidget1.lo kpgdropobjectwizard.lo \
+	kpgmodifysequencewidget1.lo kpgmodifysequencewizard.lo \
+	kpganalysetablewidget1.lo kpganalysetablewizard.lo \
+	kpgcopyfromtablewidget1.lo kpgcopytotablewidget1.lo \
+	kpgcopytotablewizard.lo kpgcopyfromtablewizard.lo \
+	kpgcopytablewidget2.lo kpgcopytablewidget3.lo \
+	kpgvacuumtablewidget1.lo kpgvacuumtablewizard.lo \
+	kpgsetclustertablewidget1.lo kpgsetclustertablewizard.lo \
+	kpgsetownerwidget1.lo kpgsettablespacewidget1.lo \
+	kpgsetownerwizard.lo kpgsettablespacewizard.lo \
+	kpgcreatedomainwizard.lo kpgcreatedomainwidget1.lo \
+	kpgcreatedomainwidget2.lo kpgsetdomaindefaultwizard.lo \
+	kpgcreatedomainconstraintwizard.lo kpgcreatetypewidget1.lo \
+	kpgcreatetypewidget2.lo kpgcreatetypewidget3.lo \
+	kpgcreatefunctionwidget5.lo kpgcreatebasetypewizard.lo \
+	kpgcreatecompositetypewizard.lo kpgcreatedomainwidget3.lo \
+	kpgcreatecompositetypewidget2.lo konsoleviewwidget.lo \
+	kpgdumpdatabasewizard.lo kpgrestoredatabasewizard.lo \
+	kpgprivilegeswizard.lo kpgdroptableobjectwizard.lo \
+	kpgsetdescriptionwidget1.lo kpgsetdescriptionwizard.lo
+#>- libWizards_la_OBJECTS = $(am_libWizards_la_OBJECTS)
+#>+ 55
+libWizards_la_final_OBJECTS = libWizards_la.all_cpp.lo 
+libWizards_la_nofinal_OBJECTS = kpg7stepswizard.lo kpgnewobjectdialog.lo \
+	kpgcreatetablewidget1.lo kpgcreatetablewidget2.lo \
+	kpgcreatetablewidget3.lo kpg2stepswizard.lo \
+	kpgtablecolumnwizinfo.lo kpgcreatetablewidget4.lo \
+	kpgcreatetablewidget5.lo kpgcreatetablewizard.lo \
+	kpgcreateviewwizard.lo kpgcreateviewwidget1.lo \
+	kpgcreateviewwidget2.lo kpgcreateviewwidget3.lo \
+	kpgcreateviewwidget4.lo kpg6stepswizard.lo kpg3stepswizard.lo \
+	kpgmodifyviewwidget1.lo kpgmodifyviewwizard.lo \
+	kpgcreateuserwidget1.lo kpgcreateuserwidget2.lo \
+	kpg4stepswizard.lo kpgcreateuserwizard.lo \
+	kpgmodifyuserwizard.lo kpgmodifyuserwidget1.lo \
+	kpgcreategroupwidget1.lo kpgcreategroupwizard.lo \
+	kpgmodifygroupwizard.lo kpgmodifygroupwidget1.lo \
+	kpgcreatedatabasewidget1.lo kpgcreatedatabasewizard.lo \
+	kpgcreateschemawidget1.lo kpgcreateschemawizard.lo \
+	kpgrenameobjectwidget1.lo kpgrenameobjectwizard.lo \
+	kpgcreatelanguagewizard.lo kpgcreatefunctionwizard.lo \
+	kpgcreatesequencewizard.lo kpg5stepswizard.lo \
+	kpgcreatefunctionwidget1.lo kpgcreatefunctionwidget2.lo \
+	kpgcreatefunctionwidget3.lo kpgcreatesequencewidget1.lo \
+	kpgcreatelanguagewidget1.lo kpgcreatefunctionwidget4.lo \
+	kpgmodifyfunctionwizard.lo kpgcreatelanguagewidget2.lo \
+	kpgcreatedatabasewidget2.lo kpgcreateschemawidget2.lo \
+	kpgcreatetableconstraintwizard.lo \
+	kpgcreatetablespacewidget1.lo kpgcreatetablespacewizard.lo \
+	kpgcreatetablespacewidget2.lo kpgcreatetableindexwizard.lo \
+	kpgcreatetablecolumnwizard.lo kpgmodifycolumndefaultwidget1.lo \
+	kpgmodifycolumntypewidget1.lo kpgmodifycolumnstoragewidget1.lo \
+	kpgmodifycolumnstatswidget1.lo kpgmodifytablecolumnwizard.lo \
+	kpgcreaterulewizard.lo kpgcreatetriggerwizard.lo \
+	kpgcreaterulewidget1.lo kpgcreatetriggerwidget1.lo \
+	kpgdropobjectwidget1.lo kpgdropobjectwizard.lo \
+	kpgmodifysequencewidget1.lo kpgmodifysequencewizard.lo \
+	kpganalysetablewidget1.lo kpganalysetablewizard.lo \
+	kpgcopyfromtablewidget1.lo kpgcopytotablewidget1.lo \
+	kpgcopytotablewizard.lo kpgcopyfromtablewizard.lo \
+	kpgcopytablewidget2.lo kpgcopytablewidget3.lo \
+	kpgvacuumtablewidget1.lo kpgvacuumtablewizard.lo \
+	kpgsetclustertablewidget1.lo kpgsetclustertablewizard.lo \
+	kpgsetownerwidget1.lo kpgsettablespacewidget1.lo \
+	kpgsetownerwizard.lo kpgsettablespacewizard.lo \
+	kpgcreatedomainwizard.lo kpgcreatedomainwidget1.lo \
+	kpgcreatedomainwidget2.lo kpgsetdomaindefaultwizard.lo \
+	kpgcreatedomainconstraintwizard.lo kpgcreatetypewidget1.lo \
+	kpgcreatetypewidget2.lo kpgcreatetypewidget3.lo \
+	kpgcreatefunctionwidget5.lo kpgcreatebasetypewizard.lo \
+	kpgcreatecompositetypewizard.lo kpgcreatedomainwidget3.lo \
+	kpgcreatecompositetypewidget2.lo konsoleviewwidget.lo \
+	kpgdumpdatabasewizard.lo kpgrestoredatabasewizard.lo \
+	kpgprivilegeswizard.lo kpgdroptableobjectwizard.lo \
+	kpgsetdescriptionwidget1.lo kpgsetdescriptionwizard.lo kpg7stepswizardbase.lo kpgnewobjectdialogbase.lo kpgcreatetablewidget1base.lo kpgcreatetablewidget2base.lo kpgcreatetablewidget3base.lo kpgcreatetablewidget4base.lo kpgcreatetablewidget5base.lo kpg2stepswizardbase.lo kpgcreateviewwidget1base.lo kpgcreateviewwidget2base.lo kpgcreateviewwidget3base.lo kpgcreateviewwidget4base.lo kpg6stepswizardbase.lo kpg3stepswizardbase.lo kpgmodifyviewwidget1base.lo kpgcreateuserwidget2base.lo kpg4stepswizardbase.lo kpgcreateuserwidget1base.lo kpgcreategroupwidget1base.lo kpgcreatedatabasewidget1base.lo kpgcreateschemawidget1base.lo kpgrenameobjectwidget1base.lo kpgcreatelanguagewidget1base.lo kpgcreatesequencewidget1base.lo kpgcreatefunctionwidget1base.lo kpgcreatefunctionwidget2base.lo kpgcreatefunctionwidget3base.lo kpg5stepswizardbase.lo kpgcreatefunctionwidget4base.lo kpgcreatelanguagewidget2base.lo kpgcreatedatabasewidget2base.lo kpgcreateschemawidget2base.lo kpgcreatetablespacewidget1base.lo kpgcreatetablespacewidget2base.lo kpgmodifycolumndefaultwidget1base.lo kpgmodifycolumntypewidget1base.lo kpgmodifycolumnstoragewidget1base.lo kpgmodifycolumnstatswidget1base.lo kpgcreatetriggerwidget1base.lo kpgcreaterulewidget1base.lo kpgdropobjectwidget1base.lo kpgmodifysequencewidget1base.lo kpganalysetablewidget1base.lo kpgcopyfromtablewidget1base.lo kpgcopytotablewidget1base.lo kpgcopytablewidget2base.lo kpgcopytablewidget3base.lo kpgvacuumtablewidget1base.lo kpgsetclustertablewidget1base.lo kpgsetownerwidget1base.lo kpgsettablespacewidget1base.lo kpgcreatedomainwidget1base.lo kpgcreatedomainwidget2base.lo kpgcreatetypewidget1base.lo kpgcreatetypewidget2base.lo kpgcreatetypewidget3base.lo kpgcreatefunctionwidget5base.lo kpgcreatedomainwidget3base.lo kpgcreatecompositetypewidget2base.lo kpgdumpdatabasewizardbase.lo kpgrestoredatabasewizardbase.lo kpgsetdescriptionwidget1base.lo
+ at KDE_USE_FINAL_FALSE@libWizards_la_OBJECTS = $(libWizards_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libWizards_la_OBJECTS = $(libWizards_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libWizards_la_SOURCES)
+DIST_SOURCES = $(libWizards_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = -I$(top_srcdir)/kpogre/DbObjects $(all_includes)
+#>- METASOURCES = AUTO
+libWizards_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libWizards.la
+libWizards_la_LIBADD = $(PQXX_LIBS) $(LIB_KPARTS)
+#>- libWizards_la_SOURCES = kpg7stepswizardbase.ui kpg7stepswizard.cpp \
+#>- 				kpgnewobjectdialogbase.ui kpgnewobjectdialog.cpp kpgcreatetablewidget1base.ui \
+#>- 				kpgcreatetablewidget2base.ui kpgcreatetablewidget3base.ui kpgcreatetablewidget4base.ui \
+#>- 				kpgcreatetablewidget5base.ui kpgcreatetablewidget1.cpp kpgcreatetablewidget2.cpp \
+#>- 				kpgcreatetablewidget3.cpp kpg2stepswizardbase.ui kpg2stepswizard.cpp kpgtablecolumnwizinfo.cpp \
+#>- 				kpgcreatetablewidget4.cpp kpgcreatetablewidget5.cpp kpgcreatetablewizard.cpp \
+#>- 				kpgcreateviewwizard.cpp kpgcreateviewwidget1base.ui kpgcreateviewwidget2base.ui \
+#>- 				kpgcreateviewwidget3base.ui kpgcreateviewwidget4base.ui kpgcreateviewwidget1.cpp \
+#>- 				kpgcreateviewwidget2.cpp kpgcreateviewwidget3.cpp kpgcreateviewwidget4.cpp \
+#>- 				kpg6stepswizardbase.ui kpg6stepswizard.cpp kpg3stepswizardbase.ui kpg3stepswizard.cpp \
+#>- 				kpgmodifyviewwidget1base.ui kpgmodifyviewwidget1.cpp kpgmodifyviewwizard.cpp \
+#>- 				kpgcreateuserwidget1.cpp kpgcreateuserwidget2base.ui kpgcreateuserwidget2.cpp \
+#>- 				kpg4stepswizardbase.ui kpg4stepswizard.cpp kpgcreateuserwizard.cpp kpgcreateuserwidget1base.ui \
+#>- 				kpgmodifyuserwizard.cpp kpgmodifyuserwidget1.cpp kpgcreategroupwidget1base.ui \
+#>- 				kpgcreategroupwidget1.cpp kpgcreategroupwizard.cpp kpgmodifygroupwizard.cpp \
+#>- 				kpgmodifygroupwidget1.cpp kpgcreatedatabasewidget1base.ui kpgcreatedatabasewidget1.cpp \
+#>- 				kpgcreatedatabasewizard.cpp kpgcreateschemawidget1base.ui kpgcreateschemawidget1.cpp \
+#>- 				kpgcreateschemawizard.cpp kpgrenameobjectwidget1base.ui kpgrenameobjectwidget1.cpp \
+#>- 				kpgrenameobjectwizard.cpp kpgcreatelanguagewizard.cpp kpgcreatefunctionwizard.cpp \
+#>- 				kpgcreatesequencewizard.cpp kpgcreatelanguagewidget1base.ui kpgcreatesequencewidget1base.ui \
+#>- 				kpgcreatefunctionwidget1base.ui kpgcreatefunctionwidget2base.ui kpgcreatefunctionwidget3base.ui \
+#>- 				kpg5stepswizardbase.ui kpg5stepswizard.cpp kpgcreatefunctionwidget1.cpp \
+#>- 				kpgcreatefunctionwidget2.cpp kpgcreatefunctionwidget3.cpp kpgcreatesequencewidget1.cpp \
+#>- 				kpgcreatelanguagewidget1.cpp kpgcreatefunctionwidget4base.ui kpgcreatefunctionwidget4.cpp \
+#>- 				kpgmodifyfunctionwizard.cpp kpgcreatelanguagewidget2base.ui kpgcreatelanguagewidget2.cpp \
+#>- 				kpgcreatedatabasewidget2base.ui kpgcreateschemawidget2base.ui kpgcreatedatabasewidget2.cpp \
+#>- 				kpgcreateschemawidget2.cpp kpgcreatetableconstraintwizard.cpp kpgcreatetablespacewidget1base.ui \
+#>- 				kpgcreatetablespacewidget1.cpp kpgcreatetablespacewizard.cpp kpgcreatetablespacewidget2base.ui \
+#>- 				kpgcreatetablespacewidget2.cpp kpgcreatetableindexwizard.cpp kpgcreatetablecolumnwizard.cpp \
+#>- 				kpgmodifycolumndefaultwidget1base.ui kpgmodifycolumntypewidget1base.ui kpgmodifycolumnstoragewidget1base.ui \
+#>- 				kpgmodifycolumnstatswidget1base.ui kpgmodifycolumndefaultwidget1.cpp kpgmodifycolumntypewidget1.cpp \
+#>- 				kpgmodifycolumnstoragewidget1.cpp kpgmodifycolumnstatswidget1.cpp kpgmodifytablecolumnwizard.cpp \
+#>- 				kpgcreaterulewizard.cpp kpgcreatetriggerwizard.cpp kpgcreatetriggerwidget1base.ui \
+#>- 				kpgcreaterulewidget1base.ui kpgcreaterulewidget1.cpp kpgcreatetriggerwidget1.cpp \
+#>- 				kpgdropobjectwidget1base.ui kpgdropobjectwidget1.cpp kpgdropobjectwizard.cpp \
+#>- 				kpgmodifysequencewidget1base.ui kpgmodifysequencewidget1.cpp kpgmodifysequencewizard.cpp \
+#>- 				kpganalysetablewidget1base.ui kpganalysetablewidget1.cpp kpganalysetablewizard.cpp \
+#>- 				kpgcopyfromtablewidget1base.ui kpgcopytotablewidget1base.ui kpgcopyfromtablewidget1.cpp \
+#>- 				kpgcopytotablewidget1.cpp kpgcopytotablewizard.cpp kpgcopyfromtablewizard.cpp \
+#>- 				kpgcopytablewidget2base.ui kpgcopytablewidget2.cpp kpgcopytablewidget3base.ui \
+#>- 				kpgcopytablewidget3.cpp kpgvacuumtablewidget1base.ui kpgvacuumtablewidget1.cpp \
+#>- 				kpgvacuumtablewizard.cpp kpgsetclustertablewidget1base.ui kpgsetclustertablewidget1.cpp \
+#>- 				kpgsetclustertablewizard.cpp kpgsetownerwidget1base.ui kpgsettablespacewidget1base.ui \
+#>- 				kpgsetownerwidget1.cpp kpgsettablespacewidget1.cpp kpgsetownerwizard.cpp \
+#>- 				kpgsettablespacewizard.cpp kpgcreatedomainwizard.cpp kpgcreatedomainwidget1base.ui \
+#>- 				kpgcreatedomainwidget2base.ui kpgcreatedomainwidget1.cpp kpgcreatedomainwidget2.cpp \
+#>- 				kpgsetdomaindefaultwizard.cpp kpgcreatedomainconstraintwizard.cpp kpgcreatetypewidget1base.ui \
+#>- 				kpgcreatetypewidget2base.ui kpgcreatetypewidget3base.ui kpgcreatetypewidget1.cpp \
+#>- 				kpgcreatetypewidget2.cpp kpgcreatetypewidget3.cpp kpgcreatefunctionwidget5.cpp \
+#>- 				kpgcreatefunctionwidget5base.ui kpgcreatebasetypewizard.cpp kpgcreatecompositetypewizard.cpp \
+#>- 				kpgcreatedomainwidget3base.ui kpgcreatedomainwidget3.cpp kpgcreatecompositetypewidget2base.ui \
+#>- 	kpgcreatecompositetypewidget2.cpp konsoleviewwidget.cpp kpgdumpdatabasewizardbase.ui \
+#>- 	kpgdumpdatabasewizard.cpp kpgrestoredatabasewizardbase.ui kpgrestoredatabasewizard.cpp \
+#>- 	kpgprivilegeswizard.cpp kpgdroptableobjectwizard.cpp kpgsetdescriptionwidget1base.ui \
+#>- 	kpgsetdescriptionwidget1.cpp kpgsetdescriptionwizard.cpp
+#>+ 55
+libWizards_la_SOURCES= kpg7stepswizard.cpp \
+				 kpgnewobjectdialog.cpp  \
+				   \
+				 kpgcreatetablewidget1.cpp kpgcreatetablewidget2.cpp \
+				kpgcreatetablewidget3.cpp  kpg2stepswizard.cpp kpgtablecolumnwizinfo.cpp \
+				kpgcreatetablewidget4.cpp kpgcreatetablewidget5.cpp kpgcreatetablewizard.cpp \
+				kpgcreateviewwizard.cpp   \
+				  kpgcreateviewwidget1.cpp \
+				kpgcreateviewwidget2.cpp kpgcreateviewwidget3.cpp kpgcreateviewwidget4.cpp \
+				 kpg6stepswizard.cpp  kpg3stepswizard.cpp \
+				 kpgmodifyviewwidget1.cpp kpgmodifyviewwizard.cpp \
+				kpgcreateuserwidget1.cpp  kpgcreateuserwidget2.cpp \
+				 kpg4stepswizard.cpp kpgcreateuserwizard.cpp  \
+				kpgmodifyuserwizard.cpp kpgmodifyuserwidget1.cpp  \
+				kpgcreategroupwidget1.cpp kpgcreategroupwizard.cpp kpgmodifygroupwizard.cpp \
+				kpgmodifygroupwidget1.cpp  kpgcreatedatabasewidget1.cpp \
+				kpgcreatedatabasewizard.cpp  kpgcreateschemawidget1.cpp \
+				kpgcreateschemawizard.cpp  kpgrenameobjectwidget1.cpp \
+				kpgrenameobjectwizard.cpp kpgcreatelanguagewizard.cpp kpgcreatefunctionwizard.cpp \
+				kpgcreatesequencewizard.cpp   \
+				   \
+				 kpg5stepswizard.cpp kpgcreatefunctionwidget1.cpp \
+				kpgcreatefunctionwidget2.cpp kpgcreatefunctionwidget3.cpp kpgcreatesequencewidget1.cpp \
+				kpgcreatelanguagewidget1.cpp  kpgcreatefunctionwidget4.cpp \
+				kpgmodifyfunctionwizard.cpp  kpgcreatelanguagewidget2.cpp \
+				  kpgcreatedatabasewidget2.cpp \
+				kpgcreateschemawidget2.cpp kpgcreatetableconstraintwizard.cpp  \
+				kpgcreatetablespacewidget1.cpp kpgcreatetablespacewizard.cpp  \
+				kpgcreatetablespacewidget2.cpp kpgcreatetableindexwizard.cpp kpgcreatetablecolumnwizard.cpp \
+				   \
+				 kpgmodifycolumndefaultwidget1.cpp kpgmodifycolumntypewidget1.cpp \
+				kpgmodifycolumnstoragewidget1.cpp kpgmodifycolumnstatswidget1.cpp kpgmodifytablecolumnwizard.cpp \
+				kpgcreaterulewizard.cpp kpgcreatetriggerwizard.cpp  \
+				 kpgcreaterulewidget1.cpp kpgcreatetriggerwidget1.cpp \
+				 kpgdropobjectwidget1.cpp kpgdropobjectwizard.cpp \
+				 kpgmodifysequencewidget1.cpp kpgmodifysequencewizard.cpp \
+				 kpganalysetablewidget1.cpp kpganalysetablewizard.cpp \
+				  kpgcopyfromtablewidget1.cpp \
+				kpgcopytotablewidget1.cpp kpgcopytotablewizard.cpp kpgcopyfromtablewizard.cpp \
+				 kpgcopytablewidget2.cpp  \
+				kpgcopytablewidget3.cpp  kpgvacuumtablewidget1.cpp \
+				kpgvacuumtablewizard.cpp  kpgsetclustertablewidget1.cpp \
+				kpgsetclustertablewizard.cpp   \
+				kpgsetownerwidget1.cpp kpgsettablespacewidget1.cpp kpgsetownerwizard.cpp \
+				kpgsettablespacewizard.cpp kpgcreatedomainwizard.cpp  \
+				 kpgcreatedomainwidget1.cpp kpgcreatedomainwidget2.cpp \
+				kpgsetdomaindefaultwizard.cpp kpgcreatedomainconstraintwizard.cpp  \
+				  kpgcreatetypewidget1.cpp \
+				kpgcreatetypewidget2.cpp kpgcreatetypewidget3.cpp kpgcreatefunctionwidget5.cpp \
+				 kpgcreatebasetypewizard.cpp kpgcreatecompositetypewizard.cpp \
+				 kpgcreatedomainwidget3.cpp  \
+	kpgcreatecompositetypewidget2.cpp konsoleviewwidget.cpp  \
+	kpgdumpdatabasewizard.cpp  kpgrestoredatabasewizard.cpp \
+	kpgprivilegeswizard.cpp kpgdroptableobjectwizard.cpp  \
+	kpgsetdescriptionwidget1.cpp kpgsetdescriptionwizard.cpp kpg7stepswizardbase.cpp kpgnewobjectdialogbase.cpp kpgcreatetablewidget1base.cpp kpgcreatetablewidget2base.cpp kpgcreatetablewidget3base.cpp kpgcreatetablewidget4base.cpp kpgcreatetablewidget5base.cpp kpg2stepswizardbase.cpp kpgcreateviewwidget1base.cpp kpgcreateviewwidget2base.cpp kpgcreateviewwidget3base.cpp kpgcreateviewwidget4base.cpp kpg6stepswizardbase.cpp kpg3stepswizardbase.cpp kpgmodifyviewwidget1base.cpp kpgcreateuserwidget2base.cpp kpg4stepswizardbase.cpp kpgcreateuserwidget1base.cpp kpgcreategroupwidget1base.cpp kpgcreatedatabasewidget1base.cpp kpgcreateschemawidget1base.cpp kpgrenameobjectwidget1base.cpp kpgcreatelanguagewidget1base.cpp kpgcreatesequencewidget1base.cpp kpgcreatefunctionwidget1base.cpp kpgcreatefunctionwidget2base.cpp kpgcreatefunctionwidget3base.cpp kpg5stepswizardbase.cpp kpgcreatefunctionwidget4base.cpp kpgcreatelanguagewidget2base.cpp kpgcreatedatabasewidget2base.cpp kpgcreateschemawidget2base.cpp kpgcreatetablespacewidget1base.cpp kpgcreatetablespacewidget2base.cpp kpgmodifycolumndefaultwidget1base.cpp kpgmodifycolumntypewidget1base.cpp kpgmodifycolumnstoragewidget1base.cpp kpgmodifycolumnstatswidget1base.cpp kpgcreatetriggerwidget1base.cpp kpgcreaterulewidget1base.cpp kpgdropobjectwidget1base.cpp kpgmodifysequencewidget1base.cpp kpganalysetablewidget1base.cpp kpgcopyfromtablewidget1base.cpp kpgcopytotablewidget1base.cpp kpgcopytablewidget2base.cpp kpgcopytablewidget3base.cpp kpgvacuumtablewidget1base.cpp kpgsetclustertablewidget1base.cpp kpgsetownerwidget1base.cpp kpgsettablespacewidget1base.cpp kpgcreatedomainwidget1base.cpp kpgcreatedomainwidget2base.cpp kpgcreatetypewidget1base.cpp kpgcreatetypewidget2base.cpp kpgcreatetypewidget3base.cpp kpgcreatefunctionwidget5base.cpp kpgcreatedomainwidget3base.cpp kpgcreatecompositetypewidget2base.cpp kpgdumpdatabasewizardbase.cpp kpgrestoredatabasewizardbase.cpp kpgsetdescriptionwidget1base.cpp
+
+EXTRA_DIST = 
+noinst_HEADERS = kpg7stepswizard.h kpgnewobjectdialog.h kpgcreatetablewidget1.h \
+	kpgcreatetablewidget2.h kpgcreatetablewidget3.h kpg2stepswizard.h kpgtablecolumnwizinfo.h \
+	kpgcreatetablewidget4.h kpgcreatetablewidget5.h kpgcreatetablewizard.h kpgcreateviewwizard.h \
+	kpgcreateviewwidget1.h kpgcreateviewwidget2.h kpgcreateviewwidget3.h kpgcreateviewwidget4.h \
+	kpg6stepswizard.h kpg3stepswizard.h kpgmodifyviewwidget1.h kpgmodifyviewwizard.h \
+	kpgcreateuserwidget1.h kpgcreateuserwidget2.h kpg4stepswizard.h kpgcreateuserwizard.h \
+	kpgmodifyuserwizard.h kpgmodifyuserwidget1.h kpgcreategroupwidget1.h kpgcreategroupwizard.h \
+	kpgmodifygroupwizard.h kpgmodifygroupwidget1.h kpgcreatedatabasewidget1.h \
+	kpgcreatedatabasewizard.h kpgcreateschemawidget1.h kpgcreateschemawizard.h \
+	kpgrenameobjectwidget1.h kpgrenameobjectwizard.h kpgcreatelanguagewizard.h \
+	kpgcreatefunctionwizard.h kpgcreatesequencewizard.h kpg5stepswizard.h kpgcreatefunctionwidget1.h \
+	kpgcreatefunctionwidget2.h kpgcreatefunctionwidget3.h kpgcreatesequencewidget1.h \
+	kpgcreatelanguagewidget1.h kpgcreatefunctionwidget4.h kpgmodifyfunctionwizard.h \
+	kpgcreatelanguagewidget2.h kpgcreatedatabasewidget2.h kpgcreateschemawidget2.h \
+	kpgcreatetableconstraintwizard.h kpgcreatetablespacewidget1.h kpgcreatetablespacewizard.h \
+	kpgcreatetablespacewidget2.h kpgcreatetableindexwizard.h kpgcreatetablecolumnwizard.h \
+	kpgmodifycolumndefaultwidget1.h kpgmodifycolumntypewidget1.h kpgmodifycolumnstoragewidget1.h \
+	kpgmodifycolumnstatswidget1.h kpgmodifytablecolumnwizard.h kpgcreaterulewizard.h \
+	kpgcreatetriggerwizard.h kpgcreaterulewidget1.h kpgcreatetriggerwidget1.h kpgdropobjectwidget1.h \
+	kpgdropobjectwizard.h kpgmodifysequencewidget1.h kpgmodifysequencewizard.h \
+	kpganalysetablewidget1.h kpganalysetablewizard.h kpgcopyfromtablewidget1.h \
+	kpgcopytotablewidget1.h kpgcopytotablewizard.h kpgcopyfromtablewizard.h kpgcopytablewidget2.h \
+	kpgcopytablewidget3.h kpgvacuumtablewidget1.h kpgvacuumtablewizard.h \
+	kpgsetclustertablewidget1.h kpgsetclustertablewizard.h kpgsetownerwidget1.h \
+	kpgsettablespacewidget1.h kpgsetownerwizard.h kpgsettablespacewizard.h kpgcreatedomainwizard.h \
+	kpgcreatedomainwidget1.h kpgcreatedomainwidget2.h kpgsetdomaindefaultwizard.h \
+	kpgcreatedomainconstraintwizard.h kpgcreatetypewidget1.h kpgcreatetypewidget2.h kpgcreatetypewidget3.h \
+	kpgcreatefunctionwidget5.h kpgcreatebasetypewizard.h kpgcreatecompositetypewizard.h \
+	kpgcreatedomainwidget3.h kpgcreatecompositetypewidget2.h konsoleviewwidget.h \
+	kpgdumpdatabasewizard.h kpgrestoredatabasewizard.h kpgprivilegeswizard.h \
+	kpgdroptableobjectwizard.h kpgsetdescriptionwidget1.h kpgsetdescriptionwizard.h
+
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Wizards/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libWizards.la: $(libWizards_la_OBJECTS) $(libWizards_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libWizards_la_LDFLAGS) $(libWizards_la_OBJECTS) $(libWizards_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/konsoleviewwidget.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg2stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg3stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg4stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg5stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg6stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpg7stepswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpganalysetablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpganalysetablewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopyfromtablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopyfromtablewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopytablewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopytablewidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopytotablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcopytotablewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatebasetypewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatecompositetypewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatecompositetypewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedatabasewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedatabasewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedatabasewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedomainconstraintwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedomainwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedomainwidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedomainwidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatedomainwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwidget4.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwidget5.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatefunctionwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreategroupwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreategroupwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatelanguagewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatelanguagewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatelanguagewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreaterulewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreaterulewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateschemawidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateschemawidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateschemawizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatesequencewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatesequencewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablecolumnwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetableconstraintwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetableindexwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablespacewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablespacewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablespacewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewidget4.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewidget5.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetablewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetriggerwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetriggerwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetypewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetypewidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreatetypewidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateuserwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateuserwidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateuserwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateviewwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateviewwidget2.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateviewwidget3.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateviewwidget4.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgcreateviewwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdropobjectwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdropobjectwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdroptableobjectwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgdumpdatabasewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifycolumndefaultwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifycolumnstatswidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifycolumnstoragewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifycolumntypewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifyfunctionwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifygroupwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifygroupwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifysequencewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifysequencewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifytablecolumnwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifyuserwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifyuserwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifyviewwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgmodifyviewwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgnewobjectdialog.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgprivilegeswizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrenameobjectwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrenameobjectwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgrestoredatabasewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetclustertablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetclustertablewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetdescriptionwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetdescriptionwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetdomaindefaultwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetownerwidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsetownerwizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsettablespacewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgsettablespacewizard.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgtablecolumnwizinfo.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgvacuumtablewidget1.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kpgvacuumtablewizard.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kpgcreatetablespacewidget1.moc: $(srcdir)/kpgcreatetablespacewidget1.h
+	$(MOC) $(srcdir)/kpgcreatetablespacewidget1.h -o kpgcreatetablespacewidget1.moc
+
+#>+ 2
+mocs: kpgcreatetablespacewidget1.moc
+
+#>+ 3
+kpgcreatecompositetypewidget2.moc: $(srcdir)/kpgcreatecompositetypewidget2.h
+	$(MOC) $(srcdir)/kpgcreatecompositetypewidget2.h -o kpgcreatecompositetypewidget2.moc
+
+#>+ 2
+mocs: kpgcreatecompositetypewidget2.moc
+
+#>+ 3
+kpgcreateschemawidget2.moc: $(srcdir)/kpgcreateschemawidget2.h
+	$(MOC) $(srcdir)/kpgcreateschemawidget2.h -o kpgcreateschemawidget2.moc
+
+#>+ 2
+mocs: kpgcreateschemawidget2.moc
+
+#>+ 3
+kpgsettablespacewidget1.moc: $(srcdir)/kpgsettablespacewidget1.h
+	$(MOC) $(srcdir)/kpgsettablespacewidget1.h -o kpgsettablespacewidget1.moc
+
+#>+ 2
+mocs: kpgsettablespacewidget1.moc
+
+#>+ 3
+kpgcreatelanguagewidget2.moc: $(srcdir)/kpgcreatelanguagewidget2.h
+	$(MOC) $(srcdir)/kpgcreatelanguagewidget2.h -o kpgcreatelanguagewidget2.moc
+
+#>+ 2
+mocs: kpgcreatelanguagewidget2.moc
+
+#>+ 3
+kpg5stepswizard.moc: $(srcdir)/kpg5stepswizard.h
+	$(MOC) $(srcdir)/kpg5stepswizard.h -o kpg5stepswizard.moc
+
+#>+ 2
+mocs: kpg5stepswizard.moc
+
+#>+ 3
+kpgcreatetriggerwizard.moc: $(srcdir)/kpgcreatetriggerwizard.h
+	$(MOC) $(srcdir)/kpgcreatetriggerwizard.h -o kpgcreatetriggerwizard.moc
+
+#>+ 2
+mocs: kpgcreatetriggerwizard.moc
+
+#>+ 3
+kpgcreatebasetypewizard.moc: $(srcdir)/kpgcreatebasetypewizard.h
+	$(MOC) $(srcdir)/kpgcreatebasetypewizard.h -o kpgcreatebasetypewizard.moc
+
+#>+ 2
+mocs: kpgcreatebasetypewizard.moc
+
+#>+ 3
+kpgcreateschemawidget1.moc: $(srcdir)/kpgcreateschemawidget1.h
+	$(MOC) $(srcdir)/kpgcreateschemawidget1.h -o kpgcreateschemawidget1.moc
+
+#>+ 2
+mocs: kpgcreateschemawidget1.moc
+
+#>+ 3
+kpgcreatesequencewidget1.moc: $(srcdir)/kpgcreatesequencewidget1.h
+	$(MOC) $(srcdir)/kpgcreatesequencewidget1.h -o kpgcreatesequencewidget1.moc
+
+#>+ 2
+mocs: kpgcreatesequencewidget1.moc
+
+#>+ 3
+kpgcreatedomainwidget1.moc: $(srcdir)/kpgcreatedomainwidget1.h
+	$(MOC) $(srcdir)/kpgcreatedomainwidget1.h -o kpgcreatedomainwidget1.moc
+
+#>+ 2
+mocs: kpgcreatedomainwidget1.moc
+
+#>+ 3
+kpgcopytotablewizard.moc: $(srcdir)/kpgcopytotablewizard.h
+	$(MOC) $(srcdir)/kpgcopytotablewizard.h -o kpgcopytotablewizard.moc
+
+#>+ 2
+mocs: kpgcopytotablewizard.moc
+
+#>+ 3
+kpgdropobjectwidget1.moc: $(srcdir)/kpgdropobjectwidget1.h
+	$(MOC) $(srcdir)/kpgdropobjectwidget1.h -o kpgdropobjectwidget1.moc
+
+#>+ 2
+mocs: kpgdropobjectwidget1.moc
+
+#>+ 3
+kpgcreatefunctionwizard.moc: $(srcdir)/kpgcreatefunctionwizard.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwizard.h -o kpgcreatefunctionwizard.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwizard.moc
+
+#>+ 3
+kpgcreatetablewidget2.moc: $(srcdir)/kpgcreatetablewidget2.h
+	$(MOC) $(srcdir)/kpgcreatetablewidget2.h -o kpgcreatetablewidget2.moc
+
+#>+ 2
+mocs: kpgcreatetablewidget2.moc
+
+#>+ 3
+kpgrenameobjectwidget1.moc: $(srcdir)/kpgrenameobjectwidget1.h
+	$(MOC) $(srcdir)/kpgrenameobjectwidget1.h -o kpgrenameobjectwidget1.moc
+
+#>+ 2
+mocs: kpgrenameobjectwidget1.moc
+
+#>+ 3
+kpg7stepswizard.moc: $(srcdir)/kpg7stepswizard.h
+	$(MOC) $(srcdir)/kpg7stepswizard.h -o kpg7stepswizard.moc
+
+#>+ 2
+mocs: kpg7stepswizard.moc
+
+#>+ 3
+kpgmodifycolumntypewidget1.moc: $(srcdir)/kpgmodifycolumntypewidget1.h
+	$(MOC) $(srcdir)/kpgmodifycolumntypewidget1.h -o kpgmodifycolumntypewidget1.moc
+
+#>+ 2
+mocs: kpgmodifycolumntypewidget1.moc
+
+#>+ 3
+kpgcreatelanguagewidget1.moc: $(srcdir)/kpgcreatelanguagewidget1.h
+	$(MOC) $(srcdir)/kpgcreatelanguagewidget1.h -o kpgcreatelanguagewidget1.moc
+
+#>+ 2
+mocs: kpgcreatelanguagewidget1.moc
+
+#>+ 3
+kpganalysetablewizard.moc: $(srcdir)/kpganalysetablewizard.h
+	$(MOC) $(srcdir)/kpganalysetablewizard.h -o kpganalysetablewizard.moc
+
+#>+ 2
+mocs: kpganalysetablewizard.moc
+
+#>+ 3
+kpgdropobjectwizard.moc: $(srcdir)/kpgdropobjectwizard.h
+	$(MOC) $(srcdir)/kpgdropobjectwizard.h -o kpgdropobjectwizard.moc
+
+#>+ 2
+mocs: kpgdropobjectwizard.moc
+
+#>+ 3
+kpgcopytablewidget3.moc: $(srcdir)/kpgcopytablewidget3.h
+	$(MOC) $(srcdir)/kpgcopytablewidget3.h -o kpgcopytablewidget3.moc
+
+#>+ 2
+mocs: kpgcopytablewidget3.moc
+
+#>+ 3
+kpgmodifyuserwizard.moc: $(srcdir)/kpgmodifyuserwizard.h
+	$(MOC) $(srcdir)/kpgmodifyuserwizard.h -o kpgmodifyuserwizard.moc
+
+#>+ 2
+mocs: kpgmodifyuserwizard.moc
+
+#>+ 3
+kpgsetclustertablewizard.moc: $(srcdir)/kpgsetclustertablewizard.h
+	$(MOC) $(srcdir)/kpgsetclustertablewizard.h -o kpgsetclustertablewizard.moc
+
+#>+ 2
+mocs: kpgsetclustertablewizard.moc
+
+#>+ 3
+kpgcreatedatabasewidget1.moc: $(srcdir)/kpgcreatedatabasewidget1.h
+	$(MOC) $(srcdir)/kpgcreatedatabasewidget1.h -o kpgcreatedatabasewidget1.moc
+
+#>+ 2
+mocs: kpgcreatedatabasewidget1.moc
+
+#>+ 3
+kpgcreatetablespacewidget2.moc: $(srcdir)/kpgcreatetablespacewidget2.h
+	$(MOC) $(srcdir)/kpgcreatetablespacewidget2.h -o kpgcreatetablespacewidget2.moc
+
+#>+ 2
+mocs: kpgcreatetablespacewidget2.moc
+
+#>+ 3
+kpgcreateuserwizard.moc: $(srcdir)/kpgcreateuserwizard.h
+	$(MOC) $(srcdir)/kpgcreateuserwizard.h -o kpgcreateuserwizard.moc
+
+#>+ 2
+mocs: kpgcreateuserwizard.moc
+
+#>+ 3
+kpgcopytotablewidget1.moc: $(srcdir)/kpgcopytotablewidget1.h
+	$(MOC) $(srcdir)/kpgcopytotablewidget1.h -o kpgcopytotablewidget1.moc
+
+#>+ 2
+mocs: kpgcopytotablewidget1.moc
+
+#>+ 3
+kpgmodifyviewwizard.moc: $(srcdir)/kpgmodifyviewwizard.h
+	$(MOC) $(srcdir)/kpgmodifyviewwizard.h -o kpgmodifyviewwizard.moc
+
+#>+ 2
+mocs: kpgmodifyviewwizard.moc
+
+#>+ 3
+kpgvacuumtablewizard.moc: $(srcdir)/kpgvacuumtablewizard.h
+	$(MOC) $(srcdir)/kpgvacuumtablewizard.h -o kpgvacuumtablewizard.moc
+
+#>+ 2
+mocs: kpgvacuumtablewizard.moc
+
+#>+ 3
+kpg2stepswizard.moc: $(srcdir)/kpg2stepswizard.h
+	$(MOC) $(srcdir)/kpg2stepswizard.h -o kpg2stepswizard.moc
+
+#>+ 2
+mocs: kpg2stepswizard.moc
+
+#>+ 3
+kpgcreatetablewidget1.moc: $(srcdir)/kpgcreatetablewidget1.h
+	$(MOC) $(srcdir)/kpgcreatetablewidget1.h -o kpgcreatetablewidget1.moc
+
+#>+ 2
+mocs: kpgcreatetablewidget1.moc
+
+#>+ 3
+kpgcreatetypewidget2.moc: $(srcdir)/kpgcreatetypewidget2.h
+	$(MOC) $(srcdir)/kpgcreatetypewidget2.h -o kpgcreatetypewidget2.moc
+
+#>+ 2
+mocs: kpgcreatetypewidget2.moc
+
+#>+ 3
+kpgcreatefunctionwidget3.moc: $(srcdir)/kpgcreatefunctionwidget3.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwidget3.h -o kpgcreatefunctionwidget3.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwidget3.moc
+
+#>+ 3
+kpgmodifytablecolumnwizard.moc: $(srcdir)/kpgmodifytablecolumnwizard.h
+	$(MOC) $(srcdir)/kpgmodifytablecolumnwizard.h -o kpgmodifytablecolumnwizard.moc
+
+#>+ 2
+mocs: kpgmodifytablecolumnwizard.moc
+
+#>+ 3
+kpgcreaterulewizard.moc: $(srcdir)/kpgcreaterulewizard.h
+	$(MOC) $(srcdir)/kpgcreaterulewizard.h -o kpgcreaterulewizard.moc
+
+#>+ 2
+mocs: kpgcreaterulewizard.moc
+
+#>+ 3
+kpganalysetablewidget1.moc: $(srcdir)/kpganalysetablewidget1.h
+	$(MOC) $(srcdir)/kpganalysetablewidget1.h -o kpganalysetablewidget1.moc
+
+#>+ 2
+mocs: kpganalysetablewidget1.moc
+
+#>+ 3
+kpgmodifyuserwidget1.moc: $(srcdir)/kpgmodifyuserwidget1.h
+	$(MOC) $(srcdir)/kpgmodifyuserwidget1.h -o kpgmodifyuserwidget1.moc
+
+#>+ 2
+mocs: kpgmodifyuserwidget1.moc
+
+#>+ 3
+kpgcreatetablewidget3.moc: $(srcdir)/kpgcreatetablewidget3.h
+	$(MOC) $(srcdir)/kpgcreatetablewidget3.h -o kpgcreatetablewidget3.moc
+
+#>+ 2
+mocs: kpgcreatetablewidget3.moc
+
+#>+ 3
+kpgcopyfromtablewidget1.moc: $(srcdir)/kpgcopyfromtablewidget1.h
+	$(MOC) $(srcdir)/kpgcopyfromtablewidget1.h -o kpgcopyfromtablewidget1.moc
+
+#>+ 2
+mocs: kpgcopyfromtablewidget1.moc
+
+#>+ 3
+kpgmodifysequencewidget1.moc: $(srcdir)/kpgmodifysequencewidget1.h
+	$(MOC) $(srcdir)/kpgmodifysequencewidget1.h -o kpgmodifysequencewidget1.moc
+
+#>+ 2
+mocs: kpgmodifysequencewidget1.moc
+
+#>+ 3
+kpgvacuumtablewidget1.moc: $(srcdir)/kpgvacuumtablewidget1.h
+	$(MOC) $(srcdir)/kpgvacuumtablewidget1.h -o kpgvacuumtablewidget1.moc
+
+#>+ 2
+mocs: kpgvacuumtablewidget1.moc
+
+#>+ 3
+kpgcreateviewwidget2.moc: $(srcdir)/kpgcreateviewwidget2.h
+	$(MOC) $(srcdir)/kpgcreateviewwidget2.h -o kpgcreateviewwidget2.moc
+
+#>+ 2
+mocs: kpgcreateviewwidget2.moc
+
+#>+ 3
+kpgcreatefunctionwidget5.moc: $(srcdir)/kpgcreatefunctionwidget5.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwidget5.h -o kpgcreatefunctionwidget5.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwidget5.moc
+
+#>+ 3
+kpgcreatetablewidget5.moc: $(srcdir)/kpgcreatetablewidget5.h
+	$(MOC) $(srcdir)/kpgcreatetablewidget5.h -o kpgcreatetablewidget5.moc
+
+#>+ 2
+mocs: kpgcreatetablewidget5.moc
+
+#>+ 3
+kpgcreateschemawizard.moc: $(srcdir)/kpgcreateschemawizard.h
+	$(MOC) $(srcdir)/kpgcreateschemawizard.h -o kpgcreateschemawizard.moc
+
+#>+ 2
+mocs: kpgcreateschemawizard.moc
+
+#>+ 3
+kpgsetownerwizard.moc: $(srcdir)/kpgsetownerwizard.h
+	$(MOC) $(srcdir)/kpgsetownerwizard.h -o kpgsetownerwizard.moc
+
+#>+ 2
+mocs: kpgsetownerwizard.moc
+
+#>+ 3
+kpgcreatedomainwidget3.moc: $(srcdir)/kpgcreatedomainwidget3.h
+	$(MOC) $(srcdir)/kpgcreatedomainwidget3.h -o kpgcreatedomainwidget3.moc
+
+#>+ 2
+mocs: kpgcreatedomainwidget3.moc
+
+#>+ 3
+kpgcreatetableindexwizard.moc: $(srcdir)/kpgcreatetableindexwizard.h
+	$(MOC) $(srcdir)/kpgcreatetableindexwizard.h -o kpgcreatetableindexwizard.moc
+
+#>+ 2
+mocs: kpgcreatetableindexwizard.moc
+
+#>+ 3
+kpgsetownerwidget1.moc: $(srcdir)/kpgsetownerwidget1.h
+	$(MOC) $(srcdir)/kpgsetownerwidget1.h -o kpgsetownerwidget1.moc
+
+#>+ 2
+mocs: kpgsetownerwidget1.moc
+
+#>+ 3
+kpgrestoredatabasewizard.moc: $(srcdir)/kpgrestoredatabasewizard.h
+	$(MOC) $(srcdir)/kpgrestoredatabasewizard.h -o kpgrestoredatabasewizard.moc
+
+#>+ 2
+mocs: kpgrestoredatabasewizard.moc
+
+#>+ 3
+kpgcreatedomainconstraintwizard.moc: $(srcdir)/kpgcreatedomainconstraintwizard.h
+	$(MOC) $(srcdir)/kpgcreatedomainconstraintwizard.h -o kpgcreatedomainconstraintwizard.moc
+
+#>+ 2
+mocs: kpgcreatedomainconstraintwizard.moc
+
+#>+ 3
+kpgcreateviewwidget3.moc: $(srcdir)/kpgcreateviewwidget3.h
+	$(MOC) $(srcdir)/kpgcreateviewwidget3.h -o kpgcreateviewwidget3.moc
+
+#>+ 2
+mocs: kpgcreateviewwidget3.moc
+
+#>+ 3
+kpgcreategroupwizard.moc: $(srcdir)/kpgcreategroupwizard.h
+	$(MOC) $(srcdir)/kpgcreategroupwizard.h -o kpgcreategroupwizard.moc
+
+#>+ 2
+mocs: kpgcreategroupwizard.moc
+
+#>+ 3
+kpgcreateuserwidget1.moc: $(srcdir)/kpgcreateuserwidget1.h
+	$(MOC) $(srcdir)/kpgcreateuserwidget1.h -o kpgcreateuserwidget1.moc
+
+#>+ 2
+mocs: kpgcreateuserwidget1.moc
+
+#>+ 3
+kpgmodifycolumndefaultwidget1.moc: $(srcdir)/kpgmodifycolumndefaultwidget1.h
+	$(MOC) $(srcdir)/kpgmodifycolumndefaultwidget1.h -o kpgmodifycolumndefaultwidget1.moc
+
+#>+ 2
+mocs: kpgmodifycolumndefaultwidget1.moc
+
+#>+ 3
+kpgcreatedomainwizard.moc: $(srcdir)/kpgcreatedomainwizard.h
+	$(MOC) $(srcdir)/kpgcreatedomainwizard.h -o kpgcreatedomainwizard.moc
+
+#>+ 2
+mocs: kpgcreatedomainwizard.moc
+
+#>+ 3
+kpgsetdomaindefaultwizard.moc: $(srcdir)/kpgsetdomaindefaultwizard.h
+	$(MOC) $(srcdir)/kpgsetdomaindefaultwizard.h -o kpgsetdomaindefaultwizard.moc
+
+#>+ 2
+mocs: kpgsetdomaindefaultwizard.moc
+
+#>+ 3
+kpgcreatefunctionwidget4.moc: $(srcdir)/kpgcreatefunctionwidget4.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwidget4.h -o kpgcreatefunctionwidget4.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwidget4.moc
+
+#>+ 3
+kpgdumpdatabasewizard.moc: $(srcdir)/kpgdumpdatabasewizard.h
+	$(MOC) $(srcdir)/kpgdumpdatabasewizard.h -o kpgdumpdatabasewizard.moc
+
+#>+ 2
+mocs: kpgdumpdatabasewizard.moc
+
+#>+ 3
+kpgcreateviewwidget4.moc: $(srcdir)/kpgcreateviewwidget4.h
+	$(MOC) $(srcdir)/kpgcreateviewwidget4.h -o kpgcreateviewwidget4.moc
+
+#>+ 2
+mocs: kpgcreateviewwidget4.moc
+
+#>+ 3
+kpgcreategroupwidget1.moc: $(srcdir)/kpgcreategroupwidget1.h
+	$(MOC) $(srcdir)/kpgcreategroupwidget1.h -o kpgcreategroupwidget1.moc
+
+#>+ 2
+mocs: kpgcreategroupwidget1.moc
+
+#>+ 3
+kpgcreatedatabasewizard.moc: $(srcdir)/kpgcreatedatabasewizard.h
+	$(MOC) $(srcdir)/kpgcreatedatabasewizard.h -o kpgcreatedatabasewizard.moc
+
+#>+ 2
+mocs: kpgcreatedatabasewizard.moc
+
+#>+ 3
+kpgmodifycolumnstatswidget1.moc: $(srcdir)/kpgmodifycolumnstatswidget1.h
+	$(MOC) $(srcdir)/kpgmodifycolumnstatswidget1.h -o kpgmodifycolumnstatswidget1.moc
+
+#>+ 2
+mocs: kpgmodifycolumnstatswidget1.moc
+
+#>+ 3
+kpgcreatedomainwidget2.moc: $(srcdir)/kpgcreatedomainwidget2.h
+	$(MOC) $(srcdir)/kpgcreatedomainwidget2.h -o kpgcreatedomainwidget2.moc
+
+#>+ 2
+mocs: kpgcreatedomainwidget2.moc
+
+#>+ 3
+kpgcreatesequencewizard.moc: $(srcdir)/kpgcreatesequencewizard.h
+	$(MOC) $(srcdir)/kpgcreatesequencewizard.h -o kpgcreatesequencewizard.moc
+
+#>+ 2
+mocs: kpgcreatesequencewizard.moc
+
+#>+ 3
+kpgcopyfromtablewizard.moc: $(srcdir)/kpgcopyfromtablewizard.h
+	$(MOC) $(srcdir)/kpgcopyfromtablewizard.h -o kpgcopyfromtablewizard.moc
+
+#>+ 2
+mocs: kpgcopyfromtablewizard.moc
+
+#>+ 3
+kpgcreatetriggerwidget1.moc: $(srcdir)/kpgcreatetriggerwidget1.h
+	$(MOC) $(srcdir)/kpgcreatetriggerwidget1.h -o kpgcreatetriggerwidget1.moc
+
+#>+ 2
+mocs: kpgcreatetriggerwidget1.moc
+
+#>+ 3
+kpgmodifyviewwidget1.moc: $(srcdir)/kpgmodifyviewwidget1.h
+	$(MOC) $(srcdir)/kpgmodifyviewwidget1.h -o kpgmodifyviewwidget1.moc
+
+#>+ 2
+mocs: kpgmodifyviewwidget1.moc
+
+#>+ 3
+kpgrenameobjectwizard.moc: $(srcdir)/kpgrenameobjectwizard.h
+	$(MOC) $(srcdir)/kpgrenameobjectwizard.h -o kpgrenameobjectwizard.moc
+
+#>+ 2
+mocs: kpgrenameobjectwizard.moc
+
+#>+ 3
+kpgnewobjectdialog.moc: $(srcdir)/kpgnewobjectdialog.h
+	$(MOC) $(srcdir)/kpgnewobjectdialog.h -o kpgnewobjectdialog.moc
+
+#>+ 2
+mocs: kpgnewobjectdialog.moc
+
+#>+ 3
+kpgcreatecompositetypewizard.moc: $(srcdir)/kpgcreatecompositetypewizard.h
+	$(MOC) $(srcdir)/kpgcreatecompositetypewizard.h -o kpgcreatecompositetypewizard.moc
+
+#>+ 2
+mocs: kpgcreatecompositetypewizard.moc
+
+#>+ 3
+kpgcreatetableconstraintwizard.moc: $(srcdir)/kpgcreatetableconstraintwizard.h
+	$(MOC) $(srcdir)/kpgcreatetableconstraintwizard.h -o kpgcreatetableconstraintwizard.moc
+
+#>+ 2
+mocs: kpgcreatetableconstraintwizard.moc
+
+#>+ 3
+kpgcreatetablewidget4.moc: $(srcdir)/kpgcreatetablewidget4.h
+	$(MOC) $(srcdir)/kpgcreatetablewidget4.h -o kpgcreatetablewidget4.moc
+
+#>+ 2
+mocs: kpgcreatetablewidget4.moc
+
+#>+ 3
+kpgcreateviewwizard.moc: $(srcdir)/kpgcreateviewwizard.h
+	$(MOC) $(srcdir)/kpgcreateviewwizard.h -o kpgcreateviewwizard.moc
+
+#>+ 2
+mocs: kpgcreateviewwizard.moc
+
+#>+ 3
+kpgcreatefunctionwidget2.moc: $(srcdir)/kpgcreatefunctionwidget2.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwidget2.h -o kpgcreatefunctionwidget2.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwidget2.moc
+
+#>+ 3
+kpgmodifycolumnstoragewidget1.moc: $(srcdir)/kpgmodifycolumnstoragewidget1.h
+	$(MOC) $(srcdir)/kpgmodifycolumnstoragewidget1.h -o kpgmodifycolumnstoragewidget1.moc
+
+#>+ 2
+mocs: kpgmodifycolumnstoragewidget1.moc
+
+#>+ 3
+kpgcreatetablespacewizard.moc: $(srcdir)/kpgcreatetablespacewizard.h
+	$(MOC) $(srcdir)/kpgcreatetablespacewizard.h -o kpgcreatetablespacewizard.moc
+
+#>+ 2
+mocs: kpgcreatetablespacewizard.moc
+
+#>+ 3
+kpgmodifyfunctionwizard.moc: $(srcdir)/kpgmodifyfunctionwizard.h
+	$(MOC) $(srcdir)/kpgmodifyfunctionwizard.h -o kpgmodifyfunctionwizard.moc
+
+#>+ 2
+mocs: kpgmodifyfunctionwizard.moc
+
+#>+ 3
+konsoleviewwidget.moc: $(srcdir)/konsoleviewwidget.h
+	$(MOC) $(srcdir)/konsoleviewwidget.h -o konsoleviewwidget.moc
+
+#>+ 2
+mocs: konsoleviewwidget.moc
+
+#>+ 3
+kpgcreateuserwidget2.moc: $(srcdir)/kpgcreateuserwidget2.h
+	$(MOC) $(srcdir)/kpgcreateuserwidget2.h -o kpgcreateuserwidget2.moc
+
+#>+ 2
+mocs: kpgcreateuserwidget2.moc
+
+#>+ 3
+kpgcopytablewidget2.moc: $(srcdir)/kpgcopytablewidget2.h
+	$(MOC) $(srcdir)/kpgcopytablewidget2.h -o kpgcopytablewidget2.moc
+
+#>+ 2
+mocs: kpgcopytablewidget2.moc
+
+#>+ 3
+kpgmodifygroupwidget1.moc: $(srcdir)/kpgmodifygroupwidget1.h
+	$(MOC) $(srcdir)/kpgmodifygroupwidget1.h -o kpgmodifygroupwidget1.moc
+
+#>+ 2
+mocs: kpgmodifygroupwidget1.moc
+
+#>+ 3
+kpgcreatetablewizard.moc: $(srcdir)/kpgcreatetablewizard.h
+	$(MOC) $(srcdir)/kpgcreatetablewizard.h -o kpgcreatetablewizard.moc
+
+#>+ 2
+mocs: kpgcreatetablewizard.moc
+
+#>+ 3
+kpgmodifygroupwizard.moc: $(srcdir)/kpgmodifygroupwizard.h
+	$(MOC) $(srcdir)/kpgmodifygroupwizard.h -o kpgmodifygroupwizard.moc
+
+#>+ 2
+mocs: kpgmodifygroupwizard.moc
+
+#>+ 3
+kpgcreatelanguagewizard.moc: $(srcdir)/kpgcreatelanguagewizard.h
+	$(MOC) $(srcdir)/kpgcreatelanguagewizard.h -o kpgcreatelanguagewizard.moc
+
+#>+ 2
+mocs: kpgcreatelanguagewizard.moc
+
+#>+ 3
+kpgmodifysequencewizard.moc: $(srcdir)/kpgmodifysequencewizard.h
+	$(MOC) $(srcdir)/kpgmodifysequencewizard.h -o kpgmodifysequencewizard.moc
+
+#>+ 2
+mocs: kpgmodifysequencewizard.moc
+
+#>+ 3
+kpgcreateviewwidget1.moc: $(srcdir)/kpgcreateviewwidget1.h
+	$(MOC) $(srcdir)/kpgcreateviewwidget1.h -o kpgcreateviewwidget1.moc
+
+#>+ 2
+mocs: kpgcreateviewwidget1.moc
+
+#>+ 3
+kpg4stepswizard.moc: $(srcdir)/kpg4stepswizard.h
+	$(MOC) $(srcdir)/kpg4stepswizard.h -o kpg4stepswizard.moc
+
+#>+ 2
+mocs: kpg4stepswizard.moc
+
+#>+ 3
+kpgsetclustertablewidget1.moc: $(srcdir)/kpgsetclustertablewidget1.h
+	$(MOC) $(srcdir)/kpgsetclustertablewidget1.h -o kpgsetclustertablewidget1.moc
+
+#>+ 2
+mocs: kpgsetclustertablewidget1.moc
+
+#>+ 3
+kpg6stepswizard.moc: $(srcdir)/kpg6stepswizard.h
+	$(MOC) $(srcdir)/kpg6stepswizard.h -o kpg6stepswizard.moc
+
+#>+ 2
+mocs: kpg6stepswizard.moc
+
+#>+ 3
+kpgcreatefunctionwidget1.moc: $(srcdir)/kpgcreatefunctionwidget1.h
+	$(MOC) $(srcdir)/kpgcreatefunctionwidget1.h -o kpgcreatefunctionwidget1.moc
+
+#>+ 2
+mocs: kpgcreatefunctionwidget1.moc
+
+#>+ 3
+kpgcreatedatabasewidget2.moc: $(srcdir)/kpgcreatedatabasewidget2.h
+	$(MOC) $(srcdir)/kpgcreatedatabasewidget2.h -o kpgcreatedatabasewidget2.moc
+
+#>+ 2
+mocs: kpgcreatedatabasewidget2.moc
+
+#>+ 3
+kpgcreatetablecolumnwizard.moc: $(srcdir)/kpgcreatetablecolumnwizard.h
+	$(MOC) $(srcdir)/kpgcreatetablecolumnwizard.h -o kpgcreatetablecolumnwizard.moc
+
+#>+ 2
+mocs: kpgcreatetablecolumnwizard.moc
+
+#>+ 3
+kpg3stepswizard.moc: $(srcdir)/kpg3stepswizard.h
+	$(MOC) $(srcdir)/kpg3stepswizard.h -o kpg3stepswizard.moc
+
+#>+ 2
+mocs: kpg3stepswizard.moc
+
+#>+ 3
+kpgcreaterulewidget1.moc: $(srcdir)/kpgcreaterulewidget1.h
+	$(MOC) $(srcdir)/kpgcreaterulewidget1.h -o kpgcreaterulewidget1.moc
+
+#>+ 2
+mocs: kpgcreaterulewidget1.moc
+
+#>+ 3
+kpgcreatetypewidget3.moc: $(srcdir)/kpgcreatetypewidget3.h
+	$(MOC) $(srcdir)/kpgcreatetypewidget3.h -o kpgcreatetypewidget3.moc
+
+#>+ 2
+mocs: kpgcreatetypewidget3.moc
+
+#>+ 3
+kpgcreatetypewidget1.moc: $(srcdir)/kpgcreatetypewidget1.h
+	$(MOC) $(srcdir)/kpgcreatetypewidget1.h -o kpgcreatetypewidget1.moc
+
+#>+ 2
+mocs: kpgcreatetypewidget1.moc
+
+#>+ 3
+kpgsettablespacewizard.moc: $(srcdir)/kpgsettablespacewizard.h
+	$(MOC) $(srcdir)/kpgsettablespacewizard.h -o kpgsettablespacewizard.moc
+
+#>+ 2
+mocs: kpgsettablespacewizard.moc
+
+#>+ 3
+kpgprivilegeswizard.moc: $(srcdir)/kpgprivilegeswizard.h
+	$(MOC) $(srcdir)/kpgprivilegeswizard.h -o kpgprivilegeswizard.moc
+
+#>+ 2
+mocs: kpgprivilegeswizard.moc
+
+#>+ 3
+clean-metasources:
+	-rm -f  kpgcreatetablespacewidget1.moc kpgcreatecompositetypewidget2.moc kpgcreateschemawidget2.moc kpgsettablespacewidget1.moc kpgcreatelanguagewidget2.moc kpg5stepswizard.moc kpgcreatetriggerwizard.moc kpgcreatebasetypewizard.moc kpgcreateschemawidget1.moc kpgcreatesequencewidget1.moc kpgcreatedomainwidget1.moc kpgcopytotablewizard.moc kpgdropobjectwidget1.moc kpgcreatefunctionwizard.moc kpgcreatetablewidget2.moc kpgrenameobjectwidget1.moc kpg7stepswizard.moc kpgmodifycolumntypewidget1.moc kpgcreatelanguagewidget1.moc kpganalysetablewizard.moc kpgdropobjectwizard.moc kpgcopytablewidget3.moc kpgmodifyuserwizard.moc kpgsetclustertablewizard.moc kpgcreatedatabasewidget1.moc kpgcreatetablespacewidget2.moc kpgcreateuserwizard.moc kpgcopytotablewidget1.moc kpgmodifyviewwizard.moc kpgvacuumtablewizard.moc kpg2stepswizard.moc kpgcreatetablewidget1.moc kpgcreatetypewidget2.moc kpgcreatefunctionwidget3.moc kpgmodifytablecolumnwizard.moc kpgcreaterulewizard.moc kpganalysetablewidget1.moc kpgmodifyuserwidget1.moc kpgcreatetablewidget3.moc kpgcopyfromtablewidget1.moc kpgmodifysequencewidget1.moc kpgvacuumtablewidget1.moc kpgcreateviewwidget2.moc kpgcreatefunctionwidget5.moc kpgcreatetablewidget5.moc kpgcreateschemawizard.moc kpgsetownerwizard.moc kpgcreatedomainwidget3.moc kpgcreatetableindexwizard.moc kpgsetownerwidget1.moc kpgrestoredatabasewizard.moc kpgcreatedomainconstraintwizard.moc kpgcreateviewwidget3.moc kpgcreategroupwizard.moc kpgcreateuserwidget1.moc kpgmodifycolumndefaultwidget1.moc kpgcreatedomainwizard.moc kpgsetdomaindefaultwizard.moc kpgcreatefunctionwidget4.moc kpgdumpdatabasewizard.moc kpgcreateviewwidget4.moc kpgcreategroupwidget1.moc kpgcreatedatabasewizard.moc kpgmodifycolumnstatswidget1.moc kpgcreatedomainwidget2.moc kpgcreatesequencewizard.moc kpgcopyfromtablewizard.moc kpgcreatetriggerwidget1.moc kpgmodifyviewwidget1.moc kpgrenameobjectwizard.moc kpgnewobjectdialog.moc kpgcreatecompositetypewizard.moc kpgcreatetableconstraintwizard.moc kpgcreatetablewidget4.moc kpgcreateviewwizard.moc kpgcreatefunctionwidget2.moc kpgmodifycolumnstoragewidget1.moc kpgcreatetablespacewizard.moc kpgmodifyfunctionwizard.moc konsoleviewwidget.moc kpgcreateuserwidget2.moc kpgcopytablewidget2.moc kpgmodifygroupwidget1.moc kpgcreatetablewizard.moc kpgmodifygroupwizard.moc kpgcreatelanguagewizard.moc kpgmodifysequencewizard.moc kpgcreateviewwidget1.moc kpg4stepswizard.moc kpgsetclustertablewidget1.moc kpg6stepswizard.moc kpgcreatefunctionwidget1.moc kpgcreatedatabasewidget2.moc kpgcreatetablecolumnwizard.moc kpg3stepswizard.moc kpgcreaterulewidget1.moc kpgcreatetypewidget3.moc kpgcreatetypewidget1.moc kpgsettablespacewizard.moc kpgprivilegeswizard.moc
+
+#>+ 2
+KDE_DIST=kpgcreatetablespacewidget1base.ui kpgcreatetablewidget1base.ui kpg7stepswizardbase.ui kpgcreatetablewidget4base.ui kpgcreateuserwidget1base.ui kpgcreateschemawidget2base.ui kpgcreatedatabasewidget1base.ui kpgcreatelanguagewidget1base.ui kpg3stepswizardbase.ui kpgmodifyviewwidget1base.ui kpgcreatecompositetypewidget2base.ui kpgmodifycolumntypewidget1base.ui Makefile.in kpgcreatedomainwidget3base.ui kpgvacuumtablewidget1base.ui kpgcreateviewwidget1base.ui kpgcreatetypewidget1base.ui kpgcreaterulewidget1base.ui kpgcreatetablewidget5base.ui kpgcreateviewwidget4base.ui kpgcreatedomainwidget1base.ui kpgcreateuserwidget2base.ui kpgcreatetypewidget3base.ui kpgcopytablewidget2base.ui kpgcreategroupwidget1base.ui kpgrestoredatabasewizardbase.ui kpgdumpdatabasewizardbase.ui kpg6stepswizardbase.ui kpganalysetablewidget1base.ui kpgcopytotablewidget1base.ui kpgcreateschemawidget1base.ui kpgcreatetypewidget2base.ui kpg5stepswizardbase.ui kpgmodifycolumnstatswidget1base.ui kpgcreateviewwidget2base.ui kpgcreatefunctionwidget4base.ui kpgmodifycolumndefaultwidget1base.ui kpgcreatefunctionwidget1base.ui kpg4stepswizardbase.ui kpgdropobjectwidget1base.ui kpgmodifysequencewidget1base.ui kpgcreatetriggerwidget1base.ui kpgcopyfromtablewidget1base.ui kpgcreatefunctionwidget3base.ui kpgcopytablewidget3base.ui kpgsetclustertablewidget1base.ui kpgcreatedomainwidget2base.ui kpgcreatefunctionwidget2base.ui kpgsetownerwidget1base.ui kpgcreatesequencewidget1base.ui kpgsetdescriptionwidget1base.ui kpgcreatetablespacewidget2base.ui kpgmodifycolumnstoragewidget1base.ui kpgcreatelanguagewidget2base.ui kpgcreatedatabasewidget2base.ui kpgcreateviewwidget3base.ui kpg2stepswizardbase.ui kpgcreatetablewidget3base.ui kpgrenameobjectwidget1base.ui kpgnewobjectdialogbase.ui kpgsettablespacewidget1base.ui kpgcreatetablewidget2base.ui kpgcreatefunctionwidget5base.ui Makefile.am 
+
+#>+ 65
+clean-ui:
+	-rm -f \
+	kpg7stepswizardbase.cpp kpg7stepswizardbase.h kpg7stepswizardbase.moc \
+	kpgnewobjectdialogbase.cpp kpgnewobjectdialogbase.h kpgnewobjectdialogbase.moc \
+	kpgcreatetablewidget1base.cpp kpgcreatetablewidget1base.h kpgcreatetablewidget1base.moc \
+	kpgcreatetablewidget2base.cpp kpgcreatetablewidget2base.h kpgcreatetablewidget2base.moc \
+	kpgcreatetablewidget3base.cpp kpgcreatetablewidget3base.h kpgcreatetablewidget3base.moc \
+	kpgcreatetablewidget4base.cpp kpgcreatetablewidget4base.h kpgcreatetablewidget4base.moc \
+	kpgcreatetablewidget5base.cpp kpgcreatetablewidget5base.h kpgcreatetablewidget5base.moc \
+	kpg2stepswizardbase.cpp kpg2stepswizardbase.h kpg2stepswizardbase.moc \
+	kpgcreateviewwidget1base.cpp kpgcreateviewwidget1base.h kpgcreateviewwidget1base.moc \
+	kpgcreateviewwidget2base.cpp kpgcreateviewwidget2base.h kpgcreateviewwidget2base.moc \
+	kpgcreateviewwidget3base.cpp kpgcreateviewwidget3base.h kpgcreateviewwidget3base.moc \
+	kpgcreateviewwidget4base.cpp kpgcreateviewwidget4base.h kpgcreateviewwidget4base.moc \
+	kpg6stepswizardbase.cpp kpg6stepswizardbase.h kpg6stepswizardbase.moc \
+	kpg3stepswizardbase.cpp kpg3stepswizardbase.h kpg3stepswizardbase.moc \
+	kpgmodifyviewwidget1base.cpp kpgmodifyviewwidget1base.h kpgmodifyviewwidget1base.moc \
+	kpgcreateuserwidget2base.cpp kpgcreateuserwidget2base.h kpgcreateuserwidget2base.moc \
+	kpg4stepswizardbase.cpp kpg4stepswizardbase.h kpg4stepswizardbase.moc \
+	kpgcreateuserwidget1base.cpp kpgcreateuserwidget1base.h kpgcreateuserwidget1base.moc \
+	kpgcreategroupwidget1base.cpp kpgcreategroupwidget1base.h kpgcreategroupwidget1base.moc \
+	kpgcreatedatabasewidget1base.cpp kpgcreatedatabasewidget1base.h kpgcreatedatabasewidget1base.moc \
+	kpgcreateschemawidget1base.cpp kpgcreateschemawidget1base.h kpgcreateschemawidget1base.moc \
+	kpgrenameobjectwidget1base.cpp kpgrenameobjectwidget1base.h kpgrenameobjectwidget1base.moc \
+	kpgcreatelanguagewidget1base.cpp kpgcreatelanguagewidget1base.h kpgcreatelanguagewidget1base.moc \
+	kpgcreatesequencewidget1base.cpp kpgcreatesequencewidget1base.h kpgcreatesequencewidget1base.moc \
+	kpgcreatefunctionwidget1base.cpp kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget1base.moc \
+	kpgcreatefunctionwidget2base.cpp kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget2base.moc \
+	kpgcreatefunctionwidget3base.cpp kpgcreatefunctionwidget3base.h kpgcreatefunctionwidget3base.moc \
+	kpg5stepswizardbase.cpp kpg5stepswizardbase.h kpg5stepswizardbase.moc \
+	kpgcreatefunctionwidget4base.cpp kpgcreatefunctionwidget4base.h kpgcreatefunctionwidget4base.moc \
+	kpgcreatelanguagewidget2base.cpp kpgcreatelanguagewidget2base.h kpgcreatelanguagewidget2base.moc \
+	kpgcreatedatabasewidget2base.cpp kpgcreatedatabasewidget2base.h kpgcreatedatabasewidget2base.moc \
+	kpgcreateschemawidget2base.cpp kpgcreateschemawidget2base.h kpgcreateschemawidget2base.moc \
+	kpgcreatetablespacewidget1base.cpp kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget1base.moc \
+	kpgcreatetablespacewidget2base.cpp kpgcreatetablespacewidget2base.h kpgcreatetablespacewidget2base.moc \
+	kpgmodifycolumndefaultwidget1base.cpp kpgmodifycolumndefaultwidget1base.h kpgmodifycolumndefaultwidget1base.moc \
+	kpgmodifycolumntypewidget1base.cpp kpgmodifycolumntypewidget1base.h kpgmodifycolumntypewidget1base.moc \
+	kpgmodifycolumnstoragewidget1base.cpp kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstoragewidget1base.moc \
+	kpgmodifycolumnstatswidget1base.cpp kpgmodifycolumnstatswidget1base.h kpgmodifycolumnstatswidget1base.moc \
+	kpgcreatetriggerwidget1base.cpp kpgcreatetriggerwidget1base.h kpgcreatetriggerwidget1base.moc \
+	kpgcreaterulewidget1base.cpp kpgcreaterulewidget1base.h kpgcreaterulewidget1base.moc \
+	kpgdropobjectwidget1base.cpp kpgdropobjectwidget1base.h kpgdropobjectwidget1base.moc \
+	kpgmodifysequencewidget1base.cpp kpgmodifysequencewidget1base.h kpgmodifysequencewidget1base.moc \
+	kpganalysetablewidget1base.cpp kpganalysetablewidget1base.h kpganalysetablewidget1base.moc \
+	kpgcopyfromtablewidget1base.cpp kpgcopyfromtablewidget1base.h kpgcopyfromtablewidget1base.moc \
+	kpgcopytotablewidget1base.cpp kpgcopytotablewidget1base.h kpgcopytotablewidget1base.moc \
+	kpgcopytablewidget2base.cpp kpgcopytablewidget2base.h kpgcopytablewidget2base.moc \
+	kpgcopytablewidget3base.cpp kpgcopytablewidget3base.h kpgcopytablewidget3base.moc \
+	kpgvacuumtablewidget1base.cpp kpgvacuumtablewidget1base.h kpgvacuumtablewidget1base.moc \
+	kpgsetclustertablewidget1base.cpp kpgsetclustertablewidget1base.h kpgsetclustertablewidget1base.moc \
+	kpgsetownerwidget1base.cpp kpgsetownerwidget1base.h kpgsetownerwidget1base.moc \
+	kpgsettablespacewidget1base.cpp kpgsettablespacewidget1base.h kpgsettablespacewidget1base.moc \
+	kpgcreatedomainwidget1base.cpp kpgcreatedomainwidget1base.h kpgcreatedomainwidget1base.moc \
+	kpgcreatedomainwidget2base.cpp kpgcreatedomainwidget2base.h kpgcreatedomainwidget2base.moc \
+	kpgcreatetypewidget1base.cpp kpgcreatetypewidget1base.h kpgcreatetypewidget1base.moc \
+	kpgcreatetypewidget2base.cpp kpgcreatetypewidget2base.h kpgcreatetypewidget2base.moc \
+	kpgcreatetypewidget3base.cpp kpgcreatetypewidget3base.h kpgcreatetypewidget3base.moc \
+	kpgcreatefunctionwidget5base.cpp kpgcreatefunctionwidget5base.h kpgcreatefunctionwidget5base.moc \
+	kpgcreatedomainwidget3base.cpp kpgcreatedomainwidget3base.h kpgcreatedomainwidget3base.moc \
+	kpgcreatecompositetypewidget2base.cpp kpgcreatecompositetypewidget2base.h kpgcreatecompositetypewidget2base.moc \
+	kpgdumpdatabasewizardbase.cpp kpgdumpdatabasewizardbase.h kpgdumpdatabasewizardbase.moc \
+	kpgrestoredatabasewizardbase.cpp kpgrestoredatabasewizardbase.h kpgrestoredatabasewizardbase.moc \
+	kpgsetdescriptionwidget1base.cpp kpgsetdescriptionwidget1base.h kpgsetdescriptionwidget1base.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/Wizards/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/Wizards/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libWizards_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kpg7stepswizard.cpp $(srcdir)/kpgnewobjectdialog.cpp $(srcdir)/kpgcreatetablewidget1.cpp $(srcdir)/kpgcreatetablewidget2.cpp $(srcdir)/kpgcreatetablewidget3.cpp $(srcdir)/kpg2stepswizard.cpp $(srcdir)/kpgtablecolumnwizinfo.cpp $(srcdir)/kpgcreatetablewidget4.cpp $(srcdir)/kpgcreatetablewidget5.cpp $(srcdir)/kpgcreatetablewizard.cpp $(srcdir)/kpgcreateviewwizard.cpp $(srcdir)/kpgcreateviewwidget1.cpp $(srcdir)/kpgcreateviewwidget2.cpp $(srcdir)/kpgcreateviewwidget3.cpp $(srcdir)/kpgcreateviewwidget4.cpp $(srcdir)/kpg6stepswizard.cpp $(srcdir)/kpg3stepswizard.cpp $(srcdir)/kpgmodifyviewwidget1.cpp $(srcdir)/kpgmodifyviewwizard.cpp $(srcdir)/kpgcreateuserwidget1.cpp $(srcdir)/kpgcreateuserwidget2.cpp $(srcdir)/kpg4stepswizard.cpp $(srcdir)/kpgcreateuserwizard.cpp $(srcdir)/kpgmodifyuserwizard.cpp $(srcdir)/kpgmodifyuserwidget1.cpp $(srcdir)/kpgcreategroupwidget1.cpp $(srcdir)/kpgcreategroupwizard.cpp $(srcdir)/kpgmodifygroupwizard.cpp $(srcdir)/kpgmodifygroupwidget1.cpp $(srcdir)/kpgcreatedatabasewidget1.cpp $(srcdir)/kpgcreatedatabasewizard.cpp $(srcdir)/kpgcreateschemawidget1.cpp $(srcdir)/kpgcreateschemawizard.cpp $(srcdir)/kpgrenameobjectwidget1.cpp $(srcdir)/kpgrenameobjectwizard.cpp $(srcdir)/kpgcreatelanguagewizard.cpp $(srcdir)/kpgcreatefunctionwizard.cpp $(srcdir)/kpgcreatesequencewizard.cpp $(srcdir)/kpg5stepswizard.cpp $(srcdir)/kpgcreatefunctionwidget1.cpp $(srcdir)/kpgcreatefunctionwidget2.cpp $(srcdir)/kpgcreatefunctionwidget3.cpp $(srcdir)/kpgcreatesequencewidget1.cpp $(srcdir)/kpgcreatelanguagewidget1.cpp $(srcdir)/kpgcreatefunctionwidget4.cpp $(srcdir)/kpgmodifyfunctionwizard.cpp $(srcdir)/kpgcreatelanguagewidget2.cpp $(srcdir)/kpgcreatedatabasewidget2.cpp $(srcdir)/kpgcreateschemawidget2.cpp $(srcdir)/kpgcreatetableconstraintwizard.cpp $(srcdir)/kpgcreatetablespacewidget1.cpp $(srcdir)/kpgcreatetablespacewizard.cpp $(srcdir)/kpgcreatetablespacewidget2.cpp $(srcdir)/kpgcreatetableindexwizard.cpp $(srcdir)/kpgcreatetablecolumnwizard.cpp $(srcdir)/kpgmodifycolumndefaultwidget1.cpp $(srcdir)/kpgmodifycolumntypewidget1.cpp $(srcdir)/kpgmodifycolumnstoragewidget1.cpp $(srcdir)/kpgmodifycolumnstatswidget1.cpp $(srcdir)/kpgmodifytablecolumnwizard.cpp $(srcdir)/kpgcreaterulewizard.cpp $(srcdir)/kpgcreatetriggerwizard.cpp $(srcdir)/kpgcreaterulewidget1.cpp $(srcdir)/kpgcreatetriggerwidget1.cpp $(srcdir)/kpgdropobjectwidget1.cpp $(srcdir)/kpgdropobjectwizard.cpp $(srcdir)/kpgmodifysequencewidget1.cpp $(srcdir)/kpgmodifysequencewizard.cpp $(srcdir)/kpganalysetablewidget1.cpp $(srcdir)/kpganalysetablewizard.cpp $(srcdir)/kpgcopyfromtablewidget1.cpp $(srcdir)/kpgcopytotablewidget1.cpp $(srcdir)/kpgcopytotablewizard.cpp $(srcdir)/kpgcopyfromtablewizard.cpp $(srcdir)/kpgcopytablewidget2.cpp $(srcdir)/kpgcopytablewidget3.cpp $(srcdir)/kpgvacuumtablewidget1.cpp $(srcdir)/kpgvacuumtablewizard.cpp $(srcdir)/kpgsetclustertablewidget1.cpp $(srcdir)/kpgsetclustertablewizard.cpp $(srcdir)/kpgsetownerwidget1.cpp $(srcdir)/kpgsettablespacewidget1.cpp $(srcdir)/kpgsetownerwizard.cpp $(srcdir)/kpgsettablespacewizard.cpp $(srcdir)/kpgcreatedomainwizard.cpp $(srcdir)/kpgcreatedomainwidget1.cpp $(srcdir)/kpgcreatedomainwidget2.cpp $(srcdir)/kpgsetdomaindefaultwizard.cpp $(srcdir)/kpgcreatedomainconstraintwizard.cpp $(srcdir)/kpgcreatetypewidget1.cpp $(srcdir)/kpgcreatetypewidget2.cpp $(srcdir)/kpgcreatetypewidget3.cpp $(srcdir)/kpgcreatefunctionwidget5.cpp $(srcdir)/kpgcreatebasetypewizard.cpp $(srcdir)/kpgcreatecompositetypewizard.cpp $(srcdir)/kpgcreatedomainwidget3.cpp $(srcdir)/kpgcreatecompositetypewidget2.cpp $(srcdir)/konsoleviewwidget.cpp $(srcdir)/kpgdumpdatabasewizard.cpp $(srcdir)/kpgrestoredatabasewizard.cpp $(srcdir)/kpgprivilegeswizard.cpp $(srcdir)/kpgdroptableobjectwizard.cpp $(srcdir)/kpgsetdescriptionwidget1.cpp $(srcdir)/kpgsetdescriptionwizard.cpp $(srcdir)/kpg7stepswizardbase.cpp $(srcdir)/kpgnewobjectdialogbase.cpp $(srcdir)/kpgcreatetablewidget1base.cpp $(srcdir)/kpgcreatetablewidget2base.cpp $(srcdir)/kpgcreatetablewidget3base.cpp $(srcdir)/kpgcreatetablewidget4base.cpp $(srcdir)/kpgcreatetablewidget5base.cpp $(srcdir)/kpg2stepswizardbase.cpp $(srcdir)/kpgcreateviewwidget1base.cpp $(srcdir)/kpgcreateviewwidget2base.cpp $(srcdir)/kpgcreateviewwidget3base.cpp $(srcdir)/kpgcreateviewwidget4base.cpp $(srcdir)/kpg6stepswizardbase.cpp $(srcdir)/kpg3stepswizardbase.cpp $(srcdir)/kpgmodifyviewwidget1base.cpp $(srcdir)/kpgcreateuserwidget2base.cpp $(srcdir)/kpg4stepswizardbase.cpp $(srcdir)/kpgcreateuserwidget1base.cpp $(srcdir)/kpgcreategroupwidget1base.cpp $(srcdir)/kpgcreatedatabasewidget1base.cpp $(srcdir)/kpgcreateschemawidget1base.cpp $(srcdir)/kpgrenameobjectwidget1base.cpp $(srcdir)/kpgcreatelanguagewidget1base.cpp $(srcdir)/kpgcreatesequencewidget1base.cpp $(srcdir)/kpgcreatefunctionwidget1base.cpp $(srcdir)/kpgcreatefunctionwidget2base.cpp $(srcdir)/kpgcreatefunctionwidget3base.cpp $(srcdir)/kpg5stepswizardbase.cpp $(srcdir)/kpgcreatefunctionwidget4base.cpp $(srcdir)/kpgcreatelanguagewidget2base.cpp $(srcdir)/kpgcreatedatabasewidget2base.cpp $(srcdir)/kpgcreateschemawidget2base.cpp $(srcdir)/kpgcreatetablespacewidget1base.cpp $(srcdir)/kpgcreatetablespacewidget2base.cpp $(srcdir)/kpgmodifycolumndefaultwidget1base.cpp $(srcdir)/kpgmodifycolumntypewidget1base.cpp $(srcdir)/kpgmodifycolumnstoragewidget1base.cpp $(srcdir)/kpgmodifycolumnstatswidget1base.cpp $(srcdir)/kpgcreatetriggerwidget1base.cpp $(srcdir)/kpgcreaterulewidget1base.cpp $(srcdir)/kpgdropobjectwidget1base.cpp $(srcdir)/kpgmodifysequencewidget1base.cpp $(srcdir)/kpganalysetablewidget1base.cpp $(srcdir)/kpgcopyfromtablewidget1base.cpp $(srcdir)/kpgcopytotablewidget1base.cpp $(srcdir)/kpgcopytablewidget2base.cpp $(srcdir)/kpgcopytablewidget3base.cpp $(srcdir)/kpgvacuumtablewidget1base.cpp $(srcdir)/kpgsetclustertablewidget1base.cpp $(srcdir)/kpgsetownerwidget1base.cpp $(srcdir)/kpgsettablespacewidget1base.cpp $(srcdir)/kpgcreatedomainwidget1base.cpp $(srcdir)/kpgcreatedomainwidget2base.cpp $(srcdir)/kpgcreatetypewidget1base.cpp $(srcdir)/kpgcreatetypewidget2base.cpp $(srcdir)/kpgcreatetypewidget3base.cpp $(srcdir)/kpgcreatefunctionwidget5base.cpp $(srcdir)/kpgcreatedomainwidget3base.cpp $(srcdir)/kpgcreatecompositetypewidget2base.cpp $(srcdir)/kpgdumpdatabasewizardbase.cpp $(srcdir)/kpgrestoredatabasewizardbase.cpp $(srcdir)/kpgsetdescriptionwidget1base.cpp  kpgcopyfromtablewidget1base.moc kpg7stepswizardbase.moc kpgsettablespacewidget1.moc kpgcreatelanguagewidget2.moc kpgcreatesequencewidget1.moc kpgcreateschemawidget1.moc kpgcreatebasetypewizard.moc kpgcreateuserwidget2base.moc kpgcreatedomainwidget1.moc kpgcreatetypewidget1base.moc kpgmodifycolumnstoragewidget1base.moc kpgrenameobjectwidget1.moc kpgsetdescriptionwidget1base.moc kpgsetownerwidget1base.moc kpgmodifycolumntypewidget1.moc kpgcreateschemawidget2base.moc kpgcreatedatabasewidget2base.moc kpgsetclustertablewizard.moc kpgcreatetablespacewidget2.moc kpgcreatetablewidget2base.moc kpgcreaterulewidget1base.moc kpgvacuumtablewizard.moc kpg3stepswizardbase.moc kpgcreatetablewidget1.moc kpg2stepswizard.moc kpgcreatefunctionwidget3.moc kpgmodifytablecolumnwizard.moc kpgcreaterulewizard.moc kpgmodifyuserwidget1.moc kpganalysetablewidget1.moc kpgcreatetablewidget3.moc kpgcopyfromtablewidget1.moc kpgcreatedomainwidget2base.moc kpgcreatetriggerwidget1base.moc kpgcreatetablespacewidget1base.moc kpgcreatetablespacewidget2base.moc kpgcreatefunctionwidget5.moc kpgcreateviewwidget2.moc kpgcreateschemawizard.moc kpg2stepswizardbase.moc kpgcopytablewidget2base.moc kpgcreatedomainwidget3.moc kpgcreatefunctionwidget5base.moc kpgcreatetablewidget1base.moc kpgdumpdatabasewizardbase.moc kpg5stepswizardbase.moc kpgdropobjectwidget1base.moc kpgcreatedomainconstraintwizard.moc kpgcreatelanguagewidget2base.moc kpgcreateviewwidget3.moc kpgmodifycolumndefaultwidget1.moc kpgcreatetablewidget4base.moc kpgcreatesequencewidget1base.moc kpgcreatefunctionwidget4.moc kpgsetdomaindefaultwizard.moc kpgcreateviewwidget4.moc kpgdumpdatabasewizard.moc kpgmodifycolumnstatswidget1.moc kpgcopyfromtablewizard.moc kpgmodifyviewwidget1.moc kpgcreateviewwidget4base.moc kpgcreatecompositetypewizard.moc kpgnewobjectdialog.moc kpgmodifycolumnstatswidget1base.moc kpgcreateviewwizard.moc kpgcreateuserwidget2.moc kpgcopytablewidget2.moc kpgmodifysequencewidget1base.moc kpgmodifygroupwidget1.moc kpgcreatetablewizard.moc kpgcreateviewwidget1.moc kpgsetclustertablewidget1.moc kpgcreatefunctionwidget4base.moc kpgcreatetypewidget2base.moc kpg6stepswizard.moc kpgcreatefunctionwidget1.moc kpg3stepswizard.moc kpgcreatetablecolumnwizard.moc kpgcreaterulewidget1.moc kpgcreateuserwidget1base.moc kpgcreatedatabasewidget1base.moc kpgcopytotablewidget1base.moc kpgcreatetablespacewidget1.moc kpgcreateviewwidget1base.moc kpgcreatecompositetypewidget2.moc kpgcreateschemawidget2.moc kpg5stepswizard.moc kpgcreatetriggerwizard.moc kpgsettablespacewidget1base.moc kpgcopytotablewizard.moc kpgdropobjectwidget1.moc kpgcreatefunctionwizard.moc kpgcreatetablewidget2.moc kpgnewobjectdialogbase.moc kpg7stepswizard.moc kpgcreatetablewidget5base.moc kpgcreatelanguagewidget1.moc kpganalysetablewizard.moc kpgdropobjectwizard.moc kpgcopytablewidget3.moc kpgmodifyviewwidget1base.moc kpgmodifyuserwizard.moc kpgrenameobjectwidget1base.moc kpgcreatedatabasewidget1.moc kpgmodifycolumntypewidget1base.moc kpgcreateuserwizard.moc kpgcopytotablewidget1.moc kpgcreatefunctionwidget2base.moc kpgcopytablewidget3base.moc kpgmodifyviewwizard.moc kpgcreateviewwidget3base.moc kpgcreateviewwidget2base.moc kpgcreatedomainwidget3base.moc kpgcreatetypewidget2.moc kpg4stepswizardbase.moc kpgcreatedomainwidget1base.moc kpgmodifysequencewidget1.moc kpgvacuumtablewidget1.moc kpgcreatetablewidget5.moc kpgsetownerwizard.moc kpgcreatelanguagewidget1base.moc kpgcreatetableindexwizard.moc kpganalysetablewidget1base.moc kpgsetownerwidget1.moc kpgrestoredatabasewizardbase.moc kpgmodifycolumndefaultwidget1base.moc kpgrestoredatabasewizard.moc kpgcreatecompositetypewidget2base.moc kpgcreategroupwizard.moc kpgcreateuserwidget1.moc kpgcreatedomainwizard.moc kpgcreatetypewidget3base.moc kpgcreategroupwidget1.moc kpgvacuumtablewidget1base.moc kpgcreatedatabasewizard.moc kpgsetclustertablewidget1base.moc kpgcreatedomainwidget2.moc kpgcreatesequencewizard.moc kpgcreatetriggerwidget1.moc kpgcreatetablewidget3base.moc kpgrenameobjectwizard.moc kpgcreatetableconstraintwizard.moc kpgcreatetablewidget4.moc kpgcreateschemawidget1base.moc kpgcreatefunctionwidget2.moc kpgcreategroupwidget1base.moc kpgmodifycolumnstoragewidget1.moc kpgcreatetablespacewizard.moc kpgmodifyfunctionwizard.moc konsoleviewwidget.moc kpg6stepswizardbase.moc kpgcreatefunctionwidget3base.moc kpgcreatelanguagewizard.moc kpgmodifygroupwizard.moc kpgcreatefunctionwidget1base.moc kpg4stepswizard.moc kpgmodifysequencewizard.moc kpgcreatedatabasewidget2.moc kpgcreatetypewidget3.moc kpgcreatetypewidget1.moc kpgprivilegeswizard.moc kpgsettablespacewizard.moc
+	@echo 'creating libWizards_la.all_cpp.cpp ...'; \
+	rm -f libWizards_la.all_cpp.files libWizards_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libWizards_la.all_cpp.final; \
+	for file in kpg7stepswizard.cpp kpgnewobjectdialog.cpp kpgcreatetablewidget1.cpp kpgcreatetablewidget2.cpp kpgcreatetablewidget3.cpp kpg2stepswizard.cpp kpgtablecolumnwizinfo.cpp kpgcreatetablewidget4.cpp kpgcreatetablewidget5.cpp kpgcreatetablewizard.cpp kpgcreateviewwizard.cpp kpgcreateviewwidget1.cpp kpgcreateviewwidget2.cpp kpgcreateviewwidget3.cpp kpgcreateviewwidget4.cpp kpg6stepswizard.cpp kpg3stepswizard.cpp kpgmodifyviewwidget1.cpp kpgmodifyviewwizard.cpp kpgcreateuserwidget1.cpp kpgcreateuserwidget2.cpp kpg4stepswizard.cpp kpgcreateuserwizard.cpp kpgmodifyuserwizard.cpp kpgmodifyuserwidget1.cpp kpgcreategroupwidget1.cpp kpgcreategroupwizard.cpp kpgmodifygroupwizard.cpp kpgmodifygroupwidget1.cpp kpgcreatedatabasewidget1.cpp kpgcreatedatabasewizard.cpp kpgcreateschemawidget1.cpp kpgcreateschemawizard.cpp kpgrenameobjectwidget1.cpp kpgrenameobjectwizard.cpp kpgcreatelanguagewizard.cpp kpgcreatefunctionwizard.cpp kpgcreatesequencewizard.cpp kpg5stepswizard.cpp kpgcreatefunctionwidget1.cpp kpgcreatefunctionwidget2.cpp kpgcreatefunctionwidget3.cpp kpgcreatesequencewidget1.cpp kpgcreatelanguagewidget1.cpp kpgcreatefunctionwidget4.cpp kpgmodifyfunctionwizard.cpp kpgcreatelanguagewidget2.cpp kpgcreatedatabasewidget2.cpp kpgcreateschemawidget2.cpp kpgcreatetableconstraintwizard.cpp kpgcreatetablespacewidget1.cpp kpgcreatetablespacewizard.cpp kpgcreatetablespacewidget2.cpp kpgcreatetableindexwizard.cpp kpgcreatetablecolumnwizard.cpp kpgmodifycolumndefaultwidget1.cpp kpgmodifycolumntypewidget1.cpp kpgmodifycolumnstoragewidget1.cpp kpgmodifycolumnstatswidget1.cpp kpgmodifytablecolumnwizard.cpp kpgcreaterulewizard.cpp kpgcreatetriggerwizard.cpp kpgcreaterulewidget1.cpp kpgcreatetriggerwidget1.cpp kpgdropobjectwidget1.cpp kpgdropobjectwizard.cpp kpgmodifysequencewidget1.cpp kpgmodifysequencewizard.cpp kpganalysetablewidget1.cpp kpganalysetablewizard.cpp kpgcopyfromtablewidget1.cpp kpgcopytotablewidget1.cpp kpgcopytotablewizard.cpp kpgcopyfromtablewizard.cpp kpgcopytablewidget2.cpp kpgcopytablewidget3.cpp kpgvacuumtablewidget1.cpp kpgvacuumtablewizard.cpp kpgsetclustertablewidget1.cpp kpgsetclustertablewizard.cpp kpgsetownerwidget1.cpp kpgsettablespacewidget1.cpp kpgsetownerwizard.cpp kpgsettablespacewizard.cpp kpgcreatedomainwizard.cpp kpgcreatedomainwidget1.cpp kpgcreatedomainwidget2.cpp kpgsetdomaindefaultwizard.cpp kpgcreatedomainconstraintwizard.cpp kpgcreatetypewidget1.cpp kpgcreatetypewidget2.cpp kpgcreatetypewidget3.cpp kpgcreatefunctionwidget5.cpp kpgcreatebasetypewizard.cpp kpgcreatecompositetypewizard.cpp kpgcreatedomainwidget3.cpp kpgcreatecompositetypewidget2.cpp konsoleviewwidget.cpp kpgdumpdatabasewizard.cpp kpgrestoredatabasewizard.cpp kpgprivilegeswizard.cpp kpgdroptableobjectwizard.cpp kpgsetdescriptionwidget1.cpp kpgsetdescriptionwizard.cpp kpg7stepswizardbase.cpp kpgnewobjectdialogbase.cpp kpgcreatetablewidget1base.cpp kpgcreatetablewidget2base.cpp kpgcreatetablewidget3base.cpp kpgcreatetablewidget4base.cpp kpgcreatetablewidget5base.cpp kpg2stepswizardbase.cpp kpgcreateviewwidget1base.cpp kpgcreateviewwidget2base.cpp kpgcreateviewwidget3base.cpp kpgcreateviewwidget4base.cpp kpg6stepswizardbase.cpp kpg3stepswizardbase.cpp kpgmodifyviewwidget1base.cpp kpgcreateuserwidget2base.cpp kpg4stepswizardbase.cpp kpgcreateuserwidget1base.cpp kpgcreategroupwidget1base.cpp kpgcreatedatabasewidget1base.cpp kpgcreateschemawidget1base.cpp kpgrenameobjectwidget1base.cpp kpgcreatelanguagewidget1base.cpp kpgcreatesequencewidget1base.cpp kpgcreatefunctionwidget1base.cpp kpgcreatefunctionwidget2base.cpp kpgcreatefunctionwidget3base.cpp kpg5stepswizardbase.cpp kpgcreatefunctionwidget4base.cpp kpgcreatelanguagewidget2base.cpp kpgcreatedatabasewidget2base.cpp kpgcreateschemawidget2base.cpp kpgcreatetablespacewidget1base.cpp kpgcreatetablespacewidget2base.cpp kpgmodifycolumndefaultwidget1base.cpp kpgmodifycolumntypewidget1base.cpp kpgmodifycolumnstoragewidget1base.cpp kpgmodifycolumnstatswidget1base.cpp kpgcreatetriggerwidget1base.cpp kpgcreaterulewidget1base.cpp kpgdropobjectwidget1base.cpp kpgmodifysequencewidget1base.cpp kpganalysetablewidget1base.cpp kpgcopyfromtablewidget1base.cpp kpgcopytotablewidget1base.cpp kpgcopytablewidget2base.cpp kpgcopytablewidget3base.cpp kpgvacuumtablewidget1base.cpp kpgsetclustertablewidget1base.cpp kpgsetownerwidget1base.cpp kpgsettablespacewidget1base.cpp kpgcreatedomainwidget1base.cpp kpgcreatedomainwidget2base.cpp kpgcreatetypewidget1base.cpp kpgcreatetypewidget2base.cpp kpgcreatetypewidget3base.cpp kpgcreatefunctionwidget5base.cpp kpgcreatedomainwidget3base.cpp kpgcreatecompositetypewidget2base.cpp kpgdumpdatabasewizardbase.cpp kpgrestoredatabasewizardbase.cpp kpgsetdescriptionwidget1base.cpp ; do \
+	  echo "#include \"$$file\"" >> libWizards_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libWizards_la.all_cpp.final; \
+	done; \
+	cat libWizards_la.all_cpp.final libWizards_la.all_cpp.files > libWizards_la.all_cpp.cpp; \
+	rm -f libWizards_la.all_cpp.final libWizards_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libWizards_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libWizards_la_OBJECTS="$(libWizards_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libWizards_la_OBJECTS="$(libWizards_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libWizards_la_OBJECTS="$(libWizards_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libWizards_la_OBJECTS="$(libWizards_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 307
+$(srcdir)/kpgvacuumtablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetypewidget2.o: kpgcreatetypewidget2.moc 
+kpgcopytablewidget2.o: kpgcopytablewidget2.moc 
+kpgmodifyviewwidget1.o: kpgmodifyviewwidget1.moc 
+kpgcreatefunctionwidget5.lo: kpgcreatefunctionwidget5.moc 
+kpgmodifyviewwidget1.lo: kpgmodifyviewwidget1.moc 
+kpgcreateviewwidget2.lo: kpgcreateviewwidget2.moc 
+kpgmodifycolumnstatswidget1.lo: kpgmodifycolumnstatswidget1.moc 
+konsoleviewwidget.o: konsoleviewwidget.moc 
+$(srcdir)/kpgcreatefunctionwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpg7stepswizard.lo: kpg7stepswizard.moc 
+$(srcdir)/kpgmodifytablecolumnwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateviewwizard.o: kpgcreateviewwizard.moc 
+kpgcreatetablespacewidget2.o: kpgcreatetablespacewidget2.moc 
+kpgcreateuserwidget1.lo: kpgcreateuserwidget1.moc 
+$(srcdir)/kpgcreateuserwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgmodifygroupwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgmodifyviewwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateuserwidget1.o: kpgcreateuserwidget1.moc 
+kpgcreateviewwidget2.o: kpgcreateviewwidget2.moc 
+kpgmodifycolumntypewidget1.o: kpgmodifycolumntypewidget1.moc 
+kpgcreatetriggerwizard.lo: kpgcreatetriggerwizard.moc 
+kpgsetclustertablewidget1.lo: kpgsetclustertablewidget1.moc 
+$(srcdir)/kpgcreatetablewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpg4stepswizard.lo: kpg4stepswizard.moc 
+kpgcreatecompositetypewizard.lo: kpgcreatecompositetypewizard.moc 
+kpgmodifycolumnstoragewidget1.lo: kpgmodifycolumnstoragewidget1.moc 
+kpgmodifycolumndefaultwidget1.lo: kpgmodifycolumndefaultwidget1.moc 
+$(srcdir)/kpgmodifycolumnstoragewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcopyfromtablewizard.lo: kpgcopyfromtablewizard.moc 
+$(srcdir)/kpgnewobjectdialog.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatefunctionwizard.o: kpgcreatefunctionwizard.moc 
+$(srcdir)/kpgcopyfromtablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateuserwizard.o: kpgcreateuserwizard.moc 
+$(srcdir)/kpgmodifyuserwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsettablespacewidget1.lo: kpgsettablespacewidget1.moc 
+kpgcreateuserwizard.lo: kpgcreateuserwizard.moc 
+kpgvacuumtablewidget1.o: kpgvacuumtablewidget1.moc 
+kpganalysetablewidget1.o: kpganalysetablewidget1.moc 
+kpgcreatetablespacewidget2.lo: kpgcreatetablespacewidget2.moc 
+$(srcdir)/kpgcreatelanguagewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgmodifycolumntypewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsetownerwizard.o: kpgsetownerwizard.moc 
+kpgcreatetableconstraintwizard.o: kpgcreatetableconstraintwizard.moc 
+$(srcdir)/kpgmodifycolumnstatswidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateschemawidget1.o: kpgcreateschemawidget1.moc 
+kpgsetownerwizard.lo: kpgsetownerwizard.moc 
+kpgcreatetablewidget4.lo: kpgcreatetablewidget4.moc 
+kpgcreatetypewidget1.o: kpgcreatetypewidget1.moc 
+kpgcreateviewwidget3.lo: kpgcreateviewwidget3.moc 
+kpgcreatecompositetypewizard.o: kpgcreatecompositetypewizard.moc 
+kpgcopyfromtablewidget1.o: kpgcopyfromtablewidget1.moc 
+kpgcreatefunctionwidget4.lo: kpgcreatefunctionwidget4.moc 
+kpgcreatetriggerwizard.o: kpgcreatetriggerwizard.moc 
+kpgcopytablewidget3.o: kpgcopytablewidget3.moc 
+kpgcreatetablewidget5.lo: kpgcreatetablewidget5.moc 
+kpganalysetablewizard.lo: kpganalysetablewizard.moc 
+kpgcreatetablespacewizard.lo: kpgcreatetablespacewizard.moc 
+kpgvacuumtablewidget1.lo: kpgvacuumtablewidget1.moc 
+$(srcdir)/kpgcreatetablespacewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetriggerwidget1.lo: kpgcreatetriggerwidget1.moc 
+$(srcdir)/kpgcreateviewwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgtablecolumnwizinfo.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpg4stepswizard.o: kpg4stepswizard.moc 
+kpgcreatefunctionwidget2.o: kpgcreatefunctionwidget2.moc 
+kpgcreatedomainwidget1.o: kpgcreatedomainwidget1.moc 
+kpgcreatetableconstraintwizard.lo: kpgcreatetableconstraintwizard.moc 
+kpg6stepswizard.o: kpg6stepswizard.moc 
+$(srcdir)/kpganalysetablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgvacuumtablewizard.o: kpgvacuumtablewizard.moc 
+kpgcreatetablewidget1.o: kpgcreatetablewidget1.moc 
+kpg5stepswizard.o: kpg5stepswizard.moc 
+kpgsettablespacewidget1.o: kpgsettablespacewidget1.moc 
+kpgsettablespacewizard.lo: kpgsettablespacewizard.moc 
+kpgcopytablewidget2.lo: kpgcopytablewidget2.moc 
+kpgmodifyfunctionwizard.lo: kpgmodifyfunctionwizard.moc 
+kpgcreatelanguagewidget1.lo: kpgcreatelanguagewidget1.moc 
+kpgcreatefunctionwidget1.lo: kpgcreatefunctionwidget1.moc 
+kpgmodifygroupwidget1.lo: kpgmodifygroupwidget1.moc 
+kpgsetownerwidget1.o: kpgsetownerwidget1.moc 
+kpgcreateviewwidget1.o: kpgcreateviewwidget1.moc 
+kpgcreatedomainconstraintwizard.lo: kpgcreatedomainconstraintwizard.moc 
+$(srcdir)/kpgsetclustertablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpganalysetablewidget1.lo: kpganalysetablewidget1.moc 
+$(srcdir)/kpgcreatesequencewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatelanguagewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablecolumnwizard.o: kpgcreatetablecolumnwizard.moc 
+$(srcdir)/kpgsetclustertablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpg2stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgmodifysequencewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateviewwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsetdomaindefaultwizard.lo: kpgsetdomaindefaultwizard.moc 
+$(srcdir)/kpgcreatesequencewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatedomainwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateviewwidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatedatabasewizard.lo: kpgcreatedatabasewizard.moc 
+kpgmodifysequencewizard.lo: kpgmodifysequencewizard.moc 
+kpg5stepswizard.lo: kpg5stepswizard.moc 
+kpg3stepswizard.lo: kpg3stepswizard.moc 
+$(srcdir)/kpgmodifyviewwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpg4stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcopyfromtablewizard.o: kpgcopyfromtablewizard.moc 
+kpgcreatelanguagewidget2.lo: kpgcreatelanguagewidget2.moc 
+kpgcopytotablewidget1.lo: kpgcopytotablewidget1.moc 
+$(srcdir)/kpgdropobjectwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatedatabasewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablecolumnwizard.lo: kpgcreatetablecolumnwizard.moc 
+kpgcreateviewwidget1.lo: kpgcreateviewwidget1.moc 
+kpgcopytotablewidget1.o: kpgcopytotablewidget1.moc 
+$(srcdir)/kpgcreatetriggerwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgnewobjectdialog.o: kpgnewobjectdialog.moc 
+$(srcdir)/kpgcreatetablespacewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablewidget1.lo: kpgcreatetablewidget1.moc 
+$(srcdir)/kpgdropobjectwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablewidget2.o: kpgcreatetablewidget2.moc 
+kpgcreatedatabasewidget1.o: kpgcreatedatabasewidget1.moc 
+$(srcdir)/kpgcreatetypewidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+konsoleviewwidget.lo: konsoleviewwidget.moc 
+kpgcreaterulewidget1.o: kpgcreaterulewidget1.moc 
+kpgcreatelanguagewidget2.o: kpgcreatelanguagewidget2.moc 
+kpgmodifycolumnstoragewidget1.o: kpgmodifycolumnstoragewidget1.moc 
+kpgcreatetablewidget3.lo: kpgcreatetablewidget3.moc 
+kpgcopyfromtablewidget1.lo: kpgcopyfromtablewidget1.moc 
+$(srcdir)/kpgmodifygroupwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatedomainwidget3.lo: kpgcreatedomainwidget3.moc 
+$(srcdir)/kpgcreateviewwidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgprivilegeswizard.o: kpgprivilegeswizard.moc 
+$(srcdir)/kpgcreatefunctionwidget5.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatelanguagewizard.lo: kpgcreatelanguagewizard.moc 
+kpgmodifysequencewidget1.o: kpgmodifysequencewidget1.moc 
+$(srcdir)/kpgcreaterulewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetypewidget3.o: kpgcreatetypewidget3.moc 
+kpgcopytotablewizard.o: kpgcopytotablewizard.moc 
+$(srcdir)/kpgdroptableobjectwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifytablecolumnwizard.o: kpgmodifytablecolumnwizard.moc 
+kpgcreatedomainwizard.lo: kpgcreatedomainwizard.moc 
+kpgcreatedomainwidget2.o: kpgcreatedomainwidget2.moc 
+$(srcdir)/kpg5stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateschemawidget1.lo: kpgcreateschemawidget1.moc 
+kpgcreatetablespacewidget1.o: kpgcreatetablespacewidget1.moc 
+kpgrenameobjectwizard.lo: kpgrenameobjectwizard.moc 
+kpgmodifyfunctionwizard.o: kpgmodifyfunctionwizard.moc 
+kpgmodifycolumndefaultwidget1.o: kpgmodifycolumndefaultwidget1.moc 
+kpgcreatetablewizard.lo: kpgcreatetablewizard.moc 
+kpgmodifyuserwidget1.lo: kpgmodifyuserwidget1.moc 
+kpgcreatefunctionwizard.lo: kpgcreatefunctionwizard.moc 
+$(srcdir)/kpgcreatedomainwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateviewwidget4.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateschemawizard.lo: kpgcreateschemawizard.moc 
+kpgcreatetablespacewidget1.lo: kpgcreatetablespacewidget1.moc 
+kpgcreatelanguagewizard.o: kpgcreatelanguagewizard.moc 
+kpgcreatefunctionwidget4.o: kpgcreatefunctionwidget4.moc 
+$(srcdir)/kpgcreatefunctionwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcopytablewidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifysequencewizard.o: kpgmodifysequencewizard.moc 
+kpgcreatetablewidget3.o: kpgcreatetablewidget3.moc 
+$(srcdir)/kpgcreatetypewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgrestoredatabasewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpg7stepswizard.o: kpg7stepswizard.moc 
+kpgcreategroupwizard.lo: kpgcreategroupwizard.moc 
+kpg2stepswizard.lo: kpg2stepswizard.moc 
+nmcheck-am: nmcheck
+$(srcdir)/kpgcopytotablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatefunctionwidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatefunctionwidget2.lo: kpgcreatefunctionwidget2.moc 
+kpgcreatedomainconstraintwizard.o: kpgcreatedomainconstraintwizard.moc 
+$(srcdir)/kpgrenameobjectwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateuserwidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatebasetypewizard.o: kpgcreatebasetypewizard.moc 
+kpgrenameobjectwidget1.o: kpgrenameobjectwidget1.moc 
+kpgcreatefunctionwidget3.lo: kpgcreatefunctionwidget3.moc 
+kpgcreatedatabasewidget2.o: kpgcreatedatabasewidget2.moc 
+$(srcdir)/kpgcreatecompositetypewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifycolumnstatswidget1.o: kpgmodifycolumnstatswidget1.moc 
+kpgcreatedatabasewizard.o: kpgcreatedatabasewizard.moc 
+$(srcdir)/kpgcopytotablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgdropobjectwidget1.lo: kpgdropobjectwidget1.moc 
+$(srcdir)/kpgsetdomaindefaultwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgdropobjectwizard.lo: kpgdropobjectwizard.moc 
+$(srcdir)/kpg7stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifyviewwizard.o: kpgmodifyviewwizard.moc 
+$(srcdir)/kpgcreategroupwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatecompositetypewidget2.o: kpgcreatecompositetypewidget2.moc 
+kpgcreateviewwidget4.lo: kpgcreateviewwidget4.moc 
+kpgcreaterulewizard.lo: kpgcreaterulewizard.moc 
+kpgdumpdatabasewizard.o: kpgdumpdatabasewizard.moc 
+$(srcdir)/kpgcopytablewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgprivilegeswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateviewwizard.lo: kpgcreateviewwizard.moc 
+$(srcdir)/kpg6stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgdropobjectwidget1.o: kpgdropobjectwidget1.moc 
+kpgrenameobjectwizard.o: kpgrenameobjectwizard.moc 
+kpgdumpdatabasewizard.lo: kpgdumpdatabasewizard.moc 
+kpgcreateviewwidget4.o: kpgcreateviewwidget4.moc 
+$(srcdir)/kpgcreatelanguagewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsetownerwidget1.lo: kpgsetownerwidget1.moc 
+kpgcreatesequencewidget1.o: kpgcreatesequencewidget1.moc 
+$(srcdir)/kpgmodifyfunctionwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetriggerwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablewidget4.o: kpgcreatetablewidget4.moc 
+kpgcreateviewwidget3.o: kpgcreateviewwidget3.moc 
+kpgcreatedatabasewidget1.lo: kpgcreatedatabasewidget1.moc 
+kpgcreatetypewidget1.lo: kpgcreatetypewidget1.moc 
+$(srcdir)/kpgcreatetableconstraintwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatecompositetypewidget2.lo: kpgcreatecompositetypewidget2.moc 
+kpgcreatedomainwidget2.lo: kpgcreatedomainwidget2.moc 
+$(srcdir)/kpgcreateschemawidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpganalysetablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablewizard.o: kpgcreatetablewizard.moc 
+kpgcreaterulewidget1.lo: kpgcreaterulewidget1.moc 
+kpgcreatefunctionwidget3.o: kpgcreatefunctionwidget3.moc 
+$(srcdir)/kpgcreatefunctionwidget4.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetablewidget2.lo: kpgcreatetablewidget2.moc 
+kpgcreatetablespacewizard.o: kpgcreatetablespacewizard.moc 
+$(srcdir)/konsoleviewwidget.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreategroupwidget1.o: kpgcreategroupwidget1.moc 
+kpgcreatedomainwidget3.o: kpgcreatedomainwidget3.moc 
+$(srcdir)/kpgcreatefunctionwidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatefunctionwidget5.o: kpgcreatefunctionwidget5.moc 
+kpgcreateuserwidget2.o: kpgcreateuserwidget2.moc 
+kpgrestoredatabasewizard.o: kpgrestoredatabasewizard.moc 
+kpgcreateschemawidget2.lo: kpgcreateschemawidget2.moc 
+kpgcreatedatabasewidget2.lo: kpgcreatedatabasewidget2.moc 
+$(srcdir)/kpgcreatedatabasewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreaterulewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetablewidget4.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgrenameobjectwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreateschemawidget2.o: kpgcreateschemawidget2.moc 
+kpgcreatedomainwizard.o: kpgcreatedomainwizard.moc 
+$(srcdir)/kpgmodifycolumndefaultwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatelanguagewidget1.o: kpgcreatelanguagewidget1.moc 
+kpgsetclustertablewidget1.o: kpgsetclustertablewidget1.moc 
+$(srcdir)/kpgcreatetablewidget5.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgsettablespacewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgvacuumtablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgdumpdatabasewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifyuserwizard.o: kpgmodifyuserwizard.moc 
+$(srcdir)/kpgmodifysequencewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetableindexwizard.o: kpgcreatetableindexwizard.moc 
+kpganalysetablewizard.o: kpganalysetablewizard.moc 
+kpgmodifyviewwizard.lo: kpgmodifyviewwizard.moc 
+$(srcdir)/kpgsetownerwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifygroupwidget1.o: kpgmodifygroupwidget1.moc 
+kpgcreatetriggerwidget1.o: kpgcreatetriggerwidget1.moc 
+kpgcreaterulewizard.o: kpgcreaterulewizard.moc 
+kpgprivilegeswizard.lo: kpgprivilegeswizard.moc 
+$(srcdir)/kpgsetdescriptionwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcopytablewidget3.lo: kpgcopytablewidget3.moc 
+kpgcreategroupwidget1.lo: kpgcreategroupwidget1.moc 
+kpgcreatetableindexwizard.lo: kpgcreatetableindexwizard.moc 
+kpgvacuumtablewizard.lo: kpgvacuumtablewizard.moc 
+kpgnewobjectdialog.lo: kpgnewobjectdialog.moc 
+kpg6stepswizard.lo: kpg6stepswizard.moc 
+$(srcdir)/kpgcreatetablewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatesequencewidget1.lo: kpgcreatesequencewidget1.moc 
+$(srcdir)/kpgcreatecompositetypewidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatedomainwidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetablewidget3.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpg2stepswizard.o: kpg2stepswizard.moc 
+$(srcdir)/kpgmodifyuserwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatedomainwidget2.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgsettablespacewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsetclustertablewizard.lo: kpgsetclustertablewizard.moc 
+kpgmodifysequencewidget1.lo: kpgmodifysequencewidget1.moc 
+$(srcdir)/kpgsetownerwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgsettablespacewizard.o: kpgsettablespacewizard.moc 
+$(srcdir)/kpgcreatedatabasewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatedomainconstraintwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetablecolumnwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateschemawizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatedomainwidget1.lo: kpgcreatedomainwidget1.moc 
+$(srcdir)/kpgcreatebasetypewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreatetablespacewizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgsetdescriptionwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatetypewidget2.lo: kpgcreatetypewidget2.moc 
+kpg3stepswizard.o: kpg3stepswizard.moc 
+kpgrenameobjectwidget1.lo: kpgrenameobjectwidget1.moc 
+kpgsetdomaindefaultwizard.o: kpgsetdomaindefaultwizard.moc 
+kpgcreatetablewidget5.o: kpgcreatetablewidget5.moc 
+kpgmodifytablecolumnwizard.lo: kpgmodifytablecolumnwizard.moc 
+$(srcdir)/kpgcreatetableindexwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgmodifyuserwizard.lo: kpgmodifyuserwizard.moc 
+kpgcreateuserwidget2.lo: kpgcreateuserwidget2.moc 
+kpgcreategroupwizard.o: kpgcreategroupwizard.moc 
+kpgdropobjectwizard.o: kpgdropobjectwizard.moc 
+$(srcdir)/kpgcreatetypewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatesequencewizard.lo: kpgcreatesequencewizard.moc 
+$(srcdir)/kpg3stepswizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgcreatesequencewizard.o: kpgcreatesequencewizard.moc 
+kpgmodifygroupwizard.lo: kpgmodifygroupwizard.moc 
+kpgcreatetypewidget3.lo: kpgcreatetypewidget3.moc 
+$(srcdir)/kpgcopyfromtablewidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+nmcheck: 
+kpgmodifyuserwidget1.o: kpgmodifyuserwidget1.moc 
+kpgcreateschemawizard.o: kpgcreateschemawizard.moc 
+kpgcreatefunctionwidget1.o: kpgcreatefunctionwidget1.moc 
+kpgcreatebasetypewizard.lo: kpgcreatebasetypewizard.moc 
+kpgcopytotablewizard.lo: kpgcopytotablewizard.moc 
+kpgsetclustertablewizard.o: kpgsetclustertablewizard.moc 
+kpgmodifygroupwizard.o: kpgmodifygroupwizard.moc 
+$(srcdir)/kpgcreateuserwizard.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreateschemawidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+$(srcdir)/kpgcreategroupwidget1.cpp: kpg7stepswizardbase.h kpgnewobjectdialogbase.h kpgcreatetablewidget1base.h kpgcreatetablewidget2base.h kpgcreatetablewidget3base.h kpgcreatetablewidget4base.h kpgcreatetablewidget5base.h kpg2stepswizardbase.h kpgcreateviewwidget1base.h kpgcreateviewwidget2base.h kpgcreateviewwidget3base.h kpgcreateviewwidget4base.h kpg6stepswizardbase.h kpg3stepswizardbase.h kpgmodifyviewwidget1base.h kpgcreateuserwidget2base.h kpg4stepswizardbase.h kpgcreateuserwidget1base.h kpgcreategroupwidget1base.h kpgcreatedatabasewidget1base.h kpgcreateschemawidget1base.h kpgrenameobjectwidget1base.h kpgcreatelanguagewidget1base.h kpgcreatesequencewidget1base.h kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget3base.h kpg5stepswizardbase.h kpgcreatefunctionwidget4base.h kpgcreatelanguagewidget2base.h kpgcreatedatabasewidget2base.h kpgcreateschemawidget2base.h kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget2base.h kpgmodifycolumndefaultwidget1base.h kpgmodifycolumntypewidget1base.h kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstatswidget1base.h kpgcreatetriggerwidget1base.h kpgcreaterulewidget1base.h kpgdropobjectwidget1base.h kpgmodifysequencewidget1base.h kpganalysetablewidget1base.h kpgcopyfromtablewidget1base.h kpgcopytotablewidget1base.h kpgcopytablewidget2base.h kpgcopytablewidget3base.h kpgvacuumtablewidget1base.h kpgsetclustertablewidget1base.h kpgsetownerwidget1base.h kpgsettablespacewidget1base.h kpgcreatedomainwidget1base.h kpgcreatedomainwidget2base.h kpgcreatetypewidget1base.h kpgcreatetypewidget2base.h kpgcreatetypewidget3base.h kpgcreatefunctionwidget5base.h kpgcreatedomainwidget3base.h kpgcreatecompositetypewidget2base.h kpgdumpdatabasewizardbase.h kpgrestoredatabasewizardbase.h kpgsetdescriptionwidget1base.h 
+kpgrestoredatabasewizard.lo: kpgrestoredatabasewizard.moc 
+kpgmodifycolumntypewidget1.lo: kpgmodifycolumntypewidget1.moc 
+
+#>+ 930
+kpg5stepswizardbase.cpp: $(srcdir)/kpg5stepswizardbase.ui kpg5stepswizardbase.h kpg5stepswizardbase.moc
+	rm -f kpg5stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg5stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg5stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg5stepswizardbase.h $(srcdir)/kpg5stepswizardbase.ui > kpg5stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg5stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg5stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg5stepswizardbase.cpp ;\
+	rm -f kpg5stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg5stepswizardbase.moc"' >> kpg5stepswizardbase.cpp; else rm -f kpg5stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg5stepswizardbase.h: $(srcdir)/kpg5stepswizardbase.ui
+	rm -rf kpg5stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg5stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg5stepswizardbase.h ;
+kpg5stepswizardbase.moc: kpg5stepswizardbase.h
+	$(MOC) kpg5stepswizardbase.h -o kpg5stepswizardbase.moc
+
+kpgcreatetablewidget3base.cpp: $(srcdir)/kpgcreatetablewidget3base.ui kpgcreatetablewidget3base.h kpgcreatetablewidget3base.moc
+	rm -f kpgcreatetablewidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablewidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablewidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablewidget3base.h $(srcdir)/kpgcreatetablewidget3base.ui > kpgcreatetablewidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablewidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablewidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablewidget3base.cpp ;\
+	rm -f kpgcreatetablewidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablewidget3base.moc"' >> kpgcreatetablewidget3base.cpp; else rm -f kpgcreatetablewidget3base.cpp ; exit $$ret ; fi
+
+kpgcreatetablewidget3base.h: $(srcdir)/kpgcreatetablewidget3base.ui
+	rm -rf kpgcreatetablewidget3base.h;
+	$(UIC) $(srcdir)/kpgcreatetablewidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablewidget3base.h ;
+kpgcreatetablewidget3base.moc: kpgcreatetablewidget3base.h
+	$(MOC) kpgcreatetablewidget3base.h -o kpgcreatetablewidget3base.moc
+
+kpgcreatetablewidget5base.cpp: $(srcdir)/kpgcreatetablewidget5base.ui kpgcreatetablewidget5base.h kpgcreatetablewidget5base.moc
+	rm -f kpgcreatetablewidget5base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablewidget5base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablewidget5base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablewidget5base.h $(srcdir)/kpgcreatetablewidget5base.ui > kpgcreatetablewidget5base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablewidget5base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablewidget5base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablewidget5base.cpp ;\
+	rm -f kpgcreatetablewidget5base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablewidget5base.moc"' >> kpgcreatetablewidget5base.cpp; else rm -f kpgcreatetablewidget5base.cpp ; exit $$ret ; fi
+
+kpgcreatetablewidget5base.h: $(srcdir)/kpgcreatetablewidget5base.ui
+	rm -rf kpgcreatetablewidget5base.h;
+	$(UIC) $(srcdir)/kpgcreatetablewidget5base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablewidget5base.h ;
+kpgcreatetablewidget5base.moc: kpgcreatetablewidget5base.h
+	$(MOC) kpgcreatetablewidget5base.h -o kpgcreatetablewidget5base.moc
+
+kpg4stepswizardbase.cpp: $(srcdir)/kpg4stepswizardbase.ui kpg4stepswizardbase.h kpg4stepswizardbase.moc
+	rm -f kpg4stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg4stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg4stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg4stepswizardbase.h $(srcdir)/kpg4stepswizardbase.ui > kpg4stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg4stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg4stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg4stepswizardbase.cpp ;\
+	rm -f kpg4stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg4stepswizardbase.moc"' >> kpg4stepswizardbase.cpp; else rm -f kpg4stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg4stepswizardbase.h: $(srcdir)/kpg4stepswizardbase.ui
+	rm -rf kpg4stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg4stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg4stepswizardbase.h ;
+kpg4stepswizardbase.moc: kpg4stepswizardbase.h
+	$(MOC) kpg4stepswizardbase.h -o kpg4stepswizardbase.moc
+
+kpgcreateviewwidget4base.cpp: $(srcdir)/kpgcreateviewwidget4base.ui kpgcreateviewwidget4base.h kpgcreateviewwidget4base.moc
+	rm -f kpgcreateviewwidget4base.cpp
+	echo '#include <kdialog.h>' > kpgcreateviewwidget4base.cpp
+	echo '#include <klocale.h>' >> kpgcreateviewwidget4base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateviewwidget4base.h $(srcdir)/kpgcreateviewwidget4base.ui > kpgcreateviewwidget4base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateviewwidget4base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateviewwidget4base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateviewwidget4base.cpp ;\
+	rm -f kpgcreateviewwidget4base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateviewwidget4base.moc"' >> kpgcreateviewwidget4base.cpp; else rm -f kpgcreateviewwidget4base.cpp ; exit $$ret ; fi
+
+kpgcreateviewwidget4base.h: $(srcdir)/kpgcreateviewwidget4base.ui
+	rm -rf kpgcreateviewwidget4base.h;
+	$(UIC) $(srcdir)/kpgcreateviewwidget4base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateviewwidget4base.h ;
+kpgcreateviewwidget4base.moc: kpgcreateviewwidget4base.h
+	$(MOC) kpgcreateviewwidget4base.h -o kpgcreateviewwidget4base.moc
+
+kpgsetdescriptionwidget1base.cpp: $(srcdir)/kpgsetdescriptionwidget1base.ui kpgsetdescriptionwidget1base.h kpgsetdescriptionwidget1base.moc
+	rm -f kpgsetdescriptionwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgsetdescriptionwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgsetdescriptionwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsetdescriptionwidget1base.h $(srcdir)/kpgsetdescriptionwidget1base.ui > kpgsetdescriptionwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsetdescriptionwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsetdescriptionwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsetdescriptionwidget1base.cpp ;\
+	rm -f kpgsetdescriptionwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsetdescriptionwidget1base.moc"' >> kpgsetdescriptionwidget1base.cpp; else rm -f kpgsetdescriptionwidget1base.cpp ; exit $$ret ; fi
+
+kpgsetdescriptionwidget1base.h: $(srcdir)/kpgsetdescriptionwidget1base.ui
+	rm -rf kpgsetdescriptionwidget1base.h;
+	$(UIC) $(srcdir)/kpgsetdescriptionwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsetdescriptionwidget1base.h ;
+kpgsetdescriptionwidget1base.moc: kpgsetdescriptionwidget1base.h
+	$(MOC) kpgsetdescriptionwidget1base.h -o kpgsetdescriptionwidget1base.moc
+
+kpgcreatefunctionwidget1base.cpp: $(srcdir)/kpgcreatefunctionwidget1base.ui kpgcreatefunctionwidget1base.h kpgcreatefunctionwidget1base.moc
+	rm -f kpgcreatefunctionwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatefunctionwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatefunctionwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatefunctionwidget1base.h $(srcdir)/kpgcreatefunctionwidget1base.ui > kpgcreatefunctionwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatefunctionwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatefunctionwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatefunctionwidget1base.cpp ;\
+	rm -f kpgcreatefunctionwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatefunctionwidget1base.moc"' >> kpgcreatefunctionwidget1base.cpp; else rm -f kpgcreatefunctionwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatefunctionwidget1base.h: $(srcdir)/kpgcreatefunctionwidget1base.ui
+	rm -rf kpgcreatefunctionwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatefunctionwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatefunctionwidget1base.h ;
+kpgcreatefunctionwidget1base.moc: kpgcreatefunctionwidget1base.h
+	$(MOC) kpgcreatefunctionwidget1base.h -o kpgcreatefunctionwidget1base.moc
+
+kpgcreateviewwidget1base.cpp: $(srcdir)/kpgcreateviewwidget1base.ui kpgcreateviewwidget1base.h kpgcreateviewwidget1base.moc
+	rm -f kpgcreateviewwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreateviewwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreateviewwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateviewwidget1base.h $(srcdir)/kpgcreateviewwidget1base.ui > kpgcreateviewwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateviewwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateviewwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateviewwidget1base.cpp ;\
+	rm -f kpgcreateviewwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateviewwidget1base.moc"' >> kpgcreateviewwidget1base.cpp; else rm -f kpgcreateviewwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreateviewwidget1base.h: $(srcdir)/kpgcreateviewwidget1base.ui
+	rm -rf kpgcreateviewwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreateviewwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateviewwidget1base.h ;
+kpgcreateviewwidget1base.moc: kpgcreateviewwidget1base.h
+	$(MOC) kpgcreateviewwidget1base.h -o kpgcreateviewwidget1base.moc
+
+kpgcreatefunctionwidget5base.cpp: $(srcdir)/kpgcreatefunctionwidget5base.ui kpgcreatefunctionwidget5base.h kpgcreatefunctionwidget5base.moc
+	rm -f kpgcreatefunctionwidget5base.cpp
+	echo '#include <kdialog.h>' > kpgcreatefunctionwidget5base.cpp
+	echo '#include <klocale.h>' >> kpgcreatefunctionwidget5base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatefunctionwidget5base.h $(srcdir)/kpgcreatefunctionwidget5base.ui > kpgcreatefunctionwidget5base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatefunctionwidget5base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatefunctionwidget5base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatefunctionwidget5base.cpp ;\
+	rm -f kpgcreatefunctionwidget5base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatefunctionwidget5base.moc"' >> kpgcreatefunctionwidget5base.cpp; else rm -f kpgcreatefunctionwidget5base.cpp ; exit $$ret ; fi
+
+kpgcreatefunctionwidget5base.h: $(srcdir)/kpgcreatefunctionwidget5base.ui
+	rm -rf kpgcreatefunctionwidget5base.h;
+	$(UIC) $(srcdir)/kpgcreatefunctionwidget5base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatefunctionwidget5base.h ;
+kpgcreatefunctionwidget5base.moc: kpgcreatefunctionwidget5base.h
+	$(MOC) kpgcreatefunctionwidget5base.h -o kpgcreatefunctionwidget5base.moc
+
+kpgdropobjectwidget1base.cpp: $(srcdir)/kpgdropobjectwidget1base.ui kpgdropobjectwidget1base.h kpgdropobjectwidget1base.moc
+	rm -f kpgdropobjectwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgdropobjectwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgdropobjectwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdropobjectwidget1base.h $(srcdir)/kpgdropobjectwidget1base.ui > kpgdropobjectwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdropobjectwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdropobjectwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdropobjectwidget1base.cpp ;\
+	rm -f kpgdropobjectwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdropobjectwidget1base.moc"' >> kpgdropobjectwidget1base.cpp; else rm -f kpgdropobjectwidget1base.cpp ; exit $$ret ; fi
+
+kpgdropobjectwidget1base.h: $(srcdir)/kpgdropobjectwidget1base.ui
+	rm -rf kpgdropobjectwidget1base.h;
+	$(UIC) $(srcdir)/kpgdropobjectwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdropobjectwidget1base.h ;
+kpgdropobjectwidget1base.moc: kpgdropobjectwidget1base.h
+	$(MOC) kpgdropobjectwidget1base.h -o kpgdropobjectwidget1base.moc
+
+kpg6stepswizardbase.cpp: $(srcdir)/kpg6stepswizardbase.ui kpg6stepswizardbase.h kpg6stepswizardbase.moc
+	rm -f kpg6stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg6stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg6stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg6stepswizardbase.h $(srcdir)/kpg6stepswizardbase.ui > kpg6stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg6stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg6stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg6stepswizardbase.cpp ;\
+	rm -f kpg6stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg6stepswizardbase.moc"' >> kpg6stepswizardbase.cpp; else rm -f kpg6stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg6stepswizardbase.h: $(srcdir)/kpg6stepswizardbase.ui
+	rm -rf kpg6stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg6stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg6stepswizardbase.h ;
+kpg6stepswizardbase.moc: kpg6stepswizardbase.h
+	$(MOC) kpg6stepswizardbase.h -o kpg6stepswizardbase.moc
+
+kpgcreateviewwidget2base.cpp: $(srcdir)/kpgcreateviewwidget2base.ui kpgcreateviewwidget2base.h kpgcreateviewwidget2base.moc
+	rm -f kpgcreateviewwidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreateviewwidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreateviewwidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateviewwidget2base.h $(srcdir)/kpgcreateviewwidget2base.ui > kpgcreateviewwidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateviewwidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateviewwidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateviewwidget2base.cpp ;\
+	rm -f kpgcreateviewwidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateviewwidget2base.moc"' >> kpgcreateviewwidget2base.cpp; else rm -f kpgcreateviewwidget2base.cpp ; exit $$ret ; fi
+
+kpgcreateviewwidget2base.h: $(srcdir)/kpgcreateviewwidget2base.ui
+	rm -rf kpgcreateviewwidget2base.h;
+	$(UIC) $(srcdir)/kpgcreateviewwidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateviewwidget2base.h ;
+kpgcreateviewwidget2base.moc: kpgcreateviewwidget2base.h
+	$(MOC) kpgcreateviewwidget2base.h -o kpgcreateviewwidget2base.moc
+
+kpgcreatetypewidget3base.cpp: $(srcdir)/kpgcreatetypewidget3base.ui kpgcreatetypewidget3base.h kpgcreatetypewidget3base.moc
+	rm -f kpgcreatetypewidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetypewidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetypewidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetypewidget3base.h $(srcdir)/kpgcreatetypewidget3base.ui > kpgcreatetypewidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetypewidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetypewidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetypewidget3base.cpp ;\
+	rm -f kpgcreatetypewidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetypewidget3base.moc"' >> kpgcreatetypewidget3base.cpp; else rm -f kpgcreatetypewidget3base.cpp ; exit $$ret ; fi
+
+kpgcreatetypewidget3base.h: $(srcdir)/kpgcreatetypewidget3base.ui
+	rm -rf kpgcreatetypewidget3base.h;
+	$(UIC) $(srcdir)/kpgcreatetypewidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetypewidget3base.h ;
+kpgcreatetypewidget3base.moc: kpgcreatetypewidget3base.h
+	$(MOC) kpgcreatetypewidget3base.h -o kpgcreatetypewidget3base.moc
+
+kpgsetownerwidget1base.cpp: $(srcdir)/kpgsetownerwidget1base.ui kpgsetownerwidget1base.h kpgsetownerwidget1base.moc
+	rm -f kpgsetownerwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgsetownerwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgsetownerwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsetownerwidget1base.h $(srcdir)/kpgsetownerwidget1base.ui > kpgsetownerwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsetownerwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsetownerwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsetownerwidget1base.cpp ;\
+	rm -f kpgsetownerwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsetownerwidget1base.moc"' >> kpgsetownerwidget1base.cpp; else rm -f kpgsetownerwidget1base.cpp ; exit $$ret ; fi
+
+kpgsetownerwidget1base.h: $(srcdir)/kpgsetownerwidget1base.ui
+	rm -rf kpgsetownerwidget1base.h;
+	$(UIC) $(srcdir)/kpgsetownerwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsetownerwidget1base.h ;
+kpgsetownerwidget1base.moc: kpgsetownerwidget1base.h
+	$(MOC) kpgsetownerwidget1base.h -o kpgsetownerwidget1base.moc
+
+kpganalysetablewidget1base.cpp: $(srcdir)/kpganalysetablewidget1base.ui kpganalysetablewidget1base.h kpganalysetablewidget1base.moc
+	rm -f kpganalysetablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpganalysetablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpganalysetablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpganalysetablewidget1base.h $(srcdir)/kpganalysetablewidget1base.ui > kpganalysetablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpganalysetablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpganalysetablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpganalysetablewidget1base.cpp ;\
+	rm -f kpganalysetablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpganalysetablewidget1base.moc"' >> kpganalysetablewidget1base.cpp; else rm -f kpganalysetablewidget1base.cpp ; exit $$ret ; fi
+
+kpganalysetablewidget1base.h: $(srcdir)/kpganalysetablewidget1base.ui
+	rm -rf kpganalysetablewidget1base.h;
+	$(UIC) $(srcdir)/kpganalysetablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpganalysetablewidget1base.h ;
+kpganalysetablewidget1base.moc: kpganalysetablewidget1base.h
+	$(MOC) kpganalysetablewidget1base.h -o kpganalysetablewidget1base.moc
+
+kpgmodifycolumndefaultwidget1base.cpp: $(srcdir)/kpgmodifycolumndefaultwidget1base.ui kpgmodifycolumndefaultwidget1base.h kpgmodifycolumndefaultwidget1base.moc
+	rm -f kpgmodifycolumndefaultwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifycolumndefaultwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifycolumndefaultwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifycolumndefaultwidget1base.h $(srcdir)/kpgmodifycolumndefaultwidget1base.ui > kpgmodifycolumndefaultwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifycolumndefaultwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifycolumndefaultwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifycolumndefaultwidget1base.cpp ;\
+	rm -f kpgmodifycolumndefaultwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifycolumndefaultwidget1base.moc"' >> kpgmodifycolumndefaultwidget1base.cpp; else rm -f kpgmodifycolumndefaultwidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifycolumndefaultwidget1base.h: $(srcdir)/kpgmodifycolumndefaultwidget1base.ui
+	rm -rf kpgmodifycolumndefaultwidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifycolumndefaultwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifycolumndefaultwidget1base.h ;
+kpgmodifycolumndefaultwidget1base.moc: kpgmodifycolumndefaultwidget1base.h
+	$(MOC) kpgmodifycolumndefaultwidget1base.h -o kpgmodifycolumndefaultwidget1base.moc
+
+kpgrestoredatabasewizardbase.cpp: $(srcdir)/kpgrestoredatabasewizardbase.ui kpgrestoredatabasewizardbase.h kpgrestoredatabasewizardbase.moc
+	rm -f kpgrestoredatabasewizardbase.cpp
+	echo '#include <kdialog.h>' > kpgrestoredatabasewizardbase.cpp
+	echo '#include <klocale.h>' >> kpgrestoredatabasewizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgrestoredatabasewizardbase.h $(srcdir)/kpgrestoredatabasewizardbase.ui > kpgrestoredatabasewizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgrestoredatabasewizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgrestoredatabasewizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgrestoredatabasewizardbase.cpp ;\
+	rm -f kpgrestoredatabasewizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgrestoredatabasewizardbase.moc"' >> kpgrestoredatabasewizardbase.cpp; else rm -f kpgrestoredatabasewizardbase.cpp ; exit $$ret ; fi
+
+kpgrestoredatabasewizardbase.h: $(srcdir)/kpgrestoredatabasewizardbase.ui
+	rm -rf kpgrestoredatabasewizardbase.h;
+	$(UIC) $(srcdir)/kpgrestoredatabasewizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgrestoredatabasewizardbase.h ;
+kpgrestoredatabasewizardbase.moc: kpgrestoredatabasewizardbase.h
+	$(MOC) kpgrestoredatabasewizardbase.h -o kpgrestoredatabasewizardbase.moc
+
+kpgcreatefunctionwidget4base.cpp: $(srcdir)/kpgcreatefunctionwidget4base.ui kpgcreatefunctionwidget4base.h kpgcreatefunctionwidget4base.moc
+	rm -f kpgcreatefunctionwidget4base.cpp
+	echo '#include <kdialog.h>' > kpgcreatefunctionwidget4base.cpp
+	echo '#include <klocale.h>' >> kpgcreatefunctionwidget4base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatefunctionwidget4base.h $(srcdir)/kpgcreatefunctionwidget4base.ui > kpgcreatefunctionwidget4base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatefunctionwidget4base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatefunctionwidget4base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatefunctionwidget4base.cpp ;\
+	rm -f kpgcreatefunctionwidget4base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatefunctionwidget4base.moc"' >> kpgcreatefunctionwidget4base.cpp; else rm -f kpgcreatefunctionwidget4base.cpp ; exit $$ret ; fi
+
+kpgcreatefunctionwidget4base.h: $(srcdir)/kpgcreatefunctionwidget4base.ui
+	rm -rf kpgcreatefunctionwidget4base.h;
+	$(UIC) $(srcdir)/kpgcreatefunctionwidget4base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatefunctionwidget4base.h ;
+kpgcreatefunctionwidget4base.moc: kpgcreatefunctionwidget4base.h
+	$(MOC) kpgcreatefunctionwidget4base.h -o kpgcreatefunctionwidget4base.moc
+
+kpgcreategroupwidget1base.cpp: $(srcdir)/kpgcreategroupwidget1base.ui kpgcreategroupwidget1base.h kpgcreategroupwidget1base.moc
+	rm -f kpgcreategroupwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreategroupwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreategroupwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreategroupwidget1base.h $(srcdir)/kpgcreategroupwidget1base.ui > kpgcreategroupwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreategroupwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreategroupwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreategroupwidget1base.cpp ;\
+	rm -f kpgcreategroupwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreategroupwidget1base.moc"' >> kpgcreategroupwidget1base.cpp; else rm -f kpgcreategroupwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreategroupwidget1base.h: $(srcdir)/kpgcreategroupwidget1base.ui
+	rm -rf kpgcreategroupwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreategroupwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreategroupwidget1base.h ;
+kpgcreategroupwidget1base.moc: kpgcreategroupwidget1base.h
+	$(MOC) kpgcreategroupwidget1base.h -o kpgcreategroupwidget1base.moc
+
+kpgcreatetypewidget2base.cpp: $(srcdir)/kpgcreatetypewidget2base.ui kpgcreatetypewidget2base.h kpgcreatetypewidget2base.moc
+	rm -f kpgcreatetypewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetypewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetypewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetypewidget2base.h $(srcdir)/kpgcreatetypewidget2base.ui > kpgcreatetypewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetypewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetypewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetypewidget2base.cpp ;\
+	rm -f kpgcreatetypewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetypewidget2base.moc"' >> kpgcreatetypewidget2base.cpp; else rm -f kpgcreatetypewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatetypewidget2base.h: $(srcdir)/kpgcreatetypewidget2base.ui
+	rm -rf kpgcreatetypewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatetypewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetypewidget2base.h ;
+kpgcreatetypewidget2base.moc: kpgcreatetypewidget2base.h
+	$(MOC) kpgcreatetypewidget2base.h -o kpgcreatetypewidget2base.moc
+
+kpgmodifycolumnstoragewidget1base.cpp: $(srcdir)/kpgmodifycolumnstoragewidget1base.ui kpgmodifycolumnstoragewidget1base.h kpgmodifycolumnstoragewidget1base.moc
+	rm -f kpgmodifycolumnstoragewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifycolumnstoragewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifycolumnstoragewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifycolumnstoragewidget1base.h $(srcdir)/kpgmodifycolumnstoragewidget1base.ui > kpgmodifycolumnstoragewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifycolumnstoragewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifycolumnstoragewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifycolumnstoragewidget1base.cpp ;\
+	rm -f kpgmodifycolumnstoragewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifycolumnstoragewidget1base.moc"' >> kpgmodifycolumnstoragewidget1base.cpp; else rm -f kpgmodifycolumnstoragewidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifycolumnstoragewidget1base.h: $(srcdir)/kpgmodifycolumnstoragewidget1base.ui
+	rm -rf kpgmodifycolumnstoragewidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifycolumnstoragewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifycolumnstoragewidget1base.h ;
+kpgmodifycolumnstoragewidget1base.moc: kpgmodifycolumnstoragewidget1base.h
+	$(MOC) kpgmodifycolumnstoragewidget1base.h -o kpgmodifycolumnstoragewidget1base.moc
+
+kpg7stepswizardbase.cpp: $(srcdir)/kpg7stepswizardbase.ui kpg7stepswizardbase.h kpg7stepswizardbase.moc
+	rm -f kpg7stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg7stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg7stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg7stepswizardbase.h $(srcdir)/kpg7stepswizardbase.ui > kpg7stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg7stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg7stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg7stepswizardbase.cpp ;\
+	rm -f kpg7stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg7stepswizardbase.moc"' >> kpg7stepswizardbase.cpp; else rm -f kpg7stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg7stepswizardbase.h: $(srcdir)/kpg7stepswizardbase.ui
+	rm -rf kpg7stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg7stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg7stepswizardbase.h ;
+kpg7stepswizardbase.moc: kpg7stepswizardbase.h
+	$(MOC) kpg7stepswizardbase.h -o kpg7stepswizardbase.moc
+
+kpgcreatetablespacewidget2base.cpp: $(srcdir)/kpgcreatetablespacewidget2base.ui kpgcreatetablespacewidget2base.h kpgcreatetablespacewidget2base.moc
+	rm -f kpgcreatetablespacewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablespacewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablespacewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablespacewidget2base.h $(srcdir)/kpgcreatetablespacewidget2base.ui > kpgcreatetablespacewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablespacewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablespacewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablespacewidget2base.cpp ;\
+	rm -f kpgcreatetablespacewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablespacewidget2base.moc"' >> kpgcreatetablespacewidget2base.cpp; else rm -f kpgcreatetablespacewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatetablespacewidget2base.h: $(srcdir)/kpgcreatetablespacewidget2base.ui
+	rm -rf kpgcreatetablespacewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatetablespacewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablespacewidget2base.h ;
+kpgcreatetablespacewidget2base.moc: kpgcreatetablespacewidget2base.h
+	$(MOC) kpgcreatetablespacewidget2base.h -o kpgcreatetablespacewidget2base.moc
+
+kpgcreateschemawidget2base.cpp: $(srcdir)/kpgcreateschemawidget2base.ui kpgcreateschemawidget2base.h kpgcreateschemawidget2base.moc
+	rm -f kpgcreateschemawidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreateschemawidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreateschemawidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateschemawidget2base.h $(srcdir)/kpgcreateschemawidget2base.ui > kpgcreateschemawidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateschemawidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateschemawidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateschemawidget2base.cpp ;\
+	rm -f kpgcreateschemawidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateschemawidget2base.moc"' >> kpgcreateschemawidget2base.cpp; else rm -f kpgcreateschemawidget2base.cpp ; exit $$ret ; fi
+
+kpgcreateschemawidget2base.h: $(srcdir)/kpgcreateschemawidget2base.ui
+	rm -rf kpgcreateschemawidget2base.h;
+	$(UIC) $(srcdir)/kpgcreateschemawidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateschemawidget2base.h ;
+kpgcreateschemawidget2base.moc: kpgcreateschemawidget2base.h
+	$(MOC) kpgcreateschemawidget2base.h -o kpgcreateschemawidget2base.moc
+
+kpgcreatelanguagewidget1base.cpp: $(srcdir)/kpgcreatelanguagewidget1base.ui kpgcreatelanguagewidget1base.h kpgcreatelanguagewidget1base.moc
+	rm -f kpgcreatelanguagewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatelanguagewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatelanguagewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatelanguagewidget1base.h $(srcdir)/kpgcreatelanguagewidget1base.ui > kpgcreatelanguagewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatelanguagewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatelanguagewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatelanguagewidget1base.cpp ;\
+	rm -f kpgcreatelanguagewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatelanguagewidget1base.moc"' >> kpgcreatelanguagewidget1base.cpp; else rm -f kpgcreatelanguagewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatelanguagewidget1base.h: $(srcdir)/kpgcreatelanguagewidget1base.ui
+	rm -rf kpgcreatelanguagewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatelanguagewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatelanguagewidget1base.h ;
+kpgcreatelanguagewidget1base.moc: kpgcreatelanguagewidget1base.h
+	$(MOC) kpgcreatelanguagewidget1base.h -o kpgcreatelanguagewidget1base.moc
+
+kpgcreatedomainwidget2base.cpp: $(srcdir)/kpgcreatedomainwidget2base.ui kpgcreatedomainwidget2base.h kpgcreatedomainwidget2base.moc
+	rm -f kpgcreatedomainwidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatedomainwidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatedomainwidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatedomainwidget2base.h $(srcdir)/kpgcreatedomainwidget2base.ui > kpgcreatedomainwidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatedomainwidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatedomainwidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatedomainwidget2base.cpp ;\
+	rm -f kpgcreatedomainwidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatedomainwidget2base.moc"' >> kpgcreatedomainwidget2base.cpp; else rm -f kpgcreatedomainwidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatedomainwidget2base.h: $(srcdir)/kpgcreatedomainwidget2base.ui
+	rm -rf kpgcreatedomainwidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatedomainwidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatedomainwidget2base.h ;
+kpgcreatedomainwidget2base.moc: kpgcreatedomainwidget2base.h
+	$(MOC) kpgcreatedomainwidget2base.h -o kpgcreatedomainwidget2base.moc
+
+kpgcreateschemawidget1base.cpp: $(srcdir)/kpgcreateschemawidget1base.ui kpgcreateschemawidget1base.h kpgcreateschemawidget1base.moc
+	rm -f kpgcreateschemawidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreateschemawidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreateschemawidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateschemawidget1base.h $(srcdir)/kpgcreateschemawidget1base.ui > kpgcreateschemawidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateschemawidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateschemawidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateschemawidget1base.cpp ;\
+	rm -f kpgcreateschemawidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateschemawidget1base.moc"' >> kpgcreateschemawidget1base.cpp; else rm -f kpgcreateschemawidget1base.cpp ; exit $$ret ; fi
+
+kpgcreateschemawidget1base.h: $(srcdir)/kpgcreateschemawidget1base.ui
+	rm -rf kpgcreateschemawidget1base.h;
+	$(UIC) $(srcdir)/kpgcreateschemawidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateschemawidget1base.h ;
+kpgcreateschemawidget1base.moc: kpgcreateschemawidget1base.h
+	$(MOC) kpgcreateschemawidget1base.h -o kpgcreateschemawidget1base.moc
+
+kpgcreatelanguagewidget2base.cpp: $(srcdir)/kpgcreatelanguagewidget2base.ui kpgcreatelanguagewidget2base.h kpgcreatelanguagewidget2base.moc
+	rm -f kpgcreatelanguagewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatelanguagewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatelanguagewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatelanguagewidget2base.h $(srcdir)/kpgcreatelanguagewidget2base.ui > kpgcreatelanguagewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatelanguagewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatelanguagewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatelanguagewidget2base.cpp ;\
+	rm -f kpgcreatelanguagewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatelanguagewidget2base.moc"' >> kpgcreatelanguagewidget2base.cpp; else rm -f kpgcreatelanguagewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatelanguagewidget2base.h: $(srcdir)/kpgcreatelanguagewidget2base.ui
+	rm -rf kpgcreatelanguagewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatelanguagewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatelanguagewidget2base.h ;
+kpgcreatelanguagewidget2base.moc: kpgcreatelanguagewidget2base.h
+	$(MOC) kpgcreatelanguagewidget2base.h -o kpgcreatelanguagewidget2base.moc
+
+kpgcreateuserwidget1base.cpp: $(srcdir)/kpgcreateuserwidget1base.ui kpgcreateuserwidget1base.h kpgcreateuserwidget1base.moc
+	rm -f kpgcreateuserwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreateuserwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreateuserwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateuserwidget1base.h $(srcdir)/kpgcreateuserwidget1base.ui > kpgcreateuserwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateuserwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateuserwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateuserwidget1base.cpp ;\
+	rm -f kpgcreateuserwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateuserwidget1base.moc"' >> kpgcreateuserwidget1base.cpp; else rm -f kpgcreateuserwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreateuserwidget1base.h: $(srcdir)/kpgcreateuserwidget1base.ui
+	rm -rf kpgcreateuserwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreateuserwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateuserwidget1base.h ;
+kpgcreateuserwidget1base.moc: kpgcreateuserwidget1base.h
+	$(MOC) kpgcreateuserwidget1base.h -o kpgcreateuserwidget1base.moc
+
+kpgcreaterulewidget1base.cpp: $(srcdir)/kpgcreaterulewidget1base.ui kpgcreaterulewidget1base.h kpgcreaterulewidget1base.moc
+	rm -f kpgcreaterulewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreaterulewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreaterulewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreaterulewidget1base.h $(srcdir)/kpgcreaterulewidget1base.ui > kpgcreaterulewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreaterulewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreaterulewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreaterulewidget1base.cpp ;\
+	rm -f kpgcreaterulewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreaterulewidget1base.moc"' >> kpgcreaterulewidget1base.cpp; else rm -f kpgcreaterulewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreaterulewidget1base.h: $(srcdir)/kpgcreaterulewidget1base.ui
+	rm -rf kpgcreaterulewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreaterulewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreaterulewidget1base.h ;
+kpgcreaterulewidget1base.moc: kpgcreaterulewidget1base.h
+	$(MOC) kpgcreaterulewidget1base.h -o kpgcreaterulewidget1base.moc
+
+kpgcreatedatabasewidget2base.cpp: $(srcdir)/kpgcreatedatabasewidget2base.ui kpgcreatedatabasewidget2base.h kpgcreatedatabasewidget2base.moc
+	rm -f kpgcreatedatabasewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatedatabasewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatedatabasewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatedatabasewidget2base.h $(srcdir)/kpgcreatedatabasewidget2base.ui > kpgcreatedatabasewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatedatabasewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatedatabasewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatedatabasewidget2base.cpp ;\
+	rm -f kpgcreatedatabasewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatedatabasewidget2base.moc"' >> kpgcreatedatabasewidget2base.cpp; else rm -f kpgcreatedatabasewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatedatabasewidget2base.h: $(srcdir)/kpgcreatedatabasewidget2base.ui
+	rm -rf kpgcreatedatabasewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatedatabasewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatedatabasewidget2base.h ;
+kpgcreatedatabasewidget2base.moc: kpgcreatedatabasewidget2base.h
+	$(MOC) kpgcreatedatabasewidget2base.h -o kpgcreatedatabasewidget2base.moc
+
+kpgcreatefunctionwidget2base.cpp: $(srcdir)/kpgcreatefunctionwidget2base.ui kpgcreatefunctionwidget2base.h kpgcreatefunctionwidget2base.moc
+	rm -f kpgcreatefunctionwidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatefunctionwidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatefunctionwidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatefunctionwidget2base.h $(srcdir)/kpgcreatefunctionwidget2base.ui > kpgcreatefunctionwidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatefunctionwidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatefunctionwidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatefunctionwidget2base.cpp ;\
+	rm -f kpgcreatefunctionwidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatefunctionwidget2base.moc"' >> kpgcreatefunctionwidget2base.cpp; else rm -f kpgcreatefunctionwidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatefunctionwidget2base.h: $(srcdir)/kpgcreatefunctionwidget2base.ui
+	rm -rf kpgcreatefunctionwidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatefunctionwidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatefunctionwidget2base.h ;
+kpgcreatefunctionwidget2base.moc: kpgcreatefunctionwidget2base.h
+	$(MOC) kpgcreatefunctionwidget2base.h -o kpgcreatefunctionwidget2base.moc
+
+kpgcreatesequencewidget1base.cpp: $(srcdir)/kpgcreatesequencewidget1base.ui kpgcreatesequencewidget1base.h kpgcreatesequencewidget1base.moc
+	rm -f kpgcreatesequencewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatesequencewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatesequencewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatesequencewidget1base.h $(srcdir)/kpgcreatesequencewidget1base.ui > kpgcreatesequencewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatesequencewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatesequencewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatesequencewidget1base.cpp ;\
+	rm -f kpgcreatesequencewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatesequencewidget1base.moc"' >> kpgcreatesequencewidget1base.cpp; else rm -f kpgcreatesequencewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatesequencewidget1base.h: $(srcdir)/kpgcreatesequencewidget1base.ui
+	rm -rf kpgcreatesequencewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatesequencewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatesequencewidget1base.h ;
+kpgcreatesequencewidget1base.moc: kpgcreatesequencewidget1base.h
+	$(MOC) kpgcreatesequencewidget1base.h -o kpgcreatesequencewidget1base.moc
+
+kpgcreatedomainwidget1base.cpp: $(srcdir)/kpgcreatedomainwidget1base.ui kpgcreatedomainwidget1base.h kpgcreatedomainwidget1base.moc
+	rm -f kpgcreatedomainwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatedomainwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatedomainwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatedomainwidget1base.h $(srcdir)/kpgcreatedomainwidget1base.ui > kpgcreatedomainwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatedomainwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatedomainwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatedomainwidget1base.cpp ;\
+	rm -f kpgcreatedomainwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatedomainwidget1base.moc"' >> kpgcreatedomainwidget1base.cpp; else rm -f kpgcreatedomainwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatedomainwidget1base.h: $(srcdir)/kpgcreatedomainwidget1base.ui
+	rm -rf kpgcreatedomainwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatedomainwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatedomainwidget1base.h ;
+kpgcreatedomainwidget1base.moc: kpgcreatedomainwidget1base.h
+	$(MOC) kpgcreatedomainwidget1base.h -o kpgcreatedomainwidget1base.moc
+
+kpgcreatefunctionwidget3base.cpp: $(srcdir)/kpgcreatefunctionwidget3base.ui kpgcreatefunctionwidget3base.h kpgcreatefunctionwidget3base.moc
+	rm -f kpgcreatefunctionwidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcreatefunctionwidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcreatefunctionwidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatefunctionwidget3base.h $(srcdir)/kpgcreatefunctionwidget3base.ui > kpgcreatefunctionwidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatefunctionwidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatefunctionwidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatefunctionwidget3base.cpp ;\
+	rm -f kpgcreatefunctionwidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatefunctionwidget3base.moc"' >> kpgcreatefunctionwidget3base.cpp; else rm -f kpgcreatefunctionwidget3base.cpp ; exit $$ret ; fi
+
+kpgcreatefunctionwidget3base.h: $(srcdir)/kpgcreatefunctionwidget3base.ui
+	rm -rf kpgcreatefunctionwidget3base.h;
+	$(UIC) $(srcdir)/kpgcreatefunctionwidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatefunctionwidget3base.h ;
+kpgcreatefunctionwidget3base.moc: kpgcreatefunctionwidget3base.h
+	$(MOC) kpgcreatefunctionwidget3base.h -o kpgcreatefunctionwidget3base.moc
+
+kpgcreatedomainwidget3base.cpp: $(srcdir)/kpgcreatedomainwidget3base.ui kpgcreatedomainwidget3base.h kpgcreatedomainwidget3base.moc
+	rm -f kpgcreatedomainwidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcreatedomainwidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcreatedomainwidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatedomainwidget3base.h $(srcdir)/kpgcreatedomainwidget3base.ui > kpgcreatedomainwidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatedomainwidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatedomainwidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatedomainwidget3base.cpp ;\
+	rm -f kpgcreatedomainwidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatedomainwidget3base.moc"' >> kpgcreatedomainwidget3base.cpp; else rm -f kpgcreatedomainwidget3base.cpp ; exit $$ret ; fi
+
+kpgcreatedomainwidget3base.h: $(srcdir)/kpgcreatedomainwidget3base.ui
+	rm -rf kpgcreatedomainwidget3base.h;
+	$(UIC) $(srcdir)/kpgcreatedomainwidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatedomainwidget3base.h ;
+kpgcreatedomainwidget3base.moc: kpgcreatedomainwidget3base.h
+	$(MOC) kpgcreatedomainwidget3base.h -o kpgcreatedomainwidget3base.moc
+
+kpgcreatetriggerwidget1base.cpp: $(srcdir)/kpgcreatetriggerwidget1base.ui kpgcreatetriggerwidget1base.h kpgcreatetriggerwidget1base.moc
+	rm -f kpgcreatetriggerwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetriggerwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetriggerwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetriggerwidget1base.h $(srcdir)/kpgcreatetriggerwidget1base.ui > kpgcreatetriggerwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetriggerwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetriggerwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetriggerwidget1base.cpp ;\
+	rm -f kpgcreatetriggerwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetriggerwidget1base.moc"' >> kpgcreatetriggerwidget1base.cpp; else rm -f kpgcreatetriggerwidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatetriggerwidget1base.h: $(srcdir)/kpgcreatetriggerwidget1base.ui
+	rm -rf kpgcreatetriggerwidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatetriggerwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetriggerwidget1base.h ;
+kpgcreatetriggerwidget1base.moc: kpgcreatetriggerwidget1base.h
+	$(MOC) kpgcreatetriggerwidget1base.h -o kpgcreatetriggerwidget1base.moc
+
+kpgcreatecompositetypewidget2base.cpp: $(srcdir)/kpgcreatecompositetypewidget2base.ui kpgcreatecompositetypewidget2base.h kpgcreatecompositetypewidget2base.moc
+	rm -f kpgcreatecompositetypewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatecompositetypewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatecompositetypewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatecompositetypewidget2base.h $(srcdir)/kpgcreatecompositetypewidget2base.ui > kpgcreatecompositetypewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatecompositetypewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatecompositetypewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatecompositetypewidget2base.cpp ;\
+	rm -f kpgcreatecompositetypewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatecompositetypewidget2base.moc"' >> kpgcreatecompositetypewidget2base.cpp; else rm -f kpgcreatecompositetypewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatecompositetypewidget2base.h: $(srcdir)/kpgcreatecompositetypewidget2base.ui
+	rm -rf kpgcreatecompositetypewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatecompositetypewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatecompositetypewidget2base.h ;
+kpgcreatecompositetypewidget2base.moc: kpgcreatecompositetypewidget2base.h
+	$(MOC) kpgcreatecompositetypewidget2base.h -o kpgcreatecompositetypewidget2base.moc
+
+kpgrenameobjectwidget1base.cpp: $(srcdir)/kpgrenameobjectwidget1base.ui kpgrenameobjectwidget1base.h kpgrenameobjectwidget1base.moc
+	rm -f kpgrenameobjectwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgrenameobjectwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgrenameobjectwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgrenameobjectwidget1base.h $(srcdir)/kpgrenameobjectwidget1base.ui > kpgrenameobjectwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgrenameobjectwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgrenameobjectwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgrenameobjectwidget1base.cpp ;\
+	rm -f kpgrenameobjectwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgrenameobjectwidget1base.moc"' >> kpgrenameobjectwidget1base.cpp; else rm -f kpgrenameobjectwidget1base.cpp ; exit $$ret ; fi
+
+kpgrenameobjectwidget1base.h: $(srcdir)/kpgrenameobjectwidget1base.ui
+	rm -rf kpgrenameobjectwidget1base.h;
+	$(UIC) $(srcdir)/kpgrenameobjectwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgrenameobjectwidget1base.h ;
+kpgrenameobjectwidget1base.moc: kpgrenameobjectwidget1base.h
+	$(MOC) kpgrenameobjectwidget1base.h -o kpgrenameobjectwidget1base.moc
+
+kpgcreatetablespacewidget1base.cpp: $(srcdir)/kpgcreatetablespacewidget1base.ui kpgcreatetablespacewidget1base.h kpgcreatetablespacewidget1base.moc
+	rm -f kpgcreatetablespacewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablespacewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablespacewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablespacewidget1base.h $(srcdir)/kpgcreatetablespacewidget1base.ui > kpgcreatetablespacewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablespacewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablespacewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablespacewidget1base.cpp ;\
+	rm -f kpgcreatetablespacewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablespacewidget1base.moc"' >> kpgcreatetablespacewidget1base.cpp; else rm -f kpgcreatetablespacewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatetablespacewidget1base.h: $(srcdir)/kpgcreatetablespacewidget1base.ui
+	rm -rf kpgcreatetablespacewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatetablespacewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablespacewidget1base.h ;
+kpgcreatetablespacewidget1base.moc: kpgcreatetablespacewidget1base.h
+	$(MOC) kpgcreatetablespacewidget1base.h -o kpgcreatetablespacewidget1base.moc
+
+kpgsetclustertablewidget1base.cpp: $(srcdir)/kpgsetclustertablewidget1base.ui kpgsetclustertablewidget1base.h kpgsetclustertablewidget1base.moc
+	rm -f kpgsetclustertablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgsetclustertablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgsetclustertablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsetclustertablewidget1base.h $(srcdir)/kpgsetclustertablewidget1base.ui > kpgsetclustertablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsetclustertablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsetclustertablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsetclustertablewidget1base.cpp ;\
+	rm -f kpgsetclustertablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsetclustertablewidget1base.moc"' >> kpgsetclustertablewidget1base.cpp; else rm -f kpgsetclustertablewidget1base.cpp ; exit $$ret ; fi
+
+kpgsetclustertablewidget1base.h: $(srcdir)/kpgsetclustertablewidget1base.ui
+	rm -rf kpgsetclustertablewidget1base.h;
+	$(UIC) $(srcdir)/kpgsetclustertablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsetclustertablewidget1base.h ;
+kpgsetclustertablewidget1base.moc: kpgsetclustertablewidget1base.h
+	$(MOC) kpgsetclustertablewidget1base.h -o kpgsetclustertablewidget1base.moc
+
+kpgcopytablewidget2base.cpp: $(srcdir)/kpgcopytablewidget2base.ui kpgcopytablewidget2base.h kpgcopytablewidget2base.moc
+	rm -f kpgcopytablewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcopytablewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcopytablewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcopytablewidget2base.h $(srcdir)/kpgcopytablewidget2base.ui > kpgcopytablewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcopytablewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcopytablewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcopytablewidget2base.cpp ;\
+	rm -f kpgcopytablewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcopytablewidget2base.moc"' >> kpgcopytablewidget2base.cpp; else rm -f kpgcopytablewidget2base.cpp ; exit $$ret ; fi
+
+kpgcopytablewidget2base.h: $(srcdir)/kpgcopytablewidget2base.ui
+	rm -rf kpgcopytablewidget2base.h;
+	$(UIC) $(srcdir)/kpgcopytablewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcopytablewidget2base.h ;
+kpgcopytablewidget2base.moc: kpgcopytablewidget2base.h
+	$(MOC) kpgcopytablewidget2base.h -o kpgcopytablewidget2base.moc
+
+kpgcreatetablewidget1base.cpp: $(srcdir)/kpgcreatetablewidget1base.ui kpgcreatetablewidget1base.h kpgcreatetablewidget1base.moc
+	rm -f kpgcreatetablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablewidget1base.h $(srcdir)/kpgcreatetablewidget1base.ui > kpgcreatetablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablewidget1base.cpp ;\
+	rm -f kpgcreatetablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablewidget1base.moc"' >> kpgcreatetablewidget1base.cpp; else rm -f kpgcreatetablewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatetablewidget1base.h: $(srcdir)/kpgcreatetablewidget1base.ui
+	rm -rf kpgcreatetablewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatetablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablewidget1base.h ;
+kpgcreatetablewidget1base.moc: kpgcreatetablewidget1base.h
+	$(MOC) kpgcreatetablewidget1base.h -o kpgcreatetablewidget1base.moc
+
+kpgsettablespacewidget1base.cpp: $(srcdir)/kpgsettablespacewidget1base.ui kpgsettablespacewidget1base.h kpgsettablespacewidget1base.moc
+	rm -f kpgsettablespacewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgsettablespacewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgsettablespacewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgsettablespacewidget1base.h $(srcdir)/kpgsettablespacewidget1base.ui > kpgsettablespacewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgsettablespacewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgsettablespacewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgsettablespacewidget1base.cpp ;\
+	rm -f kpgsettablespacewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgsettablespacewidget1base.moc"' >> kpgsettablespacewidget1base.cpp; else rm -f kpgsettablespacewidget1base.cpp ; exit $$ret ; fi
+
+kpgsettablespacewidget1base.h: $(srcdir)/kpgsettablespacewidget1base.ui
+	rm -rf kpgsettablespacewidget1base.h;
+	$(UIC) $(srcdir)/kpgsettablespacewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgsettablespacewidget1base.h ;
+kpgsettablespacewidget1base.moc: kpgsettablespacewidget1base.h
+	$(MOC) kpgsettablespacewidget1base.h -o kpgsettablespacewidget1base.moc
+
+kpgmodifysequencewidget1base.cpp: $(srcdir)/kpgmodifysequencewidget1base.ui kpgmodifysequencewidget1base.h kpgmodifysequencewidget1base.moc
+	rm -f kpgmodifysequencewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifysequencewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifysequencewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifysequencewidget1base.h $(srcdir)/kpgmodifysequencewidget1base.ui > kpgmodifysequencewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifysequencewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifysequencewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifysequencewidget1base.cpp ;\
+	rm -f kpgmodifysequencewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifysequencewidget1base.moc"' >> kpgmodifysequencewidget1base.cpp; else rm -f kpgmodifysequencewidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifysequencewidget1base.h: $(srcdir)/kpgmodifysequencewidget1base.ui
+	rm -rf kpgmodifysequencewidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifysequencewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifysequencewidget1base.h ;
+kpgmodifysequencewidget1base.moc: kpgmodifysequencewidget1base.h
+	$(MOC) kpgmodifysequencewidget1base.h -o kpgmodifysequencewidget1base.moc
+
+kpgnewobjectdialogbase.cpp: $(srcdir)/kpgnewobjectdialogbase.ui kpgnewobjectdialogbase.h kpgnewobjectdialogbase.moc
+	rm -f kpgnewobjectdialogbase.cpp
+	echo '#include <kdialog.h>' > kpgnewobjectdialogbase.cpp
+	echo '#include <klocale.h>' >> kpgnewobjectdialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgnewobjectdialogbase.h $(srcdir)/kpgnewobjectdialogbase.ui > kpgnewobjectdialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgnewobjectdialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgnewobjectdialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgnewobjectdialogbase.cpp ;\
+	rm -f kpgnewobjectdialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgnewobjectdialogbase.moc"' >> kpgnewobjectdialogbase.cpp; else rm -f kpgnewobjectdialogbase.cpp ; exit $$ret ; fi
+
+kpgnewobjectdialogbase.h: $(srcdir)/kpgnewobjectdialogbase.ui
+	rm -rf kpgnewobjectdialogbase.h;
+	$(UIC) $(srcdir)/kpgnewobjectdialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgnewobjectdialogbase.h ;
+kpgnewobjectdialogbase.moc: kpgnewobjectdialogbase.h
+	$(MOC) kpgnewobjectdialogbase.h -o kpgnewobjectdialogbase.moc
+
+kpg2stepswizardbase.cpp: $(srcdir)/kpg2stepswizardbase.ui kpg2stepswizardbase.h kpg2stepswizardbase.moc
+	rm -f kpg2stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg2stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg2stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg2stepswizardbase.h $(srcdir)/kpg2stepswizardbase.ui > kpg2stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg2stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg2stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg2stepswizardbase.cpp ;\
+	rm -f kpg2stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg2stepswizardbase.moc"' >> kpg2stepswizardbase.cpp; else rm -f kpg2stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg2stepswizardbase.h: $(srcdir)/kpg2stepswizardbase.ui
+	rm -rf kpg2stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg2stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg2stepswizardbase.h ;
+kpg2stepswizardbase.moc: kpg2stepswizardbase.h
+	$(MOC) kpg2stepswizardbase.h -o kpg2stepswizardbase.moc
+
+kpgcreateuserwidget2base.cpp: $(srcdir)/kpgcreateuserwidget2base.ui kpgcreateuserwidget2base.h kpgcreateuserwidget2base.moc
+	rm -f kpgcreateuserwidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreateuserwidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreateuserwidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateuserwidget2base.h $(srcdir)/kpgcreateuserwidget2base.ui > kpgcreateuserwidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateuserwidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateuserwidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateuserwidget2base.cpp ;\
+	rm -f kpgcreateuserwidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateuserwidget2base.moc"' >> kpgcreateuserwidget2base.cpp; else rm -f kpgcreateuserwidget2base.cpp ; exit $$ret ; fi
+
+kpgcreateuserwidget2base.h: $(srcdir)/kpgcreateuserwidget2base.ui
+	rm -rf kpgcreateuserwidget2base.h;
+	$(UIC) $(srcdir)/kpgcreateuserwidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateuserwidget2base.h ;
+kpgcreateuserwidget2base.moc: kpgcreateuserwidget2base.h
+	$(MOC) kpgcreateuserwidget2base.h -o kpgcreateuserwidget2base.moc
+
+kpgcreateviewwidget3base.cpp: $(srcdir)/kpgcreateviewwidget3base.ui kpgcreateviewwidget3base.h kpgcreateviewwidget3base.moc
+	rm -f kpgcreateviewwidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcreateviewwidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcreateviewwidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreateviewwidget3base.h $(srcdir)/kpgcreateviewwidget3base.ui > kpgcreateviewwidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreateviewwidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreateviewwidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreateviewwidget3base.cpp ;\
+	rm -f kpgcreateviewwidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreateviewwidget3base.moc"' >> kpgcreateviewwidget3base.cpp; else rm -f kpgcreateviewwidget3base.cpp ; exit $$ret ; fi
+
+kpgcreateviewwidget3base.h: $(srcdir)/kpgcreateviewwidget3base.ui
+	rm -rf kpgcreateviewwidget3base.h;
+	$(UIC) $(srcdir)/kpgcreateviewwidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreateviewwidget3base.h ;
+kpgcreateviewwidget3base.moc: kpgcreateviewwidget3base.h
+	$(MOC) kpgcreateviewwidget3base.h -o kpgcreateviewwidget3base.moc
+
+kpgcopytablewidget3base.cpp: $(srcdir)/kpgcopytablewidget3base.ui kpgcopytablewidget3base.h kpgcopytablewidget3base.moc
+	rm -f kpgcopytablewidget3base.cpp
+	echo '#include <kdialog.h>' > kpgcopytablewidget3base.cpp
+	echo '#include <klocale.h>' >> kpgcopytablewidget3base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcopytablewidget3base.h $(srcdir)/kpgcopytablewidget3base.ui > kpgcopytablewidget3base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcopytablewidget3base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcopytablewidget3base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcopytablewidget3base.cpp ;\
+	rm -f kpgcopytablewidget3base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcopytablewidget3base.moc"' >> kpgcopytablewidget3base.cpp; else rm -f kpgcopytablewidget3base.cpp ; exit $$ret ; fi
+
+kpgcopytablewidget3base.h: $(srcdir)/kpgcopytablewidget3base.ui
+	rm -rf kpgcopytablewidget3base.h;
+	$(UIC) $(srcdir)/kpgcopytablewidget3base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcopytablewidget3base.h ;
+kpgcopytablewidget3base.moc: kpgcopytablewidget3base.h
+	$(MOC) kpgcopytablewidget3base.h -o kpgcopytablewidget3base.moc
+
+kpgmodifyviewwidget1base.cpp: $(srcdir)/kpgmodifyviewwidget1base.ui kpgmodifyviewwidget1base.h kpgmodifyviewwidget1base.moc
+	rm -f kpgmodifyviewwidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifyviewwidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifyviewwidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifyviewwidget1base.h $(srcdir)/kpgmodifyviewwidget1base.ui > kpgmodifyviewwidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifyviewwidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifyviewwidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifyviewwidget1base.cpp ;\
+	rm -f kpgmodifyviewwidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifyviewwidget1base.moc"' >> kpgmodifyviewwidget1base.cpp; else rm -f kpgmodifyviewwidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifyviewwidget1base.h: $(srcdir)/kpgmodifyviewwidget1base.ui
+	rm -rf kpgmodifyviewwidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifyviewwidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifyviewwidget1base.h ;
+kpgmodifyviewwidget1base.moc: kpgmodifyviewwidget1base.h
+	$(MOC) kpgmodifyviewwidget1base.h -o kpgmodifyviewwidget1base.moc
+
+kpgcreatetypewidget1base.cpp: $(srcdir)/kpgcreatetypewidget1base.ui kpgcreatetypewidget1base.h kpgcreatetypewidget1base.moc
+	rm -f kpgcreatetypewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetypewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetypewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetypewidget1base.h $(srcdir)/kpgcreatetypewidget1base.ui > kpgcreatetypewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetypewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetypewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetypewidget1base.cpp ;\
+	rm -f kpgcreatetypewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetypewidget1base.moc"' >> kpgcreatetypewidget1base.cpp; else rm -f kpgcreatetypewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatetypewidget1base.h: $(srcdir)/kpgcreatetypewidget1base.ui
+	rm -rf kpgcreatetypewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatetypewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetypewidget1base.h ;
+kpgcreatetypewidget1base.moc: kpgcreatetypewidget1base.h
+	$(MOC) kpgcreatetypewidget1base.h -o kpgcreatetypewidget1base.moc
+
+kpgmodifycolumnstatswidget1base.cpp: $(srcdir)/kpgmodifycolumnstatswidget1base.ui kpgmodifycolumnstatswidget1base.h kpgmodifycolumnstatswidget1base.moc
+	rm -f kpgmodifycolumnstatswidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifycolumnstatswidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifycolumnstatswidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifycolumnstatswidget1base.h $(srcdir)/kpgmodifycolumnstatswidget1base.ui > kpgmodifycolumnstatswidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifycolumnstatswidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifycolumnstatswidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifycolumnstatswidget1base.cpp ;\
+	rm -f kpgmodifycolumnstatswidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifycolumnstatswidget1base.moc"' >> kpgmodifycolumnstatswidget1base.cpp; else rm -f kpgmodifycolumnstatswidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifycolumnstatswidget1base.h: $(srcdir)/kpgmodifycolumnstatswidget1base.ui
+	rm -rf kpgmodifycolumnstatswidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifycolumnstatswidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifycolumnstatswidget1base.h ;
+kpgmodifycolumnstatswidget1base.moc: kpgmodifycolumnstatswidget1base.h
+	$(MOC) kpgmodifycolumnstatswidget1base.h -o kpgmodifycolumnstatswidget1base.moc
+
+kpgcreatedatabasewidget1base.cpp: $(srcdir)/kpgcreatedatabasewidget1base.ui kpgcreatedatabasewidget1base.h kpgcreatedatabasewidget1base.moc
+	rm -f kpgcreatedatabasewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcreatedatabasewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcreatedatabasewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatedatabasewidget1base.h $(srcdir)/kpgcreatedatabasewidget1base.ui > kpgcreatedatabasewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatedatabasewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatedatabasewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatedatabasewidget1base.cpp ;\
+	rm -f kpgcreatedatabasewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatedatabasewidget1base.moc"' >> kpgcreatedatabasewidget1base.cpp; else rm -f kpgcreatedatabasewidget1base.cpp ; exit $$ret ; fi
+
+kpgcreatedatabasewidget1base.h: $(srcdir)/kpgcreatedatabasewidget1base.ui
+	rm -rf kpgcreatedatabasewidget1base.h;
+	$(UIC) $(srcdir)/kpgcreatedatabasewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatedatabasewidget1base.h ;
+kpgcreatedatabasewidget1base.moc: kpgcreatedatabasewidget1base.h
+	$(MOC) kpgcreatedatabasewidget1base.h -o kpgcreatedatabasewidget1base.moc
+
+kpgmodifycolumntypewidget1base.cpp: $(srcdir)/kpgmodifycolumntypewidget1base.ui kpgmodifycolumntypewidget1base.h kpgmodifycolumntypewidget1base.moc
+	rm -f kpgmodifycolumntypewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgmodifycolumntypewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgmodifycolumntypewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgmodifycolumntypewidget1base.h $(srcdir)/kpgmodifycolumntypewidget1base.ui > kpgmodifycolumntypewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgmodifycolumntypewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgmodifycolumntypewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgmodifycolumntypewidget1base.cpp ;\
+	rm -f kpgmodifycolumntypewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgmodifycolumntypewidget1base.moc"' >> kpgmodifycolumntypewidget1base.cpp; else rm -f kpgmodifycolumntypewidget1base.cpp ; exit $$ret ; fi
+
+kpgmodifycolumntypewidget1base.h: $(srcdir)/kpgmodifycolumntypewidget1base.ui
+	rm -rf kpgmodifycolumntypewidget1base.h;
+	$(UIC) $(srcdir)/kpgmodifycolumntypewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgmodifycolumntypewidget1base.h ;
+kpgmodifycolumntypewidget1base.moc: kpgmodifycolumntypewidget1base.h
+	$(MOC) kpgmodifycolumntypewidget1base.h -o kpgmodifycolumntypewidget1base.moc
+
+kpgcopytotablewidget1base.cpp: $(srcdir)/kpgcopytotablewidget1base.ui kpgcopytotablewidget1base.h kpgcopytotablewidget1base.moc
+	rm -f kpgcopytotablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcopytotablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcopytotablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcopytotablewidget1base.h $(srcdir)/kpgcopytotablewidget1base.ui > kpgcopytotablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcopytotablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcopytotablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcopytotablewidget1base.cpp ;\
+	rm -f kpgcopytotablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcopytotablewidget1base.moc"' >> kpgcopytotablewidget1base.cpp; else rm -f kpgcopytotablewidget1base.cpp ; exit $$ret ; fi
+
+kpgcopytotablewidget1base.h: $(srcdir)/kpgcopytotablewidget1base.ui
+	rm -rf kpgcopytotablewidget1base.h;
+	$(UIC) $(srcdir)/kpgcopytotablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcopytotablewidget1base.h ;
+kpgcopytotablewidget1base.moc: kpgcopytotablewidget1base.h
+	$(MOC) kpgcopytotablewidget1base.h -o kpgcopytotablewidget1base.moc
+
+kpgdumpdatabasewizardbase.cpp: $(srcdir)/kpgdumpdatabasewizardbase.ui kpgdumpdatabasewizardbase.h kpgdumpdatabasewizardbase.moc
+	rm -f kpgdumpdatabasewizardbase.cpp
+	echo '#include <kdialog.h>' > kpgdumpdatabasewizardbase.cpp
+	echo '#include <klocale.h>' >> kpgdumpdatabasewizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgdumpdatabasewizardbase.h $(srcdir)/kpgdumpdatabasewizardbase.ui > kpgdumpdatabasewizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgdumpdatabasewizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgdumpdatabasewizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgdumpdatabasewizardbase.cpp ;\
+	rm -f kpgdumpdatabasewizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgdumpdatabasewizardbase.moc"' >> kpgdumpdatabasewizardbase.cpp; else rm -f kpgdumpdatabasewizardbase.cpp ; exit $$ret ; fi
+
+kpgdumpdatabasewizardbase.h: $(srcdir)/kpgdumpdatabasewizardbase.ui
+	rm -rf kpgdumpdatabasewizardbase.h;
+	$(UIC) $(srcdir)/kpgdumpdatabasewizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgdumpdatabasewizardbase.h ;
+kpgdumpdatabasewizardbase.moc: kpgdumpdatabasewizardbase.h
+	$(MOC) kpgdumpdatabasewizardbase.h -o kpgdumpdatabasewizardbase.moc
+
+kpgvacuumtablewidget1base.cpp: $(srcdir)/kpgvacuumtablewidget1base.ui kpgvacuumtablewidget1base.h kpgvacuumtablewidget1base.moc
+	rm -f kpgvacuumtablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgvacuumtablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgvacuumtablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgvacuumtablewidget1base.h $(srcdir)/kpgvacuumtablewidget1base.ui > kpgvacuumtablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgvacuumtablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgvacuumtablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgvacuumtablewidget1base.cpp ;\
+	rm -f kpgvacuumtablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgvacuumtablewidget1base.moc"' >> kpgvacuumtablewidget1base.cpp; else rm -f kpgvacuumtablewidget1base.cpp ; exit $$ret ; fi
+
+kpgvacuumtablewidget1base.h: $(srcdir)/kpgvacuumtablewidget1base.ui
+	rm -rf kpgvacuumtablewidget1base.h;
+	$(UIC) $(srcdir)/kpgvacuumtablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgvacuumtablewidget1base.h ;
+kpgvacuumtablewidget1base.moc: kpgvacuumtablewidget1base.h
+	$(MOC) kpgvacuumtablewidget1base.h -o kpgvacuumtablewidget1base.moc
+
+kpgcopyfromtablewidget1base.cpp: $(srcdir)/kpgcopyfromtablewidget1base.ui kpgcopyfromtablewidget1base.h kpgcopyfromtablewidget1base.moc
+	rm -f kpgcopyfromtablewidget1base.cpp
+	echo '#include <kdialog.h>' > kpgcopyfromtablewidget1base.cpp
+	echo '#include <klocale.h>' >> kpgcopyfromtablewidget1base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcopyfromtablewidget1base.h $(srcdir)/kpgcopyfromtablewidget1base.ui > kpgcopyfromtablewidget1base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcopyfromtablewidget1base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcopyfromtablewidget1base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcopyfromtablewidget1base.cpp ;\
+	rm -f kpgcopyfromtablewidget1base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcopyfromtablewidget1base.moc"' >> kpgcopyfromtablewidget1base.cpp; else rm -f kpgcopyfromtablewidget1base.cpp ; exit $$ret ; fi
+
+kpgcopyfromtablewidget1base.h: $(srcdir)/kpgcopyfromtablewidget1base.ui
+	rm -rf kpgcopyfromtablewidget1base.h;
+	$(UIC) $(srcdir)/kpgcopyfromtablewidget1base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcopyfromtablewidget1base.h ;
+kpgcopyfromtablewidget1base.moc: kpgcopyfromtablewidget1base.h
+	$(MOC) kpgcopyfromtablewidget1base.h -o kpgcopyfromtablewidget1base.moc
+
+kpg3stepswizardbase.cpp: $(srcdir)/kpg3stepswizardbase.ui kpg3stepswizardbase.h kpg3stepswizardbase.moc
+	rm -f kpg3stepswizardbase.cpp
+	echo '#include <kdialog.h>' > kpg3stepswizardbase.cpp
+	echo '#include <klocale.h>' >> kpg3stepswizardbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kpg3stepswizardbase.h $(srcdir)/kpg3stepswizardbase.ui > kpg3stepswizardbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpg3stepswizardbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpg3stepswizardbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpg3stepswizardbase.cpp ;\
+	rm -f kpg3stepswizardbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpg3stepswizardbase.moc"' >> kpg3stepswizardbase.cpp; else rm -f kpg3stepswizardbase.cpp ; exit $$ret ; fi
+
+kpg3stepswizardbase.h: $(srcdir)/kpg3stepswizardbase.ui
+	rm -rf kpg3stepswizardbase.h;
+	$(UIC) $(srcdir)/kpg3stepswizardbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpg3stepswizardbase.h ;
+kpg3stepswizardbase.moc: kpg3stepswizardbase.h
+	$(MOC) kpg3stepswizardbase.h -o kpg3stepswizardbase.moc
+
+kpgcreatetablewidget4base.cpp: $(srcdir)/kpgcreatetablewidget4base.ui kpgcreatetablewidget4base.h kpgcreatetablewidget4base.moc
+	rm -f kpgcreatetablewidget4base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablewidget4base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablewidget4base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablewidget4base.h $(srcdir)/kpgcreatetablewidget4base.ui > kpgcreatetablewidget4base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablewidget4base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablewidget4base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablewidget4base.cpp ;\
+	rm -f kpgcreatetablewidget4base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablewidget4base.moc"' >> kpgcreatetablewidget4base.cpp; else rm -f kpgcreatetablewidget4base.cpp ; exit $$ret ; fi
+
+kpgcreatetablewidget4base.h: $(srcdir)/kpgcreatetablewidget4base.ui
+	rm -rf kpgcreatetablewidget4base.h;
+	$(UIC) $(srcdir)/kpgcreatetablewidget4base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablewidget4base.h ;
+kpgcreatetablewidget4base.moc: kpgcreatetablewidget4base.h
+	$(MOC) kpgcreatetablewidget4base.h -o kpgcreatetablewidget4base.moc
+
+kpgcreatetablewidget2base.cpp: $(srcdir)/kpgcreatetablewidget2base.ui kpgcreatetablewidget2base.h kpgcreatetablewidget2base.moc
+	rm -f kpgcreatetablewidget2base.cpp
+	echo '#include <kdialog.h>' > kpgcreatetablewidget2base.cpp
+	echo '#include <klocale.h>' >> kpgcreatetablewidget2base.cpp
+	$(UIC) -tr ${UIC_TR} -i kpgcreatetablewidget2base.h $(srcdir)/kpgcreatetablewidget2base.ui > kpgcreatetablewidget2base.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kpgcreatetablewidget2base.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kpgcreatetablewidget2base,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kpgcreatetablewidget2base.cpp ;\
+	rm -f kpgcreatetablewidget2base.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kpgcreatetablewidget2base.moc"' >> kpgcreatetablewidget2base.cpp; else rm -f kpgcreatetablewidget2base.cpp ; exit $$ret ; fi
+
+kpgcreatetablewidget2base.h: $(srcdir)/kpgcreatetablewidget2base.ui
+	rm -rf kpgcreatetablewidget2base.h;
+	$(UIC) $(srcdir)/kpgcreatetablewidget2base.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kpgcreatetablewidget2base.h ;
+kpgcreatetablewidget2base.moc: kpgcreatetablewidget2base.h
+	$(MOC) kpgcreatetablewidget2base.h -o kpgcreatetablewidget2base.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,111 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "konsoleviewwidget.h"
+
+#include <qlayout.h>
+#include <qframe.h>
+#include <qdir.h>
+
+#include <kparts/part.h>
+#include <klibloader.h>
+#include <kdebug.h>
+#include <kparts/partmanager.h>
+
+KonsoleViewWidget::KonsoleViewWidget(KParts::PartManager *pPartManager, QWidget *parent)
+ : QWidget(parent, "konsole widget"), part(0)
+{
+    m_pPartManager = pPartManager; 
+    vbox = new QVBoxLayout(this);
+}
+
+KonsoleViewWidget::~KonsoleViewWidget()
+{
+}
+
+void KonsoleViewWidget::show()
+{
+  activate();
+  QWidget::show();
+}
+
+void KonsoleViewWidget::activate()
+{
+    if (part)
+        return;
+
+    KLibFactory *factory = KLibLoader::self()->factory("libkonsolepart");
+    if (!factory)
+        return;
+
+    part = (KParts::ReadOnlyPart *) factory->create(this);
+    if (!part)
+        return;
+
+    part->widget()->setFocusPolicy(QWidget::WheelFocus);
+    setFocusProxy(part->widget());
+    part->widget()->setFocus();
+    
+    if (part->widget()->inherits("QFrame"))
+        ((QFrame*)part->widget())->setFrameStyle(QFrame::Panel|QFrame::Sunken);
+
+    vbox->addWidget(part->widget());
+
+    this->activePartChanged( m_pPartManager->activePart() );
+    part->widget()->show();
+
+    connect(part, SIGNAL(destroyed()), this, SLOT(partDestroyed()));
+}
+
+
+void KonsoleViewWidget::activePartChanged(KParts::Part *activatedPart)
+{
+    kdDebug() << "KonsoleViewWidget::activePartChanged()" << endl;
+    KParts::ReadOnlyPart *ro_part = dynamic_cast<KParts::ReadOnlyPart*>(activatedPart);
+
+    if (ro_part && !ro_part->url().isLocalFile())
+    {
+        kdDebug() << " ===> Hmmm ... part is null or not local ... :-/" << endl;
+        return;
+    }
+    /*!!!QString dir;
+    if (ro_part)
+        dir = ro_part->url().directory();
+    else if (owner->project())
+        dir = owner->project()->projectDirectory();
+
+    kdDebug() << " ===> Changing dir to " << dir << endl;
+    if (dir.isEmpty())
+        return;
+    setDirectory( KURL(dir) );*/
+}
+
+void KonsoleViewWidget::setDirectory(const KURL &dirUrl)
+{
+    kdDebug() << "KonsoleViewWidget::setDirectory()" << endl;
+    kdDebug() << " ===> part is " << (long)part << endl;
+
+    if (part && dirUrl != part->url())
+    {
+        kdDebug() << " ===> Changing dirUrl.path() == " << dirUrl.path() << endl;
+        kdDebug() << " ===> Changing part->url.path() == " << part->url().path() << endl;
+
+        part->openURL( dirUrl );
+    }
+}
+
+void KonsoleViewWidget::partDestroyed()
+{
+  part = 0;
+  activate();
+}
+
+#include "konsoleviewwidget.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/konsoleviewwidget.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KONSOLEVIEWWIDGET_H
+#define KONSOLEVIEWWIDGET_H
+
+#include <qwidget.h>
+#include <qstring.h>
+
+#include <kurl.h>
+
+/**
+Widget that display Konsole using KParts
+
+ at author Lumir Vanek
+*/
+
+
+namespace KParts {
+  class ReadOnlyPart;
+  class Part;
+  class PartManager; 
+}
+class QVBoxLayout;
+
+
+class KonsoleViewWidget : public QWidget
+{
+    Q_OBJECT
+public:
+    KonsoleViewWidget(KParts::PartManager *, QWidget *);
+    virtual ~KonsoleViewWidget();
+
+    virtual void show();
+    
+public slots:
+    void setDirectory(const KURL &dirUrl);
+    void activePartChanged(KParts::Part *activatedPart);
+        
+private slots:
+    void partDestroyed();
+        
+private:
+    void activate();
+
+    KParts::ReadOnlyPart *part;
+    QVBoxLayout *vbox;
+    KParts::PartManager *m_pPartManager;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,103 @@
+//
+// C++ Implementation: kpg2stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg2stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+
+KPG2StepsWizard::KPG2StepsWizard(QWidget *parent, const QString &strCaption, const QString &strSQL, bool bWithTransaction)
+ : KPG2StepsWizardBase(parent, "KPG2StepsWizard")
+{
+    setCaption(strCaption);
+    m_pConnection = 0;
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );   
+	m_bWithTransaction = bWithTransaction;
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+	m_pTextEditSQL->setText(strSQL);
+	
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+
+KPG2StepsWizard::~KPG2StepsWizard()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG2StepsWizard::setConnection(KPGConnection * pConnection)
+{
+	m_pConnection = pConnection;
+}
+
+void KPG2StepsWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2)
+	{
+		// Run SQL statement
+		if(m_pConnection == 0)
+		{
+			kdError() << "KPG2StepsWizard::showPage - Database not connected to server !" << endl;
+			m_pTextEditResult->setText("Database not connected to server !");
+		}
+		else
+		{	
+			try
+  		{	
+        setCursor(KCursor::waitCursor());
+        
+        pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), m_bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+				
+        if(m_pConnection->notifications().count() > 0)
+        {
+           m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+           m_pConnection->clearNotifications();
+        }
+        else
+          m_pTextEditResult->setText(i18n("Operation successfull"));
+          
+				setFinishEnabled(WizardPage2, true);
+        setCursor(KCursor::arrowCursor());
+			}
+			catch (const std::exception &e)
+			{
+				m_pTextEditResult->setText(e.what());
+        setCursor(KCursor::arrowCursor());  
+			}
+		}
+	}
+				
+	// call parent
+	KPG2StepsWizardBase::showPage(pPage);
+}
+
+#include "kpg2stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Interface: kpg2stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG2STEPSWIZARD_H
+#define KPG2STEPSWIZARD_H
+
+#include "kpg2stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 2 steps. Obviously used for DROP Database object
+  *
+  * @author Lumir Vanek
+  */
+class KPG2StepsWizard : public KPG2StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG2StepsWizard(QWidget *, const QString &, const QString &, bool = true);
+    ~KPG2StepsWizard();
+
+	// Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+    
+protected:
+	virtual void showPage(QWidget *);
+		
+protected:
+
+	KPGConnection *m_pConnection;
+	bool m_bWithTransaction;
+		
+  	/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,80 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg2stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:27 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg2stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPG2StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG2StepsWizardBase::KPG2StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG2StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage1, "m_pTextEditSQL" );
+
+    WizardPage1Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage2, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage2Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage2, QString("") );
+    languageChange();
+    resize( QSize(387, 192).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG2StepsWizardBase::~KPG2StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG2StepsWizardBase::languageChange()
+{
+    setCaption( QString::null );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Review SQL statement" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - Check operation result" ) );
+}
+
+#include "kpg2stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg2stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,68 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG2StepsWizardBase</class>
+<comment>Base class for Create object Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG2StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>387</width>
+            <height>192</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string></string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,103 @@
+//
+// C++ Implementation: kpg3stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg3stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+
+
+KPG3StepsWizard::KPG3StepsWizard(QWidget *parent, const char *name)
+ : KPG3StepsWizardBase(parent, name)
+{
+	m_pConnection = 0;
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );   
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();	
+		
+	setNextEnabled(WizardPage1, false);
+}
+
+
+KPG3StepsWizard::~KPG3StepsWizard()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG3StepsWizard::setConnection(KPGConnection * pConnection)
+{
+	m_pConnection = pConnection;
+}
+
+// Enable/disable next button for 1st page
+void KPG3StepsWizard::slotEnableNextButton1(bool bEnable)
+{
+	setNextEnabled(WizardPage1, bEnable);
+}
+
+// Run SQL query - as final Wizard operation
+void KPG3StepsWizard::runQuery(bool bWithTransaction) 
+{ 
+	// Run SQL statement
+	if(m_pConnection == 0)
+	{
+		kdError() << "KPG3StepsWizard::runQuery - Database not connected to server !" << endl;
+		m_pTextEditResult->setText("Database not connected to server !");
+	}
+	else
+	{ 
+		try
+		{ 
+			setCursor(KCursor::waitCursor());
+			
+			pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+			
+			if(m_pConnection->notifications().count() > 0)
+			{
+			m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+			m_pConnection->clearNotifications();
+			}
+			else
+			m_pTextEditResult->setText(i18n("Operation successfull"));
+			
+			setFinishEnabled(WizardPage3, true);
+			setCursor(KCursor::arrowCursor());
+		}
+		catch (const std::exception &e)
+		{
+			m_pTextEditResult->setText(e.what());
+			setCursor(KCursor::arrowCursor());
+		} 
+	}
+}
+
+#include "kpg3stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,58 @@
+//
+// C++ Interface: kpg3stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG3STEPSWIZARD_H
+#define KPG3STEPSWIZARD_H
+
+#include "kpg3stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 3 steps
+  *
+  * @author Lumir Vanek
+  */
+class KPG3StepsWizard : public KPG3StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG3StepsWizard(QWidget *parent = 0, const char *name = 0);
+    ~KPG3StepsWizard();
+
+	// Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+	
+	QWidget * pageWidget1() { return m_pPageWidget1; }
+		
+protected:
+    // Run SQL query - as final Wizard operation
+    void runQuery(bool = true);  
+    			
+protected:
+	QWidget *m_pPageWidget1;
+
+private:	
+	KPGConnection *m_pConnection;
+			
+  	/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+						
+protected slots:
+	// Enable/disable next button for 1st page
+	void slotEnableNextButton1(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,85 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg3stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:28 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg3stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPG3StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG3StepsWizardBase::KPG3StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG3StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage2, "m_pTextEditSQL" );
+
+    WizardPage2Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage3, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage3Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage3, QString("") );
+    languageChange();
+    resize( QSize(347, 181).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG3StepsWizardBase::~KPG3StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG3StepsWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "KPoGre Wizard" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - " ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - Check operation result" ) );
+}
+
+#include "kpg3stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg3stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG3StepsWizardBase</class>
+<comment>Base class for 3-steps Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG3StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>347</width>
+            <height>181</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KPoGre Wizard</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+//
+// C++ Implementation: kpg4stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg4stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgdatabase.h"
+
+
+KPG4StepsWizard::KPG4StepsWizard(QWidget *parent, const char *name)
+ : KPG4StepsWizardBase(parent, name)
+{
+	m_pConnection = 0;
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );   
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+	
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+		
+	setNextEnabled(WizardPage1, false);
+	setNextEnabled(WizardPage2, false);
+}
+
+
+KPG4StepsWizard::~KPG4StepsWizard()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG4StepsWizard::setConnection(KPGConnection * pConnection)
+{
+	m_pConnection = pConnection;
+}
+
+// Run SQL query - as final Wizard operation
+void KPG4StepsWizard::runQuery(bool bWithTransaction) 
+{ 
+   // Run SQL statement
+   if(m_pConnection == 0)
+    {
+      kdError() << k_funcinfo << " Database not connected to server !" << endl;
+      m_pTextEditResult->setText("Database not connected to server !");
+    }
+    else
+    { 
+      try
+      { 
+        setCursor(KCursor::waitCursor());
+        
+        pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+        
+        if(m_pConnection->notifications().count() > 0)
+        {
+           m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+           m_pConnection->clearNotifications();
+        }
+        else
+          m_pTextEditResult->setText(i18n("Operation successfull"));
+        
+        setFinishEnabled(WizardPage4, true);
+        setCursor(KCursor::arrowCursor());
+      }
+      catch (const std::exception &e)
+      {
+        m_pTextEditResult->setText(e.what());
+        setCursor(KCursor::arrowCursor());
+      } 
+    }
+}
+
+// Enable/disable next button for 1st page
+void KPG4StepsWizard::slotEnableNextButton1(bool bEnable)
+{
+	  setNextEnabled(WizardPage1, bEnable);
+}
+
+// Enable/disable next button for 2nd page
+void KPG4StepsWizard::slotEnableNextButton2(bool bEnable)
+{
+	  setNextEnabled(WizardPage2, bEnable);
+}
+
+#include "kpg4stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,63 @@
+//
+// C++ Interface: kpg4stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG4STEPSWIZARD_H
+#define KPG4STEPSWIZARD_H
+
+#include "kpg4stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 4 steps
+  *
+  * @author Lumir Vanek
+  */
+class KPG4StepsWizard : public KPG4StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG4StepsWizard(QWidget *parent = 0, const char *name = 0);
+    ~KPG4StepsWizard();
+
+	// Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+		
+	QWidget * pageWidget1() { return m_pPageWidget1; }
+	QWidget * pageWidget2() { return m_pPageWidget2; }
+
+protected:
+    // Run SQL query - as final Wizard operation
+    void runQuery(bool = true);
+    			
+protected:
+	QWidget *m_pPageWidget1;
+	QWidget *m_pPageWidget2;
+
+private:  
+    KPGConnection *m_pConnection;
+		
+  	/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+				
+protected slots:
+	// Enable/disable next button for 1st page
+	void slotEnableNextButton1(bool);
+
+	// Enable/disable next button for 2nd page
+	void slotEnableNextButton2(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,89 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg4stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:29 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg4stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPG4StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG4StepsWizardBase::KPG4StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG4StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage3, "m_pTextEditSQL" );
+
+    WizardPage3Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage3, QString("") );
+
+    WizardPage4 = new QWidget( this, "WizardPage4" );
+    WizardPage4Layout = new QGridLayout( WizardPage4, 1, 1, 11, 6, "WizardPage4Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage4, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage4Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage4, QString("") );
+    languageChange();
+    resize( QSize(479, 372).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG4StepsWizardBase::~KPG4StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG4StepsWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "KPoGre Wizard" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - " ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - " ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, tr2i18n( "Step 4 - Check operation result" ) );
+}
+
+#include "kpg4stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg4stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,91 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG4StepsWizardBase</class>
+<comment>Base class for 4-steps Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG4StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>479</width>
+            <height>372</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KPoGre Wizard</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage4</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 4 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,114 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg5stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+
+KPG5StepsWizard::KPG5StepsWizard(QWidget *parent, const char *name)
+ : KPG5StepsWizardBase(parent, name)
+{
+  m_pConnection = 0;
+  m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );
+  m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+  
+  m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+  m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+  m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+  m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+  m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+  m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+  m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+  
+  m_pSyntaxHighlighter->rehighlight();
+    
+  setNextEnabled(WizardPage1, false);
+  setNextEnabled(WizardPage2, false);
+}
+
+
+KPG5StepsWizard::~KPG5StepsWizard()
+{
+  delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG5StepsWizard::setConnection(KPGConnection * pConnection)
+{
+  m_pConnection = pConnection;
+}
+
+// Run SQL query - as final Wizard operation
+void KPG5StepsWizard::runQuery(bool bWithTransaction) 
+{ 
+   // Run SQL statement
+   if(m_pConnection == 0)
+    {
+      kdError() << k_funcinfo << " Database not connected to server !" << endl;
+      m_pTextEditResult->setText("Database not connected to server !");
+    }
+    else
+    { 
+      try
+      { 
+        setCursor(KCursor::waitCursor());
+        
+        pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+        
+        if(m_pConnection->notifications().count() > 0)
+        {
+           m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+           m_pConnection->clearNotifications();
+        }
+        else
+          m_pTextEditResult->setText(i18n("Operation successfull"));
+        
+        setFinishEnabled(WizardPage5, true);
+        setCursor(KCursor::arrowCursor());
+      }
+      catch (const std::exception &e)
+      {
+        m_pTextEditResult->setText(e.what());
+        setCursor(KCursor::arrowCursor());
+      } 
+    }
+}
+
+// Enable/disable next button for 1st page
+void KPG5StepsWizard::slotEnableNextButton1(bool bEnable)
+{
+    setNextEnabled(WizardPage1, bEnable);
+}
+
+// Enable/disable next button for 2nd page
+void KPG5StepsWizard::slotEnableNextButton2(bool bEnable)
+{
+    setNextEnabled(WizardPage2, bEnable);
+}
+
+// Enable/disable next button for 3rd page
+void KPG5StepsWizard::slotEnableNextButton3(bool bEnable)
+{
+    setNextEnabled(WizardPage3, bEnable);
+}
+
+#include "kpg5stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,68 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG5STEPSWIZARD_H
+#define KPG5STEPSWIZARD_H
+
+#include "kpg5stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 5 steps
+  *
+  * @author Lumir Vanek
+  */
+class KPG5StepsWizard : public KPG5StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG5StepsWizard(QWidget *parent = 0, const char *name = 0);
+    ~KPG5StepsWizard();
+
+    // Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+    
+    QWidget * pageWidget1() { return m_pPageWidget1; }
+    QWidget * pageWidget2() { return m_pPageWidget2; }
+    QWidget * pageWidget3() { return m_pPageWidget3; }
+      
+protected:
+    // Run SQL query - as final Wizard operation
+    void runQuery(bool = true);  
+    
+protected:
+    QWidget *m_pPageWidget1;
+    QWidget *m_pPageWidget2;
+    QWidget *m_pPageWidget3;
+    
+private:  
+    KPGConnection *m_pConnection;
+    
+    /** Syntax highlighter for m_pTextEditSQL */
+    KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+        
+protected slots:
+    // Enable/disable next button for 1st page
+    void slotEnableNextButton1(bool);
+
+    // Enable/disable next button for 2nd page
+    void slotEnableNextButton2(bool);
+    
+    // Enable/disable next button for 3rd page
+    void slotEnableNextButton3(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,95 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg5stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:33 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg5stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPG5StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG5StepsWizardBase::KPG5StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG5StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+    addPage( WizardPage3, QString("") );
+
+    WizardPage4 = new QWidget( this, "WizardPage4" );
+    WizardPage4Layout = new QGridLayout( WizardPage4, 1, 1, 11, 6, "WizardPage4Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage4, "m_pTextEditSQL" );
+
+    WizardPage4Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage4, QString("") );
+
+    WizardPage5 = new QWidget( this, "WizardPage5" );
+    WizardPage5Layout = new QGridLayout( WizardPage5, 1, 1, 11, 6, "WizardPage5Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage5, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage5Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage5, QString("") );
+    languageChange();
+    resize( QSize(479, 372).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG5StepsWizardBase::~KPG5StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG5StepsWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "KPoGre Wizard" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Object name" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - " ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - " ) );
+    setTitle( WizardPage4, tr2i18n( "Step 5 - Review SQL statement" ) );
+    setTitle( WizardPage5, tr2i18n( "Step 6 - Check operation result" ) );
+}
+
+#include "kpg5stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg5stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,107 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG5StepsWizardBase</class>
+<comment>Base class for 6-steps Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG5StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>479</width>
+            <height>372</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KPoGre Wizard</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Object name</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage4</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 5 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage5</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 6 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,124 @@
+//
+// C++ Implementation: kpg6stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg6stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+
+
+KPG6StepsWizard::KPG6StepsWizard(QWidget *parent, const char *name)
+ : KPG6StepsWizardBase(parent, name)
+{
+	m_pConnection = 0;
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );   
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+	
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+		
+	setNextEnabled(WizardPage1, false);
+	setNextEnabled(WizardPage2, false);
+}
+
+
+KPG6StepsWizard::~KPG6StepsWizard()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG6StepsWizard::setConnection(KPGConnection * pConnection)
+{
+	m_pConnection = pConnection;
+}
+
+// Run SQL query - as final Wizard operation
+void KPG6StepsWizard::runQuery(bool bWithTransaction) 
+{ 
+   // Run SQL statement
+   if(m_pConnection == 0)
+    {
+      kdError() << "KPG6StepsWizard::runQuery - Database not connected to server !" << endl;
+      m_pTextEditResult->setText("Database not connected to server !");
+    }
+    else
+    { 
+      try
+      { 
+        setCursor(KCursor::waitCursor());
+        
+        pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+        
+        if(m_pConnection->notifications().count() > 0)
+        {
+           m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+           m_pConnection->clearNotifications();
+        }
+        else
+        {
+          m_pTextEditResult->setText(i18n("Operation successfull"));
+        }
+        
+        setFinishEnabled(WizardPage6, true);
+        setCursor(KCursor::arrowCursor());
+      }
+      catch (const std::exception &e)
+      {
+        m_pTextEditResult->setText(e.what());
+        setCursor(KCursor::arrowCursor());
+      } 
+    }
+}
+
+// Enable/disable next button for 1st page
+void KPG6StepsWizard::slotEnableNextButton1(bool bEnable)
+{
+	  setNextEnabled(WizardPage1, bEnable);
+}
+
+// Enable/disable next button for 2nd page
+void KPG6StepsWizard::slotEnableNextButton2(bool bEnable)
+{
+	  setNextEnabled(WizardPage2, bEnable);
+}
+
+// Enable/disable next button for 3rd page
+void KPG6StepsWizard::slotEnableNextButton3(bool bEnable)
+{
+	  setNextEnabled(WizardPage3, bEnable);
+}
+
+// Enable/disable next button for 4th page
+void KPG6StepsWizard::slotEnableNextButton4(bool bEnable)
+{
+	  setNextEnabled(WizardPage4, bEnable);
+}
+
+
+#include "kpg6stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+//
+// C++ Interface: kpg6stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG6STEPSWIZARD_H
+#define KPG6STEPSWIZARD_H
+
+#include "kpg6stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 6 steps
+  *
+  * @author Lumir Vanek
+  */
+class KPG6StepsWizard : public KPG6StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG6StepsWizard(QWidget *parent = 0, const char *name = 0);
+    ~KPG6StepsWizard();
+
+	// Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+		
+	QWidget * pageWidget1() { return m_pPageWidget1; }
+	QWidget * pageWidget2() { return m_pPageWidget2; }
+	QWidget * pageWidget3() { return m_pPageWidget3; }
+	QWidget * pageWidget4() { return m_pPageWidget4; }
+
+protected:
+    // Run SQL query - as final Wizard operation
+    void runQuery(bool = true);  
+        			
+protected:
+	QWidget *m_pPageWidget1;
+	QWidget *m_pPageWidget2;
+	QWidget *m_pPageWidget3;
+	QWidget *m_pPageWidget4;
+		
+private:  
+    KPGConnection *m_pConnection;
+		
+  	/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+				
+protected slots:
+	// Enable/disable next button for 1st page
+	void slotEnableNextButton1(bool);
+
+	// Enable/disable next button for 2nd page
+	void slotEnableNextButton2(bool);
+		
+	// Enable/disable next button for 3rd page
+	void slotEnableNextButton3(bool);
+		
+	// Enable/disable next button for 4th page
+	void slotEnableNextButton4(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg6stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:28 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg6stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPG6StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG6StepsWizardBase::KPG6StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG6StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+    addPage( WizardPage3, QString("") );
+
+    WizardPage4 = new QWidget( this, "WizardPage4" );
+    WizardPage4Layout = new QGridLayout( WizardPage4, 1, 1, 11, 6, "WizardPage4Layout"); 
+    addPage( WizardPage4, QString("") );
+
+    WizardPage5 = new QWidget( this, "WizardPage5" );
+    WizardPage5Layout = new QGridLayout( WizardPage5, 1, 1, 11, 6, "WizardPage5Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage5, "m_pTextEditSQL" );
+
+    WizardPage5Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage5, QString("") );
+
+    WizardPage6 = new QWidget( this, "WizardPage6" );
+    WizardPage6Layout = new QGridLayout( WizardPage6, 1, 1, 11, 6, "WizardPage6Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage6, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage6Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage6, QString("") );
+    languageChange();
+    resize( QSize(479, 372).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG6StepsWizardBase::~KPG6StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG6StepsWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "KPoGre Wizard" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Object name" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - " ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - " ) );
+    setTitle( WizardPage4, tr2i18n( "Step 4 - " ) );
+    setTitle( WizardPage5, tr2i18n( "Step 5 - Review SQL statement" ) );
+    setTitle( WizardPage6, tr2i18n( "Step 6 - Check operation result" ) );
+}
+
+#include "kpg6stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg6stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,117 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG6StepsWizardBase</class>
+<comment>Base class for 6-steps Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG6StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>479</width>
+            <height>372</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KPoGre Wizard</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Object name</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage4</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 4 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage5</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 5 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage6</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 6 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,126 @@
+//
+// C++ Implementation: kpg7stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpg7stepswizard.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../DbObjects/kpgconnection.h"
+
+KPG7StepsWizard::KPG7StepsWizard(QWidget *parent, const char *name)
+ : KPG7StepsWizardBase(parent, name)
+{
+	m_pConnection = 0;
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );   
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+	
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+  m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+    	
+	setNextEnabled(WizardPage1, false);
+	setNextEnabled(WizardPage2, false);
+}
+
+
+KPG7StepsWizard::~KPG7StepsWizard()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+// Set connection for wizard operation
+void KPG7StepsWizard::setConnection(KPGConnection * pConnection)
+{
+	m_pConnection = pConnection;
+}
+
+// Run SQL query - as final Wizard operation
+void KPG7StepsWizard::runQuery(bool bWithTransaction) 
+{ 
+   // Run SQL statement
+   if(m_pConnection == 0)
+    {
+      kdError() << "KPG7StepsWizard::runQuery - Database not connected to server !" << endl;
+      m_pTextEditResult->setText("Database not connected to server !");
+    }
+    else
+    { 
+      try
+      { 
+        setCursor(KCursor::waitCursor());
+        
+        pqxx::result R = m_pConnection->runQuery(m_pTextEditSQL->text(), bWithTransaction ? KPGConnection::eTransNormal : KPGConnection::eTransNone);
+        
+        if(m_pConnection->notifications().count() > 0)
+        {
+           m_pTextEditResult->setText(m_pConnection->notifications().join("") + i18n("\nOperation successfull"));
+           m_pConnection->clearNotifications();
+        }
+        else
+          m_pTextEditResult->setText(i18n("Operation successfull"));
+        
+        setFinishEnabled(WizardPage7, true);
+        setCursor(KCursor::arrowCursor());
+      }
+      catch (const std::exception &e)
+      {
+        m_pTextEditResult->setText(e.what());
+        setCursor(KCursor::arrowCursor());
+      } 
+    }
+}
+
+// Enable/disable next button for 1st page
+void KPG7StepsWizard::slotEnableNextButton1(bool bEnable)
+{
+	  setNextEnabled(WizardPage1, bEnable);
+}
+
+// Enable/disable next button for 2nd page
+void KPG7StepsWizard::slotEnableNextButton2(bool bEnable)
+{
+	  setNextEnabled(WizardPage2, bEnable);
+}
+
+// Enable/disable next button for 3rd page
+void KPG7StepsWizard::slotEnableNextButton3(bool bEnable)
+{
+	  setNextEnabled(WizardPage3, bEnable);
+}
+
+// Enable/disable next button for 4th page
+void KPG7StepsWizard::slotEnableNextButton4(bool bEnable)
+{
+	  setNextEnabled(WizardPage4, bEnable);
+}
+
+// Enable/disable next button for 5th page
+void KPG7StepsWizard::slotEnableNextButton5(bool bEnable)
+{
+	  setNextEnabled(WizardPage5, bEnable);
+}
+
+#include "kpg7stepswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,79 @@
+//
+// C++ Interface: kpg7stepswizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPG7STEPSWIZARD_H
+#define KPG7STEPSWIZARD_H
+
+
+#include "kpg7stepswizardbase.h"
+
+class KPGSyntaxHighlighter;
+class KPGConnection;
+
+/**
+  * Wizard with 7 steps
+  *
+  * @author Lumir Vanek
+  */
+class KPG7StepsWizard : public KPG7StepsWizardBase
+{
+Q_OBJECT
+public:
+    KPG7StepsWizard(QWidget *parent, const char *name);
+    ~KPG7StepsWizard();
+		
+	// Set connection to database
+	void setConnection(KPGConnection *);
+
+	// Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+		
+	QWidget * pageWidget1() { return m_pPageWidget1; }
+	QWidget * pageWidget2() { return m_pPageWidget2; }
+	QWidget * pageWidget3() { return m_pPageWidget3; }
+	QWidget * pageWidget4() { return m_pPageWidget4; }
+	QWidget * pageWidget5() { return m_pPageWidget5; }
+
+protected:
+    // Run SQL query - as final Wizard operation
+    void runQuery(bool = true);    
+    			
+protected:
+	QWidget *m_pPageWidget1;
+	QWidget *m_pPageWidget2;
+	QWidget *m_pPageWidget3;
+	QWidget *m_pPageWidget4;
+	QWidget *m_pPageWidget5;
+		
+private:  
+    KPGConnection *m_pConnection;
+		
+  	/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+				
+protected slots:
+	// Enable/disable next button for 1st page
+	void slotEnableNextButton1(bool);
+
+	// Enable/disable next button for 2nd page
+	void slotEnableNextButton2(bool);
+		
+	// Enable/disable next button for 3rd page
+	void slotEnableNextButton3(bool);
+		
+	// Enable/disable next button for 4th page
+	void slotEnableNextButton4(bool);
+		
+	// Enable/disable next button for 5th page
+	void slotEnableNextButton5(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,104 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpg7stepswizardbase.ui'
+**
+** Created: Út dub 1 13:07:24 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpg7stepswizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <ktextedit.h>
+#include <qtextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPG7StepsWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPG7StepsWizardBase::KPG7StepsWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPG7StepsWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+    addPage( WizardPage3, QString("") );
+
+    WizardPage4 = new QWidget( this, "WizardPage4" );
+    WizardPage4Layout = new QGridLayout( WizardPage4, 1, 1, 11, 6, "WizardPage4Layout"); 
+    addPage( WizardPage4, QString("") );
+
+    WizardPage5 = new QWidget( this, "WizardPage5" );
+    WizardPage5Layout = new QGridLayout( WizardPage5, 1, 1, 11, 6, "WizardPage5Layout"); 
+    addPage( WizardPage5, QString("") );
+
+    WizardPage6 = new QWidget( this, "WizardPage6" );
+    WizardPage6Layout = new QGridLayout( WizardPage6, 1, 1, 11, 6, "WizardPage6Layout"); 
+
+    m_pTextEditSQL = new KTextEdit( WizardPage6, "m_pTextEditSQL" );
+
+    WizardPage6Layout->addWidget( m_pTextEditSQL, 0, 0 );
+    addPage( WizardPage6, QString("") );
+
+    WizardPage7 = new QWidget( this, "WizardPage7" );
+    WizardPage7Layout = new QGridLayout( WizardPage7, 1, 1, 11, 6, "WizardPage7Layout"); 
+
+    m_pTextEditResult = new QTextEdit( WizardPage7, "m_pTextEditResult" );
+    m_pTextEditResult->setReadOnly( TRUE );
+
+    WizardPage7Layout->addWidget( m_pTextEditResult, 0, 0 );
+    addPage( WizardPage7, QString("") );
+    languageChange();
+    resize( QSize(479, 372).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pTextEditSQL, m_pTextEditResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPG7StepsWizardBase::~KPG7StepsWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPG7StepsWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "KPoGre Wizard" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Object name" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - " ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - " ) );
+    setTitle( WizardPage4, tr2i18n( "Step 4 - " ) );
+    setTitle( WizardPage5, tr2i18n( "Step 5 - " ) );
+    setTitle( WizardPage6, tr2i18n( "Step 6 - Review SQL statement" ) );
+    setTitle( WizardPage7, tr2i18n( "Step 7 - Check operation result" ) );
+}
+
+#include "kpg7stepswizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpg7stepswizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,130 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPG7StepsWizardBase</class>
+<comment>Base class for 7-steps Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPG7StepsWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>479</width>
+            <height>372</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>KPoGre Wizard</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Object name</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage4</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 4 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage5</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 5 - </string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage6</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 6 - Review SQL statement</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="KTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage7</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 7 - Check operation result</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditResult</cstring>
+                </property>
+                <property name="readOnly">
+                    <bool>true</bool>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditSQL</tabstop>
+    <tabstop>m_pTextEditResult</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,95 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpganalysetablewidget1.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+KPGAnalyseTableWidget1::KPGAnalyseTableWidget1(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPGAnalyseTableWidget1Base(parent, name)
+{
+	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pColumnsSelector->availableListBox(), false);
+	
+	m_strTableName = pTable->text(0);
+	m_strNamespace = strNamespace;
+	
+	// This is here, instead of making connection in Qt Designer due to bug - forward declaration
+	// class QListBoxItem; is not added to h file.
+	connect( m_pColumnsSelector, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotColumnAdded(QListBoxItem*) ) );
+	connect( m_pColumnsSelector, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotColumnRemoved(QListBoxItem*) ) );
+}
+
+KPGAnalyseTableWidget1::~KPGAnalyseTableWidget1()
+{
+}
+
+void KPGAnalyseTableWidget1::slotAllColumnsToggled(bool bAllColumns)
+{
+	m_pColumnsSelector->setEnabled(!bAllColumns);
+	if(bAllColumns)
+		emit sigEnableNextButton(true);
+	else
+	{
+		if(m_pColumnsSelector->selectedListBox()->count() == 0)
+		emit sigEnableNextButton(false);
+	}
+}
+
+void KPGAnalyseTableWidget1::slotColumnAdded(QListBoxItem *)
+{
+  	emit sigEnableNextButton(true);
+}
+
+void KPGAnalyseTableWidget1::slotColumnRemoved(QListBoxItem *)
+{
+  	if(m_pColumnsSelector->selectedListBox()->count() == 0)
+    	emit sigEnableNextButton(false);
+}   
+
+const QString KPGAnalyseTableWidget1::getSQL() const
+{
+	QString strSql("ANALYZE ");
+	
+	if(m_pCheckBoxVerbose->isChecked())
+		strSql.append("VERBOSE ");
+		
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+	
+	if(m_pCheckBoxAllColumns->isChecked() == false)
+	{
+		strSql.append(" (");
+		
+		for(unsigned int i = 0; i < m_pColumnsSelector->selectedListBox()->count(); i++)
+		{
+			strSql.append(KPGUtil::quotedName(m_pColumnsSelector->selectedListBox()->text(i)));
+		
+			if(i < m_pColumnsSelector->selectedListBox()->count() - 1)
+				strSql.append(", ");
+		}
+		
+		strSql.append(")");
+	}
+	
+	strSql.append(";");
+	
+	
+	return strSql;
+}
+
+#include "kpganalysetablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGANALYSETABLEWIDGET1_H
+#define KPGANALYSETABLEWIDGET1_H
+
+#include "kpganalysetablewidget1base.h"
+
+class QListBoxItem;
+class KPGTable;
+
+/**
+Widget for analyse table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGAnalyseTableWidget1 : public KPGAnalyseTableWidget1Base
+{
+Q_OBJECT
+public:
+    KPGAnalyseTableWidget1(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGAnalyseTableWidget1();
+
+    const QString getSQL() const;
+
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace    
+   
+protected slots:
+
+    virtual void slotAllColumnsToggled(bool);
+    virtual void slotColumnAdded(QListBoxItem *);
+    virtual void slotColumnRemoved(QListBoxItem *);
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpganalysetablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:38 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpganalysetablewidget1base.h"
+
+#include <qvariant.h>
+#include <qcheckbox.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGAnalyseTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGAnalyseTableWidget1Base::KPGAnalyseTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGAnalyseTableWidget1Base" );
+    KPGAnalyseTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGAnalyseTableWidget1BaseLayout"); 
+
+    m_pCheckBoxVerbose = new QCheckBox( this, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setChecked( TRUE );
+
+    KPGAnalyseTableWidget1BaseLayout->addWidget( m_pCheckBoxVerbose, 0, 0 );
+
+    m_pCheckBoxAllColumns = new QCheckBox( this, "m_pCheckBoxAllColumns" );
+    m_pCheckBoxAllColumns->setChecked( TRUE );
+
+    KPGAnalyseTableWidget1BaseLayout->addWidget( m_pCheckBoxAllColumns, 1, 0 );
+
+    m_pColumnsSelector = new KActionSelector( this, "m_pColumnsSelector" );
+    m_pColumnsSelector->setEnabled( FALSE );
+
+    KPGAnalyseTableWidget1BaseLayout->addWidget( m_pColumnsSelector, 2, 0 );
+    languageChange();
+    resize( QSize(379, 236).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAllColumns, SIGNAL( toggled(bool) ), this, SLOT( slotAllColumnsToggled(bool) ) );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGAnalyseTableWidget1Base::~KPGAnalyseTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGAnalyseTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Analyze table parameters" ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "&Verbose" ) );
+    m_pCheckBoxVerbose->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    m_pCheckBoxAllColumns->setText( tr2i18n( "A&ll columns" ) );
+    m_pCheckBoxAllColumns->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pColumnsSelector->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pColumnsSelector->setSelectedLabel( tr2i18n( "&Selected columns:" ) );
+}
+
+void KPGAnalyseTableWidget1Base::slotAllColumnsToggled(bool)
+{
+    qWarning( "KPGAnalyseTableWidget1Base::slotAllColumnsToggled(bool): Not implemented yet" );
+}
+
+#include "kpganalysetablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGAnalyseTableWidget1Base</class>
+<comment>Widget for analyse table Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGAnalyseTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>379</width>
+            <height>236</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Analyze table parameters</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QCheckBox" row="0" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxVerbose</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Verbose</string>
+            </property>
+            <property name="accel">
+                <string>Alt+V</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxAllColumns</cstring>
+            </property>
+            <property name="text">
+                <string>A&amp;ll columns</string>
+            </property>
+            <property name="accel">
+                <string>Alt+L</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="KActionSelector" row="2" column="0">
+            <property name="name">
+                <cstring>m_pColumnsSelector</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Selected columns:</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAllColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGAnalyseTableWidget1Base</receiver>
+        <slot>slotAllColumnsToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotAllColumnsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpganalysetablewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtable.h"
+#include "kpganalysetablewidget1.h"
+
+KPGAnalyseTableWizard::KPGAnalyseTableWizard(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGAnalyseTableWidget1 *pAnalyseTableWidget1 = new KPGAnalyseTableWidget1(WizardPage1, "KPGAnalyseTableWidget1", strNamespace, pTable);
+  m_pPageWidget1 = pAnalyseTableWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pAnalyseTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  setNextEnabled(WizardPage1, true);
+  languageChange();
+}
+
+KPGAnalyseTableWizard::~KPGAnalyseTableWizard()
+{
+}
+
+void KPGAnalyseTableWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Analyze table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Analyze table parameters" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGAnalyseTableWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    m_pTextEditSQL->setText((static_cast <KPGAnalyseTableWidget1 *> (m_pPageWidget1))->getSQL());
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery(false);
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpganalysetablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpganalysetablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGANALYSETABLEWIZARD_H
+#define KPGANALYSETABLEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGTable;
+
+/**
+Analyse table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGAnalyseTableWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGAnalyseTableWizard(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGAnalyseTableWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,132 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopyfromtablewidget1.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kactionselector.h> 
+#include <kurlrequester.h>
+
+// application specific includes
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCopyFromTableWidget1::KPGCopyFromTableWidget1(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPGCopyFromTableWidget1Base(parent, name)
+{
+  pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pColumnsSelector->availableListBox(), false);
+  
+  m_strTableName = pTable->text(0);
+  m_strNamespace = strNamespace;
+  
+  m_pURLRequesterFile->setURL(m_strTableName + ".txt");
+    
+  // This is here, instead of making connection in Qt Designer due to bug - forward declaration
+  // class QListBoxItem; is not added to h file.
+  connect( m_pColumnsSelector, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotColumnAdded(QListBoxItem*) ) );
+  connect( m_pColumnsSelector, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotColumnRemoved(QListBoxItem*) ) );
+}
+
+KPGCopyFromTableWidget1::~KPGCopyFromTableWidget1()
+{
+}
+
+void KPGCopyFromTableWidget1::slotUrlChanged(const QString &strURL)
+{
+  if(strURL.isEmpty())
+    emit sigEnableNextButton(false);
+  else
+  {
+    if(m_pCheckBoxAllColumns->isChecked())
+      emit sigEnableNextButton(true);
+    else
+    {
+      if(m_pColumnsSelector->selectedListBox()->count() == 0)
+        emit sigEnableNextButton(false);
+    }
+  }
+}
+
+void KPGCopyFromTableWidget1::slotAllColumnsToggled(bool bAllColumns)
+{
+  m_pColumnsSelector->setEnabled(!bAllColumns);
+  if(bAllColumns)
+    emit sigEnableNextButton(!m_pURLRequesterFile->url().isEmpty());
+  else
+  {
+    if(m_pColumnsSelector->selectedListBox()->count() == 0)
+       emit sigEnableNextButton(false);
+  }
+}
+
+void KPGCopyFromTableWidget1::slotColumnAdded(QListBoxItem *)
+{
+  emit sigEnableNextButton(!m_pURLRequesterFile->url().isEmpty());
+}
+
+void KPGCopyFromTableWidget1::slotColumnRemoved(QListBoxItem *)
+{
+  if(m_pColumnsSelector->selectedListBox()->count() == 0)
+    emit sigEnableNextButton(false);
+} 
+
+void KPGCopyFromTableWidget1::slotCsvToggled(bool bCsv)
+{
+  QString strURL(m_pURLRequesterFile->url());
+  
+  if(bCsv && strURL.endsWith(".txt"))
+    {
+      strURL = strURL.left(strURL.length() - 4);
+      strURL.append(".csv");
+      m_pURLRequesterFile->setURL(strURL);
+    }
+    
+  if(!bCsv && strURL.endsWith(".csv"))
+    {
+      strURL = strURL.left(strURL.length() - 4);
+      strURL.append(".txt");
+      m_pURLRequesterFile->setURL(strURL);
+    }
+}
+
+const QString KPGCopyFromTableWidget1::getSQL() const
+{
+  QString strSQL("COPY ");
+  
+  strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+  
+  if(m_pCheckBoxAllColumns->isChecked() == false)
+  {
+    strSQL.append(" (");
+    
+    for(unsigned int i = 0; i < m_pColumnsSelector->selectedListBox()->count(); i++)
+    {
+      strSQL.append(KPGUtil::quotedName(m_pColumnsSelector->selectedListBox()->text(i)));
+      
+      if(i < m_pColumnsSelector->selectedListBox()->count() - 1)
+        strSQL.append(", ");
+    }
+    
+    strSQL.append(")");
+  }
+  
+  strSQL.append("\nTO '");
+  strSQL.append(m_pURLRequesterFile->url());
+  strSQL.append("'");
+  
+  return strSQL;
+}
+
+#include "kpgcopyfromtablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYFROMTABLEWIDGET1_H
+#define KPGCOPYFROMTABLEWIDGET1_H
+
+#include "kpgcopyfromtablewidget1base.h"
+
+class KPGTable;
+class QListBoxItem;
+
+/**
+Widget for copy from table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyFromTableWidget1 : public KPGCopyFromTableWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCopyFromTableWidget1(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGCopyFromTableWidget1();
+
+    const QString getSQL() const;
+
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace    
+   
+protected slots:
+
+    virtual void slotUrlChanged(const QString &);
+    virtual void slotAllColumnsToggled(bool);
+    virtual void slotColumnAdded(QListBoxItem *);
+    virtual void slotColumnRemoved(QListBoxItem *);
+    virtual void slotCsvToggled(bool);
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,113 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcopyfromtablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:38 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcopyfromtablewidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kurlrequester.h>
+#include <kactionselector.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kurlrequester.h"
+#include "klineedit.h"
+#include "kpushbutton.h"
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCopyFromTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCopyFromTableWidget1Base::KPGCopyFromTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCopyFromTableWidget1Base" );
+    KPGCopyFromTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCopyFromTableWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pURLRequesterFile = new KURLRequester( this, "m_pURLRequesterFile" );
+    layout1->addWidget( m_pURLRequesterFile );
+
+    KPGCopyFromTableWidget1BaseLayout->addMultiCellLayout( layout1, 0, 0, 0, 1 );
+
+    m_pColumnsSelector = new KActionSelector( this, "m_pColumnsSelector" );
+    m_pColumnsSelector->setEnabled( FALSE );
+
+    KPGCopyFromTableWidget1BaseLayout->addMultiCellWidget( m_pColumnsSelector, 2, 2, 0, 1 );
+
+    m_pCheckBoxCSV = new QCheckBox( this, "m_pCheckBoxCSV" );
+
+    KPGCopyFromTableWidget1BaseLayout->addWidget( m_pCheckBoxCSV, 1, 1 );
+
+    m_pCheckBoxAllColumns = new QCheckBox( this, "m_pCheckBoxAllColumns" );
+    m_pCheckBoxAllColumns->setChecked( TRUE );
+
+    KPGCopyFromTableWidget1BaseLayout->addWidget( m_pCheckBoxAllColumns, 1, 0 );
+    languageChange();
+    resize( QSize(323, 276).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAllColumns, SIGNAL( toggled(bool) ), this, SLOT( slotAllColumnsToggled(bool) ) );
+    connect( m_pURLRequesterFile, SIGNAL( textChanged(const QString&) ), this, SLOT( slotUrlChanged(const QString&) ) );
+    connect( m_pCheckBoxCSV, SIGNAL( toggled(bool) ), this, SLOT( slotCsvToggled(bool) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pURLRequesterFile );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCopyFromTableWidget1Base::~KPGCopyFromTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCopyFromTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Copy from table" ) );
+    textLabel1->setText( tr2i18n( "Destination &file:" ) );
+    m_pColumnsSelector->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pColumnsSelector->setSelectedLabel( tr2i18n( "&Selected columns:" ) );
+    m_pCheckBoxCSV->setText( tr2i18n( "&CSV mode" ) );
+    m_pCheckBoxCSV->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pCheckBoxAllColumns->setText( tr2i18n( "All &columns" ) );
+    m_pCheckBoxAllColumns->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCopyFromTableWidget1Base::slotAllColumnsToggled(bool)
+{
+    qWarning( "KPGCopyFromTableWidget1Base::slotAllColumnsToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyFromTableWidget1Base::slotUrlChanged(const QString&)
+{
+    qWarning( "KPGCopyFromTableWidget1Base::slotUrlChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCopyFromTableWidget1Base::slotCsvToggled(bool)
+{
+    qWarning( "KPGCopyFromTableWidget1Base::slotCsvToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcopyfromtablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,123 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCopyFromTableWidget1Base</class>
+<comment>Widget for copy from table Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCopyFromTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>323</width>
+            <height>276</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Copy from table</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Destination &amp;file:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pURLRequesterFile</cstring>
+                    </property>
+                </widget>
+                <widget class="KURLRequester">
+                    <property name="name">
+                        <cstring>m_pURLRequesterFile</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="KActionSelector" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pColumnsSelector</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Selected columns:</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pCheckBoxCSV</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;CSV mode</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxAllColumns</cstring>
+            </property>
+            <property name="text">
+                <string>All &amp;columns</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAllColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyFromTableWidget1Base</receiver>
+        <slot>slotAllColumnsToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pURLRequesterFile</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCopyFromTableWidget1Base</receiver>
+        <slot>slotUrlChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCSV</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyFromTableWidget1Base</receiver>
+        <slot>slotCsvToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotAllColumnsToggled(bool)</slot>
+    <slot access="protected">slotUrlChanged(const QString &amp;)</slot>
+    <slot access="protected">slotCsvToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,119 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopyfromtablewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+//#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtable.h"
+#include "kpgcopyfromtablewidget1.h"
+#include "kpgcopytablewidget2.h"
+#include "kpgcopytablewidget3.h"
+
+
+KPGCopyFromTableWizard::KPGCopyFromTableWizard(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPG5StepsWizard(parent, name)
+{
+  KPGCopyFromTableWidget1 *pCopyFromTableWidget1 = new KPGCopyFromTableWidget1(WizardPage1, "KPGCopyFromTableWidget1", strNamespace, pTable);
+  m_pPageWidget1 = pCopyFromTableWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCopyFromTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCopyTableWidget2 *pCopyTableWidget2 = new KPGCopyTableWidget2(WizardPage2, "KPGCopyTableWidget2");
+  m_pPageWidget2 = pCopyTableWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  connect(pCopyTableWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+    
+  KPGCopyTableWidget3 *pCopyTableWidget3 = new KPGCopyTableWidget3(WizardPage3, "KPGCopyTableWidget3", pTable);
+  m_pPageWidget3 = pCopyTableWidget3;
+  WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+  connect(pCopyTableWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton3(bool)));
+    
+  languageChange();
+  setNextEnabled(WizardPage1, true);
+}
+
+KPGCopyFromTableWizard::~KPGCopyFromTableWizard()
+{
+}
+
+void KPGCopyFromTableWizard::languageChange()
+{
+    KPG5StepsWizard::languageChange();
+    
+    setCaption( i18n( "Copy from table to file" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Copy to file parameters" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Copy file parameters" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Force quote columns" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Review SQL statement" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCopyFromTableWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) 
+  {
+    KPGCopyFromTableWidget1 *pCopyFromTableWidget1 = static_cast <KPGCopyFromTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget2 *pCopyTableWidget2 = static_cast <KPGCopyTableWidget2 *> (m_pPageWidget2);
+    
+    pCopyTableWidget2->setCvsMode(pCopyFromTableWidget1->m_pCheckBoxCSV->isChecked());
+  }
+  
+  if(pPage == WizardPage3) 
+  {
+    KPGCopyFromTableWidget1 *pCopyFromTableWidget1 = static_cast <KPGCopyFromTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget3 *pCopyTableWidget3 = static_cast <KPGCopyTableWidget3 *> (m_pPageWidget3);
+    
+    pCopyTableWidget3->setCvsMode(pCopyFromTableWidget1->m_pCheckBoxCSV->isChecked());
+  }
+  
+  if(pPage == WizardPage4) // Step 4 - Review SQL statement
+  {
+    KPGCopyFromTableWidget1 *pCopyFromTableWidget1 = static_cast <KPGCopyFromTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget2 *pCopyTableWidget2 = static_cast <KPGCopyTableWidget2 *> (m_pPageWidget2);
+    KPGCopyTableWidget3 *pCopyTableWidget3 = static_cast <KPGCopyTableWidget3 *> (m_pPageWidget3);
+    
+    // prepare SQL statement
+    QString strSQL(pCopyFromTableWidget1->getSQL());
+    strSQL.append(pCopyTableWidget2->getSQL());
+    
+    if(!pCopyTableWidget3->getSQL().isEmpty())
+    {
+      strSQL.append("\nFORCE QUOTE ");
+      strSQL.append(pCopyTableWidget3->getSQL());
+    }
+    strSQL.append(";");
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage5) // Step 5 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG5StepsWizard::showPage(pPage);
+}
+
+#include "kpgcopyfromtablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopyfromtablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYFROMTABLEWIZARD_H
+#define KPGCOPYFROMTABLEWIZARD_H
+
+#include "kpg5stepswizard.h"
+
+class KPGTable;
+
+/**
+Copy from table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyFromTableWizard : public KPG5StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCopyFromTableWizard(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGCopyFromTableWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,128 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopytablewidget2.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <klineedit.h> 
+
+
+KPGCopyTableWidget2::KPGCopyTableWidget2(QWidget *parent, const char *name)
+ : KPGCopyTableWidget2Base(parent, name)
+{
+}
+
+KPGCopyTableWidget2::~KPGCopyTableWidget2()
+{
+}
+
+void KPGCopyTableWidget2::setCvsMode(bool bCvsMode)
+{
+  m_bCvsMode = bCvsMode;
+  m_pCheckBoxCsvQuote->setEnabled(bCvsMode);
+  m_pCheckBoxCsvEscape->setEnabled(bCvsMode);
+  
+  if(!bCvsMode)
+  {
+    m_pCheckBoxCsvQuote->setChecked(false);
+    m_pCheckBoxCsvEscape->setChecked(false);
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCopyTableWidget2::slotBinaryToggled(bool bChecked)
+{
+  m_pCheckBoxDelimiter->setEnabled(!bChecked);
+  m_pCheckBoxNullString->setEnabled(!bChecked);
+  
+  if(bChecked)
+  {
+    m_pCheckBoxDelimiter->setChecked(false);
+    m_pCheckBoxNullString->setChecked(false);
+  }
+}
+
+void KPGCopyTableWidget2::slotDelimiterToggled(bool bChecked)
+{
+  m_pLineEditDelimiter->setEnabled(bChecked);
+}
+    
+void KPGCopyTableWidget2::slotNullStringToggled(bool bChecked)
+{
+  m_pLineEditNullString->setEnabled(bChecked);
+}
+    
+void KPGCopyTableWidget2::slotCsvQuoteToggled(bool bChecked)
+{
+  m_pLineEditCsvQuote->setEnabled(bChecked);
+}
+
+void KPGCopyTableWidget2::slotCsvEscapeToggled(bool bChecked)
+{
+  m_pLineEditCsvEscape->setEnabled(bChecked);
+}  
+
+const QString KPGCopyTableWidget2::getSQL() const
+{
+  QString strSQL(" WITH\n");
+ 
+  unsigned int iBasicLength = strSQL.length(); // store this value to decide, if any changes maded
+  
+  if(m_pCheckBoxBinary->isChecked())
+    strSQL.append("BINARY\n");
+        
+  if(m_pCheckBoxOIDs->isChecked())
+    strSQL.append("OIDS\n");
+  
+  if(m_pCheckBoxDelimiter->isChecked())
+    {
+      strSQL.append("DELIMITER AS '");
+      strSQL.append(m_pLineEditDelimiter->text());
+      strSQL.append("'\n");
+    }
+    
+  if(m_pCheckBoxNullString->isChecked())
+    {
+      strSQL.append("NULL AS '");
+      strSQL.append(m_pLineEditNullString->text());
+      strSQL.append("'\n");
+    }
+    
+  if(m_bCvsMode)
+  {
+    strSQL.append("CSV");
+    
+    if(m_pCheckBoxCsvQuote->isChecked())
+    {
+      strSQL.append(" QUOTE AS '");
+      strSQL.append(m_pLineEditCsvQuote->text());
+      strSQL.append("'");
+    }
+    
+    if(m_pCheckBoxCsvEscape->isChecked())
+    {
+      strSQL.append(" ESCAPE AS '");
+      strSQL.append(m_pLineEditCsvEscape->text());
+      strSQL.append("'\n");
+    }
+  }
+  
+  if(iBasicLength == strSQL.length())
+    return ""; // no changes maded  
+    
+  return strSQL;
+}
+
+#include "kpgcopytablewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYTABLEWIDGET2_H
+#define KPGCOPYTABLEWIDGET2_H
+
+#include "kpgcopytablewidget2base.h"
+
+/**
+Widget for copy from/to table Wizards
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyTableWidget2 : public KPGCopyTableWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCopyTableWidget2(QWidget *parent = 0, const char *name = 0);
+    ~KPGCopyTableWidget2();
+
+    void setCvsMode(bool);
+    const QString getSQL() const;
+    
+protected:
+    bool m_bCvsMode;
+    
+protected slots:
+
+    virtual void slotBinaryToggled(bool);
+    virtual void slotDelimiterToggled(bool);
+    virtual void slotNullStringToggled(bool);
+    virtual void slotCsvQuoteToggled(bool);
+    virtual void slotCsvEscapeToggled(bool);
+
+signals:
+    void sigEnableNextButton(bool);     
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,166 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcopytablewidget2base.ui'
+**
+** Created: Út dub 1 13:07:39 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcopytablewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCopyTableWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCopyTableWidget2Base::KPGCopyTableWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCopyTableWidget2Base" );
+    KPGCopyTableWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCopyTableWidget2BaseLayout"); 
+
+    m_pCheckBoxBinary = new QCheckBox( this, "m_pCheckBoxBinary" );
+
+    KPGCopyTableWidget2BaseLayout->addWidget( m_pCheckBoxBinary, 0, 0 );
+
+    m_pCheckBoxOIDs = new QCheckBox( this, "m_pCheckBoxOIDs" );
+
+    KPGCopyTableWidget2BaseLayout->addWidget( m_pCheckBoxOIDs, 1, 0 );
+    spacer4 = new QSpacerItem( 20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCopyTableWidget2BaseLayout->addItem( spacer4, 6, 0 );
+
+    layout6 = new QHBoxLayout( 0, 0, 6, "layout6"); 
+
+    m_pCheckBoxCsvEscape = new QCheckBox( this, "m_pCheckBoxCsvEscape" );
+    layout6->addWidget( m_pCheckBoxCsvEscape );
+
+    m_pLineEditCsvEscape = new KLineEdit( this, "m_pLineEditCsvEscape" );
+    m_pLineEditCsvEscape->setEnabled( FALSE );
+    m_pLineEditCsvEscape->setMaximumSize( QSize( 20, 32767 ) );
+    m_pLineEditCsvEscape->setMaxLength( 1 );
+    layout6->addWidget( m_pLineEditCsvEscape );
+    spacer3 = new QSpacerItem( 31, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout6->addItem( spacer3 );
+
+    KPGCopyTableWidget2BaseLayout->addLayout( layout6, 5, 0 );
+
+    layout4 = new QHBoxLayout( 0, 0, 6, "layout4"); 
+
+    m_pCheckBoxCsvQuote = new QCheckBox( this, "m_pCheckBoxCsvQuote" );
+    layout4->addWidget( m_pCheckBoxCsvQuote );
+
+    m_pLineEditCsvQuote = new KLineEdit( this, "m_pLineEditCsvQuote" );
+    m_pLineEditCsvQuote->setEnabled( FALSE );
+    m_pLineEditCsvQuote->setMaximumSize( QSize( 20, 32767 ) );
+    m_pLineEditCsvQuote->setMaxLength( 1 );
+    layout4->addWidget( m_pLineEditCsvQuote );
+    spacer1 = new QSpacerItem( 31, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout4->addItem( spacer1 );
+
+    KPGCopyTableWidget2BaseLayout->addLayout( layout4, 4, 0 );
+
+    layout2 = new QHBoxLayout( 0, 0, 6, "layout2"); 
+
+    m_pCheckBoxNullString = new QCheckBox( this, "m_pCheckBoxNullString" );
+    layout2->addWidget( m_pCheckBoxNullString );
+
+    m_pLineEditNullString = new KLineEdit( this, "m_pLineEditNullString" );
+    m_pLineEditNullString->setEnabled( FALSE );
+    layout2->addWidget( m_pLineEditNullString );
+
+    KPGCopyTableWidget2BaseLayout->addLayout( layout2, 3, 0 );
+
+    layout5 = new QHBoxLayout( 0, 0, 6, "layout5"); 
+
+    m_pCheckBoxDelimiter = new QCheckBox( this, "m_pCheckBoxDelimiter" );
+    layout5->addWidget( m_pCheckBoxDelimiter );
+
+    m_pLineEditDelimiter = new KLineEdit( this, "m_pLineEditDelimiter" );
+    m_pLineEditDelimiter->setEnabled( FALSE );
+    m_pLineEditDelimiter->setMaximumSize( QSize( 20, 32767 ) );
+    m_pLineEditDelimiter->setLineWidth( 1 );
+    m_pLineEditDelimiter->setMaxLength( 1 );
+    layout5->addWidget( m_pLineEditDelimiter );
+    spacer2 = new QSpacerItem( 21, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout5->addItem( spacer2 );
+
+    KPGCopyTableWidget2BaseLayout->addLayout( layout5, 2, 0 );
+    languageChange();
+    resize( QSize(279, 239).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxDelimiter, SIGNAL( toggled(bool) ), this, SLOT( slotDelimiterToggled(bool) ) );
+    connect( m_pCheckBoxNullString, SIGNAL( toggled(bool) ), this, SLOT( slotNullStringToggled(bool) ) );
+    connect( m_pCheckBoxCsvQuote, SIGNAL( toggled(bool) ), this, SLOT( slotCsvQuoteToggled(bool) ) );
+    connect( m_pCheckBoxCsvEscape, SIGNAL( toggled(bool) ), this, SLOT( slotCsvEscapeToggled(bool) ) );
+    connect( m_pCheckBoxBinary, SIGNAL( toggled(bool) ), this, SLOT( slotBinaryToggled(bool) ) );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCopyTableWidget2Base::~KPGCopyTableWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCopyTableWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Copy parameters" ) );
+    m_pCheckBoxBinary->setText( tr2i18n( "&Binary" ) );
+    m_pCheckBoxBinary->setAccel( QKeySequence( tr2i18n( "Alt+B" ) ) );
+    m_pCheckBoxOIDs->setText( tr2i18n( "&OIDs" ) );
+    m_pCheckBoxOIDs->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    m_pCheckBoxCsvEscape->setText( tr2i18n( "CSV &Escape:" ) );
+    m_pCheckBoxCsvEscape->setAccel( QKeySequence( tr2i18n( "Alt+E" ) ) );
+    m_pCheckBoxCsvQuote->setText( tr2i18n( "CSV &Quote:" ) );
+    m_pCheckBoxCsvQuote->setAccel( QKeySequence( tr2i18n( "Alt+Q" ) ) );
+    m_pCheckBoxNullString->setText( tr2i18n( "&NULL string:" ) );
+    m_pCheckBoxNullString->setAccel( QKeySequence( tr2i18n( "Alt+N" ) ) );
+    m_pCheckBoxDelimiter->setText( tr2i18n( "&Delimiter:" ) );
+    m_pCheckBoxDelimiter->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+}
+
+void KPGCopyTableWidget2Base::slotDelimiterToggled(bool)
+{
+    qWarning( "KPGCopyTableWidget2Base::slotDelimiterToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyTableWidget2Base::slotNullStringToggled(bool)
+{
+    qWarning( "KPGCopyTableWidget2Base::slotNullStringToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyTableWidget2Base::slotCsvQuoteToggled(bool)
+{
+    qWarning( "KPGCopyTableWidget2Base::slotCsvQuoteToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyTableWidget2Base::slotCsvEscapeToggled(bool)
+{
+    qWarning( "KPGCopyTableWidget2Base::slotCsvEscapeToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyTableWidget2Base::slotBinaryToggled(bool)
+{
+    qWarning( "KPGCopyTableWidget2Base::slotBinaryToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcopytablewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,308 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCopyTableWidget2Base</class>
+<comment>Wdget for copy from/to table Wizards</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCopyTableWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>279</width>
+            <height>239</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Copy parameters</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QCheckBox" row="0" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxBinary</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Binary</string>
+            </property>
+            <property name="accel">
+                <string>Alt+B</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxOIDs</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;OIDs</string>
+            </property>
+            <property name="accel">
+                <string>Alt+O</string>
+            </property>
+        </widget>
+        <spacer row="6" column="0">
+            <property name="name">
+                <cstring>spacer4</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="5" column="0">
+            <property name="name">
+                <cstring>layout6</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCsvEscape</cstring>
+                    </property>
+                    <property name="text">
+                        <string>CSV &amp;Escape:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+E</string>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditCsvEscape</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maximumSize">
+                        <size>
+                            <width>20</width>
+                            <height>32767</height>
+                        </size>
+                    </property>
+                    <property name="maxLength">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer3</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>31</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="4" column="0">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCsvQuote</cstring>
+                    </property>
+                    <property name="text">
+                        <string>CSV &amp;Quote:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+Q</string>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditCsvQuote</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maximumSize">
+                        <size>
+                            <width>20</width>
+                            <height>32767</height>
+                        </size>
+                    </property>
+                    <property name="maxLength">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>31</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="3" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxNullString</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;NULL string:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+N</string>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditNullString</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxDelimiter</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delimiter:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDelimiter</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maximumSize">
+                        <size>
+                            <width>20</width>
+                            <height>32767</height>
+                        </size>
+                    </property>
+                    <property name="lineWidth">
+                        <number>1</number>
+                    </property>
+                    <property name="maxLength">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>21</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxDelimiter</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyTableWidget2Base</receiver>
+        <slot>slotDelimiterToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxNullString</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyTableWidget2Base</receiver>
+        <slot>slotNullStringToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCsvQuote</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyTableWidget2Base</receiver>
+        <slot>slotCsvQuoteToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCsvEscape</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyTableWidget2Base</receiver>
+        <slot>slotCsvEscapeToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxBinary</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyTableWidget2Base</receiver>
+        <slot>slotBinaryToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotDelimiterToggled(bool)</slot>
+    <slot access="protected">slotNullStringToggled(bool)</slot>
+    <slot access="protected">slotCsvQuoteToggled(bool)</slot>
+    <slot access="protected">slotCsvEscapeToggled(bool)</slot>
+    <slot access="protected">slotBinaryToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopytablewidget3.h"
+
+// include files for KDE
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCopyTableWidget3::KPGCopyTableWidget3(QWidget *parent, const char *name, KPGTable *pTable)
+ : KPGCopyTableWidget3Base(parent, name)
+{
+  pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pColumnsSelector->availableListBox(), false);
+}
+
+KPGCopyTableWidget3::~KPGCopyTableWidget3()
+{
+}
+
+void KPGCopyTableWidget3::setCvsMode(bool bCvsMode)
+{
+  m_bCvsMode = bCvsMode;
+  m_pColumnsSelector->setEnabled(bCvsMode);
+    
+  emit sigEnableNextButton(true);
+}
+
+const QString KPGCopyTableWidget3::getSQL() const
+{
+  if(!m_bCvsMode) return "";
+  
+  QString strSQL("");
+ 
+  if(m_pColumnsSelector->selectedListBox()->count() > 0)
+  {
+    for(unsigned int i = 0; i < m_pColumnsSelector->selectedListBox()->count(); i++)
+    {
+      strSQL.append(KPGUtil::quotedName(m_pColumnsSelector->selectedListBox()->text(i)));
+      
+      if(i < m_pColumnsSelector->selectedListBox()->count() - 1)
+        strSQL.append(", ");
+    }
+  }
+  
+  return strSQL;
+}
+
+
+#include "kpgcopytablewidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYTABLEWIDGET3_H
+#define KPGCOPYTABLEWIDGET3_H
+
+#include "kpgcopytablewidget3base.h"
+
+class KPGTable;
+
+/**
+Widget for copy from/to table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyTableWidget3 : public KPGCopyTableWidget3Base
+{
+Q_OBJECT
+public:
+    KPGCopyTableWidget3(QWidget *parent, const char *name, KPGTable *pTable);
+    ~KPGCopyTableWidget3();
+
+    void setCvsMode(bool);
+    const QString getSQL() const;
+    
+protected:
+    bool m_bCvsMode;
+    
+signals:
+    void sigEnableNextButton(bool);  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcopytablewidget3base.ui'
+**
+** Created: Út dub 1 13:07:39 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcopytablewidget3base.h"
+
+#include <qvariant.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCopyTableWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCopyTableWidget3Base::KPGCopyTableWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCopyTableWidget3Base" );
+    KPGCopyTableWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCopyTableWidget3BaseLayout"); 
+
+    m_pColumnsSelector = new KActionSelector( this, "m_pColumnsSelector" );
+
+    KPGCopyTableWidget3BaseLayout->addWidget( m_pColumnsSelector, 0, 0 );
+    languageChange();
+    resize( QSize(323, 193).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCopyTableWidget3Base::~KPGCopyTableWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCopyTableWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 3 - Force quote/not NULL columns" ) );
+    m_pColumnsSelector->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pColumnsSelector->setSelectedLabel( tr2i18n( "&Selected columns:" ) );
+}
+
+#include "kpgcopytablewidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytablewidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCopyTableWidget3Base</class>
+<comment>Widget for copy from/to table Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCopyTableWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>323</width>
+            <height>193</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 3 - Force quote/not NULL columns</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KActionSelector" row="0" column="0">
+            <property name="name">
+                <cstring>m_pColumnsSelector</cstring>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Selected columns:</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,133 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopytotablewidget1.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kactionselector.h> 
+#include <kurlrequester.h>
+
+// application specific includes
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCopyToTableWidget1::KPGCopyToTableWidget1(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPGCopyToTableWidget1Base(parent, name)
+{
+  pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pColumnsSelector->availableListBox(), false);
+  
+  m_strTableName = pTable->text(0);
+  m_strNamespace = strNamespace;
+  
+  m_pURLRequesterFile->setURL(m_strTableName + ".txt");
+    
+  // This is here, instead of making connection in Qt Designer due to bug - forward declaration
+  // class QListBoxItem; is not added to h file.
+  connect( m_pColumnsSelector, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotColumnAdded(QListBoxItem*) ) );
+  connect( m_pColumnsSelector, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotColumnRemoved(QListBoxItem*) ) );
+}
+
+
+KPGCopyToTableWidget1::~KPGCopyToTableWidget1()
+{
+}
+
+void KPGCopyToTableWidget1::slotUrlChanged(const QString &strURL)
+{
+  if(strURL.isEmpty())
+    emit sigEnableNextButton(false);
+  else
+  {
+    if(m_pCheckBoxAllColumns->isChecked())
+      emit sigEnableNextButton(true);
+    else
+    {
+      if(m_pColumnsSelector->selectedListBox()->count() == 0)
+        emit sigEnableNextButton(false);
+    }
+  }
+}
+
+void KPGCopyToTableWidget1::slotAllColumnsToggled(bool bAllColumns)
+{
+  m_pColumnsSelector->setEnabled(!bAllColumns);
+  if(bAllColumns)
+    emit sigEnableNextButton(!m_pURLRequesterFile->url().isEmpty());
+  else
+  {
+    if(m_pColumnsSelector->selectedListBox()->count() == 0)
+       emit sigEnableNextButton(false);
+  }
+}
+
+void KPGCopyToTableWidget1::slotColumnAdded(QListBoxItem *)
+{
+  emit sigEnableNextButton(!m_pURLRequesterFile->url().isEmpty());
+}
+
+void KPGCopyToTableWidget1::slotColumnRemoved(QListBoxItem *)
+{
+  if(m_pColumnsSelector->selectedListBox()->count() == 0)
+    emit sigEnableNextButton(false);
+}
+
+void KPGCopyToTableWidget1::slotCsvToggled(bool bCsv)
+{
+  QString strURL(m_pURLRequesterFile->url());
+  
+  if(bCsv && strURL.endsWith(".txt"))
+    {
+      strURL = strURL.left(strURL.length() - 4);
+      strURL.append(".csv");
+      m_pURLRequesterFile->setURL(strURL);
+    }
+    
+  if(!bCsv && strURL.endsWith(".csv"))
+    {
+      strURL = strURL.left(strURL.length() - 4);
+      strURL.append(".txt");
+      m_pURLRequesterFile->setURL(strURL);
+    }
+}
+
+const QString KPGCopyToTableWidget1::getSQL() const
+{
+  QString strSQL("COPY ");
+  
+  strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+  
+  if(m_pCheckBoxAllColumns->isChecked() == false)
+  {
+    strSQL.append(" (");
+    
+    for(unsigned int i = 0; i < m_pColumnsSelector->selectedListBox()->count(); i++)
+    {
+      strSQL.append(KPGUtil::quotedName(m_pColumnsSelector->selectedListBox()->text(i)));
+      
+      if(i < m_pColumnsSelector->selectedListBox()->count() - 1)
+        strSQL.append(", ");
+    }
+    
+    strSQL.append(")");
+  }
+  
+  strSQL.append("\nFROM '");
+  strSQL.append(m_pURLRequesterFile->url());
+  strSQL.append("'");
+  
+  return strSQL;
+}
+
+#include "kpgcopytotablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYTOTABLEWIDGET1_H
+#define KPGCOPYTOTABLEWIDGET1_H
+
+#include "kpgcopytotablewidget1base.h"
+
+class KPGTable;
+class QListBoxItem;
+
+/**
+Widget for copy to table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyToTableWidget1 : public KPGCopyToTableWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCopyToTableWidget1(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGCopyToTableWidget1();
+
+    const QString getSQL() const;
+
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace    
+   
+protected slots:
+
+    virtual void slotUrlChanged(const QString &);
+    virtual void slotAllColumnsToggled(bool);
+    virtual void slotColumnAdded(QListBoxItem *);
+    virtual void slotColumnRemoved(QListBoxItem *);
+    virtual void slotCsvToggled(bool);
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,113 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcopytotablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:38 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcopytotablewidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kurlrequester.h>
+#include <kactionselector.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kurlrequester.h"
+#include "klineedit.h"
+#include "kpushbutton.h"
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCopyToTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCopyToTableWidget1Base::KPGCopyToTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCopyToTableWidget1Base" );
+    KPGCopyToTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCopyToTableWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pURLRequesterFile = new KURLRequester( this, "m_pURLRequesterFile" );
+    layout1->addWidget( m_pURLRequesterFile );
+
+    KPGCopyToTableWidget1BaseLayout->addMultiCellLayout( layout1, 0, 0, 0, 1 );
+
+    m_pColumnsSelector = new KActionSelector( this, "m_pColumnsSelector" );
+    m_pColumnsSelector->setEnabled( FALSE );
+
+    KPGCopyToTableWidget1BaseLayout->addMultiCellWidget( m_pColumnsSelector, 2, 2, 0, 1 );
+
+    m_pCheckBoxAllColumns = new QCheckBox( this, "m_pCheckBoxAllColumns" );
+    m_pCheckBoxAllColumns->setChecked( TRUE );
+
+    KPGCopyToTableWidget1BaseLayout->addWidget( m_pCheckBoxAllColumns, 1, 0 );
+
+    m_pCheckBoxCSV = new QCheckBox( this, "m_pCheckBoxCSV" );
+
+    KPGCopyToTableWidget1BaseLayout->addWidget( m_pCheckBoxCSV, 1, 1 );
+    languageChange();
+    resize( QSize(323, 263).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAllColumns, SIGNAL( toggled(bool) ), this, SLOT( slotAllColumnsToggled(bool) ) );
+    connect( m_pURLRequesterFile, SIGNAL( textChanged(const QString&) ), this, SLOT( slotUrlChanged(const QString&) ) );
+    connect( m_pCheckBoxCSV, SIGNAL( toggled(bool) ), this, SLOT( slotCsvToggled(bool) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pURLRequesterFile );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCopyToTableWidget1Base::~KPGCopyToTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCopyToTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Copy to table" ) );
+    textLabel1->setText( tr2i18n( "Source &file:" ) );
+    m_pColumnsSelector->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pColumnsSelector->setSelectedLabel( tr2i18n( "&Selected columns:" ) );
+    m_pCheckBoxAllColumns->setText( tr2i18n( "All &columns" ) );
+    m_pCheckBoxAllColumns->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pCheckBoxCSV->setText( tr2i18n( "&CSV mode" ) );
+    m_pCheckBoxCSV->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCopyToTableWidget1Base::slotAllColumnsToggled(bool)
+{
+    qWarning( "KPGCopyToTableWidget1Base::slotAllColumnsToggled(bool): Not implemented yet" );
+}
+
+void KPGCopyToTableWidget1Base::slotUrlChanged(const QString&)
+{
+    qWarning( "KPGCopyToTableWidget1Base::slotUrlChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCopyToTableWidget1Base::slotCsvToggled(bool)
+{
+    qWarning( "KPGCopyToTableWidget1Base::slotCsvToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcopytotablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,123 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCopyToTableWidget1Base</class>
+<comment>Widget for copy to table Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCopyToTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>323</width>
+            <height>263</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Copy to table</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Source &amp;file:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pURLRequesterFile</cstring>
+                    </property>
+                </widget>
+                <widget class="KURLRequester">
+                    <property name="name">
+                        <cstring>m_pURLRequesterFile</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="KActionSelector" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pColumnsSelector</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Selected columns:</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxAllColumns</cstring>
+            </property>
+            <property name="text">
+                <string>All &amp;columns</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pCheckBoxCSV</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;CSV mode</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAllColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyToTableWidget1Base</receiver>
+        <slot>slotAllColumnsToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pURLRequesterFile</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCopyToTableWidget1Base</receiver>
+        <slot>slotUrlChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCSV</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCopyToTableWidget1Base</receiver>
+        <slot>slotCsvToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotAllColumnsToggled(bool)</slot>
+    <slot access="protected">slotUrlChanged(const QString &amp;)</slot>
+    <slot access="protected">slotCsvToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,121 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcopytotablewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+//#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtable.h"
+#include "kpgcopytotablewidget1.h"
+#include "kpgcopytablewidget2.h"
+#include "kpgcopytablewidget3.h"
+
+
+KPGCopyToTableWizard::KPGCopyToTableWizard(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPG5StepsWizard(parent, name)
+{
+  KPGCopyToTableWidget1 *pCopyToTableWidget1 = new KPGCopyToTableWidget1(WizardPage1, "KPGCopyToTableWidget1", strNamespace, pTable);
+  m_pPageWidget1 = pCopyToTableWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCopyToTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+    
+  KPGCopyTableWidget2 *pCopyTableWidget2 = new KPGCopyTableWidget2(WizardPage2, "KPGCopyTableWidget2");
+  m_pPageWidget2 = pCopyTableWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  connect(pCopyTableWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  KPGCopyTableWidget3 *pCopyTableWidget3 = new KPGCopyTableWidget3(WizardPage3, "KPGCopyTableWidget3", pTable);
+  m_pPageWidget3 = pCopyTableWidget3;
+  WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+  connect(pCopyTableWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton3(bool)));
+  
+  languageChange();
+  setNextEnabled(WizardPage1, true);
+}
+
+KPGCopyToTableWizard::~KPGCopyToTableWizard()
+{
+}
+
+void KPGCopyToTableWizard::languageChange()
+{
+    KPG5StepsWizard::languageChange();
+    
+    setCaption( i18n( "Copy from file to table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Copy from file parameters" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Copy file parameters" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Force NOT NULL columns" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Review SQL statement" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCopyToTableWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) 
+  {
+    KPGCopyToTableWidget1 *pCopyToTableWidget1 = static_cast <KPGCopyToTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget2 *pCopyTableWidget2 = static_cast <KPGCopyTableWidget2 *> (m_pPageWidget2);
+    
+    pCopyTableWidget2->setCvsMode(pCopyToTableWidget1->m_pCheckBoxCSV->isChecked());
+  }
+  
+  if(pPage == WizardPage3) 
+  {
+    KPGCopyToTableWidget1 *pCopyToTableWidget1 = static_cast <KPGCopyToTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget3 *pCopyTableWidget3 = static_cast <KPGCopyTableWidget3 *> (m_pPageWidget3);
+    
+    pCopyTableWidget3->setCvsMode(pCopyToTableWidget1->m_pCheckBoxCSV->isChecked());
+  }
+  
+  if(pPage == WizardPage4) // Step 4 - Review SQL statement
+  {
+    // prepare SQL statement
+    KPGCopyToTableWidget1 *pCopyToTableWidget1 = static_cast <KPGCopyToTableWidget1 *> (m_pPageWidget1);
+    KPGCopyTableWidget2 *pCopyTableWidget2 = static_cast <KPGCopyTableWidget2 *> (m_pPageWidget2);
+    KPGCopyTableWidget3 *pCopyTableWidget3 = static_cast <KPGCopyTableWidget3 *> (m_pPageWidget3);
+    
+    QString strSQL(pCopyToTableWidget1->getSQL());
+    strSQL.append(pCopyTableWidget2->getSQL());
+    
+    if(!pCopyTableWidget3->getSQL().isEmpty())
+    {
+      strSQL.append("\nFORCE NOT NULL ");
+      strSQL.append(pCopyTableWidget3->getSQL());
+    }
+    strSQL.append(";");
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage5) // Step 5 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG5StepsWizard::showPage(pPage);
+}
+
+
+
+#include "kpgcopytotablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcopytotablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCOPYTOTABLEWIZARD_H
+#define KPGCOPYTOTABLEWIZARD_H
+
+class KPGTable;
+
+#include "kpg5stepswizard.h"
+
+/**
+Copy to table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCopyToTableWizard : public KPG5StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCopyToTableWizard(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGCopyToTableWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,116 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatebasetypewizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreatetypewidget1.h"
+#include "kpgcreatetypewidget2.h"
+#include "kpgcreatetypewidget3.h"
+
+
+KPGCreateBaseTypeWizard::KPGCreateBaseTypeWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG5StepsWizard(parent, name)
+{
+  KPGCreateTypeWidget1 *pCreateTypeWidget1 = new KPGCreateTypeWidget1(WizardPage1, "KPGCreateTypeWidget1", listOfSchemas);
+  m_pPageWidget1 = pCreateTypeWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTypeWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+      
+  KPGCreateTypeWidget2 *pCreateTypeWidget2 = new KPGCreateTypeWidget2(WizardPage2, "KPGCreateTypeWidget2", pDatabase);
+  m_pPageWidget2 = pCreateTypeWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  connect(pCreateTypeWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  KPGCreateTypeWidget3 *pCreateTypeWidget3 = new KPGCreateTypeWidget3(WizardPage3, "KPGCreateTypeWidget3");
+  m_pPageWidget3 = pCreateTypeWidget3;
+  WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+  // always enabled, don't connect
+  
+  // default schema in page 2 is the same as in page 1
+  pCreateTypeWidget2->m_pComboBoxSchema->setCurrentText(pCreateTypeWidget1->m_pComboBoxSchema->currentText());
+    
+  languageChange();
+}
+
+
+KPGCreateBaseTypeWizard::~KPGCreateBaseTypeWizard()
+{
+}
+
+
+void KPGCreateBaseTypeWizard::languageChange()
+{
+    KPG5StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new Base type" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Type name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Define functions" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Define type properties" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Review SQL statement" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateBaseTypeWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Define table columns
+  {
+    //--- Initialize create constraints page
+    KPGCreateTypeWidget1 *pCreateTypeWidget1 = static_cast <KPGCreateTypeWidget1 *> (m_pPageWidget1);
+    KPGCreateTypeWidget2 *pCreateTypeWidget2 = static_cast <KPGCreateTypeWidget2 *> (m_pPageWidget2);
+    
+    if(pCreateTypeWidget2->dataType() != pCreateTypeWidget1->m_pLineEditTypeName->text())
+    {
+      pCreateTypeWidget2->setDataType(pCreateTypeWidget1->m_pLineEditTypeName->text());
+      pCreateTypeWidget2->refreshListOfFunctions();
+    }
+  }
+
+  if(pPage == WizardPage4) // Step 4 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateTypeWidget1 *> (m_pPageWidget1))->getSQL());
+    strSQL.append((static_cast <KPGCreateTypeWidget2 *> (m_pPageWidget2))->getSQL());
+    strSQL.append((static_cast <KPGCreateTypeWidget3 *> (m_pPageWidget3))->getSQL());
+    strSQL.append(";\n");
+        
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage5) // Step 5 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG5StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatebasetypewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatebasetypewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEBASETYPEWIZARD_H
+#define KPGCREATEBASETYPEWIZARD_H
+
+#include "kpg5stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+/**
+Wizard that create base data type
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateBaseTypeWizard : public KPG5StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateBaseTypeWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateBaseTypeWizard();
+  
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,408 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatecompositetypewidget2.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qspinbox.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <klistview.h>
+#include <kmessagebox.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtypesfolder.h"
+#include "../DbObjects/kpgtype.h"
+#include "../kpgutil.h"
+
+#define NUM_BASIC_TYPES 33
+
+
+KPGCreateCompositeTypeWidget2::KPGCreateCompositeTypeWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateCompositeTypeWidget2Base(parent, name)
+{
+    m_pDatabase = pDatabase;
+    
+    // fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxSchema, true); // only user schemas
+    
+    // refresh types from selected schema  
+    refreshListOfTypes();
+    slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+    
+    m_pListViewAttributes->setAllColumnsShowFocus(true);
+    m_pListViewAttributes->setSortColumn(-1);
+}
+
+
+KPGCreateCompositeTypeWidget2::~KPGCreateCompositeTypeWidget2()
+{
+}
+
+void KPGCreateCompositeTypeWidget2::refreshListOfTypes()
+{
+  m_pComboBoxDataType->clear();
+      
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+  
+  if(m_pComboBoxDataType->count() != NUM_BASIC_TYPES)
+    kdDebug() << "KPGCreateCompositeTypeWidget2::refreshListOfTypes : NUM_BASIC_TYPES wrong number" << endl;
+  
+  fillUserDatatypes();
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+}
+
+void KPGCreateCompositeTypeWidget2::fillUserDatatypes()
+{
+  KPGTreeItem *pItem = m_pDatabase->getChildByName(m_pComboBoxSchema->currentText());
+  if(!pItem)
+  {
+    kdDebug() << "KPGCreateCompositeTypeWidget2::fillUserDatatypes: no item found: " << m_pComboBoxSchema->currentText() << endl;
+    return;
+  }
+        
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+  KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+  
+  pTypesFolder->fillComboBoxWithChildItems(m_pComboBoxDataType, true);
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+  slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+// Fired, when user change attribute name
+void KPGCreateCompositeTypeWidget2::slotAttributeNameChanged(const QString& strText)
+{
+    m_pPushButtonAttributeAdd->setEnabled(! strText.isEmpty());
+}
+
+void KPGCreateCompositeTypeWidget2::slotAttributeSelectionChanged(QListViewItem *pItem)
+{
+    m_pPushButtonAttributeDel->setEnabled(pItem != 0);
+    m_pPushButtonAttributeUp->setEnabled(pItem != 0);
+    m_pPushButtonAttributeDown->setEnabled(pItem != 0);
+}
+
+void KPGCreateCompositeTypeWidget2::slotAttributeCurrentChanged(QListViewItem *pItem)
+{
+    m_pPushButtonAttributeDel->setEnabled(pItem != 0);
+    m_pPushButtonAttributeUp->setEnabled(pItem != 0);
+    m_pPushButtonAttributeDown->setEnabled(pItem != 0);
+}
+
+void KPGCreateCompositeTypeWidget2::slotSchemaActivated(int)
+{
+  refreshListOfTypes();
+}
+
+void KPGCreateCompositeTypeWidget2::slotComboDataTypeActivated(const QString &strText)
+{
+  // Enable/disable precision and scale spins
+  m_pSpinBoxPrecision->setEnabled(false);
+  m_pSpinBoxScale->setEnabled(false);
+  
+  if(strText.find("(n)") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+  }
+  
+  if(strText.find("(p, s)") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+    m_pSpinBoxScale->setEnabled(true);
+  }
+  
+  if(strText.find("[(p)]") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+  }
+
+  // Set help text for selected data type
+  if((strText == "char(n)") || (strText == "varchar(n)"))
+  { 
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+    
+    return;
+  }    
+
+  if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+  { 
+    m_pSpinBoxPrecision->setMinValue( 1 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxScale->setMinValue( 0 );
+    m_pSpinBoxScale->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+    
+    return;
+  }    
+
+  if((strText == "bit(n)") || (strText == "bit varying(n)"))
+  { 
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 255 );
+    
+    return;
+  }
+    
+  if((strText == "time [(p)]") || (strText == "time [(p)] with time zone"))
+  { 
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 13 );
+    
+    m_pSpinBoxPrecision->setValue( 13 );
+    return;
+  }
+  
+  if((strText == "timestamp [(p)]") || (strText == "timestamp [(p)] with time zone") || (strText == "interval [(p)]"))
+  { 
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 6 );
+    
+    m_pSpinBoxPrecision->setValue( 6 );
+
+    return;
+  }
+}
+
+void KPGCreateCompositeTypeWidget2::slotNumDimensionsChanged(int nDimensions)
+{
+    if(nDimensions > 0)
+    {
+      m_pLineEditArrayDimDef->setEnabled(true);
+      QString strDimensionsDef;
+      for(int i = 0; i < nDimensions; i++)
+       strDimensionsDef.append("[]");
+       
+       m_pLineEditArrayDimDef->setText(strDimensionsDef);
+    }
+    else
+    {
+      m_pLineEditArrayDimDef->setEnabled(false);
+      m_pLineEditArrayDimDef->setText("");
+    }
+}
+
+void KPGCreateCompositeTypeWidget2::slotAttributeAdd()
+{
+  if(m_pComboBoxDataType->currentItem() < 0) return;
+  
+  QString strAttributeName(m_pLineEditAttributeName->text());
+  QString strAttributeType(m_pComboBoxDataType->currentText());
+  QString strNamespace(m_pComboBoxSchema->currentText());
+  
+  QString strDefinition;
+  
+  if((m_pComboBoxDataType->currentItem() <= NUM_BASIC_TYPES - 1) || (strNamespace == "public"))
+    strDefinition = strAttributeType;
+  else
+    strDefinition = strNamespace + "." +  strAttributeType;
+  
+  if(strAttributeName.isEmpty())
+  {
+    kdDebug() << "KPGCreateCompositeTypeWidget2::slotAttributeAdd - attibute name is empty !" << endl;
+    return;
+  }
+    
+  // Avoid attribute name duplicity
+  QListViewItem *pLastItem = 0;
+  
+  QListViewItem * pItem = m_pListViewAttributes->firstChild();
+  while(pItem)
+  {
+    pLastItem = pItem;
+    
+    if(pItem->text(0) == strAttributeName)
+    { 
+      KMessageBox::sorry(this, i18n("Attribute name already exists !"));
+      return;   
+    } 
+    
+    pItem = pItem->nextSibling();
+  }
+  
+  //----------------------------------------------------------- 
+  int i;
+  if((i = strDefinition.find("(n)")) > 0)
+  {
+    strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+        
+    strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+  }
+  
+  if((i = strDefinition.find("(p, s)")) > 0)
+  {
+    strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+    
+    strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxPrecision->value()).arg(m_pSpinBoxScale->value()));
+  }
+  
+  if((i = strDefinition.find("[(p)]")) > 0)
+  {
+    QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+    strDefinition = strDefinition.left(i); // strip (n)
+    
+    strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+    strDefinition.append(strDefinitionPostfix);
+  }
+  
+  // Create item for new attribute
+  QListViewItem *pNewItem;
+  if(pLastItem == 0) 
+    pNewItem = new QListViewItem(m_pListViewAttributes, strAttributeName, strDefinition);
+  else
+    pNewItem = new QListViewItem(m_pListViewAttributes, pLastItem, strAttributeName, strDefinition);
+  
+  pNewItem->setPixmap(0, * m_pComboBoxDataType->pixmap(m_pComboBoxDataType->currentItem()));
+  
+  emit sigEnableNextButton(true);
+  m_pLineEditAttributeName->setFocus(); // prepare for new attribute
+  m_pLineEditAttributeName->setText("");
+}
+
+void KPGCreateCompositeTypeWidget2::slotAttributeDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewAttributes->selectedItem();
+  if(pSelectedItem)
+  { 
+    delete pSelectedItem;
+  }
+      
+  if(!m_pListViewAttributes->firstChild())
+    emit sigEnableNextButton(false);
+}
+
+// Move selected attribute Up
+void KPGCreateCompositeTypeWidget2::slotAttributeUp()
+{
+    QListViewItem *pSelectedItem = m_pListViewAttributes->selectedItem();
+    if(!pSelectedItem) return;
+    
+    QListViewItem *pPrevItem = pSelectedItem->itemAbove();
+    if(!pPrevItem) return;
+    
+    pPrevItem = pPrevItem->itemAbove();
+        
+    m_pListViewAttributes->takeItem(pSelectedItem);
+    
+    QListViewItem *pNewItem;
+     
+    if(pPrevItem)
+      pNewItem = new QListViewItem(m_pListViewAttributes, pPrevItem, pSelectedItem->text(0),  pSelectedItem->text(1));
+    else
+      pNewItem = new QListViewItem(m_pListViewAttributes, pSelectedItem->text(0),  pSelectedItem->text(1));
+    
+    pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+         
+    delete pSelectedItem;
+     
+    m_pListViewAttributes->setCurrentItem(pNewItem);
+    m_pListViewAttributes->setSelected(pNewItem, true);
+}
+
+// Move selected attribute Down
+void KPGCreateCompositeTypeWidget2::slotAttributeDown()
+{
+    QListViewItem *pSelectedItem = m_pListViewAttributes->selectedItem();
+    if(!pSelectedItem) return;
+    
+    QListViewItem *pAfterItem = pSelectedItem->itemBelow();
+    if(!pAfterItem) return;
+    
+    m_pListViewAttributes->takeItem(pSelectedItem);
+     
+    QListViewItem *pNewItem = new QListViewItem(m_pListViewAttributes, pAfterItem, pSelectedItem->text(0), pSelectedItem->text(1));
+    pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+         
+    delete pSelectedItem;
+     
+    m_pListViewAttributes->setCurrentItem(pNewItem);
+    m_pListViewAttributes->setSelected(pNewItem, true);
+}
+
+const QString KPGCreateCompositeTypeWidget2::getSQL() const
+{
+  QString strSQL(" AS (\n");
+ 
+  QListViewItem * pItem = m_pListViewAttributes->firstChild();
+  while(pItem)
+  {
+    strSQL.append(pItem->text(0));
+    strSQL.append(" ");
+    strSQL.append(pItem->text(1));
+        
+    pItem = pItem->nextSibling();
+    
+    if(pItem)
+      strSQL.append(",\n");
+  }
+  
+  strSQL.append(")");
+     
+  return strSQL;
+}
+
+#include "kpgcreatecompositetypewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATECOMPOSITETYPEWIDGET2_H
+#define KPGCREATECOMPOSITETYPEWIDGET2_H
+
+#include "kpgcreatecompositetypewidget2base.h"
+
+class KPGDatabase;
+
+/**
+Widget for create composite type Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateCompositeTypeWidget2 : public KPGCreateCompositeTypeWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateCompositeTypeWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateCompositeTypeWidget2();
+
+    const QString getSQL() const;
+
+protected:
+    void refreshListOfTypes();
+    void fillUserDatatypes();    
+      
+protected:    
+     KPGDatabase *m_pDatabase;
+     
+protected slots:
+
+    virtual void slotAttributeNameChanged(const QString&);
+    virtual void slotSchemaActivated(int);
+    virtual void slotComboDataTypeActivated(const QString &);
+    virtual void slotNumDimensionsChanged(int);
+    
+    virtual void slotAttributeSelectionChanged(QListViewItem *);
+    virtual void slotAttributeCurrentChanged(QListViewItem *);
+    
+    virtual void slotAttributeAdd();
+    virtual void slotAttributeDelete();
+    virtual void slotAttributeUp();
+    virtual void slotAttributeDown();
+    
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,254 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatecompositetypewidget2base.ui'
+**
+** Created: Út dub 1 13:07:42 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatecompositetypewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qspinbox.h>
+#include <klineedit.h>
+#include <qlineedit.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+#include "klistview.h"
+
+/*
+ *  Constructs a KPGCreateCompositeTypeWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateCompositeTypeWidget2Base::KPGCreateCompositeTypeWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateCompositeTypeWidget2Base" );
+    KPGCreateCompositeTypeWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateCompositeTypeWidget2BaseLayout"); 
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( textLabel4, 2, 2, 3, 4 );
+
+    m_pComboBoxSchema = new KComboBox( FALSE, this, "m_pComboBoxSchema" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( m_pComboBoxSchema, 3, 0 );
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    textLabel2_2->setTextFormat( QLabel::PlainText );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( textLabel2_2, 2, 0 );
+
+    textLabel13 = new QLabel( this, "textLabel13" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( textLabel13, 2, 1 );
+
+    m_pComboBoxDataType = new KComboBox( FALSE, this, "m_pComboBoxDataType" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( m_pComboBoxDataType, 3, 1 );
+
+    m_pSpinBoxPrecision = new QSpinBox( this, "m_pSpinBoxPrecision" );
+    m_pSpinBoxPrecision->setEnabled( FALSE );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    m_pSpinBoxPrecision->setMinValue( 1 );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( m_pSpinBoxPrecision, 3, 2 );
+
+    m_pSpinBoxScale = new QSpinBox( this, "m_pSpinBoxScale" );
+    m_pSpinBoxScale->setEnabled( FALSE );
+    m_pSpinBoxScale->setMaxValue( 999 );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( m_pSpinBoxScale, 3, 3, 3, 4 );
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( textLabel3, 2, 2 );
+
+    m_pSpinBoxNumDimensions = new QSpinBox( this, "m_pSpinBoxNumDimensions" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addWidget( m_pSpinBoxNumDimensions, 1, 4 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( textLabel1, 0, 0, 0, 1 );
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( textLabel1_2, 0, 0, 2, 3 );
+
+    m_pLineEditArrayDimDef = new KLineEdit( this, "m_pLineEditArrayDimDef" );
+    m_pLineEditArrayDimDef->setEnabled( FALSE );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( m_pLineEditArrayDimDef, 1, 1, 2, 3 );
+
+    m_pLineEditAttributeName = new QLineEdit( this, "m_pLineEditAttributeName" );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( m_pLineEditAttributeName, 1, 1, 0, 1 );
+
+    groupBox2 = new QGroupBox( this, "groupBox2" );
+    groupBox2->setColumnLayout(0, Qt::Vertical );
+    groupBox2->layout()->setSpacing( 6 );
+    groupBox2->layout()->setMargin( 11 );
+    groupBox2Layout = new QGridLayout( groupBox2->layout() );
+    groupBox2Layout->setAlignment( Qt::AlignTop );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    m_pPushButtonAttributeAdd = new QPushButton( groupBox2, "m_pPushButtonAttributeAdd" );
+    m_pPushButtonAttributeAdd->setEnabled( TRUE );
+    layout2->addWidget( m_pPushButtonAttributeAdd );
+
+    m_pPushButtonAttributeDel = new QPushButton( groupBox2, "m_pPushButtonAttributeDel" );
+    m_pPushButtonAttributeDel->setEnabled( FALSE );
+    layout2->addWidget( m_pPushButtonAttributeDel );
+
+    m_pPushButtonAttributeUp = new QPushButton( groupBox2, "m_pPushButtonAttributeUp" );
+    m_pPushButtonAttributeUp->setEnabled( FALSE );
+    layout2->addWidget( m_pPushButtonAttributeUp );
+
+    m_pPushButtonAttributeDown = new QPushButton( groupBox2, "m_pPushButtonAttributeDown" );
+    m_pPushButtonAttributeDown->setEnabled( FALSE );
+    layout2->addWidget( m_pPushButtonAttributeDown );
+
+    groupBox2Layout->addLayout( layout2, 0, 1 );
+    spacer4_2 = new QSpacerItem( 20, 6, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox2Layout->addItem( spacer4_2, 1, 1 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel2_3 = new QLabel( groupBox2, "textLabel2_3" );
+    layout3->addWidget( textLabel2_3 );
+
+    m_pListViewAttributes = new QListView( groupBox2, "m_pListViewAttributes" );
+    m_pListViewAttributes->addColumn( tr2i18n( "Attribute name" ) );
+    m_pListViewAttributes->addColumn( tr2i18n( "Definition" ) );
+    layout3->addWidget( m_pListViewAttributes );
+
+    groupBox2Layout->addMultiCellLayout( layout3, 0, 1, 0, 0 );
+
+    KPGCreateCompositeTypeWidget2BaseLayout->addMultiCellWidget( groupBox2, 4, 4, 0, 4 );
+    languageChange();
+    resize( QSize(407, 348).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxSchema, SIGNAL( activated(int) ), this, SLOT( slotSchemaActivated(int) ) );
+    connect( m_pComboBoxDataType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboDataTypeActivated(const QString&) ) );
+    connect( m_pSpinBoxNumDimensions, SIGNAL( valueChanged(int) ), this, SLOT( slotNumDimensionsChanged(int) ) );
+    connect( m_pPushButtonAttributeAdd, SIGNAL( clicked() ), this, SLOT( slotAttributeAdd() ) );
+    connect( m_pPushButtonAttributeDel, SIGNAL( clicked() ), this, SLOT( slotAttributeDelete() ) );
+    connect( m_pPushButtonAttributeUp, SIGNAL( clicked() ), this, SLOT( slotAttributeUp() ) );
+    connect( m_pPushButtonAttributeDown, SIGNAL( clicked() ), this, SLOT( slotAttributeDown() ) );
+    connect( m_pLineEditAttributeName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotAttributeNameChanged(const QString&) ) );
+    connect( m_pListViewAttributes, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotAttributeSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewAttributes, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotAttributeCurrentChanged(QListViewItem*) ) );
+
+    // buddies
+    textLabel4->setBuddy( m_pSpinBoxScale );
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel13->setBuddy( m_pComboBoxDataType );
+    textLabel3->setBuddy( m_pSpinBoxPrecision );
+    textLabel1->setBuddy( m_pLineEditAttributeName );
+    textLabel1_2->setBuddy( m_pSpinBoxNumDimensions );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateCompositeTypeWidget2Base::~KPGCreateCompositeTypeWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateCompositeTypeWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Define attributes" ) );
+    textLabel4->setText( tr2i18n( "Scale:" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel13->setText( tr2i18n( "&Data type:" ) );
+    textLabel3->setText( tr2i18n( "&Precision/size:" ) );
+    textLabel1->setText( tr2i18n( "A&ttribute name:" ) );
+    textLabel1_2->setText( tr2i18n( "Array d&imensions:" ) );
+    groupBox2->setTitle( tr2i18n( "Attributes" ) );
+    m_pPushButtonAttributeAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonAttributeAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonAttributeDel->setText( tr2i18n( "De&lete" ) );
+    m_pPushButtonAttributeDel->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pPushButtonAttributeUp->setText( tr2i18n( "Move &Up" ) );
+    m_pPushButtonAttributeUp->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pPushButtonAttributeDown->setText( tr2i18n( "Move D&own" ) );
+    m_pPushButtonAttributeDown->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    textLabel2_3->setText( tr2i18n( "Attributes list:" ) );
+    m_pListViewAttributes->header()->setLabel( 0, tr2i18n( "Attribute name" ) );
+    m_pListViewAttributes->header()->setLabel( 1, tr2i18n( "Definition" ) );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotSchemaActivated(int)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotSchemaActivated(int): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotComboDataTypeActivated(const QString&)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotComboDataTypeActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotNumDimensionsChanged(int)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotNumDimensionsChanged(int): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeAdd()
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeAdd(): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeDelete()
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeDelete(): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeUp()
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeUp(): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeDown()
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeDown(): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeNameChanged(const QString&)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateCompositeTypeWidget2Base::slotAttributeCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateCompositeTypeWidget2Base::slotAttributeCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+#include "kpgcreatecompositetypewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,373 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateCompositeTypeWidget2Base</class>
+<comment>Widget for create composite type Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateCompositeTypeWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>407</width>
+            <height>348</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Define attributes</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="2" column="3" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel4</cstring>
+            </property>
+            <property name="text">
+                <string>Scale:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+        </widget>
+        <widget class="KComboBox" row="3" column="0">
+            <property name="name">
+                <cstring>m_pComboBoxSchema</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="0">
+            <property name="name">
+                <cstring>textLabel2_2</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Schema:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pComboBoxSchema</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="1">
+            <property name="name">
+                <cstring>textLabel13</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Data type:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="KComboBox" row="3" column="1">
+            <property name="name">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="3" column="2">
+            <property name="name">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+            <property name="minValue">
+                <number>1</number>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="3" column="3" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="2">
+            <property name="name">
+                <cstring>textLabel3</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Precision/size:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="1" column="4">
+            <property name="name">
+                <cstring>m_pSpinBoxNumDimensions</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>A&amp;ttribute name:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pLineEditAttributeName</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="2" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel1_2</cstring>
+            </property>
+            <property name="text">
+                <string>Array d&amp;imensions:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxNumDimensions</cstring>
+            </property>
+        </widget>
+        <widget class="KLineEdit" row="1" column="2" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pLineEditArrayDimDef</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+        </widget>
+        <widget class="QLineEdit" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pLineEditAttributeName</cstring>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="4" column="0" rowspan="1" colspan="5">
+            <property name="name">
+                <cstring>groupBox2</cstring>
+            </property>
+            <property name="title">
+                <string>Attributes</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonAttributeAdd</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>true</bool>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Add</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonAttributeDel</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>De&amp;lete</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+L</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonAttributeUp</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move &amp;Up</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+U</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonAttributeDown</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move D&amp;own</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer row="1" column="1">
+                    <property name="name">
+                        <cstring>spacer4_2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>6</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QLayoutWidget" row="0" column="0" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Attributes list:</string>
+                            </property>
+                        </widget>
+                        <widget class="QListView">
+                            <column>
+                                <property name="text">
+                                    <string>Attribute name</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <column>
+                                <property name="text">
+                                    <string>Definition</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <property name="name">
+                                <cstring>m_pListViewAttributes</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotSchemaActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxDataType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotComboDataTypeActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pSpinBoxNumDimensions</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotNumDimensionsChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonAttributeAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonAttributeDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonAttributeUp</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeUp()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonAttributeDown</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeDown()</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditAttributeName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewAttributes</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewAttributes</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateCompositeTypeWidget2Base</receiver>
+        <slot>slotAttributeCurrentChanged(QListViewItem*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotSchemaActivated(int)</slot>
+    <slot access="protected">slotComboDataTypeActivated(const QString &amp;)</slot>
+    <slot access="protected">slotNumDimensionsChanged(int)</slot>
+    <slot access="protected">slotAttributeAdd()</slot>
+    <slot access="protected">slotAttributeDelete()</slot>
+    <slot access="protected">slotAttributeUp()</slot>
+    <slot access="protected">slotAttributeDown()</slot>
+    <slot access="protected">slotAttributeNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotAttributeSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotAttributeCurrentChanged(QListViewItem *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistview.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatecompositetypewizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreatetypewidget1.h"
+#include "kpgcreatecompositetypewidget2.h"
+
+
+KPGCreateCompositeTypeWizard::KPGCreateCompositeTypeWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG4StepsWizard(parent, name)
+{
+  KPGCreateTypeWidget1 *pCreateTypeWidget1 = new KPGCreateTypeWidget1(WizardPage1, "KPGCreateTypeWidget1", listOfSchemas);
+  m_pPageWidget1 = pCreateTypeWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTypeWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+      
+  KPGCreateCompositeTypeWidget2 *pCreateTypeWidget2 = new KPGCreateCompositeTypeWidget2(WizardPage2, "KPGCreateCompositeTypeWidget2", pDatabase);
+  m_pPageWidget2 = pCreateTypeWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  connect(pCreateTypeWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  // default schema in page 2 is the same as in page 1
+  pCreateTypeWidget2->m_pComboBoxSchema->setCurrentText(pCreateTypeWidget1->m_pComboBoxSchema->currentText());
+    
+  languageChange();
+}
+
+KPGCreateCompositeTypeWizard::~KPGCreateCompositeTypeWizard()
+{
+}
+
+void KPGCreateCompositeTypeWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new Composite type" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Type name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Define attributes" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateCompositeTypeWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Definr attributes list
+  {
+    (static_cast <KPGCreateCompositeTypeWidget2 *> (m_pPageWidget2))->m_pLineEditAttributeName->setFocus(); 
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateTypeWidget1 *> (m_pPageWidget1))->getSQL());
+    strSQL.append((static_cast <KPGCreateCompositeTypeWidget2 *> (m_pPageWidget2))->getSQL());
+    
+    strSQL.append(";\n");
+        
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage4) // Step 4 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatecompositetypewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatecompositetypewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATECOMPOSITETYPEWIZARD_H
+#define KPGCREATECOMPOSITETYPEWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+/**
+Wizard that create composite type
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateCompositeTypeWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateCompositeTypeWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateCompositeTypeWizard();
+  
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,99 @@
+//
+// C++ Implementation: kpgcreatedatabasewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedatabasewidget1.h"
+
+// include files for KDE
+#include <klineedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../kpgutil.h"
+
+KPGCreateDatabaseWidget1::KPGCreateDatabaseWidget1(QWidget *parent, const char *name, KPGServer *pServer)
+ : KPGCreateDatabaseWidget1Base(parent, name)
+{
+	m_pLineEditDatabaseName->setFocus();
+	
+	KPGUsersFolder *pUsersFolder =  pServer->getUsersFolder();
+	
+	//--- traverse list of users
+	QListViewItem * pItem = pUsersFolder->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeUser)
+			m_pComboBoxOwner->insertItem(*pItem->pixmap(0), pItem->text(0));
+				
+		pItem = pItem->nextSibling();
+	}
+		
+	//--- traverse list of databases
+	pItem = pServer->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+		{
+      KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem);
+      
+      if(pDatabase->isConnected() == false) // only disconnected databases can't be used as template
+        m_pComboBoxTemplateDb->insertItem(*pItem->pixmap(0), pItem->text(0));
+		}	
+		
+    pItem = pItem->nextSibling();
+	}
+}
+
+
+KPGCreateDatabaseWidget1::~KPGCreateDatabaseWidget1()
+{
+}
+
+void KPGCreateDatabaseWidget1::slotLineEditDatabaseNameChanged(const QString &strDbName)
+{
+	emit sigEnableNextButton(strDbName.length() > 0);
+}
+
+const QString KPGCreateDatabaseWidget1::getSQL() const
+{
+	QString strSQL("CREATE DATABASE ");
+	
+	strSQL.append(KPGUtil::quotedName(m_pLineEditDatabaseName->text()));
+	
+	QString strWITH(" WITH ");
+	
+	if(m_pComboBoxOwner->currentItem() > 0)
+		strWITH.append("\nOWNER " + KPGUtil::quotedName(m_pComboBoxOwner->currentText()));
+	
+	if(m_pLineEditLocation->text().length() > 0)
+		strWITH.append("\nLOCATION '" + m_pLineEditLocation->text() + "'");
+	
+	if(m_pComboBoxTemplateDb->currentItem() > 0)
+		strWITH.append("\nTEMPLATE " + KPGUtil::quotedName(m_pComboBoxTemplateDb->currentText()));
+		
+	if(m_pComboBoxEncoding->currentItem() > 0)
+		strWITH.append("\nENCODING '" + m_pComboBoxEncoding->currentText() + "'");		
+	
+  if(m_pComboBoxTablespace->currentItem() > 0)
+    strWITH.append("\nTABLESPACE " + KPGUtil::quotedName(m_pComboBoxTablespace->currentText()));
+      	
+	if(strWITH.length() > 7)
+		strSQL.append(strWITH);
+	
+	return strSQL;
+}
+		
+#include "kpgcreatedatabasewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: kpgcreatedatabasewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDATABASEWIDGET1_H
+#define KPGCREATEDATABASEWIDGET1_H
+
+#include "kpgcreatedatabasewidget1base.h"
+
+class KPGServer;
+
+/**
+Widget for create database Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDatabaseWidget1 : public KPGCreateDatabaseWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateDatabaseWidget1(QWidget *parent, const char *name, KPGServer *);
+    ~KPGCreateDatabaseWidget1();
+
+		const QString getSQL() const;
+
+protected slots:
+
+		virtual void slotLineEditDatabaseNameChanged(const QString &);		
+signals:
+		void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,177 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatedatabasewidget1base.ui'
+**
+** Created: Út dub 1 13:07:30 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatedatabasewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGCreateDatabaseWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateDatabaseWidget1Base::KPGCreateDatabaseWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateDatabaseWidget1Base" );
+    KPGCreateDatabaseWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateDatabaseWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditDatabaseName = new KLineEdit( this, "m_pLineEditDatabaseName" );
+    layout1->addWidget( m_pLineEditDatabaseName );
+
+    KPGCreateDatabaseWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer5 = new QSpacerItem( 121, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateDatabaseWidget1BaseLayout->addItem( spacer5, 0, 1 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1_2 = new QLabel( groupBox1, "textLabel1_2" );
+    layout2->addWidget( textLabel1_2 );
+
+    m_pComboBoxOwner = new KComboBox( FALSE, groupBox1, "m_pComboBoxOwner" );
+    layout2->addWidget( m_pComboBoxOwner );
+
+    groupBox1Layout->addLayout( layout2, 0, 0 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel3 = new QLabel( groupBox1, "textLabel3" );
+    layout4->addWidget( textLabel3 );
+
+    m_pComboBoxTemplateDb = new KComboBox( FALSE, groupBox1, "m_pComboBoxTemplateDb" );
+    layout4->addWidget( m_pComboBoxTemplateDb );
+
+    groupBox1Layout->addLayout( layout4, 2, 0 );
+
+    layout7 = new QVBoxLayout( 0, 0, 6, "layout7"); 
+
+    textLabel2 = new QLabel( groupBox1, "textLabel2" );
+    layout7->addWidget( textLabel2 );
+
+    m_pLineEditLocation = new KLineEdit( groupBox1, "m_pLineEditLocation" );
+    layout7->addWidget( m_pLineEditLocation );
+
+    groupBox1Layout->addMultiCellLayout( layout7, 1, 1, 0, 2 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel1_3 = new QLabel( groupBox1, "textLabel1_3" );
+    layout6->addWidget( textLabel1_3 );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, groupBox1, "m_pComboBoxTablespace" );
+    layout6->addWidget( m_pComboBoxTablespace );
+
+    groupBox1Layout->addLayout( layout6, 0, 1 );
+    spacer6_2 = new QSpacerItem( 21, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    groupBox1Layout->addItem( spacer6_2, 0, 2 );
+
+    layout6_2 = new QVBoxLayout( 0, 0, 6, "layout6_2"); 
+
+    textLabel4 = new QLabel( groupBox1, "textLabel4" );
+    layout6_2->addWidget( textLabel4 );
+
+    m_pComboBoxEncoding = new KComboBox( FALSE, groupBox1, "m_pComboBoxEncoding" );
+    m_pComboBoxEncoding->setEditable( TRUE );
+    layout6_2->addWidget( m_pComboBoxEncoding );
+
+    groupBox1Layout->addLayout( layout6_2, 2, 1 );
+    spacer6 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    groupBox1Layout->addItem( spacer6, 2, 2 );
+
+    KPGCreateDatabaseWidget1BaseLayout->addMultiCellWidget( groupBox1, 1, 1, 0, 1 );
+    spacer5_2 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateDatabaseWidget1BaseLayout->addItem( spacer5_2, 2, 0 );
+    languageChange();
+    resize( QSize(246, 297).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditDatabaseName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditDatabaseNameChanged(const QString&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditDatabaseName );
+    textLabel1_2->setBuddy( m_pComboBoxOwner );
+    textLabel3->setBuddy( m_pComboBoxTemplateDb );
+    textLabel2->setBuddy( m_pLineEditLocation );
+    textLabel1_3->setBuddy( m_pComboBoxTablespace );
+    textLabel4->setBuddy( m_pComboBoxEncoding );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateDatabaseWidget1Base::~KPGCreateDatabaseWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateDatabaseWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create database" ) );
+    textLabel1->setText( tr2i18n( "&Database name:" ) );
+    groupBox1->setTitle( tr2i18n( "Optional properties:" ) );
+    textLabel1_2->setText( tr2i18n( "&Owner:" ) );
+    m_pComboBoxOwner->clear();
+    m_pComboBoxOwner->insertItem( tr2i18n( "Default" ) );
+    textLabel3->setText( tr2i18n( "&Template:" ) );
+    m_pComboBoxTemplateDb->clear();
+    m_pComboBoxTemplateDb->insertItem( tr2i18n( "None" ) );
+    textLabel2->setText( tr2i18n( "&Location:" ) );
+    textLabel1_3->setText( tr2i18n( "Table&space:" ) );
+    m_pComboBoxTablespace->clear();
+    m_pComboBoxTablespace->insertItem( tr2i18n( "Default" ) );
+    textLabel4->setText( tr2i18n( "&Encoding:" ) );
+    m_pComboBoxEncoding->clear();
+    m_pComboBoxEncoding->insertItem( tr2i18n( "Default" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "UTF8" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN1" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN2" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN3" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN4" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN5" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN6" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN7" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN8" ) );
+    m_pComboBoxEncoding->insertItem( tr2i18n( "LATIN9" ) );
+}
+
+void KPGCreateDatabaseWidget1Base::slotLineEditDatabaseNameChanged(const QString&)
+{
+    qWarning( "KPGCreateDatabaseWidget1Base::slotLineEditDatabaseNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatedatabasewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,359 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateDatabaseWidget1Base</class>
+<comment>Widget for create database Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateDatabaseWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>246</width>
+            <height>297</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create database</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Database name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDatabaseName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDatabaseName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer5</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>121</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Optional properties:</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Owner:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxOwner</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxOwner</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Template:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxTemplateDb</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>None</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxTemplateDb</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="3">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Location:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditLocation</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditLocation</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Table&amp;space:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer row="0" column="2">
+                    <property name="name">
+                        <cstring>spacer6_2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>21</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QLayoutWidget" row="2" column="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel4</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Encoding:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxEncoding</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>UTF8</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN1</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN2</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN3</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN4</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN5</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN6</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN7</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN8</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>LATIN9</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxEncoding</cstring>
+                            </property>
+                            <property name="editable">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer row="2" column="2">
+                    <property name="name">
+                        <cstring>spacer6</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer5_2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pLineEditDatabaseName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateDatabaseWidget1Base</receiver>
+        <slot>slotLineEditDatabaseNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotLineEditDatabaseNameChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,289 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedatabasewidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+#include "../kpgutil.h"
+
+KPGCreateDatabaseWidget2::KPGCreateDatabaseWidget2(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateDatabaseWidget2Base(parent, name)
+{
+  m_bGrantOrRevoke = bGrantOrRevoke;
+  
+  if(bGrantOrRevoke)
+  {
+    strGR = strGR + "GRANT ";
+    strTF = " TO ";
+    m_pCheckBoxCascade->hide();
+  }
+  else
+  {
+    strGR = "REVOKE ";
+    strTF = " FROM ";
+    m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+  }
+  
+  m_pListViewGrants->setSortColumn(-1);
+}
+
+
+KPGCreateDatabaseWidget2::~KPGCreateDatabaseWidget2()
+{
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//                       GRANTS FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateDatabaseWidget2::slotCheckBoxAllToggled(bool bState)
+{
+  m_pCheckBoxCreate->setEnabled(!bState);
+  m_pCheckBoxTemporary->setEnabled(!bState);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::slotCheckBoxCreateToggled(bool)
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::slotCheckBoxTemporaryToggled(bool)
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::slotCheckBoxPublicToggled(bool bState)
+{
+  m_pListBoxUsersGroups->setEnabled(!bState);
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::slotGrantOptionsToggled(bool bState)
+{
+  m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateDatabaseWidget2::slotListBoxUsersSelectionChanged()
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::enableAddGrantButton()
+{
+  bool bAnyPrivilegeChecked = false;
+  
+  if(m_pCheckBoxAll->isChecked()) bAnyPrivilegeChecked = true;
+    else
+      if(m_pCheckBoxCreate->isChecked()) bAnyPrivilegeChecked = true;
+        else
+          if(m_pCheckBoxTemporary->isChecked()) bAnyPrivilegeChecked = true;
+  
+  bool bAnyUserOrGroupChecked = false;        
+  
+  if(m_pCheckBoxPublic->isChecked()) 
+    bAnyUserOrGroupChecked = true;
+  else
+    {
+      if(m_pListBoxUsersGroups->count() > 0)
+      {
+        for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+        if(m_pListBoxUsersGroups->isSelected(i))
+          {
+            bAnyUserOrGroupChecked = true;
+            break;
+          }
+      }
+    }
+  m_pPushButtonGrantAdd->setEnabled(bAnyPrivilegeChecked && bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateDatabaseWidget2::slotGrantAdd()
+{
+    QListViewItem *pLastItem = 0;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    pLastItem = pItem;
+    pItem = pItem->nextSibling();
+  }
+  
+  QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+  
+  QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+  QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+  QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+      
+  if(m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+  {
+    strListOfSQLs.append(strGR + "ALL ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + "PUBLIC");   
+  }
+  
+  if(m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+  {
+    QString strSQL(strGR);
+    
+    if(m_pCheckBoxCreate->isChecked())
+     strSQL.append("CREATE, ");
+                          
+    if(m_pCheckBoxTemporary->isChecked())
+     strSQL.append("TEMPORARY");
+      
+    if(strSQL.right(2) == ", ")  
+      strSQL = strSQL.left(strSQL.length() - 2);
+      
+    strSQL.append(" ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + "PUBLIC");   
+    
+    strListOfSQLs.append(strSQL);
+  }
+  
+  if(!m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << "KPGCreateDatabaseWidget2::slotGrantAdd - bad object type !" << endl;
+          return;
+        }  
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);
+        
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strListOfSQLs.append(strGR + "ALL ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strListOfSQLs.append(strGR + strGOF + "ALL ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + pListBoxItem->text() + strWGO + strC);    
+      }
+    }
+  }
+  
+  if(!m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << "KPGCreateDatabaseWidget2::slotGrantAdd - bad object type !" << endl;
+          return;
+        }
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+                
+        QString strSQL(strGR);
+        
+        if(pListBoxItem->type() != KPGTreeItem::nodeGroup)
+           strSQL.append(strGOF);
+            
+        if(m_pCheckBoxCreate->isChecked())
+          strSQL.append("CREATE, ");
+                          
+        if(m_pCheckBoxTemporary->isChecked())
+          strSQL.append("TEMPORARY");
+          
+        if(strSQL.right(2) == ", ")  
+          strSQL = strSQL.left(strSQL.length() - 2);
+        
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strSQL.append(" ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strSQL.append(" ON DATABASE " + KPGUtil::quotedName(m_strDatabaseName) + strTF + pListBoxItem->text() + strWGO + strC);
+            
+        strListOfSQLs.append(strSQL);
+      }
+    }
+  }
+      
+  // Create items for new grants
+  for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+  {
+    QString strSQL(*it);
+    QListViewItem *pNewItem;
+    
+    if(pLastItem == 0) 
+      pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+    else
+      pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL); 
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCreateDatabaseWidget2::slotGrantDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+  if(pSelectedItem)
+      delete pSelectedItem;
+  
+  if(m_pListViewGrants->childCount() == 0)
+     emit sigEnableNextButton(false);
+         
+  m_pPushButtonGrantDel->setEnabled(false);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateDatabaseWidget2::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateDatabaseWidget2::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for CREATE DATABASE
+const QString KPGCreateDatabaseWidget2::getSQL() const
+{
+  QString strSQL;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    strSQL.append(pItem->text(0));
+    strSQL.append(";\n");
+            
+    pItem = pItem->nextSibling();
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatedatabasewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,64 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDATABASEWIDGET2_H
+#define KPGCREATEDATABASEWIDGET2_H
+
+#include "kpgcreatedatabasewidget2base.h"
+
+/**
+Widget for create database Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDatabaseWidget2 : public KPGCreateDatabaseWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateDatabaseWidget2(QWidget *parent, const char *name, bool = true);
+    ~KPGCreateDatabaseWidget2();
+
+    void setDatabaseName(const QString &strDatabaseName) { m_strDatabaseName = strDatabaseName; }
+    const QString getSQL() const;
+
+protected:
+    QString m_strDatabaseName;
+    
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected:
+    void enableAddGrantButton();
+    
+protected slots:
+
+    virtual void slotCheckBoxAllToggled(bool);
+    virtual void slotCheckBoxCreateToggled(bool);
+    virtual void slotCheckBoxTemporaryToggled(bool);
+    virtual void slotGrantOptionsToggled(bool);
+        
+    virtual void slotCheckBoxPublicToggled(bool);
+    virtual void slotListBoxUsersSelectionChanged();
+    
+    virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+    
+    virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,227 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatedatabasewidget2base.ui'
+**
+** Created: Út dub 1 13:07:34 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatedatabasewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateDatabaseWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateDatabaseWidget2Base::KPGCreateDatabaseWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateDatabaseWidget2Base" );
+    KPGCreateDatabaseWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateDatabaseWidget2BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+    layout1->addWidget( m_pCheckBoxPublic );
+    layout2->addLayout( layout1 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+    layout2->addWidget( m_pListBoxUsersGroups );
+
+    KPGCreateDatabaseWidget2BaseLayout->addMultiCellLayout( layout2, 0, 0, 0, 1 );
+
+    groupBox2 = new QGroupBox( this, "groupBox2" );
+    groupBox2->setColumnLayout(0, Qt::Vertical );
+    groupBox2->layout()->setSpacing( 6 );
+    groupBox2->layout()->setMargin( 11 );
+    groupBox2Layout = new QGridLayout( groupBox2->layout() );
+    groupBox2Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxTemporary = new QCheckBox( groupBox2, "m_pCheckBoxTemporary" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxTemporary, 2, 0 );
+
+    m_pCheckBoxCreate = new QCheckBox( groupBox2, "m_pCheckBoxCreate" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxCreate, 1, 0 );
+
+    m_pCheckBoxAll = new QCheckBox( groupBox2, "m_pCheckBoxAll" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxAll, 0, 0 );
+
+    KPGCreateDatabaseWidget2BaseLayout->addWidget( groupBox2, 0, 2 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateDatabaseWidget2BaseLayout->addWidget( m_pCheckBoxGrantOptions, 1, 0 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Command" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateDatabaseWidget2BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateDatabaseWidget2BaseLayout->addMultiCellWidget( m_pCheckBoxCascade, 1, 1, 1, 2 );
+    languageChange();
+    resize( QSize(432, 342).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAll, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxAllToggled(bool) ) );
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxCreate, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxCreateToggled(bool) ) );
+    connect( m_pCheckBoxTemporary, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxTemporaryToggled(bool) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pCheckBoxAll );
+    setTabOrder( m_pCheckBoxAll, m_pCheckBoxCreate );
+    setTabOrder( m_pCheckBoxCreate, m_pCheckBoxTemporary );
+    setTabOrder( m_pCheckBoxTemporary, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateDatabaseWidget2Base::~KPGCreateDatabaseWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateDatabaseWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Database - grant privileges" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    groupBox2->setTitle( tr2i18n( "Privileges" ) );
+    m_pCheckBoxTemporary->setText( tr2i18n( "&TEMPORARY" ) );
+    m_pCheckBoxTemporary->setAccel( QKeySequence( tr2i18n( "Alt+T" ) ) );
+    m_pCheckBoxCreate->setText( tr2i18n( "&CREATE" ) );
+    m_pCheckBoxCreate->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pCheckBoxAll->setText( tr2i18n( "A&LL" ) );
+    m_pCheckBoxAll->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Command" ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCreateDatabaseWidget2Base::slotCheckBoxAllToggled(bool)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotCheckBoxAllToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotCheckBoxCreateToggled(bool)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotCheckBoxCreateToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotCheckBoxTemporaryToggled(bool)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotCheckBoxTemporaryToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateDatabaseWidget2Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateDatabaseWidget2Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatedatabasewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,312 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateDatabaseWidget2Base</class>
+<comment>Widged for create database wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateDatabaseWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>432</width>
+            <height>342</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create Database - grant privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Users and groups:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxUsersGroups</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPublic</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;PUBLIC</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxUsersGroups</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="selectionMode">
+                        <enum>Multi</enum>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="0" column="2">
+            <property name="name">
+                <cstring>groupBox2</cstring>
+            </property>
+            <property name="title">
+                <string>Privileges</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxTemporary</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;TEMPORARY</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+T</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCreate</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;CREATE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+C</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxAll</cstring>
+                    </property>
+                    <property name="text">
+                        <string>A&amp;LL</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+L</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Command</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAll</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotCheckBoxAllToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCreate</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotCheckBoxCreateToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxTemporary</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotCheckBoxTemporaryToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDatabaseWidget2Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pCheckBoxAll</tabstop>
+    <tabstop>m_pCheckBoxCreate</tabstop>
+    <tabstop>m_pCheckBoxTemporary</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxAllToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckBoxCreateToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxTemporaryToggled(bool)</slot>
+    <slot access="protected">slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,113 @@
+//
+// C++ Implementation: kpgcreatedatabasewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedatabasewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <ktextedit.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgcreatedatabasewidget1.h"
+#include "kpgcreatedatabasewidget2.h"
+
+
+KPGCreateDatabaseWizard::KPGCreateDatabaseWizard(QWidget *parent, const char *name, KPGServer *pServer)
+ : KPG4StepsWizard(parent, name)
+{
+	KPGCreateDatabaseWidget1 *pCreateDatabaseWidget1 = new KPGCreateDatabaseWidget1(WizardPage1, "KPGCreateDatabaseWidget1", pServer);
+	m_pPageWidget1 = pCreateDatabaseWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateDatabaseWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCreateDatabaseWidget2 *pCreateDatabaseWidget2 = new KPGCreateDatabaseWidget2(WizardPage2, "KPGCreateDatabaseWidget2");
+  m_pPageWidget2 = pCreateDatabaseWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  //connect(pCreateDatabaseWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+	
+  
+  if(pServer->versionMajor() >= 8)
+  {
+    pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateDatabaseWidget1->m_pComboBoxTablespace);
+    pCreateDatabaseWidget1->m_pLineEditLocation->setEnabled(false);
+  }
+  else
+    pCreateDatabaseWidget1->m_pComboBoxTablespace->setEnabled(false);
+  
+  pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateDatabaseWidget2->m_pListBoxUsersGroups);
+  pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateDatabaseWidget2->m_pListBoxUsersGroups);
+    
+	languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+
+KPGCreateDatabaseWizard::~KPGCreateDatabaseWizard()
+{
+}
+
+void KPGCreateDatabaseWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+		
+		setCaption( i18n( "Create new database" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Database name and another optional properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Define user rights" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateDatabaseWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Define user rights
+  {
+    KPGCreateDatabaseWidget1 *pCreateDatabaseWidget1 = static_cast <KPGCreateDatabaseWidget1 *> (m_pPageWidget1);
+    KPGCreateDatabaseWidget2 *pCreateDatabaseWidget2 = static_cast <KPGCreateDatabaseWidget2 *> (m_pPageWidget2);
+        
+    // Set database name
+    pCreateDatabaseWidget2->setDatabaseName(pCreateDatabaseWidget1->m_pLineEditDatabaseName->text());
+  }
+  
+	if(pPage == WizardPage3) // Step 3 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL;
+		strSQL.append((static_cast <KPGCreateDatabaseWidget1 *> (m_pPageWidget1))->getSQL());
+		strSQL.append(";\n\n");
+    strSQL.append((static_cast <KPGCreateDatabaseWidget2 *> (m_pPageWidget2))->getSQL());
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Check operation result
+	{
+		runQuery(false);
+	}
+	
+	// call parent
+	KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatedatabasewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedatabasewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgcreatedatabasewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDATABASEWIZARD_H
+#define KPGCREATEDATABASEWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGServer;
+
+/**
+Create database Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDatabaseWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateDatabaseWizard(QWidget *parent, const char *name, KPGServer *);
+    ~KPGCreateDatabaseWizard();
+
+protected:
+		virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,94 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedomainconstraintwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreatedomainwidget3.h"
+#include "../kpgutil.h"
+
+KPGCreateDomainConstraintWizard::KPGCreateDomainConstraintWizard(QWidget *parent, const char *name, const QString& strNamespace, const QString& strDomain)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strNamespace = strNamespace; 
+  m_strDomain = strDomain;
+  
+  KPGCreateDomainWidget3 *pCreateDomainWidget3 = new KPGCreateDomainWidget3(WizardPage1, "KPGCreateDomainWidget3"); m_pPageWidget1 = pCreateDomainWidget3;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateDomainWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+       
+  languageChange();
+}
+
+KPGCreateDomainConstraintWizard::~KPGCreateDomainConstraintWizard()
+{
+}
+
+void KPGCreateDomainConstraintWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new domain constraint(s)" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Domain constraints" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateDomainConstraintWizard::showPage(QWidget *pPage)
+{   
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    KPGCreateDomainWidget3 *pCreateDomainWidget3 = (static_cast <KPGCreateDomainWidget3 *> (m_pPageWidget1));
+    
+    // prepare SQL statement
+    QString strSQL;
+    
+    QListViewItem * pItem = pCreateDomainWidget3->m_pListViewConstraints->firstChild();
+    while(pItem)
+    {
+      strSQL.append("ALTER DOMAIN ");
+      strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strDomain));
+      strSQL.append(" ADD ");
+      
+      strSQL.append(pItem->text(0));
+      strSQL.append(";\n");
+              
+      pItem = pItem->nextSibling();
+    }
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgcreatedomainconstraintwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainconstraintwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDOMAINCONSTRAINTWIZARD_H
+#define KPGCREATEDOMAINCONSTRAINTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Wizard that create domain constraint
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDomainConstraintWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateDomainConstraintWizard(QWidget *parent, const char *name, const QString&,  const QString&);
+    ~KPGCreateDomainConstraintWizard();
+    
+protected:
+    QString m_strDomain; // name of the altered domain
+    QString m_strNamespace; // name of the namespace 
+    
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();     
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedomainwidget1.h"
+
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../kpgutil.h"
+
+
+KPGCreateDomainWidget1::KPGCreateDomainWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas)
+ : KPGCreateDomainWidget1Base(parent, name)
+{
+	int iCurrentItem = -1;
+	int i = 0;  
+	for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+		{
+		m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+		
+		if(pSchema->text(0) == "public")
+			iCurrentItem = i;
+			
+		++i;
+		}
+		
+	if(iCurrentItem >= 0)
+		m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+	
+	m_pLineEditDomainName->setFocus();
+  
+}
+
+
+KPGCreateDomainWidget1::~KPGCreateDomainWidget1()
+{
+}
+
+
+void KPGCreateDomainWidget1::slotDomainNameChanged(const QString &strText)
+{
+  	emit sigEnableNextButton(! strText.isEmpty() );
+}
+
+
+// Return part of SQL statement for CREATE DOMAIN
+const QString KPGCreateDomainWidget1::getSQL() const
+{
+	QString strSql("CREATE DOMAIN ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), m_pLineEditDomainName->text()));
+	strSql.append(" AS ");
+			
+	return strSql;
+}
+
+#include "kpgcreatedomainwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDOMAINWIDGET1_H
+#define KPGCREATEDOMAINWIDGET1_H
+
+#include "kpgcreatedomainwidget1base.h"
+
+class QListViewItem;
+
+/**
+Widget for create domain Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDomainWidget1 : public KPGCreateDomainWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateDomainWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> &);
+    ~KPGCreateDomainWidget1();
+
+    const QString getSQL() const;
+      
+protected slots:
+    
+    virtual void slotDomainNameChanged(const QString&);
+        
+signals:
+    void sigEnableNextButton(bool);               
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,104 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatedomainwidget1base.ui'
+**
+** Created: Út dub 1 13:07:40 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatedomainwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcombobox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateDomainWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateDomainWidget1Base::KPGCreateDomainWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateDomainWidget1Base" );
+    KPGCreateDomainWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateDomainWidget1BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    textLabel2_2->setTextFormat( QLabel::PlainText );
+    layout2->addWidget( textLabel2_2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout2->addWidget( m_pComboBoxSchema );
+
+    KPGCreateDomainWidget1BaseLayout->addLayout( layout2, 0, 0 );
+    spacer3 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateDomainWidget1BaseLayout->addItem( spacer3, 4, 2 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditDomainName = new KLineEdit( this, "m_pLineEditDomainName" );
+    layout1->addWidget( m_pLineEditDomainName );
+
+    KPGCreateDomainWidget1BaseLayout->addMultiCellLayout( layout1, 1, 1, 0, 1 );
+    spacer2 = new QSpacerItem( 151, 31, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateDomainWidget1BaseLayout->addMultiCell( spacer2, 0, 0, 1, 2 );
+    spacer3_2 = new QSpacerItem( 71, 21, QSizePolicy::Minimum, QSizePolicy::Minimum );
+    KPGCreateDomainWidget1BaseLayout->addItem( spacer3_2, 1, 2 );
+    languageChange();
+    resize( QSize(300, 186).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditDomainName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotDomainNameChanged(const QString&) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(const QString&) ), this, SLOT( slotSchemaActivated(const QString&) ) );
+
+    // buddies
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel1->setBuddy( m_pLineEditDomainName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateDomainWidget1Base::~KPGCreateDomainWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateDomainWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Domain name" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel1->setText( tr2i18n( "New domain &name:" ) );
+}
+
+void KPGCreateDomainWidget1Base::slotDomainNameChanged(const QString&)
+{
+    qWarning( "KPGCreateDomainWidget1Base::slotDomainNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget1Base::slotSchemaActivated(const QString&)
+{
+    qWarning( "KPGCreateDomainWidget1Base::slotSchemaActivated(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatedomainwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,157 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateDomainWidget1Base</class>
+<comment>Widget for create domain Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateDomainWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>300</width>
+            <height>186</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Domain name</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="4" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New domain &amp;name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDomainName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDomainName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>151</width>
+                    <height>31</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="2">
+            <property name="name">
+                <cstring>spacer3_2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Minimum</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>71</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditDomainName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateDomainWidget1Base</receiver>
+        <slot>slotDomainNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateDomainWidget1Base</receiver>
+        <slot>slotSchemaActivated(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotDomainNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotSchemaActivated(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,312 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedomainwidget2.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <qspinbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <klistbox.h> 
+#include <kpushbutton.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtypesfolder.h"
+#include "../DbObjects/kpgtype.h"
+#include "../kpgutil.h"
+
+
+#define NUM_BASIC_TYPES 33
+
+
+KPGCreateDomainWidget2::KPGCreateDomainWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateDomainWidget2Base(parent, name)
+{
+    m_pDatabase = pDatabase;
+    
+    // fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxSchema, true); // only user schemas
+    
+    // refresh types from selected schema  
+    refreshListOfTypes();
+    slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+KPGCreateDomainWidget2::~KPGCreateDomainWidget2()
+{
+}
+
+void KPGCreateDomainWidget2::refreshListOfTypes()
+{
+    m_pComboBoxDataType->clear();
+        
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+    
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+    m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+    
+    if(m_pComboBoxDataType->count() != NUM_BASIC_TYPES)
+        kdDebug() << "KPGCreateDomainWidget2::refreshListOfTypes : NUM_BASIC_ARG_TYPES wrong number" << endl;
+    
+    fillUserDatatypes();
+    
+    m_pComboBoxDataType->setCurrentItem(0);
+}
+
+void KPGCreateDomainWidget2::fillUserDatatypes()
+{
+    KPGTreeItem *pItem = m_pDatabase->getChildByName(m_pComboBoxSchema->currentText());
+    if(!pItem)
+    {
+        kdDebug() << "KPGCreateDomainWidget2::fillUserDatatypes: no item found: " << m_pComboBoxSchema->currentText() << endl;
+        return;
+    }
+            
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+    KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+    
+    pTypesFolder->fillComboBoxWithChildItems(m_pComboBoxDataType, true);
+    
+    m_pComboBoxDataType->setCurrentItem(0);
+    slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+void KPGCreateDomainWidget2::slotSchemaActivated(int)
+{
+    refreshListOfTypes();
+}
+
+
+void KPGCreateDomainWidget2::slotComboDataTypeActivated(const QString &strText)
+{
+	// Enable/disable precision and scale spins
+	m_pSpinBoxPrecision->setEnabled(false);
+	m_pSpinBoxScale->setEnabled(false);
+	m_pButtonSetDefaultNow->setEnabled(false);
+	
+	if(strText.find("(n)") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+	}
+	
+	if(strText.find("(p, s)") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+		m_pSpinBoxScale->setEnabled(true);
+	}
+	
+	if(strText.find("[(p)]") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+	}
+	
+	// Set help text for selected data type
+	if((strText == "char(n)") || (strText == "varchar(n)"))
+	{ 
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+	{ 
+		m_pSpinBoxPrecision->setMinValue( 1 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxScale->setMinValue( 0 );
+		m_pSpinBoxScale->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "bit(n)") || (strText == "bit varying(n)"))
+	{ 
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 255 );
+		
+		return;
+	}
+		
+	if((strText == "time [(p)]") || (strText == "time [(p)] with time zone"))
+	{ 
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 13 );
+		
+		m_pSpinBoxPrecision->setValue( 13 );
+		return;
+	}
+	
+	if(strText == "date")
+	{	
+		m_pButtonSetDefaultNow->setEnabled(true);
+		return;
+	}
+	
+	if((strText == "timestamp [(p)]") || (strText == "timestamp [(p)] with time zone") || (strText == "interval [(p)]"))
+	{ 
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxPrecision->setValue( 6 );
+		m_pButtonSetDefaultNow->setEnabled(true);
+	
+		return;
+	}
+}
+
+void KPGCreateDomainWidget2::slotDefaultToggled(bool bDefault)
+{
+    m_pLineEditDefaultValue->setEnabled(bDefault);
+    m_pCheckBoxQuotedDefault->setEnabled(bDefault);
+    m_pLineEditDefaultValue->setFocus();
+}
+
+void KPGCreateDomainWidget2::slotSetDefaultToNow()
+{
+	m_pCheckBoxDefault->setChecked(true);
+	m_pCheckBoxQuotedDefault->setChecked(false);
+	m_pLineEditDefaultValue->setEnabled(true);
+	m_pCheckBoxQuotedDefault->setEnabled(true);
+	m_pLineEditDefaultValue->setText("now()");
+}
+
+void KPGCreateDomainWidget2::slotNumDimensionsChanged(int nDimensions)
+{
+    if(nDimensions > 0)
+    {
+      m_pLineEditArrayDimDef->setEnabled(true);
+      QString strDimensionsDef;
+      for(int i = 0; i < nDimensions; i++)
+       strDimensionsDef.append("[]");
+       
+       m_pLineEditArrayDimDef->setText(strDimensionsDef);
+    }
+    else
+    {
+      m_pLineEditArrayDimDef->setEnabled(false);
+      m_pLineEditArrayDimDef->setText("");
+    }
+}
+
+const QString KPGCreateDomainWidget2::getSQL() const
+{
+	QString strSQL;
+	
+	// data type
+	QString strDataType(m_pComboBoxDataType->currentText());
+	QString strNamespace(m_pComboBoxSchema->currentText());
+	
+	QString strDefinition;
+	
+	if((m_pComboBoxDataType->currentItem() <= NUM_BASIC_TYPES - 1) || (strNamespace == "public"))
+		strDefinition = strDataType;
+	else
+		strDefinition = "\"" + strNamespace + "\"." +  strDataType;
+		
+		
+	int i;
+	if((i = strDefinition.find("(n)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+			
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+	}
+	
+	if((i = strDefinition.find("(p, s)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+		
+		strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxPrecision->value()).arg(m_pSpinBoxScale->value()));
+	}
+	
+	if((i = strDefinition.find("[(p)]")) > 0)
+	{
+		QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+		strDefinition = strDefinition.left(i); // strip (n)
+		
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+		strDefinition.append(strDefinitionPostfix);
+	}
+	
+	strSQL.append(strDefinition);
+	
+	// Append array specifiers
+	if(m_pSpinBoxNumDimensions->value() > 0)
+		strSQL.append(" " + m_pLineEditArrayDimDef->text());
+	
+	// Constraints --------------------------------------------------------------
+	if(m_pCheckBoxNotNull->isChecked()) 
+		strSQL.append(" NOT NULL");
+			
+	if(m_pCheckBoxDefault->isChecked() && ! m_pLineEditDefaultValue->text().isEmpty())
+	{
+		if(m_pCheckBoxQuotedDefault->isChecked() == false)
+			strSQL.append(" DEFAULT " + m_pLineEditDefaultValue->text());
+		else
+			strSQL.append(" DEFAULT '" + m_pLineEditDefaultValue->text() + "'");
+	}
+		
+	return strSQL;
+}
+  
+#include "kpgcreatedomainwidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,54 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDOMAINWIDGET2_H
+#define KPGCREATEDOMAINWIDGET2_H
+
+#include "kpgcreatedomainwidget2base.h"
+
+class KPGDatabase;
+
+/**
+Widget for create domain Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDomainWidget2 : public KPGCreateDomainWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateDomainWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateDomainWidget2();
+
+    const QString getSQL() const;
+
+protected:
+    void refreshListOfTypes();
+    void fillUserDatatypes();    
+
+      
+protected:    
+     KPGDatabase *m_pDatabase;
+     
+protected slots:
+
+    virtual void slotSchemaActivated(int);
+    virtual void slotComboDataTypeActivated(const QString &);
+    virtual void slotDefaultToggled(bool);
+    virtual void slotNumDimensionsChanged(int);
+    virtual void slotSetDefaultToNow();
+    
+signals:
+    void sigEnableNextButton(bool);       
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,211 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatedomainwidget2base.ui'
+**
+** Created: Út dub 1 13:07:41 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatedomainwidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGCreateDomainWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateDomainWidget2Base::KPGCreateDomainWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateDomainWidget2Base" );
+    KPGCreateDomainWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateDomainWidget2BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    textLabel4 = new QLabel( groupBox1, "textLabel4" );
+
+    groupBox1Layout->addWidget( textLabel4, 0, 5 );
+
+    m_pLineEditArrayDimDef = new KLineEdit( groupBox1, "m_pLineEditArrayDimDef" );
+    m_pLineEditArrayDimDef->setEnabled( FALSE );
+
+    groupBox1Layout->addMultiCellWidget( m_pLineEditArrayDimDef, 3, 3, 0, 1 );
+
+    textLabel2_2 = new QLabel( groupBox1, "textLabel2_2" );
+    textLabel2_2->setTextFormat( QLabel::PlainText );
+
+    groupBox1Layout->addWidget( textLabel2_2, 0, 0 );
+
+    m_pComboBoxSchema = new KComboBox( FALSE, groupBox1, "m_pComboBoxSchema" );
+
+    groupBox1Layout->addWidget( m_pComboBoxSchema, 1, 0 );
+
+    textLabel13 = new QLabel( groupBox1, "textLabel13" );
+
+    groupBox1Layout->addMultiCellWidget( textLabel13, 0, 0, 1, 2 );
+
+    m_pComboBoxDataType = new KComboBox( FALSE, groupBox1, "m_pComboBoxDataType" );
+
+    groupBox1Layout->addMultiCellWidget( m_pComboBoxDataType, 1, 1, 1, 2 );
+
+    m_pSpinBoxPrecision = new QSpinBox( groupBox1, "m_pSpinBoxPrecision" );
+    m_pSpinBoxPrecision->setEnabled( FALSE );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    m_pSpinBoxPrecision->setMinValue( 1 );
+
+    groupBox1Layout->addMultiCellWidget( m_pSpinBoxPrecision, 1, 1, 3, 4 );
+
+    m_pSpinBoxScale = new QSpinBox( groupBox1, "m_pSpinBoxScale" );
+    m_pSpinBoxScale->setEnabled( FALSE );
+    m_pSpinBoxScale->setMaxValue( 999 );
+
+    groupBox1Layout->addWidget( m_pSpinBoxScale, 1, 5 );
+
+    textLabel3 = new QLabel( groupBox1, "textLabel3" );
+
+    groupBox1Layout->addMultiCellWidget( textLabel3, 0, 0, 3, 4 );
+
+    textLabel1_2 = new QLabel( groupBox1, "textLabel1_2" );
+
+    groupBox1Layout->addMultiCellWidget( textLabel1_2, 2, 2, 0, 1 );
+
+    m_pSpinBoxNumDimensions = new QSpinBox( groupBox1, "m_pSpinBoxNumDimensions" );
+
+    groupBox1Layout->addMultiCellWidget( m_pSpinBoxNumDimensions, 3, 3, 2, 3 );
+    spacer3 = new QSpacerItem( 170, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    groupBox1Layout->addMultiCell( spacer3, 3, 3, 4, 5 );
+
+    KPGCreateDomainWidget2BaseLayout->addWidget( groupBox1, 0, 0 );
+    spacer2 = new QSpacerItem( 21, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateDomainWidget2BaseLayout->addItem( spacer2, 2, 0 );
+
+    m_pGroupBoxConstraints = new QGroupBox( this, "m_pGroupBoxConstraints" );
+    m_pGroupBoxConstraints->setColumnLayout(0, Qt::Vertical );
+    m_pGroupBoxConstraints->layout()->setSpacing( 6 );
+    m_pGroupBoxConstraints->layout()->setMargin( 11 );
+    m_pGroupBoxConstraintsLayout = new QGridLayout( m_pGroupBoxConstraints->layout() );
+    m_pGroupBoxConstraintsLayout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxNotNull = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxNotNull" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxNotNull, 0, 0 );
+
+    m_pCheckBoxDefault = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxDefault" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxDefault, 0, 1 );
+
+    m_pButtonSetDefaultNow = new KPushButton( m_pGroupBoxConstraints, "m_pButtonSetDefaultNow" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pButtonSetDefaultNow, 1, 3 );
+
+    m_pCheckBoxQuotedDefault = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxQuotedDefault" );
+    m_pCheckBoxQuotedDefault->setChecked( TRUE );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxQuotedDefault, 1, 4 );
+    spacer3_2 = new QSpacerItem( 181, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    m_pGroupBoxConstraintsLayout->addMultiCell( spacer3_2, 1, 1, 0, 2 );
+
+    m_pLineEditDefaultValue = new KLineEdit( m_pGroupBoxConstraints, "m_pLineEditDefaultValue" );
+    m_pLineEditDefaultValue->setEnabled( FALSE );
+
+    m_pGroupBoxConstraintsLayout->addMultiCellWidget( m_pLineEditDefaultValue, 0, 0, 2, 4 );
+
+    KPGCreateDomainWidget2BaseLayout->addWidget( m_pGroupBoxConstraints, 1, 0 );
+    languageChange();
+    resize( QSize(448, 283).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxDataType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboDataTypeActivated(const QString&) ) );
+    connect( m_pCheckBoxDefault, SIGNAL( toggled(bool) ), this, SLOT( slotDefaultToggled(bool) ) );
+    connect( m_pSpinBoxNumDimensions, SIGNAL( valueChanged(int) ), this, SLOT( slotNumDimensionsChanged(int) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(int) ), this, SLOT( slotSchemaActivated(int) ) );
+    connect( m_pButtonSetDefaultNow, SIGNAL( pressed() ), this, SLOT( slotSetDefaultToNow() ) );
+
+    // buddies
+    textLabel4->setBuddy( m_pSpinBoxScale );
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel13->setBuddy( m_pComboBoxDataType );
+    textLabel3->setBuddy( m_pSpinBoxPrecision );
+    textLabel1_2->setBuddy( m_pSpinBoxNumDimensions );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateDomainWidget2Base::~KPGCreateDomainWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateDomainWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Domain properties" ) );
+    groupBox1->setTitle( tr2i18n( "Inherited from" ) );
+    textLabel4->setText( tr2i18n( "Scale:" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel13->setText( tr2i18n( "&Data type:" ) );
+    textLabel3->setText( tr2i18n( "&Precision/size:" ) );
+    textLabel1_2->setText( tr2i18n( "Array d&imensions:" ) );
+    m_pGroupBoxConstraints->setTitle( tr2i18n( "Constraints" ) );
+    m_pCheckBoxNotNull->setText( tr2i18n( "Not N&ULL" ) );
+    m_pCheckBoxNotNull->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxDefault->setText( tr2i18n( "De&fault" ) );
+    m_pCheckBoxDefault->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pButtonSetDefaultNow->setText( tr2i18n( "Now" ) );
+    m_pCheckBoxQuotedDefault->setText( tr2i18n( "Quoted" ) );
+}
+
+void KPGCreateDomainWidget2Base::slotComboDataTypeActivated(const QString&)
+{
+    qWarning( "KPGCreateDomainWidget2Base::slotComboDataTypeActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget2Base::slotDefaultToggled(bool)
+{
+    qWarning( "KPGCreateDomainWidget2Base::slotDefaultToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget2Base::slotNumDimensionsChanged(int)
+{
+    qWarning( "KPGCreateDomainWidget2Base::slotNumDimensionsChanged(int): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget2Base::slotSchemaActivated(int)
+{
+    qWarning( "KPGCreateDomainWidget2Base::slotSchemaActivated(int): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget2Base::slotSetDefaultToNow()
+{
+    qWarning( "KPGCreateDomainWidget2Base::slotSetDefaultToNow(): Not implemented yet" );
+}
+
+#include "kpgcreatedomainwidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,305 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateDomainWidget2Base</class>
+<comment>Widget for create domain Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateDomainWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>448</width>
+            <height>283</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Domain properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="0" column="0">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Inherited from</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel" row="0" column="5">
+                    <property name="name">
+                        <cstring>textLabel4</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Scale:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxScale</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit" row="3" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>m_pLineEditArrayDimDef</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="0">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="1" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>textLabel13</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Data type:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxDataType</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox" row="1" column="1" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>m_pComboBoxDataType</cstring>
+                    </property>
+                </widget>
+                <widget class="QSpinBox" row="1" column="3" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>m_pSpinBoxPrecision</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maxValue">
+                        <number>999</number>
+                    </property>
+                    <property name="minValue">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <widget class="QSpinBox" row="1" column="5">
+                    <property name="name">
+                        <cstring>m_pSpinBoxScale</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maxValue">
+                        <number>999</number>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="3" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Precision/size:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxPrecision</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="2" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>textLabel1_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Array d&amp;imensions:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxNumDimensions</cstring>
+                    </property>
+                </widget>
+                <widget class="QSpinBox" row="3" column="2" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>m_pSpinBoxNumDimensions</cstring>
+                    </property>
+                </widget>
+                <spacer row="3" column="4" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>spacer3</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>170</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pGroupBoxConstraints</cstring>
+            </property>
+            <property name="title">
+                <string>Constraints</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxNotNull</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Not N&amp;ULL</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pCheckBoxDefault</cstring>
+                    </property>
+                    <property name="text">
+                        <string>De&amp;fault</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+F</string>
+                    </property>
+                </widget>
+                <widget class="KPushButton" row="1" column="3">
+                    <property name="name">
+                        <cstring>m_pButtonSetDefaultNow</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Now</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="4">
+                    <property name="name">
+                        <cstring>m_pCheckBoxQuotedDefault</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Quoted</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <spacer row="1" column="0" rowspan="1" colspan="3">
+                    <property name="name">
+                        <cstring>spacer3_2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>181</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="KLineEdit" row="0" column="2" rowspan="1" colspan="3">
+                    <property name="name">
+                        <cstring>m_pLineEditDefaultValue</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxDataType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateDomainWidget2Base</receiver>
+        <slot>slotComboDataTypeActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxDefault</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateDomainWidget2Base</receiver>
+        <slot>slotDefaultToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pSpinBoxNumDimensions</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>KPGCreateDomainWidget2Base</receiver>
+        <slot>slotNumDimensionsChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateDomainWidget2Base</receiver>
+        <slot>slotSchemaActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonSetDefaultNow</sender>
+        <signal>pressed()</signal>
+        <receiver>KPGCreateDomainWidget2Base</receiver>
+        <slot>slotSetDefaultToNow()</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotComboDataTypeActivated(const QString &amp;)</slot>
+    <slot access="protected">slotDefaultToggled(bool)</slot>
+    <slot access="protected">slotNumDimensionsChanged(int)</slot>
+    <slot access="protected">slotSchemaActivated(int)</slot>
+    <slot access="protected">slotSetDefaultToNow()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,118 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedomainwidget3.h"
+
+// include files for Qt
+#include <qlistview.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+
+
+KPGCreateDomainWidget3::KPGCreateDomainWidget3(QWidget *parent, const char *name)
+ : KPGCreateDomainWidget3Base(parent, name)
+{
+}
+
+KPGCreateDomainWidget3::~KPGCreateDomainWidget3()
+{
+}
+
+void KPGCreateDomainWidget3::slotConstraintNameChanged(const QString& strName)
+{
+  m_pPushButtonConstraintAdd->setEnabled(! m_pLineEditCheckExpression->text().isEmpty() &&
+   ! strName.isEmpty());
+}
+
+void KPGCreateDomainWidget3::slotCheckExpressionChanged(const QString &strText)
+{
+   m_pPushButtonConstraintAdd->setEnabled(! strText.isEmpty() &&
+   ! m_pLineEditConstraintName->text().isEmpty());
+}
+
+void KPGCreateDomainWidget3::slotConstraintsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonConstraintDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateDomainWidget3::slotConstraintsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonConstraintDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateDomainWidget3::slotConstraintAdd()
+{
+  	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSQL("CONSTRAINT \"");
+	strSQL.append(m_pLineEditConstraintName->text());
+	strSQL.append("\" CHECK (");
+	strSQL.append(m_pLineEditCheckExpression->text());  
+	strSQL.append(")");
+  
+  
+  // Create item for new column
+  QListViewItem *pNewItem;
+  if(pLastItem == 0) 
+    pNewItem = new QListViewItem(m_pListViewConstraints, strSQL);
+  else
+    pNewItem = new QListViewItem(m_pListViewConstraints, pLastItem, strSQL);
+  
+  pNewItem->setPixmap(0, * KPGTreeItem::m_pIconCheckConstr);
+  
+  m_pLineEditCheckExpression->setText("VALUE ");  
+  m_pLineEditConstraintName->setText("");
+  sigEnableNextButton(true);
+}
+
+void KPGCreateDomainWidget3::slotConstraintDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewConstraints->selectedItem();
+    if(pSelectedItem)
+      delete pSelectedItem;
+  
+  m_pPushButtonConstraintDel->setEnabled(false);
+  
+  sigEnableNextButton(m_pListViewConstraints->childCount() > 0);
+}
+
+const QString KPGCreateDomainWidget3::getSQL() const
+{
+  QString strSQL;
+  
+  QListViewItem * pItem = m_pListViewConstraints->firstChild();
+  while(pItem)
+  {
+    strSQL.append("\n");
+    strSQL.append(pItem->text(0));
+            
+    pItem = pItem->nextSibling();
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatedomainwidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDOMAINWIDGET3_H
+#define KPGCREATEDOMAINWIDGET3_H
+
+#include <kpgcreatedomainwidget3base.h>
+
+/**
+Widget for create domain Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDomainWidget3 : public KPGCreateDomainWidget3Base
+{
+Q_OBJECT
+public:
+    KPGCreateDomainWidget3(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateDomainWidget3();
+
+    const QString getSQL() const;
+    
+protected slots:
+    virtual void slotConstraintNameChanged(const QString&);
+    virtual void slotCheckExpressionChanged(const QString &);
+    
+    virtual void slotConstraintsSelectionChanged(QListViewItem *);
+    virtual void slotConstraintsCurrentChanged(QListViewItem *);
+    virtual void slotConstraintAdd();
+    virtual void slotConstraintDelete();
+    
+signals:
+    void sigEnableNextButton(bool);    
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,158 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatedomainwidget3base.ui'
+**
+** Created: Út dub 1 13:07:42 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatedomainwidget3base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateDomainWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateDomainWidget3Base::KPGCreateDomainWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateDomainWidget3Base" );
+    KPGCreateDomainWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateDomainWidget3BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout1->addWidget( textLabel2_2 );
+
+    m_pLineEditConstraintName = new KLineEdit( this, "m_pLineEditConstraintName" );
+    m_pLineEditConstraintName->setLineWidth( 1 );
+    m_pLineEditConstraintName->setMargin( 0 );
+    m_pLineEditConstraintName->setFrame( TRUE );
+    layout1->addWidget( m_pLineEditConstraintName );
+
+    KPGCreateDomainWidget3BaseLayout->addLayout( layout1, 0, 0 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel3_3 = new QLabel( this, "textLabel3_3" );
+    layout3->addWidget( textLabel3_3 );
+
+    m_pLineEditCheckExpression = new KLineEdit( this, "m_pLineEditCheckExpression" );
+    layout3->addWidget( m_pLineEditCheckExpression );
+
+    KPGCreateDomainWidget3BaseLayout->addLayout( layout3, 1, 0 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonConstraintAdd = new QPushButton( groupBox1, "m_pPushButtonConstraintAdd" );
+    m_pPushButtonConstraintAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConstraintAdd, 0, 1 );
+
+    m_pPushButtonConstraintDel = new QPushButton( groupBox1, "m_pPushButtonConstraintDel" );
+    m_pPushButtonConstraintDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConstraintDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewConstraints = new QListView( groupBox1, "m_pListViewConstraints" );
+    m_pListViewConstraints->addColumn( tr2i18n( "Constraint definition" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewConstraints, 0, 2, 0, 0 );
+
+    KPGCreateDomainWidget3BaseLayout->addWidget( groupBox1, 2, 0 );
+    languageChange();
+    resize( QSize(427, 313).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pPushButtonConstraintAdd, SIGNAL( clicked() ), this, SLOT( slotConstraintAdd() ) );
+    connect( m_pPushButtonConstraintDel, SIGNAL( clicked() ), this, SLOT( slotConstraintDelete() ) );
+    connect( m_pLineEditCheckExpression, SIGNAL( textChanged(const QString&) ), this, SLOT( slotCheckExpressionChanged(const QString&) ) );
+    connect( m_pLineEditConstraintName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotCheckExpressionChanged(const QString&) ) );
+    connect( m_pListViewConstraints, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotConstraintsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewConstraints, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotConstraintsCurrentChanged(QListViewItem*) ) );
+
+    // buddies
+    textLabel2_2->setBuddy( m_pLineEditConstraintName );
+    textLabel3_3->setBuddy( m_pLineEditCheckExpression );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateDomainWidget3Base::~KPGCreateDomainWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateDomainWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Domain constraints" ) );
+    textLabel2_2->setText( tr2i18n( "C&onstraint name:" ) );
+    textLabel3_3->setText( tr2i18n( "&Expression:" ) );
+    m_pLineEditCheckExpression->setText( tr2i18n( "VALUE " ) );
+    groupBox1->setTitle( tr2i18n( "Domain check constraints" ) );
+    m_pPushButtonConstraintAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonConstraintAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonConstraintDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonConstraintDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewConstraints->header()->setLabel( 0, tr2i18n( "Constraint definition" ) );
+}
+
+void KPGCreateDomainWidget3Base::slotConstraintAdd()
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotConstraintAdd(): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget3Base::slotConstraintDelete()
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotConstraintDelete(): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget3Base::slotCheckExpressionChanged(const QString&)
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotCheckExpressionChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget3Base::slotConstraintNameChanged(const QString&)
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotConstraintNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget3Base::slotConstraintsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotConstraintsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateDomainWidget3Base::slotConstraintsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateDomainWidget3Base::slotConstraintsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+#include "kpgcreatedomainwidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,215 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateDomainWidget3Base</class>
+<comment>Widget for create domain Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateDomainWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>427</width>
+            <height>313</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Domain constraints</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;onstraint name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditConstraintName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditConstraintName</cstring>
+                    </property>
+                    <property name="lineWidth">
+                        <number>1</number>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <property name="frame">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3_3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Expression:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditCheckExpression</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditCheckExpression</cstring>
+                    </property>
+                    <property name="text">
+                        <string>VALUE </string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="2" column="0">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Domain check constraints</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConstraintAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConstraintDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Constraint definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewConstraints</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pPushButtonConstraintAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotConstraintAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonConstraintDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotConstraintDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditCheckExpression</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotCheckExpressionChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditConstraintName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotCheckExpressionChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConstraints</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotConstraintsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConstraints</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateDomainWidget3Base</receiver>
+        <slot>slotConstraintsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotConstraintAdd()</slot>
+    <slot access="protected">slotConstraintDelete()</slot>
+    <slot access="protected">slotCheckExpressionChanged(const QString &amp;)</slot>
+    <slot access="protected">slotConstraintNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotConstraintsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotConstraintsCurrentChanged(QListViewItem *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,95 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatedomainwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreatedomainwidget1.h"
+#include "kpgcreatedomainwidget2.h"
+#include "kpgcreatedomainwidget3.h"
+
+
+KPGCreateDomainWizard::KPGCreateDomainWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> &listOfSchemas)
+ : KPG5StepsWizard(parent, name)
+{
+  KPGCreateDomainWidget1 *pCreateDomainWidget1 = new KPGCreateDomainWidget1(WizardPage1, "KPGCreateDomainWidget1", listOfSchemas);
+  m_pPageWidget1 = pCreateDomainWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateDomainWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCreateDomainWidget2 *pCreateDomainWidget2 = new KPGCreateDomainWidget2(WizardPage2, "KPGCreateDomainWidget2", pDatabase);
+  m_pPageWidget2 = pCreateDomainWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  
+  KPGCreateDomainWidget3 *pCreateDomainWidget3 = new KPGCreateDomainWidget3(WizardPage3, "KPGCreateDomainWidget3");
+  m_pPageWidget3 = pCreateDomainWidget3;
+  WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+         
+  languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+KPGCreateDomainWizard::~KPGCreateDomainWizard()
+{
+}
+
+void KPGCreateDomainWizard::languageChange()
+{
+    KPG5StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new domain" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Domain name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Domain properties" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Domain constraints" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Review SQL statement" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateDomainWizard::showPage(QWidget *pPage)
+{   
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateDomainWidget1 *> (m_pPageWidget1))->getSQL());
+    strSQL.append((static_cast <KPGCreateDomainWidget2 *> (m_pPageWidget2))->getSQL());
+    strSQL.append((static_cast <KPGCreateDomainWidget3 *> (m_pPageWidget3))->getSQL());
+    strSQL.append(";\n");
+        
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage5) // Step 5 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG5StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgcreatedomainwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatedomainwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEDOMAINWIZARD_H
+#define KPGCREATEDOMAINWIZARD_H
+
+#include "kpg5stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+/**
+Create domain Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateDomainWizard : public KPG5StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateDomainWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateDomainWizard();
+    
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,108 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwidget1.h"
+
+// include files for Qt
+//#include <qlabel.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpglanguagesfolder.h"
+#include "../DbObjects/kpglanguage.h"
+
+#include "../kpgutil.h"
+
+
+KPGCreateFunctionWidget1::KPGCreateFunctionWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas, KPGLanguagesFolder *pLanguagesFolder)
+ : KPGCreateFunctionWidget1Base(parent, name)
+{
+  int iCurrentItem = -1;
+  int i = 0;  
+  for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+    {
+      m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+      
+      if(pSchema->text(0) == "public")
+        iCurrentItem = i;
+        
+      ++i;
+    }
+    
+  if(iCurrentItem >= 0)
+    m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+
+  // Set initial dialog state
+  refreshListOfLanguages(pLanguagesFolder);
+  m_pLineEditFunctionName->setFocus();
+}
+
+
+KPGCreateFunctionWidget1::~KPGCreateFunctionWidget1()
+{
+}
+
+void KPGCreateFunctionWidget1::slotFunctionNameChanged(const QString &strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty() );
+}
+
+void KPGCreateFunctionWidget1::refreshListOfLanguages(KPGLanguagesFolder *pLanguagesFolder)
+{
+  m_pComboBoxLanguage->clear();
+  
+  m_pComboBoxLanguage->insertItem(* KPGTreeItem::m_pIconLanguage, "SQL");
+  m_pComboBoxLanguage->insertItem(* KPGTreeItem::m_pIconLanguage, "C"); 
+    
+  // traverse list of types
+  QListViewItem * pLvItem = pLanguagesFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGLanguage *pLanguage = static_cast <KPGLanguage *> (pLvItem);
+      
+   	m_pComboBoxLanguage->insertItem(* pLanguage->pixmap(0), pLanguage->text(0)); 
+    
+   	pLvItem = pLvItem->nextSibling();
+  }
+}
+
+// Return function name
+const QString KPGCreateFunctionWidget1::getFuncName() const
+{
+  return m_pLineEditFunctionName->text();
+}
+
+// Return part of SQL statement for CREATE FUNCTION
+const QString KPGCreateFunctionWidget1::getSQL1() const
+{
+  	QString strSql("CREATE FUNCTION ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), getFuncName()));
+	  
+  return strSql;
+}
+
+// Return part of SQL statement for CREATE FUNCTION
+const QString KPGCreateFunctionWidget1::getSQL2() const
+{
+	// language
+	QString strSql("LANGUAGE ");
+	strSql.append(KPGUtil::quotedName(m_pComboBoxLanguage->currentText()));
+	strSql.append("\n");
+		
+	return strSql;
+}
+
+#include "kpgcreatefunctionwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIDGET1_H
+#define KPGCREATEFUNCTIONWIDGET1_H
+
+#include "kpgcreatefunctionwidget1base.h"
+
+class QListViewItem;
+class KPGLanguagesFolder;
+
+/**
+Widget for create function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateFunctionWidget1 : public KPGCreateFunctionWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> &, KPGLanguagesFolder *);
+    ~KPGCreateFunctionWidget1();
+    
+    void refreshListOfLanguages(KPGLanguagesFolder *);
+    const QString getFuncName() const;
+    const QString getSQL1() const;
+    const QString getSQL2() const;
+    
+protected slots:
+
+    virtual void slotFunctionNameChanged(const QString&);
+        
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,123 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatefunctionwidget1base.ui'
+**
+** Created: Út dub 1 13:07:32 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatefunctionwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qcombobox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateFunctionWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateFunctionWidget1Base::KPGCreateFunctionWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateFunctionWidget1Base" );
+    KPGCreateFunctionWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateFunctionWidget1BaseLayout"); 
+    spacer5_2 = new QSpacerItem( 21, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateFunctionWidget1BaseLayout->addItem( spacer5_2, 3, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxLanguage = new KComboBox( FALSE, this, "m_pComboBoxLanguage" );
+    layout2->addWidget( m_pComboBoxLanguage );
+
+    KPGCreateFunctionWidget1BaseLayout->addLayout( layout2, 2, 0 );
+    spacer5 = new QSpacerItem( 60, 21, QSizePolicy::MinimumExpanding, QSizePolicy::Minimum );
+    KPGCreateFunctionWidget1BaseLayout->addMultiCell( spacer5, 2, 2, 1, 2 );
+
+    layout8 = new QVBoxLayout( 0, 0, 6, "layout8"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    textLabel2_2->setTextFormat( QLabel::PlainText );
+    layout8->addWidget( textLabel2_2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout8->addWidget( m_pComboBoxSchema );
+
+    KPGCreateFunctionWidget1BaseLayout->addLayout( layout8, 0, 0 );
+    spacer4 = new QSpacerItem( 51, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateFunctionWidget1BaseLayout->addMultiCell( spacer4, 0, 0, 1, 2 );
+    spacer3 = new QSpacerItem( 70, 21, QSizePolicy::Minimum, QSizePolicy::Minimum );
+    KPGCreateFunctionWidget1BaseLayout->addItem( spacer3, 1, 2 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    textLabel1->setAlignment( int( QLabel::AlignTop ) );
+    layout4->addWidget( textLabel1 );
+
+    m_pLineEditFunctionName = new KLineEdit( this, "m_pLineEditFunctionName" );
+    m_pLineEditFunctionName->setAlignment( int( KLineEdit::AlignHCenter | KLineEdit::AlignRight | KLineEdit::AlignLeft ) );
+    layout4->addWidget( m_pLineEditFunctionName );
+
+    KPGCreateFunctionWidget1BaseLayout->addMultiCellLayout( layout4, 1, 1, 0, 1 );
+    languageChange();
+    resize( QSize(265, 216).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditFunctionName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotFunctionNameChanged(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditFunctionName, m_pComboBoxSchema );
+    setTabOrder( m_pComboBoxSchema, m_pComboBoxLanguage );
+
+    // buddies
+    textLabel2->setBuddy( m_pComboBoxLanguage );
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel1->setBuddy( m_pLineEditFunctionName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateFunctionWidget1Base::~KPGCreateFunctionWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateFunctionWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Function name and language" ) );
+    textLabel2->setText( tr2i18n( "Function &language:" ) );
+    m_pComboBoxLanguage->clear();
+    m_pComboBoxLanguage->insertItem( tr2i18n( "SQL" ) );
+    m_pComboBoxLanguage->insertItem( tr2i18n( "C" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel1->setText( tr2i18n( "New &function name:" ) );
+}
+
+void KPGCreateFunctionWidget1Base::slotFunctionNameChanged(const QString&)
+{
+    qWarning( "KPGCreateFunctionWidget1Base::slotFunctionNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatefunctionwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,215 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateFunctionWidget1Base</class>
+<comment>Widget for create function Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateFunctionWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>265</width>
+            <height>216</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Function name and language</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="3" column="0">
+            <property name="name">
+                <cstring>spacer5_2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="2" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Function &amp;language:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxLanguage</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>SQL</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>C</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxLanguage</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="2" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer5</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>MinimumExpanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>60</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout8</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer4</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>51</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Minimum</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>70</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New &amp;function name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="alignment">
+                        <set>AlignTop</set>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditFunctionName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditFunctionName</cstring>
+                    </property>
+                    <property name="alignment">
+                        <set>AlignHCenter|AlignRight|AlignLeft</set>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditFunctionName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateFunctionWidget1Base</receiver>
+        <slot>slotFunctionNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditFunctionName</tabstop>
+    <tabstop>m_pComboBoxSchema</tabstop>
+    <tabstop>m_pComboBoxLanguage</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotFunctionNameChanged(const QString&amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,677 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <qspinbox.h>
+#include <qinputdialog.h> 
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <klistview.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtypesfolder.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgtype.h"
+#include "../kpgutil.h"
+
+#define NUM_BASIC_ARG_TYPES 38
+#define NUM_BASIC_RET_TYPES 40
+
+
+KPGCreateFunctionWidget2::KPGCreateFunctionWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateFunctionWidget2Base(parent, name)
+{
+	m_pDatabase = pDatabase;
+	
+	// fill schemas to comboboxes
+	KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxRetTypeSchema, true);
+	KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxArgTypeSchema, true);
+	
+	m_pListViewArguments->setAllColumnsShowFocus(true);
+	m_pListViewArguments->setSortColumn(-1);
+}
+
+
+KPGCreateFunctionWidget2::~KPGCreateFunctionWidget2()
+{
+}
+
+void KPGCreateFunctionWidget2::refreshListOfReturnTypes()
+{
+	m_pComboBoxReturnType->clear();
+	
+	//-------------------------------------------------------------------
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+	
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "anyelement");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "anyarray");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "cstring");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "internal");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "language_handler");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "OPAQUE");
+	m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, "trigger");
+	
+	if(m_pComboBoxReturnType->count() != NUM_BASIC_RET_TYPES)
+		kdDebug() << "KPGCreateFunctionWidget2::refreshListOfReturnTypes() : NUM_BASIC_RET_TYPES wrong number" << endl;
+		
+		
+	//-------------------------------------------------------------------
+	
+	//--- Obtain list of types
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(m_pComboBoxRetTypeSchema->currentText());
+	if(!pItem)
+	{
+		kdDebug() << "KPGCreateFunctionWidget2::refreshListOfReturnTypes: no item found: " << m_pComboBoxRetTypeSchema->currentText() << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+	
+	// traverse list of types
+	QListViewItem * pLvItem = pTypesFolder->firstChild();
+	while(pLvItem)
+	{
+		KPGType *pType = static_cast <KPGType *> (pLvItem);
+		
+		if((pType->kind() == "composite") || ((pType->kind() == "base") && pType->text(0)[0] != '_'))
+		{
+			m_pComboBoxReturnType->insertItem(* pType->pixmap(0), pType->text(0)); 
+		}
+		pLvItem = pLvItem->nextSibling();
+	}
+	
+	//--- User defined datatype
+	if(!strNewDatatype.isEmpty())
+		m_pComboBoxReturnType->insertItem(* KPGTreeItem::m_pIconType, strNewDatatype);
+	
+	m_pComboBoxReturnType->setCurrentItem(0);
+	slotComboReturnTypeActivated(m_pComboBoxReturnType->currentText());
+}
+
+void KPGCreateFunctionWidget2::refreshListOfArgumentTypes()
+{
+	m_pComboBoxArgumentType->clear();
+	
+	//-------------------------------------------------------------------
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+		
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+	
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, "anyelement");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, "anyarray");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, "cstring");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, "internal");
+	m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, "OPAQUE");
+	
+	if(m_pComboBoxArgumentType->count() != NUM_BASIC_ARG_TYPES)
+		kdDebug() << "KPGCreateFunctionWidget2::refreshListOfArgumentTypes : NUM_BASIC_ARG_TYPES wrong number" << endl;
+	
+	//--- Obtain list of types
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(m_pComboBoxArgTypeSchema->currentText());
+	if(!pItem)
+	{
+		kdDebug() << "KPGCreateFunctionWidget2::refreshListOfArgumentTypes: no item found: " << m_pComboBoxArgTypeSchema->currentText() << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+	
+	// traverse list of types
+	QListViewItem * pLvItem = pTypesFolder->firstChild();
+	while(pLvItem)
+	{
+		KPGType *pType = static_cast <KPGType *> (pLvItem);
+		
+		if((pType->kind() == "composite") || ((pType->kind() == "base") && pType->text(0)[0] != '_'))
+		{
+			m_pComboBoxArgumentType->insertItem(* pType->pixmap(0), pType->text(0));
+		}
+		pLvItem = pLvItem->nextSibling();
+	}
+	
+	//--- User defined datatype
+	if(!strNewDatatype.isEmpty())
+		m_pComboBoxArgumentType->insertItem(* KPGTreeItem::m_pIconType, strNewDatatype);
+		
+	m_pComboBoxArgumentType->setCurrentItem(0);
+	slotComboArgumentTypeActivated(m_pComboBoxArgumentType->currentText());
+  
+}
+
+void KPGCreateFunctionWidget2::slotRetTypeSchemaActivated(int)
+{
+	// refresh types from selected namespace
+	refreshListOfReturnTypes();
+	slotComboReturnTypeActivated(m_pComboBoxReturnType->currentText());
+} 
+ 
+void KPGCreateFunctionWidget2::slotArgTypeSchemaActivated(int)
+{
+	// refresh types from selected namespace
+	refreshListOfArgumentTypes();
+	slotComboArgumentTypeActivated(m_pComboBoxArgumentType->currentText());
+}    
+
+void KPGCreateFunctionWidget2::slotArgumentCurrentChanged(QListViewItem *pItem)
+{
+	m_pPushButtonArgumentDel->setEnabled(pItem != 0);
+	m_pPushButtonArgumentUp->setEnabled(pItem != 0);
+	m_pPushButtonArgumentDown->setEnabled(pItem != 0);
+  
+}
+
+void KPGCreateFunctionWidget2::slotColumnSelectionChanged(QListViewItem *pItem)
+{
+    m_pPushButtonArgumentDel->setEnabled(pItem != 0);
+    m_pPushButtonArgumentUp->setEnabled(pItem != 0);
+    m_pPushButtonArgumentDown->setEnabled(pItem != 0);
+}
+
+void KPGCreateFunctionWidget2::slotCheckBoxWithoutReturnToggled(bool bWithoutReturn)
+{
+    if(bWithoutReturn)
+    {
+        m_pSpinBoxRetPrecision->setEnabled(false);
+        m_pSpinBoxRetScale->setEnabled(false);
+    }
+    else
+    {
+        // enable/disable depends from selected return type
+        slotComboReturnTypeActivated(m_pComboBoxReturnType->currentText());
+    }
+    
+    m_pCheckBoxReturnSet->setEnabled(!bWithoutReturn);
+    m_pComboBoxRetTypeSchema->setEnabled(!bWithoutReturn);
+    m_pComboBoxReturnType->setEnabled(!bWithoutReturn);
+}
+
+void KPGCreateFunctionWidget2::slotComboReturnTypeActivated(const QString &strText)
+{
+	// Enable/disable precision and scale spins
+	m_pSpinBoxRetPrecision->setEnabled(false);
+	m_pSpinBoxRetScale->setEnabled(false);
+	
+	if(strText.find("(n)") > 0)
+	{
+		m_pSpinBoxRetPrecision->setEnabled(true);
+	}
+	
+	if(strText.find("(p, s)") > 0)
+	{
+		m_pSpinBoxRetPrecision->setEnabled(true);
+		m_pSpinBoxRetScale->setEnabled(true);
+	}
+	
+	if(strText.find("[(p)]") > 0)
+	{
+		m_pSpinBoxRetPrecision->setEnabled(true);
+	}
+	
+	// Set help text for selected data type
+	if((strText == "char(n)") || (strText == "varchar(n)"))
+	{ 
+		m_pSpinBoxRetPrecision->setMinValue( 0 );
+		m_pSpinBoxRetPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxRetPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+	{ 
+		m_pSpinBoxRetPrecision->setMinValue( 1 );
+		m_pSpinBoxRetPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxRetScale->setMinValue( 0 );
+		m_pSpinBoxRetScale->setMaxValue( 999 );
+		
+		m_pSpinBoxRetPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "bit(n)") || (strText == "bit varying(n)"))
+	{ 
+		m_pSpinBoxRetPrecision->setMinValue( 0 );
+		m_pSpinBoxRetPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxRetPrecision->setValue( 255 );
+		
+		return;
+	}
+		
+	if((strText == "time [(p)]") || (strText == "time [(p)] with time zone"))
+	{ 
+		m_pSpinBoxRetPrecision->setMinValue( 0 );
+		m_pSpinBoxRetPrecision->setMaxValue( 13 );
+		
+		m_pSpinBoxRetPrecision->setValue( 13 );
+		return;
+	}
+	
+	if((strText == "timestamp [(p)]") || (strText == "timestamp [(p)] with time zone") || (strText == "interval [(p)]"))
+	{ 
+		m_pSpinBoxRetPrecision->setMinValue( 0 );
+		m_pSpinBoxRetPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxRetPrecision->setValue( 6 );
+	
+		return;
+	}
+}
+
+void KPGCreateFunctionWidget2::slotComboArgumentTypeActivated(const QString &strText)  
+{
+	// Enable/disable precision and scale spins
+	m_pSpinBoxArgPrecision->setEnabled(false);
+	m_pSpinBoxArgScale->setEnabled(false);
+	
+	if(strText.find("(n)") > 0)
+	{
+		m_pSpinBoxArgPrecision->setEnabled(true);
+	}
+	
+	if(strText.find("(p, s)") > 0)
+	{
+		m_pSpinBoxArgPrecision->setEnabled(true);
+		m_pSpinBoxArgScale->setEnabled(true);
+	}
+	
+	if(strText.find("[(p)]") > 0)
+	{
+		m_pSpinBoxArgPrecision->setEnabled(true);
+	}
+	
+	// Set help text for selected data type
+	if((strText == "char(n)") || (strText == "varchar(n)"))
+	{ 
+		m_pSpinBoxArgPrecision->setMinValue( 0 );
+		m_pSpinBoxArgPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxArgPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+	{ 
+		m_pSpinBoxArgPrecision->setMinValue( 1 );
+		m_pSpinBoxArgPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxArgScale->setMinValue( 0 );
+		m_pSpinBoxArgScale->setMaxValue( 999 );
+		
+		m_pSpinBoxArgPrecision->setValue( 10 );
+		
+		return;
+	}    
+	
+	if((strText == "bit(n)") || (strText == "bit varying(n)"))
+	{ 
+		m_pSpinBoxArgPrecision->setMinValue( 0 );
+		m_pSpinBoxArgPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxArgPrecision->setValue( 255 );
+		
+		return;
+	}
+		
+	if((strText == "time [(p)]") || (strText == "time [(p)] with time zone"))
+	{ 
+		m_pSpinBoxArgPrecision->setMinValue( 0 );
+		m_pSpinBoxArgPrecision->setMaxValue( 13 );
+		
+		m_pSpinBoxArgPrecision->setValue( 13 );
+		return;
+	}
+	
+	if((strText == "timestamp [(p)]") || (strText == "timestamp [(p)] with time zone") || (strText == "interval [(p)]"))
+	{ 
+		m_pSpinBoxArgPrecision->setMinValue( 0 );
+		m_pSpinBoxArgPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxArgPrecision->setValue( 6 );
+	
+		return;
+	}
+}
+
+void KPGCreateFunctionWidget2::slotArgumentAdd()
+{
+	if(m_pComboBoxArgumentType->currentItem() < 0) return;
+	
+	QString strArgumentName(m_pLineEditArgumentName->text());
+	QString strArgumentType(m_pComboBoxArgumentType->currentText());
+	QString strNamespace(m_pComboBoxArgTypeSchema->currentText());
+	
+	QString strDefinition;
+	
+	if((m_pComboBoxArgumentType->currentItem() <= NUM_BASIC_ARG_TYPES - 1) || (strNamespace == "public"))
+		strDefinition = strArgumentType;
+	else
+		strDefinition = "\"" + strNamespace + "\"." +  strArgumentType;
+		
+	// Avoid argument name duplicity, if it's not empty
+	QListViewItem *pLastItem = 0;
+			
+	QListViewItem * pItem = m_pListViewArguments->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+				
+		if(strArgumentName.length() > 0)
+		{
+			if(pItem->text(0) == strArgumentName)
+			{ 
+			KMessageBox::sorry(this, i18n("Argument name already exists !"));
+			return;     
+			}   
+		}  
+		pItem = pItem->nextSibling();
+	}
+	
+	
+	//----------------------------------------------------------- 
+	int i;
+	if((i = strDefinition.find("(n)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+			
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxArgPrecision->value()));
+	}
+	
+	if((i = strDefinition.find("(p, s)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+		
+		strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxArgPrecision->value()).arg(m_pSpinBoxArgScale->value()));
+	}
+	
+	if((i = strDefinition.find("[(p)]")) > 0)
+	{
+		QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+		strDefinition = strDefinition.left(i); // strip (n)
+		
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxArgPrecision->value()));
+		strDefinition.append(strDefinitionPostfix);
+	}
+	
+	// Create item for new column
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewArguments, strArgumentName, strDefinition, m_pComboBoxArgumentMode->currentText());
+	else
+		pNewItem = new QListViewItem(m_pListViewArguments, pLastItem, strArgumentName, strDefinition, m_pComboBoxArgumentMode->currentText());
+		
+	pNewItem->setPixmap(0, * m_pComboBoxArgumentType->pixmap(m_pComboBoxArgumentType->currentItem()));
+	
+	
+	m_pLineEditArgumentName->setText("");
+}
+
+void KPGCreateFunctionWidget2::slotArgumentDelete()
+{
+    QListViewItem *pSelectedItem = m_pListViewArguments->selectedItem();
+    if(pSelectedItem)
+    { 
+        delete pSelectedItem;
+    }
+            
+    m_pPushButtonArgumentDel->setEnabled(false);
+    m_pPushButtonArgumentUp->setEnabled(false);
+    m_pPushButtonArgumentDown->setEnabled(false);
+}
+
+void KPGCreateFunctionWidget2::slotArgumentUp()
+{
+    QListViewItem *pSelectedItem = m_pListViewArguments->selectedItem();
+    if(!pSelectedItem) return;
+        
+    QListViewItem *pPrevItem = pSelectedItem->itemAbove();
+    if(!pPrevItem) return;
+        
+    pPrevItem = pPrevItem->itemAbove();
+                
+    m_pListViewArguments->takeItem(pSelectedItem);
+        
+    QListViewItem *pNewItem;
+         
+    if(pPrevItem)
+        pNewItem = new QListViewItem(m_pListViewArguments, pPrevItem, pSelectedItem->text(0),  pSelectedItem->text(1));
+    else
+        pNewItem = new QListViewItem(m_pListViewArguments, pSelectedItem->text(0),  pSelectedItem->text(1),  pSelectedItem->text(2));
+        
+    pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+                 
+    delete pSelectedItem;
+         
+    m_pListViewArguments->setCurrentItem(pNewItem);
+    m_pListViewArguments->setSelected(pNewItem, true);
+}
+
+void KPGCreateFunctionWidget2::slotArgumentDown()
+{
+    QListViewItem *pSelectedItem = m_pListViewArguments->selectedItem();
+    if(!pSelectedItem) return;
+        
+    QListViewItem *pAfterItem = pSelectedItem->itemBelow();
+    if(!pAfterItem) return;
+        
+    m_pListViewArguments->takeItem(pSelectedItem);
+         
+    QListViewItem *pNewItem = new QListViewItem(m_pListViewArguments, pAfterItem, pSelectedItem->text(0), pSelectedItem->text(1), pSelectedItem->text(2));
+    pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+                 
+    delete pSelectedItem;
+         
+    m_pListViewArguments->setCurrentItem(pNewItem);
+    m_pListViewArguments->setSelected(pNewItem, true);  
+}
+
+void KPGCreateFunctionWidget2::slotAddNewDatatype()
+{
+    bool ok;
+    QString text = QInputDialog::getText("KPoGre", i18n("Enter datatype name:"), QLineEdit::Normal, QString::null, &ok, this );
+    if( ok && !text.isEmpty()) 
+    {
+        strNewDatatype = text;
+    } 
+    else
+    {
+        return;
+    }
+        
+        
+    refreshListOfReturnTypes();
+    refreshListOfArgumentTypes();
+}
+
+// Return function paramaters
+const QString KPGCreateFunctionWidget2::getFuncParams() const
+{
+    QString strFuncParams(" (");
+    
+    // list of function argument
+    QListViewItem * pItem = m_pListViewArguments->firstChild();
+    while(pItem)
+    {
+        strFuncParams.append(pItem->text(2)); // IN / OUT / INOUT
+        strFuncParams.append(" ");
+        
+        if(pItem->text(0).length() > 0) // append name, if exists
+        {
+            strFuncParams.append(pItem->text(0));
+            strFuncParams.append(" ");
+        }
+        
+        strFuncParams.append(pItem->text(1)); // data type
+              
+        pItem = pItem->nextSibling();
+        
+        if(pItem)
+            strFuncParams.append(",\n");
+    }
+    
+    strFuncParams.append(")");
+  
+    return strFuncParams;
+}
+
+// Return part of SQL statement for CREATE FUNCTION
+const QString KPGCreateFunctionWidget2::getSQL() const
+{
+    QString strSQL("");
+	
+    if(m_pCheckBoxWithoutReturn->isChecked() == true)
+        return strSQL;
+    
+    strSQL.append("\n");
+    
+    // return type
+    QString strReturnType(m_pComboBoxReturnType->currentText());
+    QString strNamespace(m_pComboBoxRetTypeSchema->currentText());
+    
+    QString strDefinition;
+    
+    if((m_pComboBoxReturnType->currentItem() <= NUM_BASIC_RET_TYPES - 1) || (strNamespace == "public"))
+        strDefinition = strReturnType;
+    else
+        strDefinition = "\"" + strNamespace + "\"." +  strReturnType;
+        
+        
+    int i;
+    if((i = strDefinition.find("(n)")) > 0)
+    {
+        strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+            
+        strDefinition.append(QString("(%1)").arg(m_pSpinBoxRetPrecision->value()));
+    }
+    
+    if((i = strDefinition.find("(p, s)")) > 0)
+    {
+        strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+        
+        strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxRetPrecision->value()).arg(m_pSpinBoxRetScale->value()));
+    }
+    
+    if((i = strDefinition.find("[(p)]")) > 0)
+    {
+        QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+        strDefinition = strDefinition.left(i); // strip (n)
+        
+        strDefinition.append(QString("(%1)").arg(m_pSpinBoxRetPrecision->value()));
+        strDefinition.append(strDefinitionPostfix);
+    }
+    
+    strSQL.append("RETURNS ");
+    if(m_pCheckBoxReturnSet->isChecked()) strSQL.append("SETOF ");
+    strSQL.append(strDefinition);
+    strSQL.append("\n");
+	  
+	return strSQL;
+}
+
+#include "kpgcreatefunctionwidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,63 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIDGET2_H
+#define KPGCREATEFUNCTIONWIDGET2_H
+
+#include <kpgcreatefunctionwidget2base.h>
+
+/**
+Widget for create function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGDatabase;
+
+class KPGCreateFunctionWidget2 : public KPGCreateFunctionWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateFunctionWidget2();
+
+    const QString getFuncParams() const;
+    const QString getSQL() const;
+
+    void refreshListOfReturnTypes();
+    void refreshListOfArgumentTypes();    
+    
+protected:
+    KPGDatabase *m_pDatabase;
+    QString strNewDatatype;   
+    
+protected slots:
+    
+    virtual void slotRetTypeSchemaActivated(int);
+    virtual void slotArgTypeSchemaActivated(int);
+    virtual void slotComboReturnTypeActivated(const QString &);
+    virtual void slotComboArgumentTypeActivated(const QString &);
+    virtual void slotColumnSelectionChanged(QListViewItem *);
+    virtual void slotArgumentCurrentChanged(QListViewItem *);
+    virtual void slotCheckBoxWithoutReturnToggled(bool);
+    
+    virtual void slotArgumentAdd();
+    virtual void slotArgumentDelete();
+    virtual void slotArgumentUp();
+    virtual void slotArgumentDown();
+     
+    virtual void slotAddNewDatatype(); 
+      
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,376 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatefunctionwidget2base.ui'
+**
+** Created: Út dub 1 13:07:32 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatefunctionwidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qframe.h>
+#include <qspinbox.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+#include "klistview.h"
+
+/*
+ *  Constructs a KPGCreateFunctionWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateFunctionWidget2Base::KPGCreateFunctionWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateFunctionWidget2Base" );
+    KPGCreateFunctionWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateFunctionWidget2BaseLayout"); 
+    spacer4 = new QSpacerItem( 131, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateFunctionWidget2BaseLayout->addItem( spacer4, 2, 1 );
+
+    m_pPushButtonAddDatatype = new QPushButton( this, "m_pPushButtonAddDatatype" );
+
+    KPGCreateFunctionWidget2BaseLayout->addWidget( m_pPushButtonAddDatatype, 2, 0 );
+
+    groupBox2 = new QGroupBox( this, "groupBox2" );
+    groupBox2->setColumnLayout(0, Qt::Vertical );
+    groupBox2->layout()->setSpacing( 6 );
+    groupBox2->layout()->setMargin( 11 );
+    groupBox2Layout = new QGridLayout( groupBox2->layout() );
+    groupBox2Layout->setAlignment( Qt::AlignTop );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    m_pPushButtonArgumentAdd = new QPushButton( groupBox2, "m_pPushButtonArgumentAdd" );
+    m_pPushButtonArgumentAdd->setEnabled( TRUE );
+    layout3->addWidget( m_pPushButtonArgumentAdd );
+
+    m_pPushButtonArgumentDel = new QPushButton( groupBox2, "m_pPushButtonArgumentDel" );
+    m_pPushButtonArgumentDel->setEnabled( FALSE );
+    layout3->addWidget( m_pPushButtonArgumentDel );
+
+    m_pPushButtonArgumentUp = new QPushButton( groupBox2, "m_pPushButtonArgumentUp" );
+    m_pPushButtonArgumentUp->setEnabled( FALSE );
+    layout3->addWidget( m_pPushButtonArgumentUp );
+
+    m_pPushButtonArgumentDown = new QPushButton( groupBox2, "m_pPushButtonArgumentDown" );
+    m_pPushButtonArgumentDown->setEnabled( FALSE );
+    layout3->addWidget( m_pPushButtonArgumentDown );
+
+    groupBox2Layout->addMultiCellLayout( layout3, 1, 2, 2, 2 );
+    spacer4_2 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox2Layout->addItem( spacer4_2, 3, 2 );
+
+    frame3 = new QFrame( groupBox2, "frame3" );
+    frame3->setFrameShape( QFrame::StyledPanel );
+    frame3->setFrameShadow( QFrame::Plain );
+    frame3->setLineWidth( 0 );
+    frame3Layout = new QGridLayout( frame3, 1, 1, 0, 6, "frame3Layout"); 
+
+    m_pSpinBoxArgScale = new QSpinBox( frame3, "m_pSpinBoxArgScale" );
+    m_pSpinBoxArgScale->setEnabled( FALSE );
+    m_pSpinBoxArgScale->setMaxValue( 999 );
+
+    frame3Layout->addWidget( m_pSpinBoxArgScale, 1, 3 );
+
+    textLabel3_2 = new QLabel( frame3, "textLabel3_2" );
+
+    frame3Layout->addWidget( textLabel3_2, 0, 2 );
+
+    m_pSpinBoxArgPrecision = new QSpinBox( frame3, "m_pSpinBoxArgPrecision" );
+    m_pSpinBoxArgPrecision->setEnabled( TRUE );
+    m_pSpinBoxArgPrecision->setMaxValue( 999 );
+    m_pSpinBoxArgPrecision->setMinValue( 1 );
+    m_pSpinBoxArgPrecision->setValue( 10 );
+
+    frame3Layout->addWidget( m_pSpinBoxArgPrecision, 1, 2 );
+
+    textLabel1_2 = new QLabel( frame3, "textLabel1_2" );
+
+    frame3Layout->addWidget( textLabel1_2, 0, 1 );
+
+    m_pComboBoxArgumentType = new KComboBox( FALSE, frame3, "m_pComboBoxArgumentType" );
+
+    frame3Layout->addWidget( m_pComboBoxArgumentType, 1, 1 );
+
+    m_pComboBoxArgTypeSchema = new KComboBox( FALSE, frame3, "m_pComboBoxArgTypeSchema" );
+
+    frame3Layout->addWidget( m_pComboBoxArgTypeSchema, 1, 0 );
+
+    textLabel2_2_2 = new QLabel( frame3, "textLabel2_2_2" );
+    textLabel2_2_2->setTextFormat( QLabel::PlainText );
+
+    frame3Layout->addWidget( textLabel2_2_2, 0, 0 );
+
+    textLabel4_2 = new QLabel( frame3, "textLabel4_2" );
+
+    frame3Layout->addWidget( textLabel4_2, 0, 3 );
+
+    groupBox2Layout->addMultiCellWidget( frame3, 0, 0, 0, 2 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel1 = new QLabel( groupBox2, "textLabel1" );
+    layout5->addWidget( textLabel1 );
+
+    m_pLineEditArgumentName = new KLineEdit( groupBox2, "m_pLineEditArgumentName" );
+    layout5->addWidget( m_pLineEditArgumentName );
+
+    groupBox2Layout->addLayout( layout5, 1, 0 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel2 = new QLabel( groupBox2, "textLabel2" );
+    layout6->addWidget( textLabel2 );
+
+    m_pComboBoxArgumentMode = new KComboBox( FALSE, groupBox2, "m_pComboBoxArgumentMode" );
+    layout6->addWidget( m_pComboBoxArgumentMode );
+
+    groupBox2Layout->addLayout( layout6, 1, 1 );
+
+    layout6_2 = new QVBoxLayout( 0, 0, 6, "layout6_2"); 
+
+    textLabel2_3 = new QLabel( groupBox2, "textLabel2_3" );
+    layout6_2->addWidget( textLabel2_3 );
+
+    m_pListViewArguments = new KListView( groupBox2, "m_pListViewArguments" );
+    m_pListViewArguments->addColumn( tr2i18n( "Argument name" ) );
+    m_pListViewArguments->addColumn( tr2i18n( "Definition" ) );
+    m_pListViewArguments->addColumn( tr2i18n( "Mode" ) );
+    layout6_2->addWidget( m_pListViewArguments );
+
+    groupBox2Layout->addMultiCellLayout( layout6_2, 2, 3, 0, 1 );
+
+    KPGCreateFunctionWidget2BaseLayout->addMultiCellWidget( groupBox2, 1, 1, 0, 1 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    textLabel4 = new QLabel( groupBox1, "textLabel4" );
+
+    groupBox1Layout->addWidget( textLabel4, 0, 3 );
+
+    textLabel13 = new QLabel( groupBox1, "textLabel13" );
+
+    groupBox1Layout->addWidget( textLabel13, 0, 1 );
+
+    m_pSpinBoxRetPrecision = new QSpinBox( groupBox1, "m_pSpinBoxRetPrecision" );
+    m_pSpinBoxRetPrecision->setEnabled( TRUE );
+    m_pSpinBoxRetPrecision->setMaxValue( 999 );
+    m_pSpinBoxRetPrecision->setMinValue( 1 );
+    m_pSpinBoxRetPrecision->setValue( 10 );
+
+    groupBox1Layout->addWidget( m_pSpinBoxRetPrecision, 1, 2 );
+
+    m_pSpinBoxRetScale = new QSpinBox( groupBox1, "m_pSpinBoxRetScale" );
+    m_pSpinBoxRetScale->setEnabled( FALSE );
+    m_pSpinBoxRetScale->setMaxValue( 999 );
+
+    groupBox1Layout->addWidget( m_pSpinBoxRetScale, 1, 3 );
+
+    m_pComboBoxReturnType = new KComboBox( FALSE, groupBox1, "m_pComboBoxReturnType" );
+
+    groupBox1Layout->addWidget( m_pComboBoxReturnType, 1, 1 );
+
+    textLabel3 = new QLabel( groupBox1, "textLabel3" );
+
+    groupBox1Layout->addWidget( textLabel3, 0, 2 );
+
+    textLabel2_2 = new QLabel( groupBox1, "textLabel2_2" );
+    textLabel2_2->setTextFormat( QLabel::PlainText );
+
+    groupBox1Layout->addWidget( textLabel2_2, 0, 0 );
+
+    m_pComboBoxRetTypeSchema = new KComboBox( FALSE, groupBox1, "m_pComboBoxRetTypeSchema" );
+
+    groupBox1Layout->addWidget( m_pComboBoxRetTypeSchema, 1, 0 );
+
+    layout6_3 = new QHBoxLayout( 0, 0, 6, "layout6_3"); 
+
+    m_pCheckBoxWithoutReturn = new QCheckBox( groupBox1, "m_pCheckBoxWithoutReturn" );
+    layout6_3->addWidget( m_pCheckBoxWithoutReturn );
+
+    m_pCheckBoxReturnSet = new QCheckBox( groupBox1, "m_pCheckBoxReturnSet" );
+    layout6_3->addWidget( m_pCheckBoxReturnSet );
+    spacer5_2 = new QSpacerItem( 180, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout6_3->addItem( spacer5_2 );
+
+    groupBox1Layout->addMultiCellLayout( layout6_3, 2, 2, 0, 3 );
+
+    KPGCreateFunctionWidget2BaseLayout->addMultiCellWidget( groupBox1, 0, 0, 0, 1 );
+    languageChange();
+    resize( QSize(534, 476).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pPushButtonArgumentAdd, SIGNAL( clicked() ), this, SLOT( slotArgumentAdd() ) );
+    connect( m_pPushButtonArgumentDel, SIGNAL( clicked() ), this, SLOT( slotArgumentDelete() ) );
+    connect( m_pPushButtonArgumentUp, SIGNAL( clicked() ), this, SLOT( slotArgumentUp() ) );
+    connect( m_pPushButtonArgumentDown, SIGNAL( clicked() ), this, SLOT( slotArgumentDown() ) );
+    connect( m_pComboBoxReturnType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboReturnTypeActivated(const QString&) ) );
+    connect( m_pComboBoxArgumentType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboArgumentTypeActivated(const QString&) ) );
+    connect( m_pComboBoxRetTypeSchema, SIGNAL( activated(int) ), this, SLOT( slotRetTypeSchemaActivated(int) ) );
+    connect( m_pComboBoxArgTypeSchema, SIGNAL( activated(int) ), this, SLOT( slotArgTypeSchemaActivated(int) ) );
+    connect( m_pPushButtonAddDatatype, SIGNAL( clicked() ), this, SLOT( slotAddNewDatatype() ) );
+    connect( m_pListViewArguments, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotArgumentCurrentChanged(QListViewItem*) ) );
+    connect( m_pListViewArguments, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotColumnSelectionChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxWithoutReturn, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxWithoutReturnToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pComboBoxReturnType, m_pSpinBoxRetPrecision );
+    setTabOrder( m_pSpinBoxRetPrecision, m_pSpinBoxRetScale );
+    setTabOrder( m_pSpinBoxRetScale, m_pCheckBoxReturnSet );
+    setTabOrder( m_pCheckBoxReturnSet, m_pComboBoxArgumentType );
+    setTabOrder( m_pComboBoxArgumentType, m_pSpinBoxArgPrecision );
+    setTabOrder( m_pSpinBoxArgPrecision, m_pSpinBoxArgScale );
+    setTabOrder( m_pSpinBoxArgScale, m_pPushButtonArgumentAdd );
+    setTabOrder( m_pPushButtonArgumentAdd, m_pPushButtonArgumentDel );
+    setTabOrder( m_pPushButtonArgumentDel, m_pPushButtonArgumentUp );
+    setTabOrder( m_pPushButtonArgumentUp, m_pPushButtonArgumentDown );
+
+    // buddies
+    textLabel3_2->setBuddy( m_pSpinBoxArgPrecision );
+    textLabel1_2->setBuddy( m_pComboBoxArgumentType );
+    textLabel2_2_2->setBuddy( m_pComboBoxArgTypeSchema );
+    textLabel4_2->setBuddy( m_pSpinBoxArgScale );
+    textLabel1->setBuddy( m_pLineEditArgumentName );
+    textLabel2->setBuddy( m_pComboBoxArgumentMode );
+    textLabel4->setBuddy( m_pSpinBoxRetScale );
+    textLabel13->setBuddy( m_pComboBoxReturnType );
+    textLabel3->setBuddy( m_pSpinBoxRetPrecision );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateFunctionWidget2Base::~KPGCreateFunctionWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateFunctionWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Return and arguments types" ) );
+    m_pPushButtonAddDatatype->setText( tr2i18n( "User defined datatype..." ) );
+    groupBox2->setTitle( tr2i18n( "Arguments" ) );
+    m_pPushButtonArgumentAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonArgumentAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonArgumentDel->setText( tr2i18n( "De&lete" ) );
+    m_pPushButtonArgumentDel->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pPushButtonArgumentUp->setText( tr2i18n( "Move &Up" ) );
+    m_pPushButtonArgumentUp->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pPushButtonArgumentDown->setText( tr2i18n( "Move D&own" ) );
+    m_pPushButtonArgumentDown->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    textLabel3_2->setText( tr2i18n( "Precision/size:" ) );
+    textLabel1_2->setText( tr2i18n( "Ar&gument type:" ) );
+    textLabel2_2_2->setText( tr2i18n( "Schema:" ) );
+    textLabel4_2->setText( tr2i18n( "Scale:" ) );
+    textLabel1->setText( tr2i18n( "Argumen&t name:" ) );
+    textLabel2->setText( tr2i18n( "Argument &mode:" ) );
+    m_pComboBoxArgumentMode->clear();
+    m_pComboBoxArgumentMode->insertItem( tr2i18n( "IN" ) );
+    m_pComboBoxArgumentMode->insertItem( tr2i18n( "OUT" ) );
+    m_pComboBoxArgumentMode->insertItem( tr2i18n( "INOUT" ) );
+    textLabel2_3->setText( tr2i18n( "Arguments list:" ) );
+    m_pListViewArguments->header()->setLabel( 0, tr2i18n( "Argument name" ) );
+    m_pListViewArguments->header()->setLabel( 1, tr2i18n( "Definition" ) );
+    m_pListViewArguments->header()->setLabel( 2, tr2i18n( "Mode" ) );
+    groupBox1->setTitle( tr2i18n( "Return type" ) );
+    textLabel4->setText( tr2i18n( "Scale:" ) );
+    textLabel13->setText( tr2i18n( "&Data type:" ) );
+    textLabel3->setText( tr2i18n( "Precision/size:" ) );
+    textLabel2_2->setText( tr2i18n( "Schema:" ) );
+    m_pCheckBoxWithoutReturn->setText( tr2i18n( "&Without return value" ) );
+    m_pCheckBoxWithoutReturn->setAccel( QKeySequence( tr2i18n( "Alt+W" ) ) );
+    m_pCheckBoxReturnSet->setText( tr2i18n( "Return a &set" ) );
+    m_pCheckBoxReturnSet->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+}
+
+void KPGCreateFunctionWidget2Base::slotFunctionNameChanged(const QString&)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotFunctionNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgumentAdd()
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgumentAdd(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgumentDelete()
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgumentDelete(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgumentUp()
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgumentUp(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgumentDown()
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgumentDown(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotComboReturnTypeActivated(const QString&)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotComboReturnTypeActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotComboArgumentTypeActivated(const QString&)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotComboArgumentTypeActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotRetTypeSchemaActivated(int)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotRetTypeSchemaActivated(int): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgTypeSchemaActivated(int)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgTypeSchemaActivated(int): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotAddNewDatatype()
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotAddNewDatatype(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotArgumentCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotArgumentCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotColumnSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotColumnSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget2Base::slotCheckBoxWithoutReturnToggled(bool)
+{
+    qWarning( "KPGCreateFunctionWidget2Base::slotCheckBoxWithoutReturnToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatefunctionwidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,638 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateFunctionWidget2Base</class>
+<comment>Widget for create function Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateFunctionWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>534</width>
+            <height>476</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Return and arguments types</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="2" column="1">
+            <property name="name">
+                <cstring>spacer4</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>131</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QPushButton" row="2" column="0">
+            <property name="name">
+                <cstring>m_pPushButtonAddDatatype</cstring>
+            </property>
+            <property name="text">
+                <string>User defined datatype...</string>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox2</cstring>
+            </property>
+            <property name="title">
+                <string>Arguments</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="1" column="2" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonArgumentAdd</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>true</bool>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Add</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonArgumentDel</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>De&amp;lete</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+L</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonArgumentUp</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move &amp;Up</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+U</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonArgumentDown</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move D&amp;own</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer row="3" column="2">
+                    <property name="name">
+                        <cstring>spacer4_2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>16</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QFrame" row="0" column="0" rowspan="1" colspan="3">
+                    <property name="name">
+                        <cstring>frame3</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>StyledPanel</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>Plain</enum>
+                    </property>
+                    <property name="lineWidth">
+                        <number>0</number>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <property name="margin">
+                            <number>0</number>
+                        </property>
+                        <widget class="QSpinBox" row="1" column="3">
+                            <property name="name">
+                                <cstring>m_pSpinBoxArgScale</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="maxValue">
+                                <number>999</number>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="0" column="2">
+                            <property name="name">
+                                <cstring>textLabel3_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Precision/size:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pSpinBoxArgPrecision</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QSpinBox" row="1" column="2">
+                            <property name="name">
+                                <cstring>m_pSpinBoxArgPrecision</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>true</bool>
+                            </property>
+                            <property name="maxValue">
+                                <number>999</number>
+                            </property>
+                            <property name="minValue">
+                                <number>1</number>
+                            </property>
+                            <property name="value">
+                                <number>10</number>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="0" column="1">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Ar&amp;gument type:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxArgumentType</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox" row="1" column="1">
+                            <property name="name">
+                                <cstring>m_pComboBoxArgumentType</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox" row="1" column="0">
+                            <property name="name">
+                                <cstring>m_pComboBoxArgTypeSchema</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="0" column="0">
+                            <property name="name">
+                                <cstring>textLabel2_2_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Schema:</string>
+                            </property>
+                            <property name="textFormat">
+                                <enum>PlainText</enum>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxArgTypeSchema</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="0" column="3">
+                            <property name="name">
+                                <cstring>textLabel4_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Scale:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pSpinBoxArgScale</cstring>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout5</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Argumen&amp;t name:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditArgumentName</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditArgumentName</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Argument &amp;mode:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxArgumentMode</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>IN</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>OUT</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>INOUT</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxArgumentMode</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0" rowspan="2" colspan="2">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Arguments list:</string>
+                            </property>
+                        </widget>
+                        <widget class="KListView">
+                            <column>
+                                <property name="text">
+                                    <string>Argument name</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <column>
+                                <property name="text">
+                                    <string>Definition</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <column>
+                                <property name="text">
+                                    <string>Mode</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <property name="name">
+                                <cstring>m_pListViewArguments</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QGroupBox" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Return type</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel" row="0" column="3">
+                    <property name="name">
+                        <cstring>textLabel4</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Scale:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxRetScale</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="1">
+                    <property name="name">
+                        <cstring>textLabel13</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Data type:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxReturnType</cstring>
+                    </property>
+                </widget>
+                <widget class="QSpinBox" row="1" column="2">
+                    <property name="name">
+                        <cstring>m_pSpinBoxRetPrecision</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="maxValue">
+                        <number>999</number>
+                    </property>
+                    <property name="minValue">
+                        <number>1</number>
+                    </property>
+                    <property name="value">
+                        <number>10</number>
+                    </property>
+                </widget>
+                <widget class="QSpinBox" row="1" column="3">
+                    <property name="name">
+                        <cstring>m_pSpinBoxRetScale</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="maxValue">
+                        <number>999</number>
+                    </property>
+                </widget>
+                <widget class="KComboBox" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pComboBoxReturnType</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="2">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Precision/size:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pSpinBoxRetPrecision</cstring>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="0">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Schema:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pComboBoxRetTypeSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="4">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxWithoutReturn</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Without return value</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+W</string>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxReturnSet</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Return a &amp;set</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+S</string>
+                            </property>
+                        </widget>
+                        <spacer>
+                            <property name="name">
+                                <cstring>spacer5_2</cstring>
+                            </property>
+                            <property name="orientation">
+                                <enum>Horizontal</enum>
+                            </property>
+                            <property name="sizeType">
+                                <enum>Expanding</enum>
+                            </property>
+                            <property name="sizeHint">
+                                <size>
+                                    <width>180</width>
+                                    <height>21</height>
+                                </size>
+                            </property>
+                        </spacer>
+                    </hbox>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pPushButtonArgumentAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgumentAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonArgumentDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgumentDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonArgumentUp</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgumentUp()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonArgumentDown</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgumentDown()</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxReturnType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotComboReturnTypeActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxArgumentType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotComboArgumentTypeActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxRetTypeSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotRetTypeSchemaActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxArgTypeSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgTypeSchemaActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonAddDatatype</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotAddNewDatatype()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewArguments</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotArgumentCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewArguments</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotColumnSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxWithoutReturn</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateFunctionWidget2Base</receiver>
+        <slot>slotCheckBoxWithoutReturnToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pComboBoxReturnType</tabstop>
+    <tabstop>m_pSpinBoxRetPrecision</tabstop>
+    <tabstop>m_pSpinBoxRetScale</tabstop>
+    <tabstop>m_pCheckBoxReturnSet</tabstop>
+    <tabstop>m_pComboBoxArgumentType</tabstop>
+    <tabstop>m_pSpinBoxArgPrecision</tabstop>
+    <tabstop>m_pSpinBoxArgScale</tabstop>
+    <tabstop>m_pPushButtonArgumentAdd</tabstop>
+    <tabstop>m_pPushButtonArgumentDel</tabstop>
+    <tabstop>m_pPushButtonArgumentUp</tabstop>
+    <tabstop>m_pPushButtonArgumentDown</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotFunctionNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotArgumentAdd()</slot>
+    <slot access="protected">slotArgumentDelete()</slot>
+    <slot access="protected">slotArgumentUp()</slot>
+    <slot access="protected">slotArgumentDown()</slot>
+    <slot access="protected">slotComboReturnTypeActivated(const QString &amp;)</slot>
+    <slot access="protected">slotComboArgumentTypeActivated(const QString &amp;)</slot>
+    <slot access="protected">slotRetTypeSchemaActivated(int)</slot>
+    <slot access="protected">slotArgTypeSchemaActivated(int)</slot>
+    <slot access="protected">slotAddNewDatatype()</slot>
+    <slot access="protected">slotArgumentCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotColumnSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckBoxWithoutReturnToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwidget3.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qradiobutton.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+KPGCreateFunctionWidget3::KPGCreateFunctionWidget3(QWidget *parent, const char *name)
+ : KPGCreateFunctionWidget3Base(parent, name)
+{
+}
+
+
+KPGCreateFunctionWidget3::~KPGCreateFunctionWidget3()
+{
+}
+
+// Return part of SQL statement for CREATE FUNCTION
+const QString KPGCreateFunctionWidget3::getSQL() const
+{
+  QString strSQL("");
+  
+  // IMMUTABLE | STABLE | VOLATILE
+  if(m_pRadioButtonImmutable->isChecked())
+    strSQL.append("IMMUTABLE\n");
+  
+  if(m_pRadioButtonStable->isChecked())
+    strSQL.append("STABLE\n");
+    
+  if(m_pRadioButtonVolatile->isChecked())
+    strSQL.append("VOLATILE\n");
+    
+  // CALLED ON NULL INPUT | STRICT
+  if(m_pRadioButtonStrict->isChecked())
+    strSQL.append("STRICT\n");
+
+  // SECURITY INVOKER | SECURITY DEFINER
+  if(m_pRadioButtonSecurityDefiner->isChecked())
+    strSQL.append("SECURITY DEFINER\n");
+  
+  return strSQL;
+}
+#include "kpgcreatefunctionwidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIDGET3_H
+#define KPGCREATEFUNCTIONWIDGET3_H
+
+#include "kpgcreatefunctionwidget3base.h"
+
+class KPGSyntaxHighlighter;
+
+/**
+Widget for create function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateFunctionWidget3 : public KPGCreateFunctionWidget3Base
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWidget3(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateFunctionWidget3();
+
+    const QString getSQL() const;
+    
+//protected slots:
+    
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,140 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatefunctionwidget3base.ui'
+**
+** Created: Út dub 1 13:07:33 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatefunctionwidget3base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGCreateFunctionWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateFunctionWidget3Base::KPGCreateFunctionWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateFunctionWidget3Base" );
+    KPGCreateFunctionWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateFunctionWidget3BaseLayout"); 
+
+    layout15 = new QHBoxLayout( 0, 0, 6, "layout15"); 
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonImmutable = new QRadioButton( buttonGroup1, "m_pRadioButtonImmutable" );
+    m_pRadioButtonImmutable->setChecked( TRUE );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonImmutable, 0, 0 );
+
+    m_pRadioButtonStable = new QRadioButton( buttonGroup1, "m_pRadioButtonStable" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonStable, 1, 0 );
+
+    m_pRadioButtonVolatile = new QRadioButton( buttonGroup1, "m_pRadioButtonVolatile" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonVolatile, 2, 0 );
+    layout15->addWidget( buttonGroup1 );
+
+    buttonGroup2 = new QButtonGroup( this, "buttonGroup2" );
+    buttonGroup2->setColumnLayout(0, Qt::Vertical );
+    buttonGroup2->layout()->setSpacing( 6 );
+    buttonGroup2->layout()->setMargin( 11 );
+    buttonGroup2Layout = new QGridLayout( buttonGroup2->layout() );
+    buttonGroup2Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonStrict = new QRadioButton( buttonGroup2, "m_pRadioButtonStrict" );
+
+    buttonGroup2Layout->addWidget( m_pRadioButtonStrict, 2, 0 );
+
+    m_pRadioButtonCallenOnNullInput = new QRadioButton( buttonGroup2, "m_pRadioButtonCallenOnNullInput" );
+    m_pRadioButtonCallenOnNullInput->setChecked( TRUE );
+
+    buttonGroup2Layout->addWidget( m_pRadioButtonCallenOnNullInput, 0, 0 );
+    layout15->addWidget( buttonGroup2 );
+    spacer3 = new QSpacerItem( 34, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout15->addItem( spacer3 );
+
+    KPGCreateFunctionWidget3BaseLayout->addLayout( layout15, 0, 0 );
+
+    layout17 = new QHBoxLayout( 0, 0, 6, "layout17"); 
+
+    buttonGroup3 = new QButtonGroup( this, "buttonGroup3" );
+    buttonGroup3->setColumnLayout(0, Qt::Vertical );
+    buttonGroup3->layout()->setSpacing( 6 );
+    buttonGroup3->layout()->setMargin( 11 );
+    buttonGroup3Layout = new QGridLayout( buttonGroup3->layout() );
+    buttonGroup3Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonSecurityInvoker = new QRadioButton( buttonGroup3, "m_pRadioButtonSecurityInvoker" );
+    m_pRadioButtonSecurityInvoker->setChecked( TRUE );
+
+    buttonGroup3Layout->addWidget( m_pRadioButtonSecurityInvoker, 0, 0 );
+
+    m_pRadioButtonSecurityDefiner = new QRadioButton( buttonGroup3, "m_pRadioButtonSecurityDefiner" );
+
+    buttonGroup3Layout->addWidget( m_pRadioButtonSecurityDefiner, 1, 0 );
+    layout17->addWidget( buttonGroup3 );
+    spacer1 = new QSpacerItem( 215, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout17->addItem( spacer1 );
+
+    KPGCreateFunctionWidget3BaseLayout->addLayout( layout17, 1, 0 );
+    spacer7 = new QSpacerItem( 21, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateFunctionWidget3BaseLayout->addItem( spacer7, 2, 0 );
+    languageChange();
+    resize( QSize(317, 238).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateFunctionWidget3Base::~KPGCreateFunctionWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateFunctionWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Function parameters" ) );
+    buttonGroup1->setTitle( tr2i18n( "Type" ) );
+    m_pRadioButtonImmutable->setText( tr2i18n( "&Immutable" ) );
+    m_pRadioButtonImmutable->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pRadioButtonStable->setText( tr2i18n( "S&table" ) );
+    m_pRadioButtonStable->setAccel( QKeySequence( tr2i18n( "Alt+T" ) ) );
+    m_pRadioButtonVolatile->setText( tr2i18n( "&Volatile" ) );
+    m_pRadioButtonVolatile->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    buttonGroup2->setTitle( tr2i18n( "NULL arguments behavior" ) );
+    m_pRadioButtonStrict->setText( tr2i18n( "Stri&ct" ) );
+    m_pRadioButtonStrict->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pRadioButtonCallenOnNullInput->setText( tr2i18n( "Called on &NULL input" ) );
+    m_pRadioButtonCallenOnNullInput->setAccel( QKeySequence( tr2i18n( "Alt+N" ) ) );
+    buttonGroup3->setTitle( tr2i18n( "Security" ) );
+    m_pRadioButtonSecurityInvoker->setText( tr2i18n( "Security &invoker" ) );
+    m_pRadioButtonSecurityInvoker->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pRadioButtonSecurityDefiner->setText( tr2i18n( "Security &definer" ) );
+    m_pRadioButtonSecurityDefiner->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+}
+
+#include "kpgcreatefunctionwidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,223 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateFunctionWidget3Base</class>
+<comment>Widget for create function Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateFunctionWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>317</width>
+            <height>238</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Function parameters</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout15</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QButtonGroup">
+                    <property name="name">
+                        <cstring>buttonGroup1</cstring>
+                    </property>
+                    <property name="title">
+                        <string>Type</string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonImmutable</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Immutable</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+I</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="1" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonStable</cstring>
+                            </property>
+                            <property name="text">
+                                <string>S&amp;table</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+T</string>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="2" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonVolatile</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Volatile</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+V</string>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QButtonGroup">
+                    <property name="name">
+                        <cstring>buttonGroup2</cstring>
+                    </property>
+                    <property name="title">
+                        <string>NULL arguments behavior</string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton" row="2" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonStrict</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Stri&amp;ct</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+C</string>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonCallenOnNullInput</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Called on &amp;NULL input</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+N</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer3</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>34</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout17</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QButtonGroup">
+                    <property name="name">
+                        <cstring>buttonGroup3</cstring>
+                    </property>
+                    <property name="title">
+                        <string>Security</string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonSecurityInvoker</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Security &amp;invoker</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+I</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="1" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonSecurityDefiner</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Security &amp;definer</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+D</string>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>215</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer7</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,123 @@
+//
+// C++ Implementation: kpgcreatefunctionwidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwidget4.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qwidgetstack.h>
+#include <qlabel.h>
+
+
+// include files for KDE
+#include <kurlrequester.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../kpggeneralsettings.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+
+KPGCreateFunctionWidget4::KPGCreateFunctionWidget4(QWidget *parent, const char *name)
+ : KPGCreateFunctionWidget4Base(parent, name)
+{
+  m_pTextEditFunctionDefinition->setFont( KPoGreView::configuration()->sqleditor()->font() );
+    
+  m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditFunctionDefinition);
+  
+  m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+  m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+  m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+  m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+  m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+  m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+  m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+  
+  m_pSyntaxHighlighter->rehighlight();
+}
+
+KPGCreateFunctionWidget4::~KPGCreateFunctionWidget4()
+{
+  delete m_pSyntaxHighlighter;
+}
+
+void KPGCreateFunctionWidget4::switchToPage(int nPage)
+{
+  m_pWidgetStack->raiseWidget(nPage);
+  
+  if(nPage == 0)
+  {
+    // C function
+    emit sigEnableNextButton(! m_pURLRequesterLibraryPath->url().isEmpty() );
+  }
+  else
+  {
+    // SQL, plpgsql ...
+    emit sigEnableNextButton( m_pTextEditFunctionDefinition->length() > 0);
+  }
+}
+
+void KPGCreateFunctionWidget4::slotLibraryPathChanged(const QString &strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty() );
+}
+  
+void KPGCreateFunctionWidget4::slotDefinitionChanged()
+{
+  emit sigEnableNextButton(! m_pTextEditFunctionDefinition->text().isEmpty() );
+}
+    
+// Return part of SQL statement for CREATE FUNCTION
+const QString KPGCreateFunctionWidget4::getSQL() const
+{
+  bool bUseDollarsForFncBody = KPoGreView::configuration()->general()->useDollarsForFncBody();
+  if(m_pWidgetStack->visibleWidget() == m_pWStackPage0)
+  {
+    bUseDollarsForFncBody = false; // For C function use apostrophes
+  }
+  
+  QString strSQL("AS");
+  strSQL.append(bUseDollarsForFncBody ? "\n$$" : " '");
+  
+  if(m_pWidgetStack->visibleWidget() == m_pWStackPage0)
+  {
+    strSQL.append(m_pURLRequesterLibraryPath->url());
+    
+    if(m_pLineEditLinkSymbol->text().isEmpty() == false)
+    {
+      strSQL.append("', '");
+      strSQL.append(m_pLineEditLinkSymbol->text());
+    }
+  }
+  else
+  {
+    bool bMultiline = false;
+    if((KPoGreView::configuration()->general()->useDollarsForFncBody())
+        || (m_pTextEditFunctionDefinition->text().find('\n') >= 0))
+    {
+        bMultiline = true;
+    }
+    
+    if(bMultiline) strSQL.append("\n");
+    strSQL.append(m_pTextEditFunctionDefinition->text());
+    if(bMultiline) strSQL.append("\n");
+  }
+    
+  strSQL.append(bUseDollarsForFncBody ? "$$\n" : "'");
+    
+  return strSQL;
+}
+
+
+#include "kpgcreatefunctionwidget4.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgcreatefunctionwidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIDGET4_H
+#define KPGCREATEFUNCTIONWIDGET4_H
+
+#include "kpgcreatefunctionwidget4base.h"
+
+class KPGSyntaxHighlighter;
+
+/**
+Widget for create function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateFunctionWidget4 : public KPGCreateFunctionWidget4Base
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWidget4(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateFunctionWidget4();
+
+    void switchToPage(int);
+    const QString getSQL() const;
+    
+protected:
+    /** Syntax highlighter for m_pTextEditFunctionDefinition */
+    KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+    
+protected slots:
+
+    virtual void slotLibraryPathChanged(const QString&);
+    virtual void slotDefinitionChanged();
+    
+signals:
+    void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,133 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatefunctionwidget4base.ui'
+**
+** Created: Út dub 1 13:07:34 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatefunctionwidget4base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidgetstack.h>
+#include <qlabel.h>
+#include <kurlrequester.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kurlrequester.h"
+#include "klineedit.h"
+#include "kpushbutton.h"
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGCreateFunctionWidget4Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateFunctionWidget4Base::KPGCreateFunctionWidget4Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateFunctionWidget4Base" );
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, sizePolicy().hasHeightForWidth() ) );
+    KPGCreateFunctionWidget4BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateFunctionWidget4BaseLayout"); 
+
+    m_pWidgetStack = new QWidgetStack( this, "m_pWidgetStack" );
+    m_pWidgetStack->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, m_pWidgetStack->sizePolicy().hasHeightForWidth() ) );
+    m_pWidgetStack->setBackgroundOrigin( QWidgetStack::WidgetOrigin );
+
+    m_pWStackPage0 = new QWidget( m_pWidgetStack, "m_pWStackPage0" );
+    m_pWStackPage0Layout = new QGridLayout( m_pWStackPage0, 1, 1, 0, 6, "m_pWStackPage0Layout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( m_pWStackPage0, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pURLRequesterLibraryPath = new KURLRequester( m_pWStackPage0, "m_pURLRequesterLibraryPath" );
+    layout1->addWidget( m_pURLRequesterLibraryPath );
+
+    m_pWStackPage0Layout->addLayout( layout1, 0, 0 );
+    spacer1 = new QSpacerItem( 20, 130, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    m_pWStackPage0Layout->addItem( spacer1, 2, 0 );
+
+    layout4 = new QHBoxLayout( 0, 0, 6, "layout4"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( m_pWStackPage0, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pLineEditLinkSymbol = new KLineEdit( m_pWStackPage0, "m_pLineEditLinkSymbol" );
+    layout2->addWidget( m_pLineEditLinkSymbol );
+    layout4->addLayout( layout2 );
+    spacer2 = new QSpacerItem( 161, 31, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout4->addItem( spacer2 );
+
+    m_pWStackPage0Layout->addLayout( layout4, 1, 0 );
+    m_pWidgetStack->addWidget( m_pWStackPage0, 0 );
+
+    m_pWStackPage1 = new QWidget( m_pWidgetStack, "m_pWStackPage1" );
+    m_pWStackPage1Layout = new QGridLayout( m_pWStackPage1, 1, 1, 0, 6, "m_pWStackPage1Layout"); 
+
+    textLabel3 = new QLabel( m_pWStackPage1, "textLabel3" );
+
+    m_pWStackPage1Layout->addWidget( textLabel3, 0, 0 );
+
+    m_pTextEditFunctionDefinition = new KTextEdit( m_pWStackPage1, "m_pTextEditFunctionDefinition" );
+
+    m_pWStackPage1Layout->addWidget( m_pTextEditFunctionDefinition, 1, 0 );
+    m_pWidgetStack->addWidget( m_pWStackPage1, 1 );
+
+    KPGCreateFunctionWidget4BaseLayout->addWidget( m_pWidgetStack, 0, 0 );
+    languageChange();
+    resize( QSize(257, 202).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pURLRequesterLibraryPath, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLibraryPathChanged(const QString&) ) );
+    connect( m_pTextEditFunctionDefinition, SIGNAL( textChanged() ), this, SLOT( slotDefinitionChanged() ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pURLRequesterLibraryPath );
+    textLabel2->setBuddy( m_pLineEditLinkSymbol );
+    textLabel3->setBuddy( m_pTextEditFunctionDefinition );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateFunctionWidget4Base::~KPGCreateFunctionWidget4Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateFunctionWidget4Base::languageChange()
+{
+    setCaption( tr2i18n( "Function definition" ) );
+    textLabel1->setText( tr2i18n( "Function &library:" ) );
+    textLabel2->setText( tr2i18n( "Link &symbol:" ) );
+    textLabel3->setText( tr2i18n( "Function &definition:" ) );
+}
+
+void KPGCreateFunctionWidget4Base::slotLibraryPathChanged(const QString&)
+{
+    qWarning( "KPGCreateFunctionWidget4Base::slotLibraryPathChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget4Base::slotDefinitionChanged()
+{
+    qWarning( "KPGCreateFunctionWidget4Base::slotDefinitionChanged(): Not implemented yet" );
+}
+
+#include "kpgcreatefunctionwidget4base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget4base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,220 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateFunctionWidget4Base</class>
+<comment>Widget for create function Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateFunctionWidget4Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>257</width>
+            <height>202</height>
+        </rect>
+    </property>
+    <property name="sizePolicy">
+        <sizepolicy>
+            <hsizetype>5</hsizetype>
+            <vsizetype>5</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+        </sizepolicy>
+    </property>
+    <property name="caption">
+        <string>Function definition</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QWidgetStack" row="0" column="0">
+            <property name="name">
+                <cstring>m_pWidgetStack</cstring>
+            </property>
+            <property name="sizePolicy">
+                <sizepolicy>
+                    <hsizetype>5</hsizetype>
+                    <vsizetype>5</vsizetype>
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                </sizepolicy>
+            </property>
+            <property name="backgroundOrigin">
+                <enum>WidgetOrigin</enum>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>m_pWStackPage0</cstring>
+                </property>
+                <attribute name="id">
+                    <number>0</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <widget class="QLayoutWidget" row="0" column="0">
+                        <property name="name">
+                            <cstring>layout1</cstring>
+                        </property>
+                        <vbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel1</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Function &amp;library:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pURLRequesterLibraryPath</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KURLRequester">
+                                <property name="name">
+                                    <cstring>m_pURLRequesterLibraryPath</cstring>
+                                </property>
+                            </widget>
+                        </vbox>
+                    </widget>
+                    <spacer row="2" column="0">
+                        <property name="name">
+                            <cstring>spacer1</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>20</width>
+                                <height>130</height>
+                            </size>
+                        </property>
+                    </spacer>
+                    <widget class="QLayoutWidget" row="1" column="0">
+                        <property name="name">
+                            <cstring>layout4</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout2</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel2</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Link &amp;symbol:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pLineEditLinkSymbol</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KLineEdit">
+                                        <property name="name">
+                                            <cstring>m_pLineEditLinkSymbol</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <spacer>
+                                <property name="name">
+                                    <cstring>spacer2</cstring>
+                                </property>
+                                <property name="orientation">
+                                    <enum>Horizontal</enum>
+                                </property>
+                                <property name="sizeType">
+                                    <enum>Expanding</enum>
+                                </property>
+                                <property name="sizeHint">
+                                    <size>
+                                        <width>161</width>
+                                        <height>31</height>
+                                    </size>
+                                </property>
+                            </spacer>
+                        </hbox>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>m_pWStackPage1</cstring>
+                </property>
+                <attribute name="id">
+                    <number>1</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <widget class="QLabel" row="0" column="0">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Function &amp;definition:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pTextEditFunctionDefinition</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KTextEdit" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pTextEditFunctionDefinition</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pURLRequesterLibraryPath</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateFunctionWidget4Base</receiver>
+        <slot>slotLibraryPathChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pTextEditFunctionDefinition</sender>
+        <signal>textChanged()</signal>
+        <receiver>KPGCreateFunctionWidget4Base</receiver>
+        <slot>slotDefinitionChanged()</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotLibraryPathChanged(const QString&amp;)</slot>
+    <slot access="protected">slotDefinitionChanged()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,208 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwidget5.h"
+
+
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateFunctionWidget5::KPGCreateFunctionWidget5(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateFunctionWidget5Base(parent, name)
+{
+	m_bGrantOrRevoke = bGrantOrRevoke;
+	
+	if(bGrantOrRevoke)
+	{
+		strGR = strGR + "GRANT ";
+		strTF = strTF + " TO ";
+		m_pCheckBoxCascade->hide();
+	}
+	else
+	{
+		strGR = "REVOKE ";
+		strTF = " FROM ";
+		m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+	}
+	
+	m_pListViewGrants->setSortColumn(-1);
+}
+
+
+KPGCreateFunctionWidget5::~KPGCreateFunctionWidget5()
+{
+}
+
+void KPGCreateFunctionWidget5::slotCheckBoxPublicToggled(bool bState)
+{
+	m_pListBoxUsersGroups->setEnabled(!bState);
+	m_pCheckBoxGrantOptions->setEnabled(!bState); // Grant options can only be granted to individual users, not to groups or PUBLIC.
+	enableAddGrantButton();
+}
+
+void KPGCreateFunctionWidget5::slotGrantOptionsToggled(bool bState)
+{
+  	m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateFunctionWidget5::slotListBoxUsersSelectionChanged()
+{
+  	enableAddGrantButton();
+}
+
+void KPGCreateFunctionWidget5::enableAddGrantButton()
+{
+	bool bAnyUserOrGroupChecked = false;        
+	
+	if(m_pCheckBoxPublic->isChecked()) 
+		bAnyUserOrGroupChecked = true;
+	else
+		{
+		if(m_pListBoxUsersGroups->count() > 0)
+		{
+			for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+			if(m_pListBoxUsersGroups->isSelected(i))
+			{
+				bAnyUserOrGroupChecked = true;
+				break;
+			}
+		}
+		}
+	m_pPushButtonGrantAdd->setEnabled(bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateFunctionWidget5::slotGrantAdd()
+{
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewGrants->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+	
+	QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+	QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+	QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+	
+	if(m_pCheckBoxPublic->isChecked())
+	{
+		strListOfSQLs.append(strGR + "EXECUTE ON FUNCTION " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strFunctionName) + m_strFunctionArguments + strTF + "PUBLIC");
+	}
+	else
+	{
+		for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+		{
+		if(m_pListBoxUsersGroups->isSelected(i))
+		{
+			QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+			
+			if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+			{
+				kdError() << "KPGCreateFunctionWidget5::slotGrantAdd - bad object type !" << endl;
+				return;
+			}
+			
+			KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+				
+					
+			if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+			strListOfSQLs.append(strGR + "EXECUTE ON FUNCTION " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strFunctionName) + m_strFunctionArguments + strTF + "GROUP " +
+pListBoxItem->text());
+			else
+			strListOfSQLs.append(strGR + strGOF + "EXECUTE ON FUNCTION " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strFunctionName) + m_strFunctionArguments + strTF + "" +
+pListBoxItem->text() + strWGO + strC);
+			
+		}
+		}
+	}
+		
+	// Create items for new grants
+	for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+	{
+		QString strSQL(*it);
+		QListViewItem *pNewItem;
+		
+		if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+		else
+		pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL); 
+	}
+	
+	emit sigEnableNextButton(true);
+}
+
+void KPGCreateFunctionWidget5::slotGrantDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+	if(pSelectedItem)
+		delete pSelectedItem;
+	
+	if(m_pListViewGrants->childCount() == 0)
+		emit sigEnableNextButton(false);
+			
+	m_pPushButtonGrantDel->setEnabled(false);
+	
+	enableAddGrantButton();
+}
+
+void KPGCreateFunctionWidget5::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+  	m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateFunctionWidget5::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+  	m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for GRANT EXECUTE
+const QString KPGCreateFunctionWidget5::getSQL() const
+{
+	QString strSQL;
+	
+	QListViewItem * pItem = m_pListViewGrants->firstChild();
+	while(pItem)
+	{
+		strSQL.append(pItem->text(0));
+		strSQL.append(";\n");
+				
+		pItem = pItem->nextSibling();
+	}
+	
+	return strSQL;
+}
+
+
+#include "kpgcreatefunctionwidget5.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,69 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIDGET5_H
+#define KPGCREATEFUNCTIONWIDGET5_H
+
+#include "kpgcreatefunctionwidget5base.h"
+
+/**
+Widget for create function wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateFunctionWidget5 : public KPGCreateFunctionWidget5Base
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWidget5(QWidget *parent, const char *name, bool = true);
+    ~KPGCreateFunctionWidget5();
+
+    void setFunctionName(const QString &strFunctionName, const QString& strFunctionArguments) 
+    { 
+    	m_strFunctionName = strFunctionName;
+    	m_strFunctionArguments = strFunctionArguments;
+    	m_strFunctionArguments.replace('\n', ' '); // remove newlines from arguments 
+    }
+    void setNamespace(const QString &strNamespace) { m_strNamespace = strNamespace; }
+    const QString getSQL() const;
+
+protected:
+    void enableAddGrantButton();
+    
+protected:
+    QString m_strFunctionName;      // name of the created function
+    QString m_strFunctionArguments; // Function arguments
+    QString m_strNamespace;         // name of the namespace
+            
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected slots:
+
+    virtual void slotCheckBoxPublicToggled(bool);
+    virtual void slotListBoxUsersSelectionChanged();
+    
+    virtual void slotGrantOptionsToggled(bool);
+    
+    virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+    
+    virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+            
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,174 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatefunctionwidget5base.ui'
+**
+** Created: Út dub 1 13:07:42 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatefunctionwidget5base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <klistbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateFunctionWidget5Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateFunctionWidget5Base::KPGCreateFunctionWidget5Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateFunctionWidget5Base" );
+    KPGCreateFunctionWidget5BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateFunctionWidget5BaseLayout"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGCreateFunctionWidget5BaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+
+    KPGCreateFunctionWidget5BaseLayout->addMultiCellWidget( m_pCheckBoxPublic, 0, 0, 1, 2 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Command" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateFunctionWidget5BaseLayout->addMultiCellWidget( groupBox1, 3, 3, 0, 2 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateFunctionWidget5BaseLayout->addMultiCellWidget( m_pCheckBoxGrantOptions, 2, 2, 0, 1 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateFunctionWidget5BaseLayout->addWidget( m_pCheckBoxCascade, 2, 2 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+
+    KPGCreateFunctionWidget5BaseLayout->addMultiCellWidget( m_pListBoxUsersGroups, 1, 1, 0, 2 );
+    languageChange();
+    resize( QSize(374, 374).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateFunctionWidget5Base::~KPGCreateFunctionWidget5Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateFunctionWidget5Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 5 - Grant execute privileges" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Command" ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCreateFunctionWidget5Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateFunctionWidget5Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateFunctionWidget5Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatefunctionwidget5base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwidget5base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,222 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateFunctionWidget5Base</class>
+<comment>Widged for create function wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateFunctionWidget5Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>374</width>
+            <height>374</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 5 - Grant execute privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Users and groups:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pListBoxUsersGroups</cstring>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxPublic</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;PUBLIC</string>
+            </property>
+            <property name="accel">
+                <string>Alt+P</string>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="3" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Command</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="2" column="2">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+        <widget class="KListBox" row="1" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>m_pListBoxUsersGroups</cstring>
+            </property>
+            <property name="enabled">
+                <bool>true</bool>
+            </property>
+            <property name="selectionMode">
+                <enum>Multi</enum>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateFunctionWidget5Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,155 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatefunctionwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "kpgcreatefunctionwidget1.h"
+#include "kpgcreatefunctionwidget2.h"
+#include "kpgcreatefunctionwidget3.h"
+#include "kpgcreatefunctionwidget4.h"
+#include "kpgcreatefunctionwidget5.h"
+
+
+KPGCreateFunctionWizard::KPGCreateFunctionWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG7StepsWizard(parent, name)
+{
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+  KPGCreateFunctionWidget1 *pCreateFunctionWidget1 = new KPGCreateFunctionWidget1(WizardPage1, "KPGCreateFunctionWidget1", listOfSchemas, pDatabase->getLanguagesFolder());
+  m_pPageWidget1 = pCreateFunctionWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateFunctionWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCreateFunctionWidget2 *pCreateFunctionWidget2 = new KPGCreateFunctionWidget2(WizardPage2, "KPGCreateFunctionWidget2", pDatabase);
+  m_pPageWidget2 = pCreateFunctionWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  connect(pCreateFunctionWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  KPGCreateFunctionWidget3 *pCreateFunctionWidget3 = new KPGCreateFunctionWidget3(WizardPage3, "KPGCreateFunctionWidget3");
+  m_pPageWidget3 = pCreateFunctionWidget3;
+  WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+  connect(pCreateFunctionWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton3(bool)));
+  
+	KPGCreateFunctionWidget4 *pCreateFunctionWidget4 = new KPGCreateFunctionWidget4(WizardPage4, "KPGCreateFunctionWidget4");
+  m_pPageWidget4 = pCreateFunctionWidget4;
+  WizardPage4Layout->addWidget(m_pPageWidget4, 0, 0);
+  connect(pCreateFunctionWidget4, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton4(bool)));
+  
+  KPGCreateFunctionWidget5 *pCreateFunctionWidget5 = new KPGCreateFunctionWidget5(WizardPage5, "KPGCreateFunctionWidget5");
+  m_pPageWidget5 = pCreateFunctionWidget5;
+  WizardPage5Layout->addWidget(m_pPageWidget5, 0, 0);
+  //connect(pCreateFunctionWidget5, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton5(bool)));
+    
+  pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateFunctionWidget5->m_pListBoxUsersGroups);
+  pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateFunctionWidget5->m_pListBoxUsersGroups);
+      
+  // default schema in page 2 is the same as in page 1
+  pCreateFunctionWidget2->m_pComboBoxRetTypeSchema->setCurrentText(pCreateFunctionWidget1->m_pComboBoxSchema->currentText());
+  pCreateFunctionWidget2->m_pComboBoxArgTypeSchema->setCurrentText(pCreateFunctionWidget1->m_pComboBoxSchema->currentText());
+    
+  pCreateFunctionWidget2->refreshListOfReturnTypes();
+  pCreateFunctionWidget2->refreshListOfArgumentTypes();  
+    
+  languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+
+KPGCreateFunctionWizard::~KPGCreateFunctionWizard()
+{
+}
+
+void KPGCreateFunctionWizard::languageChange()
+{
+    KPG7StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new function" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Function name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Return and arguments types" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Function properties" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Function definition" ) );
+	setTitle( WizardPage5, i18n( "Step 5 - Grant execute privileges" ) );
+    setTitle( WizardPage6, i18n( "Step 6 - Review SQL statement" ) );
+    setTitle( WizardPage7, i18n( "Step 7 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateFunctionWizard::showPage(QWidget *pPage)
+{ 
+  if(pPage == WizardPage4) // Step 3 - Define function definition
+  {
+    //--- Initialize 2nd page
+    KPGCreateFunctionWidget1 *pCreateFunctionWidget1 = static_cast <KPGCreateFunctionWidget1 *> (m_pPageWidget1);
+    KPGCreateFunctionWidget4 *pCreateFunctionWidget4 = static_cast <KPGCreateFunctionWidget4 *> (m_pPageWidget4);
+    
+    // set appropriate page
+    if(pCreateFunctionWidget1->m_pComboBoxLanguage->currentText() == "C")
+      pCreateFunctionWidget4->switchToPage(0);
+    else
+      pCreateFunctionWidget4->switchToPage(1);
+  }
+
+	if(pPage == WizardPage5) // Step 5 - Define user rights
+	{
+		KPGCreateFunctionWidget1 *pCreateFunctionWidget1 = static_cast <KPGCreateFunctionWidget1 *> (m_pPageWidget1);
+    KPGCreateFunctionWidget2 *pCreateFunctionWidget2 = static_cast <KPGCreateFunctionWidget2 *> (m_pPageWidget2);
+		KPGCreateFunctionWidget5 *pCreateFunctionWidget5 = static_cast <KPGCreateFunctionWidget5 *> (m_pPageWidget5);
+				
+		// Set function name and schema
+		pCreateFunctionWidget5->setFunctionName(pCreateFunctionWidget1->getFuncName(), pCreateFunctionWidget2->getFuncParams());
+		pCreateFunctionWidget5->setNamespace(pCreateFunctionWidget1->m_pComboBoxSchema->currentText());
+	}
+	
+  if(pPage == WizardPage6) // Step 6 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateFunctionWidget1 *> (m_pPageWidget1))->getSQL1());
+    strSQL.append((static_cast <KPGCreateFunctionWidget2 *> (m_pPageWidget2))->getFuncParams());
+    strSQL.append((static_cast <KPGCreateFunctionWidget2 *> (m_pPageWidget2))->getSQL());
+	strSQL.append((static_cast <KPGCreateFunctionWidget1 *> (m_pPageWidget1))->getSQL2());
+    strSQL.append((static_cast <KPGCreateFunctionWidget3 *> (m_pPageWidget3))->getSQL());
+    strSQL.append((static_cast <KPGCreateFunctionWidget4 *> (m_pPageWidget4))->getSQL());
+	strSQL.append(";\n\n");
+	strSQL.append((static_cast <KPGCreateFunctionWidget5 *> (m_pPageWidget5))->getSQL()); 
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage7) // Step 7 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG7StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgcreatefunctionwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatefunctionwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEFUNCTIONWIZARD_H
+#define KPGCREATEFUNCTIONWIZARD_H
+
+#include "kpg7stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+/**
+Create function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateFunctionWizard : public KPG7StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateFunctionWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateFunctionWizard();
+    
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Implementation: kpgcreategroupwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreategroupwidget1.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qlistbox.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kactionselector.h> 
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../kpgsqldialog.h"
+#include "../kpgutil.h"
+
+
+KPGCreateGroupWidget1::KPGCreateGroupWidget1(QWidget *parent, const char *name)
+ : KPGCreateGroupWidget1Base(parent, name)
+{
+	m_pLineEditGroupName->setFocus();
+}
+
+
+KPGCreateGroupWidget1::~KPGCreateGroupWidget1()
+{
+}
+
+void KPGCreateGroupWidget1::slotLineEditGroupNameChanged(const QString &strUserName)
+{
+	emit sigEnableNextButton(strUserName.length() > 0);
+}
+		
+// Return part of SQL statement for CREATE VIEW
+const QString KPGCreateGroupWidget1::getSQL() const
+{
+	QString strSQL(KPGUtil::quotedName(m_pLineEditGroupName->text()));
+	
+	QString strWITH(" WITH\n");
+	
+	if(m_pLineEditSysId->text().length() > 0)
+	{
+		strWITH.append("SYSID " + m_pLineEditSysId->text() + "\n");
+	}
+
+	for(unsigned int i = 0; i < m_pActionSelectorUsers->selectedListBox()->count(); i++)
+	{
+		if(i > 0)
+			strWITH.append(", ");
+		else
+			strWITH.append("USER ");
+			
+		strWITH.append(KPGUtil::quotedName(m_pActionSelectorUsers->selectedListBox()->item(i)->text()));
+	}
+	
+	if(strWITH.length() > 7)
+		strSQL.append(strWITH);
+		
+	return strSQL;
+}
+
+
+#include "kpgcreategroupwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: kpgcreategroupwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEGROUPWIDGET1_H
+#define KPGCREATEGROUPWIDGET1_H
+
+#include "kpgcreategroupwidget1base.h"
+
+
+/**
+Widget for create group Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateGroupWidget1 : public KPGCreateGroupWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateGroupWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateGroupWidget1();
+				
+		const QString getSQL() const;
+		
+protected slots:
+
+		virtual void slotLineEditGroupNameChanged(const QString &);
+		
+		
+signals:
+		void sigEnableNextButton(bool);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreategroupwidget1base.ui'
+**
+** Created: Út dub 1 13:07:30 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreategroupwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCreateGroupWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateGroupWidget1Base::KPGCreateGroupWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateGroupWidget1Base" );
+    KPGCreateGroupWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateGroupWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditGroupName = new KLineEdit( this, "m_pLineEditGroupName" );
+    layout1->addWidget( m_pLineEditGroupName );
+
+    KPGCreateGroupWidget1BaseLayout->addLayout( layout1, 0, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pLineEditSysId = new KLineEdit( this, "m_pLineEditSysId" );
+    layout2->addWidget( m_pLineEditSysId );
+
+    KPGCreateGroupWidget1BaseLayout->addLayout( layout2, 0, 1 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pActionSelectorUsers = new KActionSelector( groupBox1, "m_pActionSelectorUsers" );
+    m_pActionSelectorUsers->setShowUpDownButtons( FALSE );
+
+    groupBox1Layout->addWidget( m_pActionSelectorUsers, 0, 0 );
+
+    KPGCreateGroupWidget1BaseLayout->addMultiCellWidget( groupBox1, 1, 1, 0, 1 );
+    languageChange();
+    resize( QSize(394, 254).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditGroupName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditGroupNameChanged(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditGroupName, m_pLineEditSysId );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditGroupName );
+    textLabel2->setBuddy( m_pLineEditSysId );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateGroupWidget1Base::~KPGCreateGroupWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateGroupWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create group" ) );
+    textLabel1->setText( tr2i18n( "&Group name:" ) );
+    textLabel2->setText( tr2i18n( "S&ystem ID (optional):" ) );
+    groupBox1->setTitle( tr2i18n( "Users" ) );
+    m_pActionSelectorUsers->setAvailableLabel( tr2i18n( "&Available users:" ) );
+    m_pActionSelectorUsers->setSelectedLabel( tr2i18n( "&Users in group:" ) );
+}
+
+void KPGCreateGroupWidget1Base::slotLineEditGroupNameChanged(const QString&)
+{
+    qWarning( "KPGCreateGroupWidget1Base::slotLineEditGroupNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreategroupwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,126 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateGroupWidget1Base</class>
+<comment>Widget for create group Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateGroupWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>394</width>
+            <height>254</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create group</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Group name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditGroupName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditGroupName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>S&amp;ystem ID (optional):</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditSysId</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditSysId</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Users</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="KActionSelector" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pActionSelectorUsers</cstring>
+                    </property>
+                    <property name="availableLabel">
+                        <string>&amp;Available users:</string>
+                    </property>
+                    <property name="selectedLabel">
+                        <string>&amp;Users in group:</string>
+                    </property>
+                    <property name="showUpDownButtons">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditGroupName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateGroupWidget1Base</receiver>
+        <slot>slotLineEditGroupNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditGroupName</tabstop>
+    <tabstop>m_pLineEditSysId</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotLineEditGroupNameChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Implementation: kpgcreategroupwizard 
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreategroupwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kactionselector.h> 
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "kpgcreategroupwidget1.h"
+
+KPGCreateGroupWizard::KPGCreateGroupWizard(QWidget *parent, const char *name, KPGUsersFolder *pUsersFolder)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGCreateGroupWidget1 *pCreateGroupWidget1 = new KPGCreateGroupWidget1(WizardPage1, "KPGCreateGroupWidget1");
+	m_pPageWidget1 = pCreateGroupWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateGroupWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	pUsersFolder->fillListBoxWithChildItems(pCreateGroupWidget1->m_pActionSelectorUsers->availableListBox());
+	
+	languageChange();
+}
+
+
+KPGCreateGroupWizard::~KPGCreateGroupWizard()
+{
+}
+
+void KPGCreateGroupWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+		
+		setCaption( i18n( "Create new group" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Group name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateGroupWizard::showPage(QWidget *pPage)
+{	
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL("CREATE GROUP ");
+		
+		strSQL.append((static_cast <KPGCreateGroupWidget1 *> (m_pPageWidget1))->getSQL());
+				
+		strSQL.append(";");
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreategroupwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreategroupwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgcreategroupwizard 
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEGROUPWIZARD_H
+#define KPGCREATEGROUPWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGUsersFolder;
+
+/**
+Create group Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateGroupWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateGroupWizard(QWidget *parent, const char *name, KPGUsersFolder *);
+    ~KPGCreateGroupWizard();
+
+protected:
+		virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,114 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatelanguagewidget1.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+#include "../DbObjects/kpgfunction.h"
+
+
+KPGCreateLanguageWidget1::KPGCreateLanguageWidget1(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateLanguageWidget1Base(parent, name)
+{
+  refreshListOfFunctions(pDatabase);
+  m_pLineEditLanguageName->setFocus();
+}
+
+
+KPGCreateLanguageWidget1::~KPGCreateLanguageWidget1()
+{
+}
+
+void KPGCreateLanguageWidget1::refreshListOfFunctions(KPGDatabase *pDatabase)
+{
+  m_pComboBoxHandlerFunction->clear();
+  m_pComboBoxValidatorFunction->clear();
+  
+  m_pComboBoxValidatorFunction->insertItem(i18n("None"));
+  
+  //--- Obtain list of functions
+  
+  // First find schema - this same as created table
+  KPGTreeItem *pItem = pDatabase->getChildByName("public");
+  if(!pItem)
+  {
+    kdDebug() << k_funcinfo << " no item found: public" << endl;
+    return;
+  }
+  
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+  KPGFunctionsFolder *pFunctionsFolder = pSchema->getFunctionsFolder();
+  
+  // traverse list of functions
+  QListViewItem * pLvItem = pFunctionsFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGFunction *pFunction = static_cast <KPGFunction *> (pLvItem);
+      
+    if((pFunction->getVolatile() == "v") && (pFunction->nArgs() == 0) && (pFunction->langName() == "c"))
+      {
+        m_pComboBoxHandlerFunction->insertItem(* pFunction->pixmap(0), pFunction->text(0)); 
+        m_pComboBoxValidatorFunction->insertItem(* pFunction->pixmap(0), pFunction->text(0));
+      }
+    pLvItem = pLvItem->nextSibling();
+  }
+}
+
+void KPGCreateLanguageWidget1::slotLanguageNameChanged(const QString &strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty() && (m_pComboBoxHandlerFunction->currentText().isEmpty() == false));
+}
+
+void KPGCreateLanguageWidget1::slotCurrentHandlerFunctionChanged(int)
+{
+  emit sigEnableNextButton(! m_pLineEditLanguageName->text().isEmpty() && (m_pComboBoxHandlerFunction->currentText().isEmpty() == false));
+}
+
+// Return part of SQL statement for CREATE LANGUAGE
+const QString KPGCreateLanguageWidget1::getSQL() const
+{
+  QString strSQL("CREATE");
+  
+  if(m_pCheckBoxTrusted->isChecked())
+    strSQL.append(" TRUSTED");
+    
+  strSQL.append(" PROCEDURAL LANGUAGE '");
+  strSQL.append(m_pLineEditLanguageName->text());
+  strSQL.append("'\n");
+  
+  strSQL.append("HANDLER ");
+  strSQL.append(m_pComboBoxHandlerFunction->currentText());
+  
+  if(m_pComboBoxValidatorFunction->currentItem() > 0)
+  {
+    strSQL.append("\nVALIDATOR ");
+    strSQL.append(m_pComboBoxValidatorFunction->currentText());
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatelanguagewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATELANGUAGEWIDGET1_H
+#define KPGCREATELANGUAGEWIDGET1_H
+
+#include "kpgcreatelanguagewidget1base.h"
+
+class KPGDatabase;
+
+/**
+Widget for create language Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateLanguageWidget1 : public KPGCreateLanguageWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateLanguageWidget1(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateLanguageWidget1();
+
+    void refreshListOfFunctions(KPGDatabase *);
+    const QString getSQL() const;
+
+  
+protected slots:
+
+    virtual void slotLanguageNameChanged(const QString&);
+    virtual void slotCurrentHandlerFunctionChanged(int);
+    
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,126 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatelanguagewidget1base.ui'
+**
+** Created: Út dub 1 13:07:31 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatelanguagewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGCreateLanguageWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateLanguageWidget1Base::KPGCreateLanguageWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateLanguageWidget1Base" );
+    KPGCreateLanguageWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateLanguageWidget1BaseLayout"); 
+
+    layout5 = new QHBoxLayout( 0, 0, 6, "layout5"); 
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditLanguageName = new KLineEdit( this, "m_pLineEditLanguageName" );
+    layout1->addWidget( m_pLineEditLanguageName );
+    layout4->addLayout( layout1 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxHandlerFunction = new KComboBox( FALSE, this, "m_pComboBoxHandlerFunction" );
+    layout2->addWidget( m_pComboBoxHandlerFunction );
+    layout4->addLayout( layout2 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout3->addWidget( textLabel3 );
+
+    m_pComboBoxValidatorFunction = new KComboBox( FALSE, this, "m_pComboBoxValidatorFunction" );
+    layout3->addWidget( m_pComboBoxValidatorFunction );
+    layout4->addLayout( layout3 );
+
+    m_pCheckBoxTrusted = new QCheckBox( this, "m_pCheckBoxTrusted" );
+    layout4->addWidget( m_pCheckBoxTrusted );
+    layout5->addLayout( layout4 );
+    spacer1 = new QSpacerItem( 111, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout5->addItem( spacer1 );
+
+    KPGCreateLanguageWidget1BaseLayout->addLayout( layout5, 0, 0 );
+    spacer2 = new QSpacerItem( 20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateLanguageWidget1BaseLayout->addItem( spacer2, 1, 0 );
+    languageChange();
+    resize( QSize(382, 260).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditLanguageName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLanguageNameChanged(const QString&) ) );
+    connect( m_pComboBoxHandlerFunction, SIGNAL( activated(int) ), this, SLOT( slotCurrentHandlerFunctionChanged(int) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditLanguageName );
+    textLabel2->setBuddy( m_pComboBoxHandlerFunction );
+    textLabel3->setBuddy( m_pComboBoxValidatorFunction );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateLanguageWidget1Base::~KPGCreateLanguageWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateLanguageWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create language" ) );
+    textLabel1->setText( tr2i18n( "New &language name:" ) );
+    textLabel2->setText( tr2i18n( "&Handler function:" ) );
+    textLabel3->setText( tr2i18n( "&Validator function:" ) );
+    m_pComboBoxValidatorFunction->clear();
+    m_pComboBoxValidatorFunction->insertItem( tr2i18n( "None" ) );
+    m_pCheckBoxTrusted->setText( tr2i18n( "&Trusted language" ) );
+    m_pCheckBoxTrusted->setAccel( QKeySequence( tr2i18n( "Alt+T" ) ) );
+}
+
+void KPGCreateLanguageWidget1Base::slotLanguageNameChanged(const QString&)
+{
+    qWarning( "KPGCreateLanguageWidget1Base::slotLanguageNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget1Base::slotCurrentHandlerFunctionChanged(int)
+{
+    qWarning( "KPGCreateLanguageWidget1Base::slotCurrentHandlerFunctionChanged(int): Not implemented yet" );
+}
+
+#include "kpgcreatelanguagewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,201 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateLanguageWidget1Base</class>
+<comment>Widget for create language Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateLanguageWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>382</width>
+            <height>260</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create language</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout1</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel1</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>New &amp;language name:</string>
+                                    </property>
+                                    <property name="textFormat">
+                                        <enum>PlainText</enum>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pLineEditLanguageName</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KLineEdit">
+                                    <property name="name">
+                                        <cstring>m_pLineEditLanguageName</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout2</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel2</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Handler function:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxHandlerFunction</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KComboBox">
+                                    <property name="name">
+                                        <cstring>m_pComboBoxHandlerFunction</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout3</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel3</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Validator function:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxValidatorFunction</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KComboBox">
+                                    <item>
+                                        <property name="text">
+                                            <string>None</string>
+                                        </property>
+                                    </item>
+                                    <property name="name">
+                                        <cstring>m_pComboBoxValidatorFunction</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxTrusted</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Trusted language</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+T</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>111</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditLanguageName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateLanguageWidget1Base</receiver>
+        <slot>slotLanguageNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxHandlerFunction</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateLanguageWidget1Base</receiver>
+        <slot>slotCurrentHandlerFunctionChanged(int)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotLanguageNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotCurrentHandlerFunctionChanged(int)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,202 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatelanguagewidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+
+
+KPGCreateLanguageWidget2::KPGCreateLanguageWidget2(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateLanguageWidget2Base(parent, name)
+{
+  m_bGrantOrRevoke = bGrantOrRevoke;
+  
+  if(bGrantOrRevoke)
+  {
+    strGR = strGR + "GRANT ";
+    strTF = strTF + " TO ";
+    m_pCheckBoxCascade->hide();
+  }
+  else
+  {
+    strGR = "REVOKE ";
+    strTF = " FROM ";
+    m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+  }
+  
+  m_pListViewGrants->setSortColumn(-1);
+}
+
+
+KPGCreateLanguageWidget2::~KPGCreateLanguageWidget2()
+{
+}
+
+void KPGCreateLanguageWidget2::slotCheckBoxPublicToggled(bool bState)
+{
+  m_pListBoxUsersGroups->setEnabled(!bState);
+  m_pCheckBoxGrantOptions->setEnabled(!bState); // Grant options can only be granted to individual users, not to groups or PUBLIC.
+  enableAddGrantButton();
+}
+
+void KPGCreateLanguageWidget2::slotGrantOptionsToggled(bool bState)
+{
+  m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateLanguageWidget2::slotListBoxUsersSelectionChanged()
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateLanguageWidget2::enableAddGrantButton()
+{
+  bool bAnyUserOrGroupChecked = false;        
+  
+  if(m_pCheckBoxPublic->isChecked()) 
+    bAnyUserOrGroupChecked = true;
+  else
+    {
+      if(m_pListBoxUsersGroups->count() > 0)
+      {
+        for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+        if(m_pListBoxUsersGroups->isSelected(i))
+          {
+            bAnyUserOrGroupChecked = true;
+            break;
+          }
+      }
+    }
+  m_pPushButtonGrantAdd->setEnabled(bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateLanguageWidget2::slotGrantAdd()
+{
+  QListViewItem *pLastItem = 0;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    pLastItem = pItem;
+    pItem = pItem->nextSibling();
+  }
+  
+  QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+  
+  QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+  QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+  QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+  
+  if(m_pCheckBoxPublic->isChecked())
+  {
+    strListOfSQLs.append(strGR + "USAGE ON LANGUAGE " + m_strLanguageName + strTF + "PUBLIC");
+  }
+  else
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << k_funcinfo << " Bad object type !" << endl;
+          return;
+        }
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+               
+                
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strListOfSQLs.append(strGR + "USAGE ON LANGUAGE " + m_strLanguageName + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strListOfSQLs.append(strGR + "USAGE ON LANGUAGE " + m_strLanguageName + strTF + pListBoxItem->text() + strWGO + strC);
+        
+      }
+    }
+  }
+      
+  // Create items for new grants
+  for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+  {
+    QString strSQL(*it);
+    QListViewItem *pNewItem;
+    
+    if(pLastItem == 0) 
+      pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+    else
+      pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL); 
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCreateLanguageWidget2::slotGrantDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+  if(pSelectedItem)
+      delete pSelectedItem;
+  
+  if(m_pListViewGrants->childCount() == 0)
+     emit sigEnableNextButton(false);
+
+  m_pPushButtonGrantDel->setEnabled(false);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateLanguageWidget2::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateLanguageWidget2::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for GRANT USAGE
+const QString KPGCreateLanguageWidget2::getSQL() const
+{
+  QString strSQL;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    strSQL.append(pItem->text(0));
+    strSQL.append(";\n");
+            
+    pItem = pItem->nextSibling();
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatelanguagewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATELANGUAGEWIDGET2_H
+#define KPGCREATELANGUAGEWIDGET2_H
+
+#include "kpgcreatelanguagewidget2base.h"
+
+/**
+Widget for create language Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateLanguageWidget2 : public KPGCreateLanguageWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateLanguageWidget2(QWidget *parent, const char *name, bool = true);
+    ~KPGCreateLanguageWidget2();
+
+    void setLanguageName(const QString &strLanguageName) { m_strLanguageName = strLanguageName; }
+    const QString getSQL() const;
+
+protected:
+    void enableAddGrantButton();
+    
+protected:
+    QString m_strLanguageName; // name of the created language
+    
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected slots:
+
+    virtual void slotCheckBoxPublicToggled(bool);
+    virtual void slotListBoxUsersSelectionChanged();
+    
+    virtual void slotGrantOptionsToggled(bool);
+    
+    virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+    
+    virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+            
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,178 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatelanguagewidget2base.ui'
+**
+** Created: Út dub 1 13:07:34 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatelanguagewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateLanguageWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateLanguageWidget2Base::KPGCreateLanguageWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateLanguageWidget2Base" );
+    KPGCreateLanguageWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateLanguageWidget2BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+    layout1->addWidget( m_pCheckBoxPublic );
+    layout2->addLayout( layout1 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+    layout2->addWidget( m_pListBoxUsersGroups );
+
+    KPGCreateLanguageWidget2BaseLayout->addMultiCellLayout( layout2, 0, 0, 0, 1 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Command" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateLanguageWidget2BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 1 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateLanguageWidget2BaseLayout->addWidget( m_pCheckBoxGrantOptions, 1, 0 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateLanguageWidget2BaseLayout->addWidget( m_pCheckBoxCascade, 1, 1 );
+    languageChange();
+    resize( QSize(331, 403).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateLanguageWidget2Base::~KPGCreateLanguageWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateLanguageWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 3 - Grant usage privileges" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Command" ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCreateLanguageWidget2Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateLanguageWidget2Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateLanguageWidget2Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatelanguagewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,242 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateLanguageWidget2Base</class>
+<comment>Widged for create language wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateLanguageWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>331</width>
+            <height>403</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 3 - Grant usage privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Users and groups:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxUsersGroups</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPublic</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;PUBLIC</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxUsersGroups</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="selectionMode">
+                        <enum>Multi</enum>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Command</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateLanguageWidget2Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,106 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatelanguagewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "kpgcreatelanguagewidget1.h"
+#include "kpgcreatelanguagewidget2.h"
+
+
+KPGCreateLanguageWizard::KPGCreateLanguageWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPG4StepsWizard(parent, name)
+{
+  KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+  
+  KPGCreateLanguageWidget1 *pCreateLanguageWidget1 = new KPGCreateLanguageWidget1(WizardPage1, "KPGCreateLanguageWidget1", pDatabase);
+  m_pPageWidget1 = pCreateLanguageWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateLanguageWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCreateLanguageWidget2 *pCreateLanguageWidget2 = new KPGCreateLanguageWidget2(WizardPage2, "KPGCreateLanguageWidget2");
+  m_pPageWidget2 = pCreateLanguageWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  //connect(pCreateLanguageWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateLanguageWidget2->m_pListBoxUsersGroups);
+  pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateLanguageWidget2->m_pListBoxUsersGroups);
+    
+  languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+
+KPGCreateLanguageWizard::~KPGCreateLanguageWizard()
+{
+}
+
+void KPGCreateLanguageWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new language" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Language name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Grant usage privileges" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateLanguageWizard::showPage(QWidget *pPage)
+{ 
+  if(pPage == WizardPage2) // Step 2 - Define user rights
+  {
+    KPGCreateLanguageWidget1 *pCreateLanguageWidget1 = static_cast <KPGCreateLanguageWidget1 *> (m_pPageWidget1);
+    KPGCreateLanguageWidget2 *pCreateLanguageWidget2 = static_cast <KPGCreateLanguageWidget2 *> (m_pPageWidget2);
+        
+    // Set language name
+    pCreateLanguageWidget2->setLanguageName(pCreateLanguageWidget1->m_pLineEditLanguageName->text());
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateLanguageWidget1 *> (m_pPageWidget1))->getSQL());
+    strSQL.append(";\n");
+    strSQL.append((static_cast <KPGCreateLanguageWidget2 *> (m_pPageWidget2))->getSQL());
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage4) // Step 4 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatelanguagewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatelanguagewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATELANGUAGEWIZARD_H
+#define KPGCREATELANGUAGEWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGDatabase;
+
+/**
+Create language Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateLanguageWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateLanguageWizard(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateLanguageWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();      
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,144 @@
+//
+// C++ Implementation: kpgcreaterulewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreaterulewidget1.h"
+
+// include files for Qt
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <ktextedit.h> 
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../kpgutil.h"
+
+
+KPGCreateRuleWidget1::KPGCreateRuleWidget1(QWidget *parent, const char *name, const QString &strNamespace, const QString &strTableName)
+ : KPGCreateRuleWidget1Base(parent, name)
+{
+	m_strNamespace = strNamespace;
+	m_strTableName = strTableName;
+	
+	m_pLineEditRuleName->setFocus();
+	
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditCommand);
+	
+	// Apply current configuration
+	m_pTextEditCommand->setFont( KPoGreView::configuration()->sqleditor()->font() );
+	
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+	m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+KPGCreateRuleWidget1::~KPGCreateRuleWidget1()
+{
+  delete m_pSyntaxHighlighter;
+}
+
+void KPGCreateRuleWidget1::slotRuleNameChanged(const QString& strText)
+{
+	emit sigEnableNextButton(! strText.isEmpty());
+}
+
+void KPGCreateRuleWidget1::slotDoAlsoToggled(bool bChecked)
+{
+	if(bChecked) m_pTextEditCommand->setEnabled(true);
+}
+
+void KPGCreateRuleWidget1::slotDoInsteadToggled(bool bChecked)
+{
+	if(bChecked) m_pTextEditCommand->setEnabled(true);
+}
+
+void KPGCreateRuleWidget1::slotDoNothingToggled(bool bChecked)
+{
+	if(bChecked) m_pTextEditCommand->setEnabled(false);
+}
+
+void KPGCreateRuleWidget1::slotEventActivated(const QString &strEvent)
+{
+  // SELECT rules must be unconditional INSTEAD rule
+  if(strEvent == "SELECT")
+  {
+    m_pLineEditCondition->setEnabled(false);
+    m_pRadioButtonDoInstead->setChecked(true);
+    m_pRadioButtonDoAlso->setEnabled(false);
+    m_pRadioButtonDoNothing->setEnabled(false);
+  }
+  else
+  {
+    m_pLineEditCondition->setEnabled(true);
+    m_pRadioButtonDoAlso->setEnabled(true);
+    m_pRadioButtonDoNothing->setEnabled(true);
+  }
+}
+
+// Return SQL statement for CREATE RULE
+const QString KPGCreateRuleWidget1::getSQL() const
+{
+  QString strSql("CREATE OR REPLACE RULE ");
+  strSql.append(KPGUtil::quotedName(m_pLineEditRuleName->text()));
+  strSql.append(" AS ON ");
+  strSql.append(m_pComboBoxEvent->currentText());
+  strSql.append("\nTO ");
+  strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + "\n");
+  
+  if(! m_pLineEditCondition->text().isEmpty())
+  {
+   strSql.append("WHERE ");
+   strSql.append(m_pLineEditCondition->text());
+   strSql.append("\n");
+  }
+  
+  strSql.append("DO ");
+  
+  if(m_pRadioButtonDoAlso->isChecked())
+  {
+    strSql.append("ALSO ");
+    strSql.append(m_pTextEditCommand->text());
+  }
+  
+  if(m_pRadioButtonDoInstead->isChecked())
+  {
+    strSql.append("INSTEAD ");
+    strSql.append(m_pTextEditCommand->text());
+  }
+  
+  if(m_pRadioButtonDoNothing->isChecked())
+  {
+    strSql.append("NOTHING;");
+  }
+  
+  if(! strSql.endsWith(";"))
+    strSql.append(";");
+    
+  return strSql;
+}
+
+
+#include "kpgcreaterulewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,53 @@
+//
+// C++ Interface: kpgcreaterulewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATERULEWIDGET1_H
+#define KPGCREATERULEWIDGET1_H
+
+#include "kpgcreaterulewidget1base.h"
+
+class KPGSyntaxHighlighter;
+
+/**
+Widget for create rule Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateRuleWidget1 : public KPGCreateRuleWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateRuleWidget1(QWidget *parent, const char *name, const QString &, const QString &);
+    ~KPGCreateRuleWidget1();
+    
+    const QString getSQL() const;
+    
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace
+    
+  /** Syntax highlighter for rule command */
+  KPGSyntaxHighlighter *m_pSyntaxHighlighter;    
+
+protected slots:
+
+		virtual void slotRuleNameChanged(const QString&);
+		virtual void slotDoAlsoToggled(bool);
+		virtual void slotDoInsteadToggled(bool);
+		virtual void slotDoNothingToggled(bool);
+    virtual void slotEventActivated(const QString &);
+								
+signals:
+		void sigEnableNextButton(bool);		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,195 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreaterulewidget1base.ui'
+**
+** Created: Út dub 1 13:07:37 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreaterulewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGCreateRuleWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateRuleWidget1Base::KPGCreateRuleWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateRuleWidget1Base" );
+    KPGCreateRuleWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateRuleWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditRuleName = new KLineEdit( this, "m_pLineEditRuleName" );
+    layout1->addWidget( m_pLineEditRuleName );
+
+    KPGCreateRuleWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer1 = new QSpacerItem( 61, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateRuleWidget1BaseLayout->addItem( spacer1, 0, 1 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pLineEditCondition = new KLineEdit( this, "m_pLineEditCondition" );
+    m_pLineEditCondition->setEnabled( TRUE );
+    layout2->addWidget( m_pLineEditCondition );
+
+    KPGCreateRuleWidget1BaseLayout->addMultiCellLayout( layout2, 2, 2, 0, 1 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout3->addWidget( textLabel3 );
+
+    m_pComboBoxEvent = new KComboBox( FALSE, this, "m_pComboBoxEvent" );
+    m_pComboBoxEvent->setEnabled( TRUE );
+    layout3->addWidget( m_pComboBoxEvent );
+
+    KPGCreateRuleWidget1BaseLayout->addLayout( layout3, 1, 0 );
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    layout4 = new QHBoxLayout( 0, 0, 6, "layout4"); 
+
+    m_pRadioButtonDoAlso = new QRadioButton( buttonGroup1, "m_pRadioButtonDoAlso" );
+    m_pRadioButtonDoAlso->setChecked( TRUE );
+    layout4->addWidget( m_pRadioButtonDoAlso );
+
+    m_pRadioButtonDoInstead = new QRadioButton( buttonGroup1, "m_pRadioButtonDoInstead" );
+    layout4->addWidget( m_pRadioButtonDoInstead );
+
+    m_pRadioButtonDoNothing = new QRadioButton( buttonGroup1, "m_pRadioButtonDoNothing" );
+    layout4->addWidget( m_pRadioButtonDoNothing );
+
+    buttonGroup1Layout->addLayout( layout4, 0, 0 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel4 = new QLabel( buttonGroup1, "textLabel4" );
+    layout5->addWidget( textLabel4 );
+
+    m_pTextEditCommand = new KTextEdit( buttonGroup1, "m_pTextEditCommand" );
+    layout5->addWidget( m_pTextEditCommand );
+
+    buttonGroup1Layout->addLayout( layout5, 1, 0 );
+
+    KPGCreateRuleWidget1BaseLayout->addMultiCellWidget( buttonGroup1, 3, 3, 0, 1 );
+    languageChange();
+    resize( QSize(338, 379).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditRuleName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotRuleNameChanged(const QString&) ) );
+    connect( m_pRadioButtonDoAlso, SIGNAL( toggled(bool) ), this, SLOT( slotDoAlsoToggled(bool) ) );
+    connect( m_pRadioButtonDoInstead, SIGNAL( toggled(bool) ), this, SLOT( slotDoInsteadToggled(bool) ) );
+    connect( m_pRadioButtonDoNothing, SIGNAL( toggled(bool) ), this, SLOT( slotDoNothingToggled(bool) ) );
+    connect( m_pComboBoxEvent, SIGNAL( activated(const QString&) ), this, SLOT( slotEventActivated(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditRuleName, m_pComboBoxEvent );
+    setTabOrder( m_pComboBoxEvent, m_pLineEditCondition );
+    setTabOrder( m_pLineEditCondition, m_pRadioButtonDoAlso );
+    setTabOrder( m_pRadioButtonDoAlso, m_pRadioButtonDoInstead );
+    setTabOrder( m_pRadioButtonDoInstead, m_pRadioButtonDoNothing );
+    setTabOrder( m_pRadioButtonDoNothing, m_pTextEditCommand );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditRuleName );
+    textLabel2->setBuddy( m_pLineEditCondition );
+    textLabel3->setBuddy( m_pComboBoxEvent );
+    textLabel4->setBuddy( m_pTextEditCommand );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateRuleWidget1Base::~KPGCreateRuleWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateRuleWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Rule name and properties" ) );
+    textLabel1->setText( tr2i18n( "Rule &name:" ) );
+    textLabel2->setText( tr2i18n( "C&ondition:" ) );
+    textLabel3->setText( tr2i18n( "&Event:" ) );
+    m_pComboBoxEvent->clear();
+    m_pComboBoxEvent->insertItem( tr2i18n( "INSERT" ) );
+    m_pComboBoxEvent->insertItem( tr2i18n( "UPDATE" ) );
+    m_pComboBoxEvent->insertItem( tr2i18n( "DELETE" ) );
+    m_pComboBoxEvent->insertItem( tr2i18n( "SELECT" ) );
+    buttonGroup1->setTitle( tr2i18n( "Do" ) );
+    m_pRadioButtonDoAlso->setText( tr2i18n( "&Also" ) );
+    m_pRadioButtonDoAlso->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pRadioButtonDoInstead->setText( tr2i18n( "&Instead" ) );
+    m_pRadioButtonDoInstead->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pRadioButtonDoNothing->setText( tr2i18n( "Not&hing" ) );
+    m_pRadioButtonDoNothing->setAccel( QKeySequence( tr2i18n( "Alt+H" ) ) );
+    textLabel4->setText( tr2i18n( "Co&mmand:" ) );
+}
+
+void KPGCreateRuleWidget1Base::slotRuleNameChanged(const QString&)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotRuleNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateRuleWidget1Base::slotDoAlsoToggled(bool)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotDoAlsoToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateRuleWidget1Base::slotDoInsteadToggled(bool)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotDoInsteadToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateRuleWidget1Base::slotDoNothingToggled(bool)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotDoNothingToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateRuleWidget1Base::slotEventActivated(int)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotEventActivated(int): Not implemented yet" );
+}
+
+void KPGCreateRuleWidget1Base::slotEventActivated(const QString&)
+{
+    qWarning( "KPGCreateRuleWidget1Base::slotEventActivated(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreaterulewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,288 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateRuleWidget1Base</class>
+<comment>Widget for create rule Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateRuleWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>338</width>
+            <height>379</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Rule name and properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Rule &amp;name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditRuleName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditRuleName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>61</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;ondition:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditCondition</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditCondition</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Event:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxEvent</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>INSERT</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>UPDATE</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>DELETE</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>SELECT</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxEvent</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QButtonGroup" row="3" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>buttonGroup1</cstring>
+            </property>
+            <property name="title">
+                <string>Do</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton">
+                            <property name="name">
+                                <cstring>m_pRadioButtonDoAlso</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Also</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton">
+                            <property name="name">
+                                <cstring>m_pRadioButtonDoInstead</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Instead</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+I</string>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton">
+                            <property name="name">
+                                <cstring>m_pRadioButtonDoNothing</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Not&amp;hing</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+H</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout5</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel4</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Co&amp;mmand:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pTextEditCommand</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KTextEdit">
+                            <property name="name">
+                                <cstring>m_pTextEditCommand</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditRuleName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateRuleWidget1Base</receiver>
+        <slot>slotRuleNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonDoAlso</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateRuleWidget1Base</receiver>
+        <slot>slotDoAlsoToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonDoInstead</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateRuleWidget1Base</receiver>
+        <slot>slotDoInsteadToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonDoNothing</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateRuleWidget1Base</receiver>
+        <slot>slotDoNothingToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxEvent</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateRuleWidget1Base</receiver>
+        <slot>slotEventActivated(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditRuleName</tabstop>
+    <tabstop>m_pComboBoxEvent</tabstop>
+    <tabstop>m_pLineEditCondition</tabstop>
+    <tabstop>m_pRadioButtonDoAlso</tabstop>
+    <tabstop>m_pRadioButtonDoInstead</tabstop>
+    <tabstop>m_pRadioButtonDoNothing</tabstop>
+    <tabstop>m_pTextEditCommand</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotRuleNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotDoAlsoToggled(bool)</slot>
+    <slot access="protected">slotDoInsteadToggled(bool)</slot>
+    <slot access="protected">slotDoNothingToggled(bool)</slot>
+    <slot access="protected">slotEventActivated(int)</slot>
+    <slot>slotEventActivated(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,79 @@
+//
+// C++ Implementation: kpgcreaterulewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreaterulewizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "kpgcreaterulewidget1.h"
+
+
+KPGCreateRuleWizard::KPGCreateRuleWizard(QWidget *parent, const char *name, const QString& strSchemaName, const QString& strTableName)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGCreateRuleWidget1 *pCreateRuleWidget1 = new KPGCreateRuleWidget1(WizardPage1, "KPGCreateRuleWidget1", strSchemaName, strTableName);
+	m_pPageWidget1 = pCreateRuleWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateRuleWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	languageChange();
+}
+
+KPGCreateRuleWizard::~KPGCreateRuleWizard()
+{
+}
+
+void KPGCreateRuleWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Add Rule to Table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Rule name and properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateRuleWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    KPGCreateRuleWidget1 *pCreateRuleWidget1 = static_cast <KPGCreateRuleWidget1 *> (m_pPageWidget1);
+    m_pTextEditSQL->setText(pCreateRuleWidget1->getSQL());
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgcreaterulewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreaterulewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgcreaterulewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATERULEWIZARD_H
+#define KPGCREATERULEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+
+/**
+Create table rule Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateRuleWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateRuleWizard(QWidget *parent, const char *name, const QString&, const QString&);
+    ~KPGCreateRuleWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+//
+// C++ Implementation: kpgcreateschemawidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateschemawidget1.h"
+
+// include files for KDE
+#include <klineedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../kpgutil.h"
+
+KPGCreateSchemaWidget1::KPGCreateSchemaWidget1(QWidget *parent, const char *name, KPGUsersFolder *pUsersFolder)
+ : KPGCreateSchemaWidget1Base(parent, name)
+{
+	m_pLineEditSchemaName->setFocus();
+	
+	//--- traverse list of users
+	QListViewItem * pItem = pUsersFolder->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeUser)
+			m_pComboBoxOwner->insertItem(*pItem->pixmap(0), pItem->text(0));
+				
+		pItem = pItem->nextSibling();
+	}
+}
+
+
+KPGCreateSchemaWidget1::~KPGCreateSchemaWidget1()
+{
+}
+
+void KPGCreateSchemaWidget1::slotLineEditSchemaNameChanged(const QString &strSchemaName)
+{
+	emit sigEnableNextButton(strSchemaName.length() > 0);
+}
+
+const QString KPGCreateSchemaWidget1::getSQL() const
+{
+	QString strSQL("CREATE SCHEMA ");
+	
+	strSQL.append(KPGUtil::quotedName(m_pLineEditSchemaName->text()));
+	
+	if(m_pComboBoxOwner->currentItem() > 0)
+		strSQL.append(" AUTHORIZATION " + KPGUtil::quotedName(m_pComboBoxOwner->currentText()));
+	
+  if(m_pComboBoxTablespace->currentItem() > 0)
+    strSQL.append(" TABLESPACE " + KPGUtil::quotedName(m_pComboBoxTablespace->currentText()));
+    
+	return strSQL;
+}
+
+#include "kpgcreateschemawidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: kpgcreateschemawidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATESCHEMAWIDGET1_H
+#define KPGCREATESCHEMAWIDGET1_H
+
+#include "kpgcreateschemawidget1base.h"
+
+class KPGUsersFolder;
+
+/**
+Widget for create schema Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateSchemaWidget1 : public KPGCreateSchemaWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateSchemaWidget1(QWidget *parent, const char *name, KPGUsersFolder *);
+    ~KPGCreateSchemaWidget1();
+
+		const QString getSQL() const;
+
+protected slots:
+
+		virtual void slotLineEditSchemaNameChanged(const QString &);
+		
+signals:
+		void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,118 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateschemawidget1base.ui'
+**
+** Created: Út dub 1 13:07:31 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateschemawidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGCreateSchemaWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateSchemaWidget1Base::KPGCreateSchemaWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateSchemaWidget1Base" );
+    KPGCreateSchemaWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateSchemaWidget1BaseLayout"); 
+    spacer3 = new QSpacerItem( 20, 31, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateSchemaWidget1BaseLayout->addItem( spacer3, 2, 0 );
+
+    layout3 = new QHBoxLayout( 0, 0, 6, "layout3"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditSchemaName = new KLineEdit( this, "m_pLineEditSchemaName" );
+    layout1->addWidget( m_pLineEditSchemaName );
+    layout3->addLayout( layout1 );
+    spacer1 = new QSpacerItem( 121, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout3->addItem( spacer1 );
+
+    KPGCreateSchemaWidget1BaseLayout->addLayout( layout3, 0, 0 );
+
+    layout5 = new QHBoxLayout( 0, 0, 6, "layout5"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxOwner = new KComboBox( FALSE, this, "m_pComboBoxOwner" );
+    layout2->addWidget( m_pComboBoxOwner );
+    layout5->addLayout( layout2 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout4->addWidget( textLabel1_2 );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, this, "m_pComboBoxTablespace" );
+    layout4->addWidget( m_pComboBoxTablespace );
+    layout5->addLayout( layout4 );
+    spacer2 = new QSpacerItem( 20, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout5->addItem( spacer2 );
+
+    KPGCreateSchemaWidget1BaseLayout->addLayout( layout5, 1, 0 );
+    languageChange();
+    resize( QSize(351, 172).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditSchemaName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditSchemaNameChanged(const QString&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditSchemaName );
+    textLabel2->setBuddy( m_pComboBoxOwner );
+    textLabel1_2->setBuddy( m_pComboBoxTablespace );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateSchemaWidget1Base::~KPGCreateSchemaWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateSchemaWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create schema" ) );
+    textLabel1->setText( tr2i18n( "Schema &name:" ) );
+    textLabel2->setText( tr2i18n( "&Owner:" ) );
+    m_pComboBoxOwner->clear();
+    m_pComboBoxOwner->insertItem( tr2i18n( "Default" ) );
+    textLabel1_2->setText( tr2i18n( "Table&space:" ) );
+    m_pComboBoxTablespace->clear();
+    m_pComboBoxTablespace->insertItem( tr2i18n( "Default" ) );
+}
+
+void KPGCreateSchemaWidget1Base::slotLineEditSchemaNameChanged(const QString&)
+{
+    qWarning( "KPGCreateSchemaWidget1Base::slotLineEditSchemaNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreateschemawidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,202 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateSchemaWidget1Base</class>
+<comment>Widget for create schema Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateSchemaWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>351</width>
+            <height>172</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create schema</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>31</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Schema &amp;name:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditSchemaName</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditSchemaName</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>121</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Owner:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxOwner</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxOwner</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Table&amp;space:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditSchemaName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateSchemaWidget1Base</receiver>
+        <slot>slotLineEditSchemaNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotLineEditSchemaNameChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,291 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateschemawidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateSchemaWidget2::KPGCreateSchemaWidget2(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateSchemaWidget2Base(parent, name)
+{
+  m_bGrantOrRevoke = bGrantOrRevoke;
+  
+  if(bGrantOrRevoke)
+  {
+    strGR = "GRANT ";
+    strTF = strTF + " TO ";
+    m_pCheckBoxCascade->hide();
+  }
+  else
+  {
+    strGR = "REVOKE ";
+    strTF = " FROM ";
+    m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+  }
+  
+  m_pListViewGrants->setSortColumn(-1);  
+}
+
+
+KPGCreateSchemaWidget2::~KPGCreateSchemaWidget2()
+{
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//                       GRANTS FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateSchemaWidget2::slotCheckBoxAllToggled(bool bState)
+{
+  m_pCheckBoxCreate->setEnabled(!bState);
+  m_pCheckBoxUsage->setEnabled(!bState);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateSchemaWidget2::slotCheckBoxCreateToggled(bool)
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateSchemaWidget2::slotCheckBoxUsageToggled(bool)
+{
+  enableAddGrantButton();
+}
+  
+void KPGCreateSchemaWidget2::slotCheckBoxPublicToggled(bool bState)
+{
+  m_pListBoxUsersGroups->setEnabled(!bState);
+  m_pCheckBoxGrantOptions->setEnabled(!bState); // Grant options can only be granted to individual users, not to groups or PUBLIC.
+  enableAddGrantButton();
+}
+
+void KPGCreateSchemaWidget2::slotGrantOptionsToggled(bool bState)
+{
+  m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateSchemaWidget2::slotListBoxUsersSelectionChanged()
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateSchemaWidget2::enableAddGrantButton()
+{
+  bool bAnyPrivilegeChecked = false;
+  
+  if(m_pCheckBoxAll->isChecked()) bAnyPrivilegeChecked = true;
+    else
+      if(m_pCheckBoxCreate->isChecked()) bAnyPrivilegeChecked = true;
+        else
+          if(m_pCheckBoxUsage->isChecked()) bAnyPrivilegeChecked = true;
+  
+  bool bAnyUserOrGroupChecked = false;        
+  
+  if(m_pCheckBoxPublic->isChecked()) 
+    bAnyUserOrGroupChecked = true;
+  else
+    {
+      if(m_pListBoxUsersGroups->count() > 0)
+      {
+        for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+        if(m_pListBoxUsersGroups->isSelected(i))
+          {
+            bAnyUserOrGroupChecked = true;
+            break;
+          }
+      }
+    }
+  m_pPushButtonGrantAdd->setEnabled(bAnyPrivilegeChecked && bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateSchemaWidget2::slotGrantAdd()
+{
+    QListViewItem *pLastItem = 0;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    pLastItem = pItem;
+    pItem = pItem->nextSibling();
+  }
+  
+  QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+  
+  QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+  QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+  QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+      
+  if(m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+  {
+    strListOfSQLs.append(strGR + "ALL ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + "PUBLIC");   
+  }
+  
+  if(m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+  {
+    QString strSQL(strGR);
+    
+    if(m_pCheckBoxCreate->isChecked())
+      strSQL.append("CREATE, ");
+          
+    if(m_pCheckBoxUsage->isChecked())
+      strSQL.append("USAGE");
+      
+    if(strSQL.right(2) == ", ")  
+      strSQL = strSQL.left(strSQL.length() - 2);
+      
+    strSQL.append(" ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + "PUBLIC");   
+    
+    strListOfSQLs.append(strSQL);
+  }
+  
+  if(!m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << "KPGCreateSchemaWidget2::slotGrantAdd - bad object type !" << endl;
+          return;
+        }  
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);
+        
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strListOfSQLs.append(strGR + "ALL ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strListOfSQLs.append(strGR + strGOF + "ALL ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + pListBoxItem->text() + strWGO + strC);    
+      }
+    }
+  }
+  
+  if(!m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << "KPGCreateSchemaWidget2::slotGrantAdd - bad object type !" << endl;
+          return;
+        }
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+                
+        QString strSQL(strGR);
+        
+        if(pListBoxItem->type() != KPGTreeItem::nodeGroup)
+           strSQL.append(strGOF);
+            
+        if(m_pCheckBoxCreate->isChecked())
+          strSQL.append("CREATE, ");
+                  
+        if(m_pCheckBoxUsage->isChecked())
+          strSQL.append("USAGE");
+          
+        if(strSQL.right(2) == ", ")  
+          strSQL = strSQL.left(strSQL.length() - 2);
+        
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strSQL.append(" ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strSQL.append(" ON SCHEMA " + KPGUtil::quotedName(m_strSchemaName) + strTF + pListBoxItem->text() + strWGO + strC);
+            
+        strListOfSQLs.append(strSQL);
+      }
+    }
+  }
+      
+  // Create items for new grants
+  for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+  {
+    QString strSQL(*it);
+    QListViewItem *pNewItem;
+    
+    if(pLastItem == 0) 
+      pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+    else
+      pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL); 
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCreateSchemaWidget2::slotGrantDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+  if(pSelectedItem)
+      delete pSelectedItem;
+  
+  if(m_pListViewGrants->childCount() == 0)
+     emit sigEnableNextButton(false);
+     
+  m_pPushButtonGrantDel->setEnabled(false);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateSchemaWidget2::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateSchemaWidget2::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for GRANT
+const QString KPGCreateSchemaWidget2::getSQL() const
+{
+  QString strSQL;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    strSQL.append(pItem->text(0));
+    strSQL.append(";\n");
+            
+    pItem = pItem->nextSibling();
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreateschemawidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,64 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATESCHEMAWIDGET2_H
+#define KPGCREATESCHEMAWIDGET2_H
+
+#include "kpgcreateschemawidget2base.h"
+
+/**
+Widget for create schema Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateSchemaWidget2 : public KPGCreateSchemaWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateSchemaWidget2(QWidget *parent, const char *name, bool = true);
+    ~KPGCreateSchemaWidget2();
+
+    void setSchemaName(const QString &strSchemaName) { m_strSchemaName = strSchemaName; }
+    const QString getSQL() const;
+
+protected:
+    QString m_strSchemaName;
+    
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected:
+    void enableAddGrantButton();
+    
+protected slots:
+
+    virtual void slotCheckBoxAllToggled(bool);
+    virtual void slotCheckBoxCreateToggled(bool);
+    virtual void slotCheckBoxUsageToggled(bool);
+    virtual void slotGrantOptionsToggled(bool);    
+    
+    virtual void slotCheckBoxPublicToggled(bool);
+    virtual void slotListBoxUsersSelectionChanged();
+    
+    virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+    
+    virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,227 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateschemawidget2base.ui'
+**
+** Created: Út dub 1 13:07:35 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateschemawidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateSchemaWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateSchemaWidget2Base::KPGCreateSchemaWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateSchemaWidget2Base" );
+    KPGCreateSchemaWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateSchemaWidget2BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Command" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateSchemaWidget2BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+    layout1->addWidget( m_pCheckBoxPublic );
+    layout2->addLayout( layout1 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+    layout2->addWidget( m_pListBoxUsersGroups );
+
+    KPGCreateSchemaWidget2BaseLayout->addMultiCellLayout( layout2, 0, 0, 0, 1 );
+
+    groupBox2 = new QGroupBox( this, "groupBox2" );
+    groupBox2->setColumnLayout(0, Qt::Vertical );
+    groupBox2->layout()->setSpacing( 6 );
+    groupBox2->layout()->setMargin( 11 );
+    groupBox2Layout = new QGridLayout( groupBox2->layout() );
+    groupBox2Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxUsage = new QCheckBox( groupBox2, "m_pCheckBoxUsage" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxUsage, 2, 0 );
+
+    m_pCheckBoxCreate = new QCheckBox( groupBox2, "m_pCheckBoxCreate" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxCreate, 1, 0 );
+
+    m_pCheckBoxAll = new QCheckBox( groupBox2, "m_pCheckBoxAll" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxAll, 0, 0 );
+
+    KPGCreateSchemaWidget2BaseLayout->addWidget( groupBox2, 0, 2 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateSchemaWidget2BaseLayout->addWidget( m_pCheckBoxGrantOptions, 1, 0 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateSchemaWidget2BaseLayout->addMultiCellWidget( m_pCheckBoxCascade, 1, 1, 1, 2 );
+    languageChange();
+    resize( QSize(432, 335).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAll, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxAllToggled(bool) ) );
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxCreate, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxCreateToggled(bool) ) );
+    connect( m_pCheckBoxUsage, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxUsageToggled(bool) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pCheckBoxAll );
+    setTabOrder( m_pCheckBoxAll, m_pCheckBoxCreate );
+    setTabOrder( m_pCheckBoxCreate, m_pCheckBoxUsage );
+    setTabOrder( m_pCheckBoxUsage, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateSchemaWidget2Base::~KPGCreateSchemaWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateSchemaWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Schema - grant privileges" ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Command" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    groupBox2->setTitle( tr2i18n( "Privileges" ) );
+    m_pCheckBoxUsage->setText( tr2i18n( "&USAGE" ) );
+    m_pCheckBoxUsage->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxCreate->setText( tr2i18n( "&CREATE" ) );
+    m_pCheckBoxCreate->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pCheckBoxAll->setText( tr2i18n( "A&LL" ) );
+    m_pCheckBoxAll->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCreateSchemaWidget2Base::slotCheckBoxAllToggled(bool)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotCheckBoxAllToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotCheckBoxCreateToggled(bool)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotCheckBoxCreateToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotCheckBoxUsageToggled(bool)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotCheckBoxUsageToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateSchemaWidget2Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateSchemaWidget2Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreateschemawidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,312 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateSchemaWidget2Base</class>
+<comment>Widged for create schema wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateSchemaWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>432</width>
+            <height>335</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create Schema - grant privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Command</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Users and groups:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxUsersGroups</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPublic</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;PUBLIC</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxUsersGroups</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="selectionMode">
+                        <enum>Multi</enum>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="0" column="2">
+            <property name="name">
+                <cstring>groupBox2</cstring>
+            </property>
+            <property name="title">
+                <string>Privileges</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxUsage</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;USAGE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCreate</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;CREATE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+C</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxAll</cstring>
+                    </property>
+                    <property name="text">
+                        <string>A&amp;LL</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+L</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAll</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotCheckBoxAllToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCreate</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotCheckBoxCreateToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxUsage</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotCheckBoxUsageToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateSchemaWidget2Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pCheckBoxAll</tabstop>
+    <tabstop>m_pCheckBoxCreate</tabstop>
+    <tabstop>m_pCheckBoxUsage</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxAllToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckBoxCreateToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxUsageToggled(bool)</slot>
+    <slot access="protected">slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+//
+// C++ Implementation: kpgcreateschemawizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateschemawizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <ktextedit.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgcreateschemawidget1.h"
+#include "kpgcreateschemawidget2.h"
+
+
+KPGCreateSchemaWizard::KPGCreateSchemaWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPG4StepsWizard(parent, name)
+{
+  KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+  
+	KPGCreateSchemaWidget1 *pCreateSchemaWidget1 = new KPGCreateSchemaWidget1(WizardPage1, "KPGCreateSchemaWidget1", pServer->getUsersFolder());
+	m_pPageWidget1 = pCreateSchemaWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateSchemaWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+  KPGCreateSchemaWidget2 *pCreateSchemaWidget2 = new KPGCreateSchemaWidget2(WizardPage2, "KPGCreateSchemaWidget2");
+  m_pPageWidget2 = pCreateSchemaWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  //connect(pCreateSchemaWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateSchemaWidget2->m_pListBoxUsersGroups);
+  pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateSchemaWidget2->m_pListBoxUsersGroups);
+  
+  if(pServer->versionMajor() >= 8)
+  	pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateSchemaWidget1->m_pComboBoxTablespace);
+  else
+    pCreateSchemaWidget1->m_pComboBoxTablespace->setEnabled(false);
+    
+	languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+
+KPGCreateSchemaWizard::~KPGCreateSchemaWizard()
+{
+}
+
+void KPGCreateSchemaWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+		
+		setCaption( i18n( "Create new schema" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Schema name and owner" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Define user rights" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateSchemaWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Define user rights
+  {
+    KPGCreateSchemaWidget1 *pCreateSchemaWidget1 = static_cast <KPGCreateSchemaWidget1 *> (m_pPageWidget1);
+    KPGCreateSchemaWidget2 *pCreateSchemaWidget2 = static_cast <KPGCreateSchemaWidget2 *> (m_pPageWidget2);
+        
+    // Set schema name
+    pCreateSchemaWidget2->setSchemaName(pCreateSchemaWidget1->m_pLineEditSchemaName->text());
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL;
+		strSQL.append((static_cast <KPGCreateSchemaWidget1 *> (m_pPageWidget1))->getSQL());
+		strSQL.append(";\n\n");
+    strSQL.append((static_cast <KPGCreateSchemaWidget2 *> (m_pPageWidget2))->getSQL());
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreateschemawizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateschemawizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgcreateschemawizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATESCHEMAWIZARD_H
+#define KPGCREATESCHEMAWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGDatabase;
+
+/**
+Create schema Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateSchemaWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateSchemaWizard(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateSchemaWizard();
+
+protected:
+		virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,96 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatesequencewidget1.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <knuminput.h>
+
+#include "../kpgutil.h"
+
+
+KPGCreateSequenceWidget1::KPGCreateSequenceWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas)
+ : KPGCreateSequenceWidget1Base(parent, name)
+{
+   
+  int iCurrentItem = -1;
+  int i = 0;  
+  for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+    {
+      m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+      
+      if(pSchema->text(0) == "public")
+        iCurrentItem = i;
+        
+      ++i;
+    }
+    
+  if(iCurrentItem >= 0)
+    m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+}
+
+
+KPGCreateSequenceWidget1::~KPGCreateSequenceWidget1()
+{
+}
+
+void KPGCreateSequenceWidget1::slotSequenceNameChanged(const QString &strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty() );
+}
+
+// Return part of SQL statement for CREATE SEQUENCE
+const QString KPGCreateSequenceWidget1::getSQL() const
+{
+  	QString strSql("CREATE SEQUENCE ");
+		
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(),  m_pLineEditSequenceName->text()));
+	strSql.append("\n");
+	
+	// Increment
+	if(m_pIntNumInputIncrement->value() != 1)
+		strSql.append(QString("INCREMENT %1\n").arg(m_pIntNumInputIncrement->value()));
+	
+	// Min value
+	if(m_pLineEditMinValue->text().isEmpty() == false)	
+		strSql.append("MINVALUE " + m_pLineEditMinValue->text() + "\n");
+		
+	// Max value
+	if(m_pLineEditMaxValue->text().isEmpty() == false)	
+		strSql.append("MAXVALUE " + m_pLineEditMaxValue->text() + "\n");
+		
+	// Start value
+	if(m_pLineEditStartValue->text().isEmpty() == false)	
+		strSql.append("START " + m_pLineEditStartValue->text() + "\n");
+		
+	// Cache
+	if(m_pIntNumInputCache->value() != 1)
+		strSql.append(QString("CACHE %1\n").arg(m_pIntNumInputCache->value()));
+	
+	// Cycle
+	if(m_pCheckBoxCycle->isChecked())
+		strSql.append("CYCLE");
+		
+  return strSql;
+}
+
+#include "kpgcreatesequencewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATESEQUENCEWIDGET1_H
+#define KPGCREATESEQUENCEWIDGET1_H
+
+#include "kpgcreatesequencewidget1base.h"
+
+
+class QListViewItem;
+
+/**
+Widget for create sequence Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateSequenceWidget1 : public KPGCreateSequenceWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateSequenceWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> &);
+    ~KPGCreateSequenceWidget1();
+		
+		const QString getSQL() const;
+
+protected slots:
+
+    virtual void slotSequenceNameChanged(const QString&);
+    
+signals:
+    void sigEnableNextButton(bool);   
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,201 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatesequencewidget1base.ui'
+**
+** Created: Út dub 1 13:07:31 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatesequencewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <knuminput.h>
+#include <klineedit.h>
+#include <qcheckbox.h>
+#include <qcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "knuminput.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateSequenceWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateSequenceWidget1Base::KPGCreateSequenceWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateSequenceWidget1Base" );
+    KPGCreateSequenceWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateSequenceWidget1BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel1_2 = new QLabel( groupBox1, "textLabel1_2" );
+    layout3->addWidget( textLabel1_2 );
+
+    m_pIntNumInputIncrement = new KIntNumInput( groupBox1, "m_pIntNumInputIncrement" );
+    m_pIntNumInputIncrement->setValue( 1 );
+    layout3->addWidget( m_pIntNumInputIncrement );
+
+    groupBox1Layout->addLayout( layout3, 0, 0 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel2 = new QLabel( groupBox1, "textLabel2" );
+    layout4->addWidget( textLabel2 );
+
+    m_pLineEditMinValue = new KLineEdit( groupBox1, "m_pLineEditMinValue" );
+    layout4->addWidget( m_pLineEditMinValue );
+
+    groupBox1Layout->addLayout( layout4, 1, 0 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel3 = new QLabel( groupBox1, "textLabel3" );
+    layout5->addWidget( textLabel3 );
+
+    m_pLineEditMaxValue = new KLineEdit( groupBox1, "m_pLineEditMaxValue" );
+    layout5->addWidget( m_pLineEditMaxValue );
+
+    groupBox1Layout->addLayout( layout5, 1, 1 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel4 = new QLabel( groupBox1, "textLabel4" );
+    layout6->addWidget( textLabel4 );
+
+    m_pLineEditStartValue = new KLineEdit( groupBox1, "m_pLineEditStartValue" );
+    layout6->addWidget( m_pLineEditStartValue );
+
+    groupBox1Layout->addLayout( layout6, 0, 1 );
+
+    layout7 = new QVBoxLayout( 0, 0, 6, "layout7"); 
+
+    textLabel5 = new QLabel( groupBox1, "textLabel5" );
+    layout7->addWidget( textLabel5 );
+
+    m_pIntNumInputCache = new KIntNumInput( groupBox1, "m_pIntNumInputCache" );
+    m_pIntNumInputCache->setValue( 1 );
+    m_pIntNumInputCache->setMinValue( 1 );
+    layout7->addWidget( m_pIntNumInputCache );
+
+    groupBox1Layout->addLayout( layout7, 2, 0 );
+
+    layout10 = new QVBoxLayout( 0, 0, 6, "layout10"); 
+
+    textLabel1_3 = new QLabel( groupBox1, "textLabel1_3" );
+    layout10->addWidget( textLabel1_3 );
+
+    m_pCheckBoxCycle = new QCheckBox( groupBox1, "m_pCheckBoxCycle" );
+    layout10->addWidget( m_pCheckBoxCycle );
+
+    groupBox1Layout->addLayout( layout10, 2, 1 );
+
+    KPGCreateSequenceWidget1BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 1 );
+    spacer1 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateSequenceWidget1BaseLayout->addItem( spacer1, 3, 0 );
+    spacer2 = new QSpacerItem( 16, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateSequenceWidget1BaseLayout->addItem( spacer2, 2, 2 );
+    spacer3 = new QSpacerItem( 16, 20, QSizePolicy::Minimum, QSizePolicy::Minimum );
+    KPGCreateSequenceWidget1BaseLayout->addItem( spacer3, 1, 2 );
+
+    layout9 = new QGridLayout( 0, 1, 1, 0, 6, "layout9"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    layout9->addWidget( textLabel1, 0, 0 );
+
+    m_pLineEditSequenceName = new KLineEdit( this, "m_pLineEditSequenceName" );
+    m_pLineEditSequenceName->setFrameShape( KLineEdit::LineEditPanel );
+
+    layout9->addWidget( m_pLineEditSequenceName, 1, 0 );
+
+    KPGCreateSequenceWidget1BaseLayout->addMultiCellLayout( layout9, 1, 1, 0, 1 );
+
+    layout8 = new QVBoxLayout( 0, 0, 6, "layout8"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout8->addWidget( textLabel2_2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout8->addWidget( m_pComboBoxSchema );
+
+    KPGCreateSequenceWidget1BaseLayout->addLayout( layout8, 0, 0 );
+    spacer4 = new QSpacerItem( 180, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateSequenceWidget1BaseLayout->addMultiCell( spacer4, 0, 0, 1, 2 );
+    languageChange();
+    resize( QSize(296, 345).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditSequenceName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotSequenceNameChanged(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditSequenceName, m_pComboBoxSchema );
+    setTabOrder( m_pComboBoxSchema, m_pIntNumInputIncrement );
+    setTabOrder( m_pIntNumInputIncrement, m_pLineEditMinValue );
+    setTabOrder( m_pLineEditMinValue, m_pLineEditMaxValue );
+    setTabOrder( m_pLineEditMaxValue, m_pLineEditStartValue );
+    setTabOrder( m_pLineEditStartValue, m_pCheckBoxCycle );
+    setTabOrder( m_pCheckBoxCycle, m_pIntNumInputCache );
+
+    // buddies
+    textLabel1_2->setBuddy( m_pIntNumInputIncrement );
+    textLabel2->setBuddy( m_pLineEditMinValue );
+    textLabel3->setBuddy( m_pLineEditMaxValue );
+    textLabel4->setBuddy( m_pLineEditStartValue );
+    textLabel5->setBuddy( m_pIntNumInputCache );
+    textLabel1->setBuddy( m_pLineEditSequenceName );
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateSequenceWidget1Base::~KPGCreateSequenceWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateSequenceWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create sequence" ) );
+    groupBox1->setTitle( tr2i18n( "Properties" ) );
+    textLabel1_2->setText( tr2i18n( "&Increment by:" ) );
+    textLabel2->setText( tr2i18n( "Mi&nimum value:" ) );
+    textLabel3->setText( tr2i18n( "Ma&ximum value:" ) );
+    textLabel4->setText( tr2i18n( "S&tart value:" ) );
+    textLabel5->setText( tr2i18n( "C&ache:" ) );
+    textLabel1_3->setText( QString::null );
+    m_pCheckBoxCycle->setText( tr2i18n( "&Cycle" ) );
+    m_pCheckBoxCycle->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    textLabel1->setText( tr2i18n( "New sequence &name:" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+}
+
+void KPGCreateSequenceWidget1Base::slotSequenceNameChanged(const QString&)
+{
+    qWarning( "KPGCreateSequenceWidget1Base::slotSequenceNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatesequencewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,364 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateSequenceWidget1Base</class>
+<comment>Widget for create sequence Wizard</comment>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateSequenceWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>296</width>
+            <height>345</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create sequence</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Properties</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Increment by:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pIntNumInputIncrement</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KIntNumInput">
+                            <property name="name">
+                                <cstring>m_pIntNumInputIncrement</cstring>
+                            </property>
+                            <property name="value">
+                                <number>1</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Mi&amp;nimum value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditMinValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditMinValue</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="1">
+                    <property name="name">
+                        <cstring>layout5</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Ma&amp;ximum value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditMaxValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditMaxValue</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel4</cstring>
+                            </property>
+                            <property name="text">
+                                <string>S&amp;tart value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditStartValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditStartValue</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel5</cstring>
+                            </property>
+                            <property name="text">
+                                <string>C&amp;ache:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pIntNumInputCache</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KIntNumInput">
+                            <property name="name">
+                                <cstring>m_pIntNumInputCache</cstring>
+                            </property>
+                            <property name="value">
+                                <number>1</number>
+                            </property>
+                            <property name="minValue">
+                                <number>1</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="1">
+                    <property name="name">
+                        <cstring>layout10</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxCycle</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Cycle</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+C</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+        <spacer row="3" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="2" column="2">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>16</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Minimum</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>16</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout9</cstring>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel" row="0" column="0">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New sequence &amp;name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditSequenceName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pLineEditSequenceName</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>LineEditPanel</enum>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout8</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer4</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>180</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditSequenceName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateSequenceWidget1Base</receiver>
+        <slot>slotSequenceNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditSequenceName</tabstop>
+    <tabstop>m_pComboBoxSchema</tabstop>
+    <tabstop>m_pIntNumInputIncrement</tabstop>
+    <tabstop>m_pLineEditMinValue</tabstop>
+    <tabstop>m_pLineEditMaxValue</tabstop>
+    <tabstop>m_pLineEditStartValue</tabstop>
+    <tabstop>m_pCheckBoxCycle</tabstop>
+    <tabstop>m_pIntNumInputCache</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotSequenceNameChanged(const QString&amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,77 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatesequencewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "kpgcreatesequencewidget1.h"
+
+
+KPGCreateSequenceWizard::KPGCreateSequenceWizard(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGCreateSequenceWidget1 *pCreateSequenceWidget1 = new KPGCreateSequenceWidget1(WizardPage1, "KPGCreateSequenceWidget1", listOfSchemas);
+  m_pPageWidget1 = pCreateSequenceWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateSequenceWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  languageChange();
+}
+
+KPGCreateSequenceWizard::~KPGCreateSequenceWizard()
+{
+}
+
+void KPGCreateSequenceWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new sequence" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Sequence name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateSequenceWizard::showPage(QWidget *pPage)
+{ 
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    strSQL.append((static_cast <KPGCreateSequenceWidget1 *> (m_pPageWidget1))->getSQL());
+		strSQL.append(";\n");
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatesequencewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatesequencewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATESEQUENCEWIZARD_H
+#define KPGCREATESEQUENCEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class QListViewItem;
+
+/**
+Create sequence Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateSequenceWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateSequenceWizard(QWidget *parent, const char *name, QPtrList<QListViewItem> &);
+    ~KPGCreateSequenceWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,107 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablecolumnwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "kpgcreatetablewidget2.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTableColumnWizard::KPGCreateTableColumnWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, const QString &strNamespace, const QString& strTableName)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strTableName = strTableName;
+  m_strNamespace = strNamespace; 
+  
+  KPGCreateTableWidget2 *pCreateTableWidget2 = new KPGCreateTableWidget2(WizardPage1, "KPGCreateTableWidget2", pDatabase);
+  m_pPageWidget1 = pCreateTableWidget2;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTableWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+        
+  // default schema in page 2 is the same as in page 1
+  pCreateTableWidget2->refreshListOfDatatypes();
+  
+  pCreateTableWidget2->m_pLineEditColumnName->setFocus();
+  
+  languageChange();
+}
+
+
+KPGCreateTableColumnWizard::~KPGCreateTableColumnWizard()
+{
+}
+
+
+void KPGCreateTableColumnWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Add Column to Table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Define table column(s)" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTableColumnWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    KPGCreateTableWidget2 *pCreateTableWidget2 = static_cast <KPGCreateTableWidget2 *> (m_pPageWidget1);
+    
+    // prepare SQL statement
+    QString strSQL;
+    
+    QListViewItem * pItem = pCreateTableWidget2->m_pListViewColumns->firstChild();
+    while(pItem)
+    {
+      strSQL.append("ALTER TABLE ");
+      strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+      strSQL.append(" ADD COLUMN ");
+      strSQL.append(KPGUtil::quotedName(pItem->text(0))); // name
+      strSQL.append(" ");
+      strSQL.append(pItem->text(1)); // definition
+      strSQL.append(";\n");
+      
+      pItem = pItem->nextSibling();
+    }
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatetablecolumnwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablecolumnwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLECOLUMNWIZARD_H
+#define KPGCREATETABLECOLUMNWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGDatabase;
+
+/**
+Alter table Add column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableColumnWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTableColumnWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, const QString &, const QString &);
+    ~KPGCreateTableColumnWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+    QString m_strTableName; // name of the created table
+    QString m_strNamespace; // name of the namespace    
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,136 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetableconstraintwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+#include <qwidgetstack.h> 
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgcreatetablewidget3.h"
+#include "../kpgutil.h"
+
+KPGCreateTableConstraintWizard::KPGCreateTableConstraintWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable, bool bAllowPrimaryKey, int iRaisedWidget)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+  
+  m_strTableName = pTable->text(0);
+  m_strNamespace = pSchema->text(0); 
+  
+  KPGCreateTableWidget3 *pCreateTableWidget3 = new KPGCreateTableWidget3(WizardPage1, "KPGCreateTableWidget3", pDatabase, bAllowPrimaryKey);
+  m_pPageWidget1 = pCreateTableWidget3;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTableWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  // setup initial state for KPGCreateTableWidget3
+  pTable->getTableColumnsFolder()->fillListColumnWizInfoWithChildItems(pCreateTableWidget3->getListOfAvailableColumns(), false);
+	pCreateTableWidget3->refreshAvailableColumns();
+	
+  pCreateTableWidget3->setNamespace(pSchema->text(0));
+  pCreateTableWidget3->setTableName(pTable->text(0));
+  
+  if(pServer->versionMajor() >= 8)
+    pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateTableWidget3->m_pComboBoxTablespace);
+  else
+    pCreateTableWidget3->m_pComboBoxTablespace->setEnabled(false);
+  
+		        
+  if(pCreateTableWidget3->m_pComboBoxRefTable->count() > 0)
+    pCreateTableWidget3->refTableSelectChanged();
+      
+  pCreateTableWidget3->m_pLineEditConstraintName->setText(""); // clear preselected default name
+  
+  if(iRaisedWidget > 0)
+    {
+      int iIndex = iRaisedWidget;
+      if(!bAllowPrimaryKey) iIndex--; // because PK is not inserted to combobox
+      
+      pCreateTableWidget3->m_pComboBoxConstraintType->setCurrentItem(iIndex);
+      pCreateTableWidget3->m_pWidgetStack->raiseWidget(iRaisedWidget);
+    }
+  languageChange();
+}
+
+
+KPGCreateTableConstraintWizard::~KPGCreateTableConstraintWizard()
+{
+}
+
+void KPGCreateTableConstraintWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Add Constraint to Table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Define table constraints" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTableConstraintWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    KPGCreateTableWidget3 *pCreateTableWidget3 = static_cast <KPGCreateTableWidget3 *> (m_pPageWidget1);
+    
+    // prepare SQL statement
+    QString strSQL;
+    
+    QListViewItem * pItem = pCreateTableWidget3->m_pListViewConstraints->firstChild();
+    while(pItem)
+    {
+      QString strAlter("ALTER TABLE ");
+    
+      strAlter.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+       strAlter.append(" ADD ");
+      strAlter.append(pItem->text(0));
+      strAlter.append(";\n");
+      
+      strSQL.append(strAlter);
+              
+      pItem = pItem->nextSibling();
+    }
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatetableconstraintwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableconstraintwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLECONSTRAINTWIZARD_H
+#define KPGCREATETABLECONSTRAINTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGDatabase;
+class KPGSchema; 
+class KPGTable;
+
+
+/**
+Create constraint Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableConstraintWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTableConstraintWizard(QWidget *parent, const char *name, KPGDatabase *, KPGSchema *, KPGTable *, bool, int);
+    ~KPGCreateTableConstraintWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+    QString m_strTableName; // name of the created table
+    QString m_strNamespace; // name of the namespace    
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,112 @@
+//
+// C++ Implementation: kpgcreatetableindexwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetableindexwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kactionselector.h> 
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgcreatetablewidget4.h"
+
+
+KPGCreateTableIndexWizard::KPGCreateTableIndexWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+  
+	KPGCreateTableWidget4 *pCreateTableWidget4 = new KPGCreateTableWidget4(WizardPage1, "KPGCreateTableWidget4", pDatabase);
+	m_pPageWidget1 = pCreateTableWidget4;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateTableWidget4, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+	// setup initial state for KPGCreateTableWidget3
+  	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(pCreateTableWidget4->m_pActionSelectorIDXColumns->availableListBox(), false);
+	pTable->getTableColumnsFolder()->fillListColumnWizInfoWithChildItems(pCreateTableWidget4->getListOfAvailableColumns());
+	
+	pCreateTableWidget4->setNamespace(pSchema->text(0));
+  	pCreateTableWidget4->setTableName(pTable->text(0));
+  
+	if(pServer->versionMajor() >= 8)
+		pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateTableWidget4->m_pComboBoxTablespace);
+	else
+		pCreateTableWidget4->m_pComboBoxTablespace->setEnabled(false);
+				
+	languageChange();
+}
+
+
+KPGCreateTableIndexWizard::~KPGCreateTableIndexWizard()
+{
+}
+
+void KPGCreateTableIndexWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Add Index to Table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Define table indexes" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTableIndexWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    KPGCreateTableWidget4 *pCreateTableWidget4 = static_cast <KPGCreateTableWidget4 *> (m_pPageWidget1);
+    
+    // prepare SQL statement
+    QString strSQL;
+    
+    QListViewItem * pItem = pCreateTableWidget4->m_pListViewIndexes->firstChild();
+    while(pItem)
+    {
+      strSQL.append(pItem->text(0));
+      strSQL.append(";\n");
+      
+      pItem = pItem->nextSibling();
+    }
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatetableindexwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetableindexwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: kpgcreatetableindexwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEINDEXWIZARD_H
+#define KPGCREATETABLEINDEXWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGDatabase;
+class KPGSchema; 
+class KPGTable;
+
+/**
+Create index Wizard. Add index to existing table.
+
+ at author Lumir Vanek
+*/
+class KPGCreateTableIndexWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTableIndexWizard(QWidget *parent, const char *name, KPGDatabase *, KPGSchema *, KPGTable *);
+    ~KPGCreateTableIndexWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,66 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablespacewidget1.h"
+
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <kurlrequester.h>
+
+#include "../kpgutil.h"
+
+
+KPGCreateTablespaceWidget1::KPGCreateTablespaceWidget1(QWidget *parent, const char *name)
+ : KPGCreateTablespaceWidget1Base(parent, name)
+{
+  m_pLineEditTablespaceName->setFocus();
+  m_pURLRequesterPath->setMode(KFile::Directory);
+}
+
+
+KPGCreateTablespaceWidget1::~KPGCreateTablespaceWidget1()
+{
+}
+
+void KPGCreateTablespaceWidget1::slotTablespaceNameChanged(const QString& strText)
+{
+  emit sigEnableNextButton(!strText.isEmpty() && !m_pURLRequesterPath->url().isEmpty());
+}
+
+void KPGCreateTablespaceWidget1::slotPathChanged(const QString &strPath)
+{
+  emit sigEnableNextButton(!strPath.isEmpty() && !m_pLineEditTablespaceName->text().isEmpty());
+}
+
+// Return part of SQL stetement for CREATE TABLESPACE
+const QString KPGCreateTablespaceWidget1::getSQL() const
+{
+	QString strSql("CREATE TABLESPACE ");
+	
+	strSql.append(KPGUtil::quotedName(m_pLineEditTablespaceName->text()));
+	
+	if(m_pComboBoxOwner->currentItem() > 0)
+	{
+		strSql.append("\nOWNER ");
+		strSql.append(KPGUtil::quotedName(m_pComboBoxOwner->currentText()));
+	}
+	
+	strSql.append(" LOCATION '");
+	
+	QString strPath(m_pURLRequesterPath->url());
+	strPath = strPath.replace("/", "//");
+	strSql.append(strPath);
+	strSql.append("'");
+	
+	return strSql;
+}
+
+#include "kpgcreatetablespacewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLESPACEWIDGET1_H
+#define KPGCREATETABLESPACEWIDGET1_H
+
+#include "kpgcreatetablespacewidget1base.h"
+
+/**
+Widget for create tablespace Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTablespaceWidget1 : public KPGCreateTablespaceWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateTablespaceWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateTablespaceWidget1();
+
+		const QString getSQL() const;
+		
+protected slots:
+
+    virtual void slotTablespaceNameChanged(const QString &);
+    virtual void slotPathChanged(const QString &);
+     virtual void slotOwnerActivated(const QString &) {;} // do nothing, redefined in KPGModifyTablespaceWidget1
+		
+signals:
+		void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,127 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablespacewidget1base.ui'
+**
+** Created: Út dub 1 13:07:35 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablespacewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <kurlrequester.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+#include "kurlrequester.h"
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGCreateTablespaceWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTablespaceWidget1Base::KPGCreateTablespaceWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTablespaceWidget1Base" );
+    KPGCreateTablespaceWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTablespaceWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditTablespaceName = new KLineEdit( this, "m_pLineEditTablespaceName" );
+    layout1->addWidget( m_pLineEditTablespaceName );
+
+    KPGCreateTablespaceWidget1BaseLayout->addMultiCellLayout( layout1, 0, 0, 0, 1 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout2->addWidget( textLabel1_2 );
+
+    m_pComboBoxOwner = new KComboBox( FALSE, this, "m_pComboBoxOwner" );
+    layout2->addWidget( m_pComboBoxOwner );
+
+    KPGCreateTablespaceWidget1BaseLayout->addLayout( layout2, 1, 0 );
+    spacer1 = new QSpacerItem( 201, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateTablespaceWidget1BaseLayout->addItem( spacer1, 0, 2 );
+    spacer2 = new QSpacerItem( 241, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateTablespaceWidget1BaseLayout->addMultiCell( spacer2, 1, 1, 1, 2 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout3->addWidget( textLabel2 );
+
+    m_pURLRequesterPath = new KURLRequester( this, "m_pURLRequesterPath" );
+    layout3->addWidget( m_pURLRequesterPath );
+
+    KPGCreateTablespaceWidget1BaseLayout->addMultiCellLayout( layout3, 2, 2, 0, 2 );
+    spacer3 = new QSpacerItem( 20, 31, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTablespaceWidget1BaseLayout->addItem( spacer3, 3, 2 );
+    languageChange();
+    resize( QSize(352, 210).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditTablespaceName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotTablespaceNameChanged(const QString&) ) );
+    connect( m_pURLRequesterPath, SIGNAL( textChanged(const QString&) ), this, SLOT( slotPathChanged(const QString&) ) );
+    connect( m_pComboBoxOwner, SIGNAL( activated(const QString&) ), this, SLOT( slotOwnerActivated(const QString&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditTablespaceName );
+    textLabel1_2->setBuddy( m_pLineEditTablespaceName );
+    textLabel2->setBuddy( m_pURLRequesterPath );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTablespaceWidget1Base::~KPGCreateTablespaceWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTablespaceWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Tablespace name and properties" ) );
+    textLabel1->setText( tr2i18n( "New &tablespace name:" ) );
+    textLabel1_2->setText( tr2i18n( "&Owner:" ) );
+    m_pComboBoxOwner->clear();
+    m_pComboBoxOwner->insertItem( tr2i18n( "DEFAULT" ) );
+    textLabel2->setText( tr2i18n( "&Path:" ) );
+}
+
+void KPGCreateTablespaceWidget1Base::slotTablespaceNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTablespaceWidget1Base::slotTablespaceNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget1Base::slotPathChanged(const QString&)
+{
+    qWarning( "KPGCreateTablespaceWidget1Base::slotPathChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget1Base::slotOwnerActivated(const QString&)
+{
+    qWarning( "KPGCreateTablespaceWidget1Base::slotOwnerActivated(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatetablespacewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,196 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTablespaceWidget1Base</class>
+<comment>Widget for create tablespace Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTablespaceWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>352</width>
+            <height>210</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Tablespace name and properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New &amp;tablespace name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditTablespaceName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditTablespaceName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Owner:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditTablespaceName</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>DEFAULT</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxOwner</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="2">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>201</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>241</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Path:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pURLRequesterPath</cstring>
+                    </property>
+                </widget>
+                <widget class="KURLRequester">
+                    <property name="name">
+                        <cstring>m_pURLRequesterPath</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="3" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>31</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditTablespaceName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTablespaceWidget1Base</receiver>
+        <slot>slotTablespaceNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pURLRequesterPath</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTablespaceWidget1Base</receiver>
+        <slot>slotPathChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxOwner</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTablespaceWidget1Base</receiver>
+        <slot>slotOwnerActivated(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTablespaceNameChanged(const QString &amp;)</slot>
+    <slot access="protected">slotPathChanged(const QString &amp;)</slot>
+    <slot access="protected">slotOwnerActivated(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,203 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablespacewidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTablespaceWidget2::KPGCreateTablespaceWidget2(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateTablespaceWidget2Base(parent, name)
+{
+  m_bGrantOrRevoke = bGrantOrRevoke;
+  
+  if(bGrantOrRevoke)
+  {
+    strGR = strGR + "GRANT ";
+    strTF = strTF + " TO ";
+    m_pCheckBoxCascade->hide();
+  }
+  else
+  {
+    strGR = "REVOKE ";
+    strTF = " FROM ";
+    m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+  }
+  
+  m_pListViewGrants->setSortColumn(-1);
+}
+
+
+KPGCreateTablespaceWidget2::~KPGCreateTablespaceWidget2()
+{
+}
+
+void KPGCreateTablespaceWidget2::slotCheckBoxPublicToggled(bool bState)
+{
+  m_pListBoxUsersGroups->setEnabled(!bState);
+  m_pCheckBoxGrantOptions->setEnabled(!bState); // Grant options can only be granted to individual users, not to groups or PUBLIC.
+  enableAddGrantButton();
+}
+
+void KPGCreateTablespaceWidget2::slotGrantOptionsToggled(bool bState)
+{
+  m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateTablespaceWidget2::slotListBoxUsersSelectionChanged()
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateTablespaceWidget2::enableAddGrantButton()
+{
+  bool bAnyUserOrGroupChecked = false;        
+  
+  if(m_pCheckBoxPublic->isChecked()) 
+    bAnyUserOrGroupChecked = true;
+  else
+    {
+      if(m_pListBoxUsersGroups->count() > 0)
+      {
+        for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+        if(m_pListBoxUsersGroups->isSelected(i))
+          {
+            bAnyUserOrGroupChecked = true;
+            break;
+          }
+      }
+    }
+  m_pPushButtonGrantAdd->setEnabled(bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+///////////////////////////////////////////////////////////////////// 
+
+void KPGCreateTablespaceWidget2::slotGrantAdd()
+{
+  QListViewItem *pLastItem = 0;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    pLastItem = pItem;
+    pItem = pItem->nextSibling();
+  }
+  
+  QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+  
+  QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+  QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+  QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+  
+  if(m_pCheckBoxPublic->isChecked())
+  {
+    strListOfSQLs.append(strGR + "CREATE ON TABLESPACE " + KPGUtil::quotedName(m_strTablespaceName) + strTF + "PUBLIC");
+  }
+  else
+  {
+    for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+    {
+      if(m_pListBoxUsersGroups->isSelected(i))
+      {
+        QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << k_funcinfo << " Bad object type !" << endl;
+          return;
+        }
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+               
+                
+        if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+          strListOfSQLs.append(strGR + "CREATE ON TABLESPACE " + KPGUtil::quotedName(m_strTablespaceName) + strTF + "GROUP " + pListBoxItem->text());
+        else
+          strListOfSQLs.append(strGR + strGOF + "CREATE ON TABLESPACE " + KPGUtil::quotedName(m_strTablespaceName) + strTF + pListBoxItem->text() + strWGO + strC);
+        
+      }
+    }
+  }
+      
+  // Create items for new grants
+  for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+  {
+    QString strSQL(*it);
+    QListViewItem *pNewItem;
+    
+    if(pLastItem == 0) 
+      pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+    else
+      pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL); 
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCreateTablespaceWidget2::slotGrantDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+  if(pSelectedItem)
+      delete pSelectedItem;
+      
+  if(m_pListViewGrants->childCount() == 0)
+     emit sigEnableNextButton(false);
+  
+  m_pPushButtonGrantDel->setEnabled(false);
+  
+  enableAddGrantButton();
+}
+
+void KPGCreateTablespaceWidget2::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateTablespaceWidget2::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for GRANT CREATE
+const QString KPGCreateTablespaceWidget2::getSQL() const
+{
+  QString strSQL;
+  
+  QListViewItem * pItem = m_pListViewGrants->firstChild();
+  while(pItem)
+  {
+    strSQL.append(pItem->text(0));
+    strSQL.append(";\n");
+            
+    pItem = pItem->nextSibling();
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatetablespacewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLESPACEWIDGET2_H
+#define KPGCREATETABLESPACEWIDGET2_H
+
+#include "kpgcreatetablespacewidget2base.h"
+
+/**
+Widget for create tablespace Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTablespaceWidget2 : public KPGCreateTablespaceWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateTablespaceWidget2(QWidget *parent, const char *name, bool = true);
+    ~KPGCreateTablespaceWidget2();
+
+    void setTablespaceName(const QString &strTablespaceName) { m_strTablespaceName = strTablespaceName; }
+    const QString getSQL() const;
+
+protected:
+    void enableAddGrantButton();
+    
+protected:
+    QString m_strTablespaceName; // name of the created tablespace
+            
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected slots:
+
+    virtual void slotCheckBoxPublicToggled(bool);
+    virtual void slotListBoxUsersSelectionChanged();
+    
+    virtual void slotGrantOptionsToggled(bool);
+    
+    virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+    
+    virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+            
+signals:
+    void sigEnableNextButton(bool);  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,218 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablespacewidget2base.ui'
+**
+** Created: Út dub 1 13:07:35 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablespacewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateTablespaceWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTablespaceWidget2Base::KPGCreateTablespaceWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTablespaceWidget2Base" );
+    KPGCreateTablespaceWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTablespaceWidget2BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Command" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateTablespaceWidget2BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 1 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+    layout1->addWidget( m_pCheckBoxPublic );
+    layout2->addLayout( layout1 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+    layout2->addWidget( m_pListBoxUsersGroups );
+
+    KPGCreateTablespaceWidget2BaseLayout->addMultiCellLayout( layout2, 0, 0, 0, 1 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateTablespaceWidget2BaseLayout->addWidget( m_pCheckBoxGrantOptions, 1, 0 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateTablespaceWidget2BaseLayout->addWidget( m_pCheckBoxCascade, 1, 1 );
+    languageChange();
+    resize( QSize(364, 327).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTablespaceWidget2Base::~KPGCreateTablespaceWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTablespaceWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Grant create privileges" ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Command" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxAllToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxAllToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxSelectToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxSelectToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxInsertToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxInsertToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxUpdateToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxUpdateToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxDeleteToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxDeleteToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxRuleToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxRuleToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxReferencesToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxReferencesToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotCheckBoxTriggerToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotCheckBoxTriggerToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTablespaceWidget2Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateTablespaceWidget2Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatetablespacewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,250 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTablespaceWidget2Base</class>
+<comment>Widged for create tablespace wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTablespaceWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>364</width>
+            <height>327</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Grant create privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Command</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Users and groups:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxUsersGroups</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPublic</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;PUBLIC</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxUsersGroups</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="selectionMode">
+                        <enum>Multi</enum>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTablespaceWidget2Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxAllToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotCheckBoxSelectToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxInsertToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxUpdateToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxDeleteToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxRuleToggled(bool)</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckBoxReferencesToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxTriggerToggled(bool)</slot>
+    <slot access="protected">slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,105 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablespacewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "kpgcreatetablespacewidget1.h"
+#include "kpgcreatetablespacewidget2.h"
+
+KPGCreateTablespaceWizard::KPGCreateTablespaceWizard(QWidget *parent, const char *name, KPGServer *pServer)
+ : KPG4StepsWizard(parent, name)
+{
+  KPGCreateTablespaceWidget1 *pCreateTablespaceWidget1 = new KPGCreateTablespaceWidget1(WizardPage1, "KPGCreateTablespaceWidget1");
+  m_pPageWidget1 = pCreateTablespaceWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTablespaceWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  KPGCreateTablespaceWidget2 *pCreateTablespaceWidget2 = new KPGCreateTablespaceWidget2(WizardPage2, "KPGCreateTablespaceWidget2");
+  m_pPageWidget2 = pCreateTablespaceWidget2;
+  WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+  //connect(pCreateTablespaceWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+  
+  pServer->getUsersFolder()->fillComboBoxWithChildItems(pCreateTablespaceWidget1->m_pComboBoxOwner);
+  
+  pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateTablespaceWidget2->m_pListBoxUsersGroups);
+  pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateTablespaceWidget2->m_pListBoxUsersGroups);
+  
+  languageChange();
+  
+  setNextEnabled(WizardPage2, true);
+}
+
+
+KPGCreateTablespaceWizard::~KPGCreateTablespaceWizard()
+{
+}
+
+void KPGCreateTablespaceWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+    
+    setCaption( i18n( "Create new tablespace" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Tablespace name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Grant create privileges" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTablespaceWizard::showPage(QWidget *pPage)
+{ 
+  if(pPage == WizardPage2) // Step 2 - Define user rights
+  {
+    KPGCreateTablespaceWidget1 *pCreateTablespaceWidget1 = static_cast <KPGCreateTablespaceWidget1 *> (m_pPageWidget1);
+    KPGCreateTablespaceWidget2 *pCreateTablespaceWidget2 = static_cast <KPGCreateTablespaceWidget2 *> (m_pPageWidget2);
+        
+    // Set tablespace name
+    pCreateTablespaceWidget2->setTablespaceName(pCreateTablespaceWidget1->m_pLineEditTablespaceName->text());
+  }
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    
+    strSQL.append((static_cast <KPGCreateTablespaceWidget1 *> (m_pPageWidget1))->getSQL());
+    strSQL.append(";\n\n");
+    strSQL.append((static_cast <KPGCreateTablespaceWidget2 *> (m_pPageWidget2))->getSQL());
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage4) // Step 4 - Check operation result
+  {
+    runQuery(false);
+  }
+  
+  // call parent
+  KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatetablespacewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablespacewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLESPACEWIZARD_H
+#define KPGCREATETABLESPACEWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGServer;
+
+/**
+Create tablespace Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTablespaceWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTablespaceWizard(QWidget *parent, const char *name, KPGServer *);
+    ~KPGCreateTablespaceWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();      
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,70 @@
+//
+// C++ Implementation: kpgcreatetablewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewidget1.h"
+
+// include files for Qt
+#include <qlistview.h>
+#include <qspinbox.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+
+#include "../kpgutil.h"
+
+KPGCreateTableWidget1::KPGCreateTableWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas)
+ : KPGCreateTableWidget1Base(parent, name)
+{
+	m_pLineEditTableName->setFocus();
+     
+	int iCurrentItem = -1;
+	int i = 0;  
+	for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+	{
+		m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+		
+		if(pSchema->text(0) == "public")
+			iCurrentItem = i;
+			
+		++i;
+	}
+		
+	if(iCurrentItem >= 0)
+		m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+}
+
+
+KPGCreateTableWidget1::~KPGCreateTableWidget1()
+{
+}
+
+void KPGCreateTableWidget1::slotTableNameChanged(const QString& strText)
+{
+	emit sigEnableNextButton(! strText.isEmpty());
+}
+
+void KPGCreateTableWidget1::slotDefaultFillFactorToggled(bool bState)
+{
+    m_pSpinBoxFillFactor->setEnabled(!bState);
+}
+
+// Return part of SQL statement for CREATE TABLE
+const QString KPGCreateTableWidget1::getSQL() const
+{
+	QString strSql("CREATE TABLE ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), m_pLineEditTableName->text()));
+	
+	return strSql;
+}
+
+#include "kpgcreatetablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: kpgcreatetablewidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIDGET1_H
+#define KPGCREATETABLEWIDGET1_H
+
+#include "kpgcreatetablewidget1base.h"
+
+class QListViewItem;
+
+/**
+Widget for Create Table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWidget1 : public KPGCreateTableWidget1Base
+{
+    Q_OBJECT
+public:
+    KPGCreateTableWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> &);
+    ~KPGCreateTableWidget1();
+
+		const QString getSQL() const;
+		
+protected slots:
+
+    virtual void slotTableNameChanged(const QString &);
+    virtual void slotDefaultFillFactorToggled(bool);
+		
+signals:
+		void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,163 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:25 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcombobox.h>
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qspinbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTableWidget1Base::KPGCreateTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTableWidget1Base" );
+    KPGCreateTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTableWidget1BaseLayout"); 
+
+    layout7 = new QHBoxLayout( 0, 0, 6, "layout7"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout2->addWidget( m_pComboBoxSchema );
+    layout7->addLayout( layout2 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout6->addWidget( textLabel1_2 );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, this, "m_pComboBoxTablespace" );
+    layout6->addWidget( m_pComboBoxTablespace );
+    layout7->addLayout( layout6 );
+    spacer4 = new QSpacerItem( 41, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout7->addItem( spacer4 );
+
+    KPGCreateTableWidget1BaseLayout->addMultiCellLayout( layout7, 0, 0, 0, 1 );
+
+    layout8 = new QHBoxLayout( 0, 0, 6, "layout8"); 
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout3->addWidget( textLabel1 );
+
+    m_pLineEditTableName = new KLineEdit( this, "m_pLineEditTableName" );
+    layout3->addWidget( m_pLineEditTableName );
+    layout8->addLayout( layout3 );
+    spacer2 = new QSpacerItem( 164, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout8->addItem( spacer2 );
+
+    KPGCreateTableWidget1BaseLayout->addMultiCellLayout( layout8, 1, 1, 0, 1 );
+    spacer5 = new QSpacerItem( 60, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateTableWidget1BaseLayout->addItem( spacer5, 2, 1 );
+    spacer1 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTableWidget1BaseLayout->addItem( spacer1, 3, 0 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    layout6_2 = new QVBoxLayout( 0, 0, 6, "layout6_2"); 
+
+    m_pCheckBoxDefaultFillFactor = new QCheckBox( groupBox1, "m_pCheckBoxDefaultFillFactor" );
+    m_pCheckBoxDefaultFillFactor->setChecked( TRUE );
+    layout6_2->addWidget( m_pCheckBoxDefaultFillFactor );
+
+    m_pSpinBoxFillFactor = new QSpinBox( groupBox1, "m_pSpinBoxFillFactor" );
+    m_pSpinBoxFillFactor->setEnabled( FALSE );
+    m_pSpinBoxFillFactor->setMaxValue( 100 );
+    m_pSpinBoxFillFactor->setMinValue( 10 );
+    m_pSpinBoxFillFactor->setValue( 90 );
+    layout6_2->addWidget( m_pSpinBoxFillFactor );
+
+    groupBox1Layout->addMultiCellLayout( layout6_2, 0, 1, 1, 1 );
+
+    m_pCheckBoxWithoutOIDs = new QCheckBox( groupBox1, "m_pCheckBoxWithoutOIDs" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxWithoutOIDs, 0, 0 );
+
+    KPGCreateTableWidget1BaseLayout->addWidget( groupBox1, 2, 0 );
+    languageChange();
+    resize( QSize(383, 285).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditTableName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotTableNameChanged(const QString&) ) );
+    connect( m_pCheckBoxDefaultFillFactor, SIGNAL( toggled(bool) ), this, SLOT( slotDefaultFillFactorToggled(bool) ) );
+
+    // buddies
+    textLabel2->setBuddy( m_pComboBoxSchema );
+    textLabel1_2->setBuddy( m_pComboBoxTablespace );
+    textLabel1->setBuddy( m_pLineEditTableName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTableWidget1Base::~KPGCreateTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Table - table name" ) );
+    textLabel2->setText( tr2i18n( "&Schema:" ) );
+    textLabel1_2->setText( tr2i18n( "&Tablespace:" ) );
+    m_pComboBoxTablespace->clear();
+    m_pComboBoxTablespace->insertItem( tr2i18n( "Default" ) );
+    textLabel1->setText( tr2i18n( "New table &name:" ) );
+    groupBox1->setTitle( tr2i18n( "Options" ) );
+    m_pCheckBoxDefaultFillFactor->setText( tr2i18n( "Default &fill factor" ) );
+    m_pCheckBoxDefaultFillFactor->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pSpinBoxFillFactor->setSuffix( tr2i18n( "%" ) );
+    m_pCheckBoxWithoutOIDs->setText( tr2i18n( "&Without OIDs" ) );
+    m_pCheckBoxWithoutOIDs->setAccel( QKeySequence( tr2i18n( "Alt+W" ) ) );
+}
+
+void KPGCreateTableWidget1Base::slotTableNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget1Base::slotTableNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget1Base::slotDefaultFillFactorToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget1Base::slotDefaultFillFactorToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatetablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,292 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTableWidget1Base</class>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>383</width>
+            <height>285</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create Table - table name</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout7</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Schema:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxSchema</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxSchema</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Tablespace:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer4</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>41</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout8</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>New table &amp;name:</string>
+                            </property>
+                            <property name="textFormat">
+                                <enum>PlainText</enum>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditTableName</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditTableName</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>164</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <spacer row="2" column="1">
+            <property name="name">
+                <cstring>spacer5</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>60</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="3" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="2" column="0">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Options</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="1" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxDefaultFillFactor</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Default &amp;fill factor</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+F</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QSpinBox">
+                            <property name="name">
+                                <cstring>m_pSpinBoxFillFactor</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="suffix">
+                                <string>%</string>
+                            </property>
+                            <property name="maxValue">
+                                <number>100</number>
+                            </property>
+                            <property name="minValue">
+                                <number>10</number>
+                            </property>
+                            <property name="value">
+                                <number>90</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxWithoutOIDs</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Without OIDs</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+W</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pLineEditTableName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget1Base</receiver>
+        <slot>slotTableNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxDefaultFillFactor</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget1Base</receiver>
+        <slot>slotDefaultFillFactorToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTableNameChanged(const QString &amp;)</slot>
+    <slot access="protected">slotDefaultFillFactorToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,723 @@
+//
+// C++ Implementation: kpgcreatetablewidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewidget2.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <klistview.h>
+#include <kpushbutton.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgdomainsfolder.h"
+#include "../DbObjects/kpgtypesfolder.h"
+#include "../kpgutil.h"
+
+
+#define NUM_BASIC_TYPES 35
+
+
+KPGCreateTableWidget2::KPGCreateTableWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+	: KPGCreateTableWidget2Base(parent, name)
+{
+	m_pDatabase = pDatabase;
+    
+    m_pListViewColumns->setAllColumnsShowFocus(true);
+    m_pListViewColumns->setSortColumn(-1);
+  
+    // fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxSchema, true); // only user schemas
+	
+	m_bIsDirty1 = false;
+	m_bIsDirty2 = false;
+}
+
+
+KPGCreateTableWidget2::~KPGCreateTableWidget2()
+{
+}
+
+void KPGCreateTableWidget2::refreshListOfDatatypes()
+{
+  m_pComboBoxDataType->clear();
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "serial");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigserial");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+  
+  if(m_pComboBoxDataType->count() != NUM_BASIC_TYPES)
+    kdDebug() << "KPGCreateTableWidget2::refreshListOfDatatypes : NUM_BASIC_TYPES wrong number" << endl;
+  
+  fillDomains();
+  fillUserDatatypes();
+}
+
+void KPGCreateTableWidget2::fillDomains()
+{
+  QString strNamespace(m_pComboBoxSchema->currentText());
+  
+  KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+  if(!pItem)
+  {
+    kdDebug() << "KPGCreateTableWidget2::fillDomains: no item found: " << strNamespace << endl;
+    return;
+  }
+        
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+  KPGDomainsFolder *pDomainsFolder = pSchema->getDomainsFolder();
+  
+  pDomainsFolder->fillComboBoxWithChildItems(m_pComboBoxDataType);
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+}
+
+void KPGCreateTableWidget2::fillUserDatatypes()
+{
+  QString strNamespace(m_pComboBoxSchema->currentText());
+  
+  KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+  if(!pItem)
+  {
+    kdDebug() << "KPGCreateTableWidget2::fillUserDatatypes: no item found: " << strNamespace << endl;
+    return;
+  }
+        
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+  KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+  
+  pTypesFolder->fillComboBoxWithChildItems(m_pComboBoxDataType, true);
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+  slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+void KPGCreateTableWidget2::slotSchemaActivated(int)
+{
+  refreshListOfDatatypes();
+}
+
+// Display comment for selected data type
+void KPGCreateTableWidget2::slotComboDataTypeActivated(const QString& strText)
+{
+	// Enable/disable precision and scale spins
+	m_pSpinBoxPrecision->setEnabled(false);
+	m_pSpinBoxScale->setEnabled(false);
+	m_pCheckBoxDefault->setEnabled(true);
+	m_pButtonSetDefaultNow->setEnabled(false);
+	
+	if(strText.find("(n)") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+	}
+	
+	if(strText.find("(p, s)") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+		m_pSpinBoxScale->setEnabled(true);
+	}
+	
+	if(strText.find("[(p)]") > 0)
+	{
+		m_pSpinBoxPrecision->setEnabled(true);
+	}
+
+	// Set help text for selected data type
+	if(strText == "char(n)")
+	{	
+		m_pTextLabelComment->setText("fixed-length, blank padded character string");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 10 );
+		
+		return;
+	}    
+
+	if(strText == "varchar(n)")
+	{	
+		m_pTextLabelComment->setText("variable-length character string");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 10 );
+		
+		return;
+	}    
+
+	if(strText == "text")
+	{	
+		m_pTextLabelComment->setText("variable-length character string, unlimited length");
+		return;
+	}
+	  
+	if(strText == "xml")
+	{	
+		m_pTextLabelComment->setText("XML well-formed data, unlimited length");
+		return;
+	}  
+
+
+	if(strText == "smallint")
+	{	
+		m_pTextLabelComment->setText("2 bytes, small range fixed-precision, -32768 to +32767");
+		return;
+	}    
+
+	if(strText == "integer")
+	{	
+		m_pTextLabelComment->setText("4 bytes, usual choice for fixed-precision, -2147483648 to +2147483647");
+		return;
+	}    
+
+	if(strText == "bigint")
+	{	
+		m_pTextLabelComment->setText("8 bytes, large range fixed-precision, -9223372036854775808 to 9223372036854775807");
+		return;
+	}    
+
+	if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+	{	
+		m_pTextLabelComment->setText("variable, user-specified precision, exact, no limit");
+		
+		m_pSpinBoxPrecision->setMinValue( 1 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+		m_pSpinBoxScale->setMinValue( 0 );
+		m_pSpinBoxScale->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+		return;
+	}    
+
+	if(strText == "real")
+	{	
+		m_pTextLabelComment->setText("4 bytes, variable-precision, inexact, 6 decimal digits precision");
+		return;
+	}    
+
+	if(strText == "double precision")
+	{	
+		m_pTextLabelComment->setText("8 bytes, variable-precision, inexact, 15 decimal digits precision");
+		return;
+	}    
+
+	if(strText == "money")
+	{	
+		m_pTextLabelComment->setText("currency amount. This datatype is deprecated. Use a numeric datatype instead");
+		return;
+	}  
+	
+	if(strText == "serial")
+	{	
+		m_pTextLabelComment->setText("4 bytes, autoincrementing integer, 1 to 2147483647");
+		m_pCheckBoxDefault->setEnabled(false);
+		return;
+	}    
+
+	if(strText == "bigserial")
+	{	
+		m_pTextLabelComment->setText("8 bytes, large autoincrementing integer, 1 to 9223372036854775807");
+		m_pCheckBoxDefault->setEnabled(false);
+		return;
+	}
+	
+	if(strText == "uuid")
+	{	
+		m_pTextLabelComment->setText("Universally Unique Identifier  (UUID)");
+		return;
+	}  
+	
+	if(strText == "bit(n)")
+	{	
+		m_pTextLabelComment->setText("fixed-length bit string");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 255 );	
+		return;
+	}
+	
+	if(strText == "bit varying(n)")
+	{	
+		m_pTextLabelComment->setText("variable-length bit string");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 999 );
+		
+		m_pSpinBoxPrecision->setValue( 255 );
+		
+		return;
+	}
+		
+	if(strText == "bool")
+	{	
+		m_pTextLabelComment->setText("logical Boolean (true/false)");
+		return;
+	}
+	
+	if(strText == "date")
+	{	
+		m_pTextLabelComment->setText("date, 4 bytes, 4713 BC - AD 32767");
+		m_pButtonSetDefaultNow->setEnabled(true);
+		return;
+	}
+		
+	if(strText == "time [(p)]")
+	{	
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 13 );
+		
+		m_pSpinBoxPrecision->setValue( 13 );
+		
+		m_pTextLabelComment->setText("time of day, 8 bytes, 00:00:00.00 - 23:59:59.99");
+		return;
+	}
+	
+	if(strText == "time [(p)] with time zone")
+	{	
+		m_pTextLabelComment->setText("time of day including time zone, 12 bytes, 00:00:00.00+12 - 23:59:59.99-12");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 13 );
+		
+		m_pSpinBoxPrecision->setValue( 13 );
+		return;
+	}
+	
+	if(strText == "timestamp [(p)]")
+	{	
+		m_pTextLabelComment->setText("date and time, 8 bytes, 4713 BC - AD 1465001");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxPrecision->setValue( 6 );
+		m_pButtonSetDefaultNow->setEnabled(true);
+
+		return;
+	}
+	
+	if(strText == "timestamp [(p)] with time zone")
+	{	
+		m_pTextLabelComment->setText("date and time, including time zone, 8 bytes, 4713 BC - AD 1465001");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxPrecision->setValue( 6 );
+		m_pButtonSetDefaultNow->setEnabled(true);
+		return;
+	}
+	
+	if(strText == "interval [(p)]")
+	{	
+		m_pTextLabelComment->setText("time span, 12 bytes, from -178000000 years to 178000000 years");
+		
+		m_pSpinBoxPrecision->setMinValue( 0 );
+		m_pSpinBoxPrecision->setMaxValue( 6 );
+		
+		m_pSpinBoxPrecision->setValue( 6 );
+		
+		return;
+	}
+	
+	if(strText == "bytea")
+	{	
+		m_pTextLabelComment->setText("variable-length binary data, 4 bytes plus the data");
+		return;
+	}
+		
+	if(strText == "point")
+	{	
+		m_pTextLabelComment->setText("geometric point in 2D plane");
+		return;
+	}
+	
+	if(strText == "line")
+	{	
+		m_pTextLabelComment->setText("infinite line in 2D plane");
+		return;
+	}
+	
+	if(strText == "lseg")
+	{	
+		m_pTextLabelComment->setText("line segment in 2D plane");
+		return;
+	}
+	
+	if(strText == "polygon")
+	{	
+		m_pTextLabelComment->setText("closed geometric path in 2D plane");
+		return;
+	}
+	
+	if(strText == "box")
+	{	
+		m_pTextLabelComment->setText("rectangular box in 2D plane");
+		return;
+	}
+	
+	if(strText == "path")
+	{	
+		m_pTextLabelComment->setText("open and closed geometric path in 2D plane");
+		return;
+	}
+	
+	if(strText == "circle")
+	{	
+		m_pTextLabelComment->setText("circle (center and radius) in 2D plane");
+		return;
+	}
+	
+	if(strText == "inet")
+	{	
+		m_pTextLabelComment->setText("IP host address, 12 bytes");
+		return;
+	}
+	
+	if(strText == "cidr")
+	{	
+		m_pTextLabelComment->setText("IP network address, 12 bytes");
+		return;
+	}
+	
+	if(strText == "macaddr")
+	{	
+		m_pTextLabelComment->setText("MAC address (Ethernet card hardware address), 6 bytes");
+		return;
+	}
+	
+	m_pTextLabelComment->setText("");
+}
+
+// Add new column to list
+void KPGCreateTableWidget2::slotColumnAdd()
+{
+	QString strColumnName(m_pLineEditColumnName->text());
+	QString strNamespace(m_pComboBoxSchema->currentText());
+	
+	QString strDefinition;
+	
+	if((m_pComboBoxDataType->currentItem() <= NUM_BASIC_TYPES - 1) || (strNamespace == "public"))
+		strDefinition = m_pComboBoxDataType->currentText(); // Don't quote build-in names
+	else
+		strDefinition = KPGUtil::fullyQualifiedName(strNamespace, m_pComboBoxDataType->currentText());
+		
+	if(strColumnName.isEmpty())
+	{
+		kdDebug() << "KPGCreateTableWidget2::slotColumnAdd - column name is empty !" << endl;
+		return;
+	}
+	
+	// Avoid column name duplicity
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewColumns->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		
+		if(pItem->text(0) == strColumnName)
+		{ 
+			KMessageBox::sorry(this, i18n("Column name already exists !"));
+			return;		
+		}	
+	  
+		pItem = pItem->nextSibling();
+	}
+	
+	//-----------------------------------------------------------	
+	int i;
+	if((i = strDefinition.find("(n)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+				
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+	}
+	
+	if((i = strDefinition.find("(p, s)")) > 0)
+	{
+		strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+		
+		strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxPrecision->value()).arg(m_pSpinBoxScale->value()));
+	}
+	
+	if((i = strDefinition.find("[(p)]")) > 0)
+	{
+		QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+		strDefinition = strDefinition.left(i); // strip (n)
+		
+		strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+		strDefinition.append(strDefinitionPostfix);
+	}
+	
+	// Append another properties
+	if(m_pSpinBoxNumDimensions->value() > 0)
+		strDefinition.append(m_pLineEditArrayDimDef->text());
+	
+	if(m_pCheckBoxUnique->isChecked())	
+		strDefinition.append(" UNIQUE");
+	
+	if(m_pCheckBoxNotNull->isChecked())	
+		strDefinition.append(" NOT NULL");
+					
+	if(m_pCheckBoxDefault->isChecked() && ! m_pLineEditDefaultValue->text().isEmpty())	
+	{
+		if(m_pCheckBoxQuotedDefault->isChecked() == false)
+			strDefinition.append(" DEFAULT " + m_pLineEditDefaultValue->text());
+		else
+			strDefinition.append(" DEFAULT '" + m_pLineEditDefaultValue->text() + "'");
+	}
+	
+	if(m_pCheckBoxCheck->isChecked() && ! m_pLineEditCheck->text().isEmpty())	
+		strDefinition.append(" CHECK (" + m_pLineEditCheck->text() + ")");
+				
+	// Create item for new column
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewColumns, strColumnName, strDefinition);
+	else
+		pNewItem = new QListViewItem(m_pListViewColumns, pLastItem, strColumnName, strDefinition);
+	
+	pNewItem->setPixmap(0, * m_pComboBoxDataType->pixmap(m_pComboBoxDataType->currentItem()));
+	
+	// Add column info to list
+	m_listOfColumns.appendColumn(new KPGTableColumnWizInfo(strColumnName, m_pComboBoxDataType->currentText(), m_pSpinBoxNumDimensions->value(), 1, *pNewItem->pixmap(0), QString::null));
+	
+	emit sigEnableNextButton(true);
+	m_pLineEditColumnName->setFocus(); // prepare for new column
+	m_pLineEditColumnName->setText("");
+	m_pLineEditDefaultValue->setText("");
+	m_pLineEditCheck->setText("");
+	m_pCheckBoxDefault->setChecked(false);
+	m_pCheckBoxCheck->setChecked(false);
+	m_pCheckBoxUnique->setChecked(false);
+	
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+}
+
+// Delete selected column
+void KPGCreateTableWidget2::slotColumnDelete()
+{
+    QListViewItem *pSelectedItem = m_pListViewColumns->selectedItem();
+	if(pSelectedItem)
+	{ 
+		m_listOfColumns.removeColumn(pSelectedItem->text(0));
+		delete pSelectedItem;
+	}
+			
+	if(!m_pListViewColumns->firstChild())
+		emit sigEnableNextButton(false);
+			
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+}
+
+// Move selected column Up
+void KPGCreateTableWidget2::slotColumnUp()
+{
+    QListViewItem *pSelectedItem = m_pListViewColumns->selectedItem();
+	if(!pSelectedItem) return;
+		
+	QListViewItem *pPrevItem = pSelectedItem->itemAbove();
+	if(!pPrevItem) return;
+		
+	pPrevItem = pPrevItem->itemAbove();
+				
+	m_pListViewColumns->takeItem(pSelectedItem);
+		
+	QListViewItem *pNewItem;
+		 
+	if(pPrevItem)
+		pNewItem = new QListViewItem(m_pListViewColumns, pPrevItem, pSelectedItem->text(0),  pSelectedItem->text(1));
+	else
+		pNewItem = new QListViewItem(m_pListViewColumns, pSelectedItem->text(0),  pSelectedItem->text(1));
+		
+	pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+		 		 
+	delete pSelectedItem;
+		 
+	m_pListViewColumns->setCurrentItem(pNewItem);
+	m_pListViewColumns->setSelected(pNewItem, true);
+		
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+}
+
+// Move selected column Down
+void KPGCreateTableWidget2::slotColumnDown()
+{
+    QListViewItem *pSelectedItem = m_pListViewColumns->selectedItem();
+	if(!pSelectedItem) return;
+		
+	QListViewItem *pAfterItem = pSelectedItem->itemBelow();
+	if(!pAfterItem) return;
+		
+	m_pListViewColumns->takeItem(pSelectedItem);
+		 
+	QListViewItem *pNewItem = new QListViewItem(m_pListViewColumns, pAfterItem, pSelectedItem->text(0), pSelectedItem->text(1));
+	pNewItem->setPixmap(0, * pSelectedItem->pixmap(0));
+		 		 
+	delete pSelectedItem;
+		 
+	m_pListViewColumns->setCurrentItem(pNewItem);
+	m_pListViewColumns->setSelected(pNewItem, true);
+		
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+}
+
+// Fired, when user change column name
+void KPGCreateTableWidget2::slotColumnNameChanged(const QString& strText)
+{
+    m_pBtnAddColumn->setEnabled(! strText.isEmpty());
+}
+
+
+void KPGCreateTableWidget2::slotColumnSelectionChanged(QListViewItem *pItem)
+{
+    m_pBtnDelColumn->setEnabled(pItem != 0);
+	m_pBtnColumnUp->setEnabled(pItem != 0);
+	m_pBtnColumnDown->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget2::slotColumnCurrentChanged(QListViewItem *pItem)
+{
+    m_pBtnDelColumn->setEnabled(pItem != 0);
+	m_pBtnColumnUp->setEnabled(pItem != 0);
+	m_pBtnColumnDown->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget2::slotNumDimensionsChanged(int nDimensions)
+{
+    if(nDimensions > 0)
+	{
+		m_pLineEditArrayDimDef->setEnabled(true);
+		QString strDimensionsDef;
+		for(int i = 0; i < nDimensions; i++)
+		 strDimensionsDef.append("[]");
+			 
+		 m_pLineEditArrayDimDef->setText(strDimensionsDef);
+	}
+	else
+	{
+		m_pLineEditArrayDimDef->setEnabled(false);
+		m_pLineEditArrayDimDef->setText("");
+	}
+}
+
+void KPGCreateTableWidget2::slotCheckToggled(bool bCheck)
+{
+    m_pLineEditCheck->setEnabled(bCheck);
+		
+	if(bCheck)
+	{
+		m_pLineEditCheck->setFocus();
+		m_pLineEditCheck->setText(m_pLineEditColumnName->text() + " ");
+	}
+}
+
+void KPGCreateTableWidget2::slotDefaultToggled(bool bDefault)
+{
+    m_pLineEditDefaultValue->setEnabled(bDefault);
+	m_pCheckBoxQuotedDefault->setEnabled(bDefault);
+	m_pLineEditDefaultValue->setFocus();
+}
+
+void KPGCreateTableWidget2::slotSetDefaultToNow()
+{
+	m_pCheckBoxDefault->setChecked(true);
+	m_pCheckBoxQuotedDefault->setChecked(false);
+	m_pLineEditDefaultValue->setEnabled(true);
+	m_pCheckBoxQuotedDefault->setEnabled(true);
+	m_pLineEditDefaultValue->setText("now()");
+}
+
+// Return part of SQL statement for CREATE TABLE
+const QString KPGCreateTableWidget2::getSQL() const
+{
+	QString strSql;
+	
+	QListViewItem * pItem = m_pListViewColumns->firstChild();
+	while(pItem)
+	{
+		strSql.append(KPGUtil::quotedName(pItem->text(0))); // column name
+		strSql.append(" ");
+		strSql.append(pItem->text(1)); // definition
+			  
+		pItem = pItem->nextSibling();
+		
+		if(pItem)
+			strSql.append(",\n");
+	}
+	
+	return strSql;
+}
+
+
+#include "kpgcreatetablewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+//
+// C++ Interface: kpgcreatetablewidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIDGET2_H
+#define KPGCREATETABLEWIDGET2_H
+
+#include "kpgcreatetablewidget2base.h"
+
+#include "kpgtablecolumnwizinfo.h"
+
+class KPGDomainsFolder;
+class KPGDatabase;
+
+/**
+Widget for Create Table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWidget2 : public KPGCreateTableWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateTableWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateTableWidget2();
+
+	const QString getSQL() const;
+	const bool isDirty1() const { return m_bIsDirty1; }
+	const bool isDirty2() const { return m_bIsDirty2; }
+	void clearDirty1() { m_bIsDirty1 = false; }
+	void clearDirty2() { m_bIsDirty2 = false; }
+	KPGListTableColumnWizInfo & getListOfColumns() { return m_listOfColumns; }
+    
+    void refreshListOfDatatypes();
+    
+protected:
+    void fillDomains();
+    void fillUserDatatypes();
+        
+protected:
+	bool m_bIsDirty1; // table columns list changed ?
+	bool m_bIsDirty2; // table columns list changed ?
+	KPGListTableColumnWizInfo m_listOfColumns;
+    KPGDatabase *m_pDatabase;
+    
+protected slots:
+
+    virtual void slotSchemaActivated(int);
+    virtual void slotComboDataTypeActivated(const QString &);
+	virtual void slotColumnAdd();
+    virtual void slotColumnDelete();
+    virtual void slotColumnUp();
+    virtual void slotColumnDown();
+	virtual void slotColumnNameChanged(const QString &);
+	virtual void slotColumnSelectionChanged(QListViewItem *);
+	virtual void slotColumnCurrentChanged(QListViewItem *);
+	virtual void slotNumDimensionsChanged(int);
+    virtual void slotCheckToggled(bool);
+    virtual void slotDefaultToggled(bool);
+    virtual void slotSetDefaultToNow();
+		
+signals:
+	void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,350 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablewidget2base.ui'
+**
+** Created: Út dub 1 13:07:25 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlineedit.h>
+#include <qlabel.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <klineedit.h>
+#include <kpushbutton.h>
+#include <qspinbox.h>
+#include <kcombobox.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kpushbutton.h"
+#include "kcombobox.h"
+#include "klistview.h"
+
+/*
+ *  Constructs a KPGCreateTableWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTableWidget2Base::KPGCreateTableWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTableWidget2Base" );
+    setMinimumSize( QSize( 520, 500 ) );
+    KPGCreateTableWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTableWidget2BaseLayout"); 
+
+    m_pLineEditColumnName = new QLineEdit( this, "m_pLineEditColumnName" );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pLineEditColumnName, 1, 1, 0, 1 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( textLabel1, 0, 0, 0, 1 );
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( textLabel1_2, 0, 0, 2, 3 );
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+
+    KPGCreateTableWidget2BaseLayout->addWidget( textLabel4, 2, 4 );
+
+    m_pTextLabelComment = new QLabel( this, "m_pTextLabelComment" );
+    m_pTextLabelComment->setPaletteBackgroundColor( QColor( 255, 253, 216 ) );
+    QFont m_pTextLabelComment_font(  m_pTextLabelComment->font() );
+    m_pTextLabelComment->setFont( m_pTextLabelComment_font ); 
+    m_pTextLabelComment->setTextFormat( QLabel::PlainText );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pTextLabelComment, 4, 4, 0, 4 );
+
+    m_pGroupBoxConstraints = new QGroupBox( this, "m_pGroupBoxConstraints" );
+    m_pGroupBoxConstraints->setColumnLayout(0, Qt::Vertical );
+    m_pGroupBoxConstraints->layout()->setSpacing( 6 );
+    m_pGroupBoxConstraints->layout()->setMargin( 11 );
+    m_pGroupBoxConstraintsLayout = new QGridLayout( m_pGroupBoxConstraints->layout() );
+    m_pGroupBoxConstraintsLayout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxUnique = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxUnique" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxUnique, 1, 0 );
+
+    m_pCheckBoxNotNull = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxNotNull" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxNotNull, 0, 0 );
+
+    m_pCheckBoxDefault = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxDefault" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxDefault, 0, 1 );
+
+    m_pCheckBoxCheck = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxCheck" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxCheck, 1, 1 );
+
+    m_pLineEditCheck = new KLineEdit( m_pGroupBoxConstraints, "m_pLineEditCheck" );
+    m_pLineEditCheck->setEnabled( FALSE );
+
+    m_pGroupBoxConstraintsLayout->addMultiCellWidget( m_pLineEditCheck, 1, 1, 2, 4 );
+
+    m_pButtonSetDefaultNow = new KPushButton( m_pGroupBoxConstraints, "m_pButtonSetDefaultNow" );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pButtonSetDefaultNow, 0, 3 );
+
+    m_pCheckBoxQuotedDefault = new QCheckBox( m_pGroupBoxConstraints, "m_pCheckBoxQuotedDefault" );
+    m_pCheckBoxQuotedDefault->setChecked( TRUE );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pCheckBoxQuotedDefault, 0, 4 );
+
+    m_pLineEditDefaultValue = new KLineEdit( m_pGroupBoxConstraints, "m_pLineEditDefaultValue" );
+    m_pLineEditDefaultValue->setEnabled( FALSE );
+
+    m_pGroupBoxConstraintsLayout->addWidget( m_pLineEditDefaultValue, 0, 2 );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pGroupBoxConstraints, 5, 5, 0, 4 );
+
+    m_pSpinBoxNumDimensions = new QSpinBox( this, "m_pSpinBoxNumDimensions" );
+
+    KPGCreateTableWidget2BaseLayout->addWidget( m_pSpinBoxNumDimensions, 1, 2 );
+
+    m_pLineEditArrayDimDef = new KLineEdit( this, "m_pLineEditArrayDimDef" );
+    m_pLineEditArrayDimDef->setEnabled( FALSE );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pLineEditArrayDimDef, 1, 1, 3, 4 );
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+
+    KPGCreateTableWidget2BaseLayout->addWidget( textLabel3, 2, 3 );
+
+    m_pSpinBoxPrecision = new QSpinBox( this, "m_pSpinBoxPrecision" );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    m_pSpinBoxPrecision->setMinValue( 1 );
+
+    KPGCreateTableWidget2BaseLayout->addWidget( m_pSpinBoxPrecision, 3, 3 );
+
+    m_pSpinBoxScale = new QSpinBox( this, "m_pSpinBoxScale" );
+    m_pSpinBoxScale->setMaxValue( 999 );
+
+    KPGCreateTableWidget2BaseLayout->addWidget( m_pSpinBoxScale, 3, 4 );
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( textLabel2, 2, 2, 1, 2 );
+
+    m_pComboBoxDataType = new KComboBox( FALSE, this, "m_pComboBoxDataType" );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pComboBoxDataType, 3, 3, 1, 2 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout3->addWidget( textLabel2_2 );
+
+    m_pComboBoxSchema = new KComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout3->addWidget( m_pComboBoxSchema );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellLayout( layout3, 2, 3, 0, 0 );
+
+    m_pGroupBoxColumns = new QGroupBox( this, "m_pGroupBoxColumns" );
+    m_pGroupBoxColumns->setColumnLayout(0, Qt::Vertical );
+    m_pGroupBoxColumns->layout()->setSpacing( 6 );
+    m_pGroupBoxColumns->layout()->setMargin( 11 );
+    m_pGroupBoxColumnsLayout = new QGridLayout( m_pGroupBoxColumns->layout() );
+    m_pGroupBoxColumnsLayout->setAlignment( Qt::AlignTop );
+
+    m_pListViewColumns = new KListView( m_pGroupBoxColumns, "m_pListViewColumns" );
+    m_pListViewColumns->addColumn( tr2i18n( "Column Name" ) );
+    m_pListViewColumns->addColumn( tr2i18n( "Definition" ) );
+
+    m_pGroupBoxColumnsLayout->addMultiCellWidget( m_pListViewColumns, 0, 1, 0, 0 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    m_pBtnAddColumn = new QPushButton( m_pGroupBoxColumns, "m_pBtnAddColumn" );
+    m_pBtnAddColumn->setEnabled( FALSE );
+    layout1->addWidget( m_pBtnAddColumn );
+
+    m_pBtnDelColumn = new QPushButton( m_pGroupBoxColumns, "m_pBtnDelColumn" );
+    m_pBtnDelColumn->setEnabled( FALSE );
+    layout1->addWidget( m_pBtnDelColumn );
+
+    m_pBtnColumnUp = new QPushButton( m_pGroupBoxColumns, "m_pBtnColumnUp" );
+    m_pBtnColumnUp->setEnabled( FALSE );
+    layout1->addWidget( m_pBtnColumnUp );
+
+    m_pBtnColumnDown = new QPushButton( m_pGroupBoxColumns, "m_pBtnColumnDown" );
+    m_pBtnColumnDown->setEnabled( FALSE );
+    layout1->addWidget( m_pBtnColumnDown );
+
+    m_pGroupBoxColumnsLayout->addLayout( layout1, 0, 1 );
+    spacer1 = new QSpacerItem( 20, 31, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    m_pGroupBoxColumnsLayout->addItem( spacer1, 1, 1 );
+
+    KPGCreateTableWidget2BaseLayout->addMultiCellWidget( m_pGroupBoxColumns, 6, 6, 0, 4 );
+    languageChange();
+    resize( QSize(520, 560).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxDataType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboDataTypeActivated(const QString&) ) );
+    connect( m_pBtnAddColumn, SIGNAL( clicked() ), this, SLOT( slotColumnAdd() ) );
+    connect( m_pBtnDelColumn, SIGNAL( clicked() ), this, SLOT( slotColumnDelete() ) );
+    connect( m_pBtnColumnUp, SIGNAL( clicked() ), this, SLOT( slotColumnUp() ) );
+    connect( m_pBtnColumnDown, SIGNAL( clicked() ), this, SLOT( slotColumnDown() ) );
+    connect( m_pLineEditColumnName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotColumnNameChanged(const QString&) ) );
+    connect( m_pListViewColumns, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotColumnSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewColumns, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotColumnCurrentChanged(QListViewItem*) ) );
+    connect( m_pSpinBoxNumDimensions, SIGNAL( valueChanged(int) ), this, SLOT( slotNumDimensionsChanged(int) ) );
+    connect( m_pCheckBoxCheck, SIGNAL( toggled(bool) ), this, SLOT( slotCheckToggled(bool) ) );
+    connect( m_pCheckBoxDefault, SIGNAL( toggled(bool) ), this, SLOT( slotDefaultToggled(bool) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(int) ), this, SLOT( slotSchemaActivated(int) ) );
+    connect( m_pButtonSetDefaultNow, SIGNAL( pressed() ), this, SLOT( slotSetDefaultToNow() ) );
+
+    // tab order
+    setTabOrder( m_pLineEditColumnName, m_pSpinBoxNumDimensions );
+    setTabOrder( m_pSpinBoxNumDimensions, m_pLineEditArrayDimDef );
+    setTabOrder( m_pLineEditArrayDimDef, m_pComboBoxDataType );
+    setTabOrder( m_pComboBoxDataType, m_pSpinBoxPrecision );
+    setTabOrder( m_pSpinBoxPrecision, m_pSpinBoxScale );
+    setTabOrder( m_pSpinBoxScale, m_pCheckBoxNotNull );
+    setTabOrder( m_pCheckBoxNotNull, m_pCheckBoxUnique );
+    setTabOrder( m_pCheckBoxUnique, m_pCheckBoxDefault );
+    setTabOrder( m_pCheckBoxDefault, m_pLineEditDefaultValue );
+    setTabOrder( m_pLineEditDefaultValue, m_pCheckBoxCheck );
+    setTabOrder( m_pCheckBoxCheck, m_pLineEditCheck );
+    setTabOrder( m_pLineEditCheck, m_pListViewColumns );
+    setTabOrder( m_pListViewColumns, m_pBtnAddColumn );
+    setTabOrder( m_pBtnAddColumn, m_pBtnDelColumn );
+    setTabOrder( m_pBtnDelColumn, m_pBtnColumnUp );
+    setTabOrder( m_pBtnColumnUp, m_pBtnColumnDown );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditColumnName );
+    textLabel1_2->setBuddy( m_pSpinBoxNumDimensions );
+    textLabel4->setBuddy( m_pSpinBoxScale );
+    textLabel3->setBuddy( m_pSpinBoxPrecision );
+    textLabel2->setBuddy( m_pComboBoxDataType );
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTableWidget2Base::~KPGCreateTableWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTableWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Table - define columns" ) );
+    textLabel1->setText( tr2i18n( "Co&lumn name:" ) );
+    textLabel1_2->setText( tr2i18n( "Array d&imensions:" ) );
+    textLabel4->setText( tr2i18n( "&Scale:" ) );
+    m_pTextLabelComment->setText( QString::null );
+    m_pGroupBoxConstraints->setTitle( tr2i18n( "Constraints" ) );
+    m_pCheckBoxUnique->setText( tr2i18n( "Uni&que" ) );
+    m_pCheckBoxUnique->setAccel( QKeySequence( tr2i18n( "Alt+Q" ) ) );
+    m_pCheckBoxNotNull->setText( tr2i18n( "Not N&ULL" ) );
+    m_pCheckBoxNotNull->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxDefault->setText( tr2i18n( "De&fault:" ) );
+    m_pCheckBoxDefault->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pCheckBoxCheck->setText( tr2i18n( "Chec&k:" ) );
+    m_pCheckBoxCheck->setAccel( QKeySequence( tr2i18n( "Alt+K" ) ) );
+    m_pButtonSetDefaultNow->setText( tr2i18n( "Now" ) );
+    m_pCheckBoxQuotedDefault->setText( tr2i18n( "Quoted" ) );
+    textLabel3->setText( tr2i18n( "&Precision/size:" ) );
+    textLabel2->setText( tr2i18n( "&Data type:" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    m_pGroupBoxColumns->setTitle( tr2i18n( "Columns" ) );
+    m_pListViewColumns->header()->setLabel( 0, tr2i18n( "Column Name" ) );
+    m_pListViewColumns->header()->setLabel( 1, tr2i18n( "Definition" ) );
+    m_pBtnAddColumn->setText( tr2i18n( "&Add" ) );
+    m_pBtnAddColumn->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pBtnDelColumn->setText( tr2i18n( "De&lete" ) );
+    m_pBtnDelColumn->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pBtnColumnUp->setText( tr2i18n( "Move &Up" ) );
+    m_pBtnColumnUp->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pBtnColumnDown->setText( tr2i18n( "Move D&own" ) );
+    m_pBtnColumnDown->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+}
+
+void KPGCreateTableWidget2Base::slotComboDataTypeActivated(const QString&)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotComboDataTypeActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnAdd()
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnAdd(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnDelete()
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnDelete(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnUp()
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnUp(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnDown()
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnDown(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotColumnCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotColumnCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotNumDimensionsChanged(int)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotNumDimensionsChanged(int): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotCheckToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotCheckToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotDefaultToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotDefaultToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotSchemaActivated(int)
+{
+    qWarning( "KPGCreateTableWidget2Base::slotSchemaActivated(int): Not implemented yet" );
+}
+
+void KPGCreateTableWidget2Base::slotSetDefaultToNow()
+{
+    qWarning( "KPGCreateTableWidget2Base::slotSetDefaultToNow(): Not implemented yet" );
+}
+
+#include "kpgcreatetablewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,519 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTableWidget2Base</class>
+<comment>Widged for create table wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTableWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>520</width>
+            <height>560</height>
+        </rect>
+    </property>
+    <property name="minimumSize">
+        <size>
+            <width>520</width>
+            <height>500</height>
+        </size>
+    </property>
+    <property name="caption">
+        <string>Create Table - define columns</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLineEdit" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pLineEditColumnName</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>Co&amp;lumn name:</string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pLineEditColumnName</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="2" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel1_2</cstring>
+            </property>
+            <property name="text">
+                <string>Array d&amp;imensions:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxNumDimensions</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="4">
+            <property name="name">
+                <cstring>textLabel4</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Scale:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="4" column="0" rowspan="1" colspan="5">
+            <property name="name">
+                <cstring>m_pTextLabelComment</cstring>
+            </property>
+            <property name="paletteBackgroundColor">
+                <color>
+                    <red>255</red>
+                    <green>253</green>
+                    <blue>216</blue>
+                </color>
+            </property>
+            <property name="font">
+                <font>
+                </font>
+            </property>
+            <property name="text">
+                <string></string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="5" column="0" rowspan="1" colspan="5">
+            <property name="name">
+                <cstring>m_pGroupBoxConstraints</cstring>
+            </property>
+            <property name="title">
+                <string>Constraints</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxUnique</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Uni&amp;que</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+Q</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxNotNull</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Not N&amp;ULL</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pCheckBoxDefault</cstring>
+                    </property>
+                    <property name="text">
+                        <string>De&amp;fault:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+F</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCheck</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Chec&amp;k:</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+K</string>
+                    </property>
+                </widget>
+                <widget class="KLineEdit" row="1" column="2" rowspan="1" colspan="3">
+                    <property name="name">
+                        <cstring>m_pLineEditCheck</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+                <widget class="KPushButton" row="0" column="3">
+                    <property name="name">
+                        <cstring>m_pButtonSetDefaultNow</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Now</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="4">
+                    <property name="name">
+                        <cstring>m_pCheckBoxQuotedDefault</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Quoted</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="KLineEdit" row="0" column="2">
+                    <property name="name">
+                        <cstring>m_pLineEditDefaultValue</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QSpinBox" row="1" column="2">
+            <property name="name">
+                <cstring>m_pSpinBoxNumDimensions</cstring>
+            </property>
+        </widget>
+        <widget class="KLineEdit" row="1" column="3" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pLineEditArrayDimDef</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="3">
+            <property name="name">
+                <cstring>textLabel3</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Precision/size:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="3" column="3">
+            <property name="name">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+            <property name="minValue">
+                <number>1</number>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="3" column="4">
+            <property name="name">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel2</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Data type:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="KComboBox" row="3" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0" rowspan="2" colspan="1">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="6" column="0" rowspan="1" colspan="5">
+            <property name="name">
+                <cstring>m_pGroupBoxColumns</cstring>
+            </property>
+            <property name="title">
+                <string>Columns</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="KListView" row="0" column="0" rowspan="2" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Column Name</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <column>
+                        <property name="text">
+                            <string>Definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewColumns</cstring>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pBtnAddColumn</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Add</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pBtnDelColumn</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>De&amp;lete</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+L</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pBtnColumnUp</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move &amp;Up</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+U</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pBtnColumnDown</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Move D&amp;own</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+O</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer row="1" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>31</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxDataType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotComboDataTypeActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pBtnAddColumn</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pBtnDelColumn</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pBtnColumnUp</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnUp()</slot>
+    </connection>
+    <connection>
+        <sender>m_pBtnColumnDown</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnDown()</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditColumnName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewColumns</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewColumns</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotColumnCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pSpinBoxNumDimensions</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotNumDimensionsChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCheck</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotCheckToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxDefault</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotDefaultToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotSchemaActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonSetDefaultNow</sender>
+        <signal>pressed()</signal>
+        <receiver>KPGCreateTableWidget2Base</receiver>
+        <slot>slotSetDefaultToNow()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditColumnName</tabstop>
+    <tabstop>m_pSpinBoxNumDimensions</tabstop>
+    <tabstop>m_pLineEditArrayDimDef</tabstop>
+    <tabstop>m_pComboBoxDataType</tabstop>
+    <tabstop>m_pSpinBoxPrecision</tabstop>
+    <tabstop>m_pSpinBoxScale</tabstop>
+    <tabstop>m_pCheckBoxNotNull</tabstop>
+    <tabstop>m_pCheckBoxUnique</tabstop>
+    <tabstop>m_pCheckBoxDefault</tabstop>
+    <tabstop>m_pLineEditDefaultValue</tabstop>
+    <tabstop>m_pCheckBoxCheck</tabstop>
+    <tabstop>m_pLineEditCheck</tabstop>
+    <tabstop>m_pListViewColumns</tabstop>
+    <tabstop>m_pBtnAddColumn</tabstop>
+    <tabstop>m_pBtnDelColumn</tabstop>
+    <tabstop>m_pBtnColumnUp</tabstop>
+    <tabstop>m_pBtnColumnDown</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotComboDataTypeActivated(const QString &amp;strText)</slot>
+    <slot access="protected">slotColumnAdd()</slot>
+    <slot access="protected">slotColumnDelete()</slot>
+    <slot access="protected">slotColumnUp()</slot>
+    <slot access="protected">slotColumnDown()</slot>
+    <slot access="protected">slotColumnNameChanged(const QString &amp;)</slot>
+    <slot access="protected">slotColumnSelectionChanged(QListViewItem *)</slot>
+    <slot>slotColumnCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotNumDimensionsChanged(int)</slot>
+    <slot>slotCheckToggled(bool)</slot>
+    <slot access="protected">slotDefaultToggled(bool)</slot>
+    <slot access="protected">slotSchemaActivated(int)</slot>
+    <slot access="protected">slotSetDefaultToNow()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klistview.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,782 @@
+//
+// C++ Implementation: kpgcreatetablewidget3
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewidget3.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+//#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qwidgetstack.h> 
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <klistbox.h>
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtableindexesfolder.h"
+#include "../DbObjects/kpgindex.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTableWidget3::KPGCreateTableWidget3(QWidget *parent, const char *name, KPGDatabase *pDatabase, bool bAllowPrimaryKey)
+ : KPGCreateTableWidget3Base(parent, name)
+{
+	m_pReferencedTable = 0;
+	m_pDatabase = pDatabase;
+	m_bPrimaryKey = bAllowPrimaryKey;
+  
+	if(bAllowPrimaryKey) 
+		m_pComboBoxConstraintType->insertItem(* KPGTreeItem::m_pIconPrimaryKeyConstr, i18n("Primary Key"));
+	else		
+		m_pWidgetStack->raiseWidget(1); // switch to Foreign key page
+		
+	m_pComboBoxConstraintType->insertItem(* KPGTreeItem::m_pIconForeignKeyConstr, i18n("Foreign Key"));
+	m_pComboBoxConstraintType->insertItem(* KPGTreeItem::m_pIconUniqueConstr, i18n("Unique"));
+	m_pComboBoxConstraintType->insertItem(* KPGTreeItem::m_pIconCheckConstr, i18n("Check"));
+	
+	// fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxRefSchema);
+		
+	m_pListViewConstraints->setSortColumn(-1);
+  
+  // This is here, instead of making connection in Qt Designer due to bug - forward declaration
+  // class QListBoxItem; is not added to h file.
+  connect( m_pActionSelectorPKColumns, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotPKColumnAdded(QListBoxItem*) ) );
+  connect( m_pActionSelectorPKColumns, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotPKColumnRemoved(QListBoxItem*) ) );
+  
+  connect( m_pActionSelectorFKColumns, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotFKColumnAdded(QListBoxItem*) ) );
+  connect( m_pActionSelectorFKColumns, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotFKColumnRemoved(QListBoxItem*) ) );
+  
+  connect( m_pActionSelectorUniqueColumns, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotUniqueColumnAdded(QListBoxItem*) ) );
+  connect( m_pActionSelectorUniqueColumns, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotUniqueColumnRemoved(QListBoxItem*) ) );
+  
+}
+
+
+KPGCreateTableWidget3::~KPGCreateTableWidget3()
+{
+}
+
+void KPGCreateTableWidget3::setNamespace(const QString &strNamespace) 
+{ 
+	m_strNamespace = strNamespace; 
+	m_pComboBoxRefSchema->setCurrentText(strNamespace);
+	slotRefSchemaSelectChanged(strNamespace);
+}
+
+void KPGCreateTableWidget3::setListOfAvailableColumns(KPGListTableColumnWizInfo &listOfAvailableColumns)
+{
+	m_listOfAvailableColumns = listOfAvailableColumns;
+	refreshAvailableColumns();
+}
+
+void KPGCreateTableWidget3::refreshAvailableColumns()
+{
+	m_pActionSelectorFKColumns->availableListBox()->clear();
+	m_pComboBoxRefTable->clear();
+	m_pActionSelectorPKColumns->availableListBox()->clear();
+	m_pActionSelectorUniqueColumns->availableListBox()->clear();
+	m_pListBoxAvailableCheckCols->clear();
+	
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+	{
+		m_pActionSelectorPKColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+				
+		m_pActionSelectorFKColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+				
+		m_pActionSelectorUniqueColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+				
+		m_pListBoxAvailableCheckCols->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+	}	
+}
+
+/////////////////////////////////////////////////////////////////////
+//                 PRIMARY KEY CONSTRAINT FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget3::slotPKColumnAdded(QListBoxItem *)
+{
+ 		
+	if(m_pLineEditConstraintName->text().isEmpty())
+		setDefaultConstraintName(0);
+			
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+void KPGCreateTableWidget3::slotPKColumnRemoved(QListBoxItem *)
+{
+  enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//                 FOREIGN KEY CONSTRAINT FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget3::slotRefSchemaSelectChanged(const QString &strNamespace)
+{
+	m_pComboBoxRefTable->clear();
+	m_pActionSelectorFKColumns->availableListBox()->clear();
+	m_listOfRefTablesOids.clear();
+	
+	// First find schema
+    KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+    if(!pItem)
+    {
+        kdDebug() << "KPGCreateTableWidget3::slotRefSchemaSelectChanged: no item found: " << strNamespace << endl;
+        return;
+    }
+        
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	
+	pSchema->getTablesFolder()->fillComboBoxWithChildItems(m_pComboBoxRefTable);
+    pSchema->getTablesFolder()->fillListOfObjectOidsWithChildItems(m_listOfRefTablesOids);
+	
+	if(m_pComboBoxRefTable->currentText().isEmpty() != true)
+		slotRefTableSelectChanged(m_pComboBoxRefTable->currentText());
+}
+
+void KPGCreateTableWidget3::slotRefTableSelectChanged(const QString &strTablename)
+{
+	m_pActionSelectorFKColumns->availableListBox()->clear();
+	
+    // Fill all available columns
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+	{
+		m_pActionSelectorFKColumns->availableListBox()->insertItem(
+			static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+			static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+			);
+	}	
+		
+	// clear comboboxes
+	m_pListBoxReferencingCols->clear();
+	m_pActionSelectorFKColumns->selectedListBox()->clear();
+	m_pComboBoxRefUiques->clear();
+	m_listOfRefUniques.clear();
+		
+	// Get OID of selected table
+	int iIndex = m_pComboBoxRefTable->currentItem();
+	KPGOidName oidName = m_listOfRefTablesOids[iIndex];
+	
+	if(strTablename != oidName.name())
+	{
+		kdError() << k_funcinfo << " Wrong table in list !" << endl;
+		return;
+	}
+  
+    //----------------------------------------------------------------------------------------------------
+    // Fill list of referencing uniques
+    
+    // First find schema
+    KPGTreeItem *pItem = m_pDatabase->getChildByName(m_strNamespace);
+    if(!pItem)
+    {
+        kdDebug() << "KPGCreateTableWidget3::slotRefTableSelectChanged: no item found: " << m_strNamespace << endl;
+        return;
+    }
+            
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+    KPGTablesFolder *pTablesFolder = pSchema->getTablesFolder();
+    
+    // Lookup pointer to table
+    pItem = pTablesFolder->getChildByName(oidName.name());
+    if(!pItem)
+    {
+        kdDebug() << "KPGCreateTableWidget3::slotRefTableSelectChanged: no item found: " << oidName.name() << endl;
+        return;
+    }
+    
+    m_pReferencedTable = static_cast <KPGTable *> (pItem);
+    if(m_pReferencedTable->oid() != oidName.oid())
+    {
+        kdDebug() << "KPGCreateTableWidget3::slotRefTableSelectChanged: wrong table: " << oidName.name() << endl;
+        m_pReferencedTable = 0;
+        return;
+    }
+    
+    // Get table indexes folder - its holds primary key and all indexes
+    KPGTableIndexesFolder *pIndexesFolder = m_pReferencedTable->getTableIndexesFolder();
+    
+    // traverse list of uniques
+    QListViewItem * pLvItem = pIndexesFolder->firstChild();
+    while(pLvItem)
+    {
+        KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pLvItem);
+                
+        if((pTreeItem->type() == KPGTreeItem::nodePrimaryKey) || (pTreeItem->type() == KPGTreeItem::nodeIndex))
+        {
+        KPGTableIndex *pTableIndex = static_cast <KPGTableIndex *> (pTreeItem);
+        
+        if(pTableIndex->isUnique())
+        {
+            m_pComboBoxRefUiques->insertItem(* pTableIndex->pixmap(0), pTableIndex->text(0)); 
+            
+            QString strColumns(pTableIndex->indKey()); // pr. key or idx column numbers
+            strColumns.replace(" ", " ,"); // prepare for use in SELECT ... FROM ... WHERE attnum IN(...) 
+                    
+            m_listOfRefUniques.append(new KPGUniqueInfo(pTableIndex->text(0), strColumns));
+        }
+        }
+        
+        pLvItem = pLvItem->nextSibling();
+    }
+	
+	if(m_pComboBoxRefUiques->count() > 0)
+		slotRefUniqueSelectChanged(m_pComboBoxRefUiques->currentText());
+}
+
+void KPGCreateTableWidget3::refTableSelectChanged()
+{
+	slotRefTableSelectChanged(m_pComboBoxRefTable->currentText());
+}
+
+void KPGCreateTableWidget3::slotRefUniqueSelectChanged(const QString& strUniqueName)
+{
+	// clear comboboxes and fill with new contents
+	m_pListBoxReferencingCols->clear();
+	m_pActionSelectorFKColumns->selectedListBox()->clear();
+	m_listOfRefColumns.clear();
+	
+	// Get OID of selected table
+	int iIndex = m_pComboBoxRefTable->currentItem();
+	KPGOidName oidName = m_listOfRefTablesOids[iIndex];
+	
+	if(m_pComboBoxRefTable->currentText() != oidName.name())
+	{
+		kdError() << k_funcinfo << " Wrong table in list !" << endl;
+		return;
+	}
+	
+	// Get column numbers of selected unique
+	iIndex = m_pComboBoxRefUiques->currentItem();
+	KPGUniqueInfo *pUniqueInfo = m_listOfRefUniques.at(iIndex);
+	
+	if(strUniqueName != pUniqueInfo->name())
+	{
+		kdError() << k_funcinfo << " Wrong unique in list !" << endl;
+		return;
+	}
+  
+  if(!m_pReferencedTable)
+  {
+    kdError() << k_funcinfo << " m_pReferencedTable == 0 !" << endl;
+    return;
+  }
+  
+  KPGTableColumnsFolder *pColumnsFolder = m_pReferencedTable->getTableColumnsFolder();
+  
+  // traverse list of columns
+  QListViewItem * pLvItem = pColumnsFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pLvItem);
+            
+    QString strColumns(pUniqueInfo->columns());
+    
+    QString strColNum;
+    for(unsigned int i = 0; i < strColumns.length(); i++)
+    {
+      if((strColumns.at(i) == ' ') || (i+1 == strColumns.length()))
+      {
+        int iColNum = strColumns.toInt();
+                
+        if(pColumn->attNum() == iColNum)
+          {
+            m_pListBoxReferencingCols->insertItem(* pColumn->pixmap(0), pColumn->text(0));
+            
+            m_listOfRefColumns.append(new KPGTableColumnWizInfo(
+                pColumn->text(0), 
+                pColumn->typName(),
+                pColumn->attNdims(),
+                pColumn->attNum(),
+                *pColumn->pixmap(0),
+                pColumn->description()
+                ));
+          }
+          
+         strColumns.truncate(0);
+      }
+      else
+        strColNum.append(strColumns.at(i));
+    } 
+      
+    pLvItem = pLvItem->nextSibling();
+  }
+  
+	setDefaultConstraintName(1);
+}
+
+void KPGCreateTableWidget3::slotFKColumnAdded(QListBoxItem *)
+{
+  /*if(m_listOfAvailableColumns.count() == 0) return;
+	
+	KPGTableColumnWizInfo *pColumnInfoAvail = m_listOfAvailableColumns.findColumn(pItem->text());
+	
+	KPGTableColumnWizInfo *pColumnInfoRef = static_cast <KPGTableColumnWizInfo *> (m_listOfRefColumns.at(m_pActionSelectorFKColumns->selectedListBox()->count()));
+	
+	// Test, if types aren't multidimensional - then warning user
+	if(pColumnInfoAvail->nDimensions() > 0)
+	{
+		QString strAvailColumn(i18n("column: ") + pColumnInfoAvail->name() + " " + pColumnInfoAvail->typName() + "\n");
+		
+		if(KMessageBox::questionYesNo(this, i18n("Multidimensional column - add it anyway ?\n") + strAvailColumn) == KMessageBox::No) return;
+	}
+	
+	// Test, if types are compatible
+	if(pColumnInfoAvail->isCompatible(*pColumnInfoRef) == false)
+	{
+		QString strAvailColumn(i18n("Referenced: ") + pColumnInfoAvail->name() + " " + pColumnInfoAvail->typName() + "\n");
+		QString strRefColumn(i18n("Referencing: ") + pColumnInfoRef->name() + " " + pColumnInfoRef->typName());
+
+		if(KMessageBox::questionYesNo(this, i18n("Datatypes are incompatible - add it anyway ?\n") + strAvailColumn + strRefColumn) == KMessageBox::No) return;
+	}*/
+	
+	
+	// set default FK name, if empty
+	if(m_pLineEditConstraintName->text().isEmpty())
+		setDefaultConstraintName(1);
+		
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+void KPGCreateTableWidget3::slotFKColumnRemoved(QListBoxItem *)
+{
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());    
+}
+
+/////////////////////////////////////////////////////////////////////
+//                   UNIQUE CONSTRAINT FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget3::slotUniqueColumnAdded(QListBoxItem *)
+{
+	if(m_pLineEditConstraintName->text().isEmpty())
+		setDefaultConstraintName(2);
+			
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+void KPGCreateTableWidget3::slotUniqueColumnRemoved(QListBoxItem *)
+{
+  enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+/////////////////////////////////////////////////////////////////////
+//                 CHECK CONSTRAINT FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget3::slotCheckExpressionChanged(const QString &)
+{
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+}
+
+void KPGCreateTableWidget3::slotAvailableCheckColsDblClicked(QListBoxItem *pItem)
+{
+	m_pLineEditCheckExpression->insert(KPGUtil::quotedName(pItem->text()));
+	
+	// apend column name to constraint name
+	if(m_pLineEditConstraintName->text() == "chk_" + m_strTableName)
+		m_pLineEditConstraintName->setText(m_pLineEditConstraintName->text() + "__" + pItem->text()); 
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget3::slotConstraintTypeChanged(int iPageId)
+{
+	if(!m_bPrimaryKey) iPageId++; // Primary Key is not present in combobox, skip 1.st Widget
+	
+	m_pWidgetStack->raiseWidget(iPageId);
+	setDefaultConstraintName(iPageId);	
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+  
+  if((iPageId == 0) || (iPageId == 2))
+  {
+    m_pComboBoxTablespace->show(); // only for PK or index
+    m_pTextLabelTablespace->show();
+  }
+  else
+  {
+    m_pComboBoxTablespace->hide();
+    m_pTextLabelTablespace->hide();
+  }
+}
+
+void KPGCreateTableWidget3::setDefaultConstraintName(int iPageId)
+{
+	QString strTableName(m_strTableName);
+  strTableName.replace('\"', ""); // remove quotes around table name
+  
+  switch(iPageId)
+		{
+			case 0: m_pLineEditConstraintName->setText("pk_" + strTableName);
+							break;
+							
+			case 1: 
+							{
+								QString strFKName("fk_" + strTableName + "__" + m_pComboBoxRefTable->currentText());
+			
+								for(unsigned int i = 0; i < m_pListBoxReferencingCols->count(); i++)
+									strFKName.append("_" + m_pListBoxReferencingCols->text(i));
+								
+								m_pLineEditConstraintName->setText(strFKName);
+							}
+							break;
+							
+			case 2: m_pLineEditConstraintName->setText("idx_" + strTableName);
+							break;
+		
+		  case 3: m_pLineEditConstraintName->setText("chk_" + strTableName);
+							break;
+									
+		}
+}
+
+void KPGCreateTableWidget3::slotConstraintNameChanged(const QString& strText)
+{
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), strText.isEmpty());
+}
+
+void KPGCreateTableWidget3::enableAddConstraintButton(int iPageId, bool bConstraintNameEmpty)
+{
+	if(bConstraintNameEmpty)
+		m_pPushButtonConstraintAdd->setEnabled(false);
+	else
+	{
+		switch(iPageId)
+		{
+			case 0: m_pPushButtonConstraintAdd->setEnabled(m_pActionSelectorPKColumns->selectedListBox()->count() > 0);
+							break;
+							
+			case 1: m_pPushButtonConstraintAdd->setEnabled((m_pActionSelectorFKColumns->selectedListBox()->count() > 0) 
+								&& (m_pActionSelectorFKColumns->selectedListBox()->count() == m_pListBoxReferencingCols->count()));
+							break;
+							
+			case 2: m_pPushButtonConstraintAdd->setEnabled(m_pActionSelectorUniqueColumns->selectedListBox()->count() > 0);
+							break;
+		
+		  case 3: m_pPushButtonConstraintAdd->setEnabled(m_pLineEditCheckExpression->text().isEmpty() == false);
+							break;				
+		}
+	}
+}
+
+void KPGCreateTableWidget3::slotConstraintsSelectionChanged(QListViewItem* pItem)
+{
+	m_pPushButtonConstraintDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget3::slotConstraintsCurrentChanged(QListViewItem* pItem)
+{
+	m_pPushButtonConstraintDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget3::slotConstraintAdd()
+{
+	int iPageId = m_pWidgetStack->id(m_pWidgetStack->visibleWidget());
+	
+	switch(iPageId)
+		{
+			case 0: addPrimaryKey();
+							break;
+							
+			case 1: addForeignKey();
+							break;
+		
+			case 2: addUnique();
+							break;
+		
+		  case 3: addCheck();
+							break;
+									
+		}
+	
+		m_pLineEditConstraintName->setText("");
+    sigEnableNextButton(true);
+}
+
+void KPGCreateTableWidget3::slotConstraintDelete()
+{
+  QListViewItem *pSelectedItem = m_pListViewConstraints->selectedItem();
+		if(pSelectedItem)
+			delete pSelectedItem;
+	
+	m_pPushButtonConstraintDel->setEnabled(false);
+	
+	enableAddConstraintButton(m_pWidgetStack->id(m_pWidgetStack->visibleWidget()), m_pLineEditConstraintName->text().isEmpty());
+  
+  sigEnableNextButton(m_pListViewConstraints->childCount() > 0);
+}
+
+void KPGCreateTableWidget3::addPrimaryKey()
+{
+	// Avoid more than one primary key
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		
+		if(pItem->text(0).find("\" PRIMARY KEY (") > 0)
+		{ 
+			KMessageBox::sorry(this, i18n("Primary key already exists !"));
+			return;
+		}	
+	  
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSql("CONSTRAINT ");
+	strSql.append(KPGUtil::quotedName(m_pLineEditConstraintName->text()));
+	strSql.append(" PRIMARY KEY (");
+
+	for(unsigned int i = 0; i < m_pActionSelectorPKColumns->selectedListBox()->count(); i++)
+	{
+		strSql.append(KPGUtil::quotedName(m_pActionSelectorPKColumns->selectedListBox()->text(i)));
+		
+		if(i < m_pActionSelectorPKColumns->selectedListBox()->count() - 1)
+			strSql.append(", ");
+	}
+		
+	strSql.append(")");
+  
+  if(m_pComboBoxTablespace->currentItem() > 0)
+    strSql.append(" USING INDEX TABLESPACE " + KPGUtil::quotedName(m_pComboBoxTablespace->currentText()));
+	
+	// Create item for new column
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewConstraints, strSql);
+	else
+		pNewItem = new QListViewItem(m_pListViewConstraints, pLastItem, strSql);
+	
+	pNewItem->setPixmap(0, * KPGTreeItem::m_pIconPrimaryKeyConstr);
+	
+	// Select foreign key page
+	m_pComboBoxConstraintType->setCurrentItem(1);
+	slotConstraintTypeChanged(1);
+}
+
+void KPGCreateTableWidget3::addForeignKey()
+{
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		
+		/*if(pItem->text(0).find("\" Primary Key (") > 0)
+		{ 
+			KMessageBox::sorry(this, i18n("Primary key already exists !"));
+			return;		
+		}	*/
+	  
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSql("CONSTRAINT ");
+	strSql.append(KPGUtil::quotedName(m_pLineEditConstraintName->text()));
+	strSql.append(" FOREIGN KEY (");
+
+	for(unsigned int i = 0; i < m_pActionSelectorFKColumns->selectedListBox()->count(); i++)
+	{
+		strSql.append(KPGUtil::quotedName(m_pActionSelectorFKColumns->selectedListBox()->text(i)));
+		
+		if(i < m_pActionSelectorFKColumns->selectedListBox()->count() - 1)
+			strSql.append(", ");
+	}
+		
+	strSql.append(")");
+	
+	strSql.append(" REFERENCES ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxRefSchema->currentText(), m_pComboBoxRefTable->currentText()));
+	
+	strSql.append(" (");
+	
+	for(unsigned int i = 0; i < m_pListBoxReferencingCols->count(); i++)
+	{
+		strSql.append(KPGUtil::quotedName(m_pListBoxReferencingCols->text(i)));
+		
+		if(i < m_pActionSelectorFKColumns->selectedListBox()->count() - 1)
+			strSql.append(", ");
+	}
+	
+	strSql.append(")");
+	
+	if(m_pComboBoxMatchType->currentItem() > 0)
+		strSql.append(" " + m_pComboBoxMatchType->currentText()); // MATCH FULL
+	
+	if(m_pComboBoxOnUpdate->currentItem() > 0)
+		strSql.append(" ON UPDATE " + m_pComboBoxOnUpdate->currentText()); // ON UPDATE...
+		
+	if(m_pComboBoxOnDelete->currentItem() > 0)
+		strSql.append(" ON DELETE " + m_pComboBoxOnDelete->currentText()); // ON DELETE
+		
+	if(m_pCheckBoxDeferrable->isChecked())
+		strSql.append(" DEFERRABLE");
+		
+	if(m_pCheckBoxInitDeferred->isChecked())
+		strSql.append(" INITIALLY DEFERRED");
+	
+	// Create item for new foreign key
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewConstraints, strSql);
+	else
+		pNewItem = new QListViewItem(m_pListViewConstraints, pLastItem, strSql);
+	
+	pNewItem->setPixmap(0, * KPGTreeItem::m_pIconForeignKeyConstr);
+	
+	// Renew available columns list, clear FK columns list
+	m_pActionSelectorFKColumns->selectedListBox()->clear();
+	m_pActionSelectorFKColumns->availableListBox()->clear();
+	
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+		{
+			m_pActionSelectorFKColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+		}
+}
+
+void KPGCreateTableWidget3::addUnique()
+{
+	// Avoid more than one primary key
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSql("CONSTRAINT ");
+	strSql.append(KPGUtil::quotedName(m_pLineEditConstraintName->text()));
+	strSql.append(" UNIQUE (");
+
+	for(unsigned int i = 0; i < m_pActionSelectorUniqueColumns->selectedListBox()->count(); i++)
+	{
+		strSql.append(KPGUtil::quotedName(m_pActionSelectorUniqueColumns->selectedListBox()->text(i)));
+		
+		if(i < m_pActionSelectorUniqueColumns->selectedListBox()->count() - 1)
+			strSql.append(", ");
+	}
+		
+	strSql.append(")");
+  
+  if(m_pComboBoxTablespace->currentItem() > 0)
+    strSql.append(" USING INDEX TABLESPACE " + KPGUtil::quotedName(KPGUtil::quotedName(m_pComboBoxTablespace->currentText())));
+	
+	// Create item for new column
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewConstraints, strSql);
+	else
+		pNewItem = new QListViewItem(m_pListViewConstraints, pLastItem, strSql);
+	
+	pNewItem->setPixmap(0, * KPGTreeItem::m_pIconUniqueConstr);
+	
+	// Renew available columns list, clear Unique columns list
+	m_pActionSelectorUniqueColumns->availableListBox()->clear();
+	m_pActionSelectorUniqueColumns->selectedListBox()->clear();
+	
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+		{
+			m_pActionSelectorUniqueColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+		}
+}
+
+void KPGCreateTableWidget3::addCheck()
+{
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSql("CONSTRAINT ");
+	strSql.append(KPGUtil::quotedName(m_pLineEditConstraintName->text()));
+	strSql.append(" CHECK (");
+	strSql.append(m_pLineEditCheckExpression->text());	
+	strSql.append(")");
+  
+  
+	// Create item for new column
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewConstraints, strSql);
+	else
+		pNewItem = new QListViewItem(m_pListViewConstraints, pLastItem, strSql);
+	
+	pNewItem->setPixmap(0, * KPGTreeItem::m_pIconCheckConstr);
+	
+	m_pLineEditCheckExpression->setText("");
+}
+
+// Return part of SQL statement for CREATE TABLE
+const QString KPGCreateTableWidget3::getSQL() const
+{
+	QString strSql;
+	
+	QListViewItem * pItem = m_pListViewConstraints->firstChild();
+	while(pItem)
+	{
+		strSql.append(",\n");
+		strSql.append(pItem->text(0));
+					  
+		pItem = pItem->nextSibling();
+	}
+	
+	return strSql;
+}
+
+#include "kpgcreatetablewidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,138 @@
+//
+// C++ Interface: kpgcreatetablewidget3
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIDGET3_H
+#define KPGCREATETABLEWIDGET3_H
+
+#include <kpgcreatetablewidget3base.h>
+
+#include "kpgtablecolumnwizinfo.h"
+
+#include "../DbObjects/kpgitemsfolder.h"
+
+class KPGDatabase;
+class KPGTable;
+class QListBoxItem;
+
+/**
+Storage class for unique name and their column numbers.
+
+ at author Lumir Vanek
+*/
+
+class KPGUniqueInfo
+{
+public:
+	KPGUniqueInfo() {;} 
+    
+	KPGUniqueInfo(const QString & strName, const QString & strColumns)
+	{
+			m_strName = strName;
+			m_strColumns = strColumns;
+	}
+			
+	KPGUniqueInfo(const KPGUniqueInfo &src)
+	{
+			m_strName = src.name();
+			m_strColumns = src.columns();
+	}
+				
+	~KPGUniqueInfo() {;}
+	
+	void operator = (const KPGUniqueInfo &src)
+	{
+			m_strName = src.name();
+			m_strColumns = src.columns();
+	}
+
+	// Return columns numbers
+	const QString & columns() const { return m_strColumns; }
+		
+	// Return name
+	const QString & name() const { return m_strName; }
+	
+protected:
+	QString m_strName;
+	QString m_strColumns;		
+};
+
+/**
+Widged for create table wizard - define table constraints
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWidget3 : public KPGCreateTableWidget3Base
+{
+Q_OBJECT
+public:
+    KPGCreateTableWidget3(QWidget *parent, const char *name, KPGDatabase *, bool);
+    ~KPGCreateTableWidget3();
+		
+	void setNamespace(const QString &strNamespace);
+	//QPtrList<KPGOidName> & getListOfRefTablesOids() { return m_listOfRefTablesOids; }
+	const QString getSQL() const;
+	void refTableSelectChanged();
+	KPGListTableColumnWizInfo & getListOfAvailableColumns() { return m_listOfAvailableColumns; }
+	void setListOfAvailableColumns(KPGListTableColumnWizInfo &);
+	void refreshAvailableColumns();
+	void setTableName(const QString &strTableName) { m_strTableName = strTableName; }
+		
+protected:
+	void enableAddConstraintButton(int, bool);
+	void setDefaultConstraintName(int);
+	void addPrimaryKey();
+	void addForeignKey();
+	void addUnique();
+	void addCheck();
+	bool testTypesCompatibility(const KPGTableColumnWizInfo *, const KPGTableColumnWizInfo *);
+		
+protected:
+	KPGDatabase *m_pDatabase;
+    KPGTable *m_pReferencedTable;
+    QString m_strNamespace; // name of the namespace
+	QString m_strTableName; // name of the created table
+	KPGOidNameList m_listOfRefTablesOids;
+	QPtrList<KPGUniqueInfo> m_listOfRefUniques;
+	KPGListTableColumnWizInfo m_listOfRefColumns;
+	KPGListTableColumnWizInfo m_listOfAvailableColumns;
+	bool m_bPrimaryKey; // display create PK page
+		
+protected slots:
+
+    virtual void slotConstraintTypeChanged(int);
+	virtual void slotConstraintNameChanged(const QString&);
+		
+	virtual void slotPKColumnAdded(QListBoxItem *);
+    virtual void slotPKColumnRemoved(QListBoxItem *);
+    
+	virtual void slotRefSchemaSelectChanged(const QString &);
+	virtual void slotRefTableSelectChanged(const QString &);
+	virtual void slotRefUniqueSelectChanged(const QString &);
+	virtual void slotFKColumnAdded(QListBoxItem *);
+    virtual void slotFKColumnRemoved(QListBoxItem *);
+    
+    virtual void slotUniqueColumnAdded(QListBoxItem *);
+    virtual void slotUniqueColumnRemoved(QListBoxItem *);
+    
+	virtual void slotCheckExpressionChanged(const QString &);
+	virtual void slotAvailableCheckColsDblClicked(QListBoxItem *);
+		
+    virtual void slotConstraintsSelectionChanged(QListViewItem *);
+    virtual void slotConstraintsCurrentChanged(QListViewItem *);
+    virtual void slotConstraintAdd();
+    virtual void slotConstraintDelete();
+		
+signals:
+	void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,411 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablewidget3base.ui'
+**
+** Created: Út dub 1 13:07:26 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablewidget3base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <qwidgetstack.h>
+#include <kactionselector.h>
+#include <qcombobox.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+#include "kactionselector.h"
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateTableWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTableWidget3Base::KPGCreateTableWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTableWidget3Base" );
+    setMinimumSize( QSize( 650, 500 ) );
+    KPGCreateTableWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTableWidget3BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonConstraintAdd = new QPushButton( groupBox1, "m_pPushButtonConstraintAdd" );
+    m_pPushButtonConstraintAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConstraintAdd, 0, 1 );
+
+    m_pPushButtonConstraintDel = new QPushButton( groupBox1, "m_pPushButtonConstraintDel" );
+    m_pPushButtonConstraintDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConstraintDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewConstraints = new QListView( groupBox1, "m_pListViewConstraints" );
+    m_pListViewConstraints->addColumn( tr2i18n( "Constraint definition" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewConstraints, 0, 2, 0, 0 );
+
+    KPGCreateTableWidget3BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+
+    layout17 = new QVBoxLayout( 0, 0, 6, "layout17"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout17->addWidget( textLabel1_2 );
+
+    m_pComboBoxConstraintType = new KComboBox( FALSE, this, "m_pComboBoxConstraintType" );
+    layout17->addWidget( m_pComboBoxConstraintType );
+
+    KPGCreateTableWidget3BaseLayout->addLayout( layout17, 0, 0 );
+
+    layout18 = new QVBoxLayout( 0, 0, 6, "layout18"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout18->addWidget( textLabel2_2 );
+
+    m_pLineEditConstraintName = new KLineEdit( this, "m_pLineEditConstraintName" );
+    m_pLineEditConstraintName->setLineWidth( 1 );
+    m_pLineEditConstraintName->setMargin( 0 );
+    m_pLineEditConstraintName->setFrame( TRUE );
+    layout18->addWidget( m_pLineEditConstraintName );
+
+    KPGCreateTableWidget3BaseLayout->addLayout( layout18, 0, 1 );
+
+    layout19 = new QVBoxLayout( 0, 0, 6, "layout19"); 
+
+    m_pTextLabelTablespace = new QLabel( this, "m_pTextLabelTablespace" );
+    layout19->addWidget( m_pTextLabelTablespace );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, this, "m_pComboBoxTablespace" );
+    layout19->addWidget( m_pComboBoxTablespace );
+
+    KPGCreateTableWidget3BaseLayout->addLayout( layout19, 0, 2 );
+
+    m_pWidgetStack = new QWidgetStack( this, "m_pWidgetStack" );
+    m_pWidgetStack->setMinimumSize( QSize( 500, 250 ) );
+    m_pWidgetStack->setFrameShape( QWidgetStack::Panel );
+    m_pWidgetStack->setFrameShadow( QWidgetStack::Plain );
+    m_pWidgetStack->setLineWidth( 1 );
+    m_pWidgetStack->setMargin( 0 );
+    m_pWidgetStack->setMidLineWidth( 0 );
+
+    WStackPage0 = new QWidget( m_pWidgetStack, "WStackPage0" );
+    WStackPage0Layout = new QGridLayout( WStackPage0, 1, 1, 11, 6, "WStackPage0Layout"); 
+
+    m_pActionSelectorPKColumns = new KActionSelector( WStackPage0, "m_pActionSelectorPKColumns" );
+
+    WStackPage0Layout->addWidget( m_pActionSelectorPKColumns, 0, 0 );
+    m_pWidgetStack->addWidget( WStackPage0, 0 );
+
+    WStackPage1 = new QWidget( m_pWidgetStack, "WStackPage1" );
+    WStackPage1Layout = new QGridLayout( WStackPage1, 1, 1, 11, 6, "WStackPage1Layout"); 
+
+    layout18_2 = new QHBoxLayout( 0, 0, 6, "layout18_2"); 
+
+    layout13 = new QVBoxLayout( 0, 0, 6, "layout13"); 
+
+    textLabel1_4 = new QLabel( WStackPage1, "textLabel1_4" );
+    layout13->addWidget( textLabel1_4 );
+
+    m_pComboBoxMatchType = new QComboBox( FALSE, WStackPage1, "m_pComboBoxMatchType" );
+    layout13->addWidget( m_pComboBoxMatchType );
+    layout18_2->addLayout( layout13 );
+
+    layout14 = new QVBoxLayout( 0, 0, 6, "layout14"); 
+
+    textLabel2_4 = new QLabel( WStackPage1, "textLabel2_4" );
+    layout14->addWidget( textLabel2_4 );
+
+    m_pComboBoxOnDelete = new QComboBox( FALSE, WStackPage1, "m_pComboBoxOnDelete" );
+    layout14->addWidget( m_pComboBoxOnDelete );
+    layout18_2->addLayout( layout14 );
+
+    layout15 = new QVBoxLayout( 0, 0, 6, "layout15"); 
+
+    textLabel3_2 = new QLabel( WStackPage1, "textLabel3_2" );
+    layout15->addWidget( textLabel3_2 );
+
+    m_pComboBoxOnUpdate = new QComboBox( FALSE, WStackPage1, "m_pComboBoxOnUpdate" );
+    layout15->addWidget( m_pComboBoxOnUpdate );
+    layout18_2->addLayout( layout15 );
+
+    layout17_2 = new QVBoxLayout( 0, 0, 6, "layout17_2"); 
+
+    m_pCheckBoxDeferrable = new QCheckBox( WStackPage1, "m_pCheckBoxDeferrable" );
+    layout17_2->addWidget( m_pCheckBoxDeferrable );
+
+    m_pCheckBoxInitDeferred = new QCheckBox( WStackPage1, "m_pCheckBoxInitDeferred" );
+    layout17_2->addWidget( m_pCheckBoxInitDeferred );
+    layout18_2->addLayout( layout17_2 );
+
+    WStackPage1Layout->addLayout( layout18_2, 2, 0 );
+
+    layout26 = new QHBoxLayout( 0, 0, 6, "layout26"); 
+
+    layout25 = new QVBoxLayout( 0, 0, 6, "layout25"); 
+
+    textLabel1_6 = new QLabel( WStackPage1, "textLabel1_6" );
+    layout25->addWidget( textLabel1_6 );
+
+    m_pComboBoxRefSchema = new KComboBox( FALSE, WStackPage1, "m_pComboBoxRefSchema" );
+    layout25->addWidget( m_pComboBoxRefSchema );
+    layout26->addLayout( layout25 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel1_3 = new QLabel( WStackPage1, "textLabel1_3" );
+    layout4->addWidget( textLabel1_3 );
+
+    m_pComboBoxRefTable = new KComboBox( FALSE, WStackPage1, "m_pComboBoxRefTable" );
+    layout4->addWidget( m_pComboBoxRefTable );
+    layout26->addLayout( layout4 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel2_3 = new QLabel( WStackPage1, "textLabel2_3" );
+    layout5->addWidget( textLabel2_3 );
+
+    m_pComboBoxRefUiques = new KComboBox( FALSE, WStackPage1, "m_pComboBoxRefUiques" );
+    layout5->addWidget( m_pComboBoxRefUiques );
+    layout26->addLayout( layout5 );
+
+    WStackPage1Layout->addLayout( layout26, 0, 0 );
+
+    layout26_2 = new QHBoxLayout( 0, 0, 6, "layout26_2"); 
+
+    m_pActionSelectorFKColumns = new KActionSelector( WStackPage1, "m_pActionSelectorFKColumns" );
+    m_pActionSelectorFKColumns->setMinimumSize( QSize( 0, 0 ) );
+    m_pActionSelectorFKColumns->setShowUpDownButtons( FALSE );
+    layout26_2->addWidget( m_pActionSelectorFKColumns );
+
+    layout9 = new QVBoxLayout( 0, 0, 6, "layout9"); 
+
+    textLabel5 = new QLabel( WStackPage1, "textLabel5" );
+    layout9->addWidget( textLabel5 );
+
+    m_pListBoxReferencingCols = new KListBox( WStackPage1, "m_pListBoxReferencingCols" );
+    layout9->addWidget( m_pListBoxReferencingCols );
+    layout26_2->addLayout( layout9 );
+
+    WStackPage1Layout->addLayout( layout26_2, 1, 0 );
+    m_pWidgetStack->addWidget( WStackPage1, 1 );
+
+    WStackPage2 = new QWidget( m_pWidgetStack, "WStackPage2" );
+    WStackPage2Layout = new QGridLayout( WStackPage2, 1, 1, 11, 6, "WStackPage2Layout"); 
+
+    m_pActionSelectorUniqueColumns = new KActionSelector( WStackPage2, "m_pActionSelectorUniqueColumns" );
+
+    WStackPage2Layout->addWidget( m_pActionSelectorUniqueColumns, 0, 0 );
+    m_pWidgetStack->addWidget( WStackPage2, 2 );
+
+    WStackPage3 = new QWidget( m_pWidgetStack, "WStackPage3" );
+    WStackPage3Layout = new QGridLayout( WStackPage3, 1, 1, 11, 6, "WStackPage3Layout"); 
+
+    layout23 = new QVBoxLayout( 0, 0, 6, "layout23"); 
+
+    textLabel3_3 = new QLabel( WStackPage3, "textLabel3_3" );
+    layout23->addWidget( textLabel3_3 );
+
+    m_pLineEditCheckExpression = new KLineEdit( WStackPage3, "m_pLineEditCheckExpression" );
+    layout23->addWidget( m_pLineEditCheckExpression );
+
+    WStackPage3Layout->addMultiCellLayout( layout23, 1, 1, 0, 1 );
+
+    layout24 = new QVBoxLayout( 0, 0, 6, "layout24"); 
+
+    textLabel4_2 = new QLabel( WStackPage3, "textLabel4_2" );
+    layout24->addWidget( textLabel4_2 );
+
+    m_pListBoxAvailableCheckCols = new KListBox( WStackPage3, "m_pListBoxAvailableCheckCols" );
+    layout24->addWidget( m_pListBoxAvailableCheckCols );
+
+    WStackPage3Layout->addLayout( layout24, 0, 0 );
+    spacer5 = new QSpacerItem( 131, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    WStackPage3Layout->addItem( spacer5, 0, 1 );
+    m_pWidgetStack->addWidget( WStackPage3, 3 );
+
+    KPGCreateTableWidget3BaseLayout->addMultiCellWidget( m_pWidgetStack, 1, 1, 0, 2 );
+    languageChange();
+    resize( QSize(650, 500).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pPushButtonConstraintAdd, SIGNAL( clicked() ), this, SLOT( slotConstraintAdd() ) );
+    connect( m_pPushButtonConstraintDel, SIGNAL( clicked() ), this, SLOT( slotConstraintDelete() ) );
+    connect( m_pComboBoxRefUiques, SIGNAL( activated(const QString&) ), this, SLOT( slotRefUniqueSelectChanged(const QString&) ) );
+    connect( m_pComboBoxRefTable, SIGNAL( activated(const QString&) ), this, SLOT( slotRefTableSelectChanged(const QString&) ) );
+    connect( m_pListViewConstraints, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotConstraintsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewConstraints, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotConstraintsCurrentChanged(QListViewItem*) ) );
+    connect( m_pLineEditConstraintName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotConstraintNameChanged(const QString&) ) );
+    connect( m_pComboBoxConstraintType, SIGNAL( activated(int) ), this, SLOT( slotConstraintTypeChanged(int) ) );
+    connect( m_pLineEditCheckExpression, SIGNAL( textChanged(const QString&) ), this, SLOT( slotCheckExpressionChanged(const QString&) ) );
+    connect( m_pListBoxAvailableCheckCols, SIGNAL( doubleClicked(QListBoxItem*) ), this, SLOT( slotAvailableCheckColsDblClicked(QListBoxItem*) ) );
+    connect( m_pComboBoxRefSchema, SIGNAL( activated(const QString&) ), this, SLOT( slotRefSchemaSelectChanged(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pComboBoxConstraintType, m_pLineEditConstraintName );
+    setTabOrder( m_pLineEditConstraintName, m_pComboBoxRefTable );
+    setTabOrder( m_pComboBoxRefTable, m_pComboBoxRefUiques );
+    setTabOrder( m_pComboBoxRefUiques, m_pListBoxReferencingCols );
+    setTabOrder( m_pListBoxReferencingCols, m_pComboBoxMatchType );
+    setTabOrder( m_pComboBoxMatchType, m_pComboBoxOnDelete );
+    setTabOrder( m_pComboBoxOnDelete, m_pComboBoxOnUpdate );
+    setTabOrder( m_pComboBoxOnUpdate, m_pCheckBoxDeferrable );
+    setTabOrder( m_pCheckBoxDeferrable, m_pCheckBoxInitDeferred );
+    setTabOrder( m_pCheckBoxInitDeferred, m_pListViewConstraints );
+    setTabOrder( m_pListViewConstraints, m_pPushButtonConstraintAdd );
+    setTabOrder( m_pPushButtonConstraintAdd, m_pPushButtonConstraintDel );
+
+    // buddies
+    textLabel1_2->setBuddy( m_pComboBoxConstraintType );
+    textLabel2_2->setBuddy( m_pLineEditConstraintName );
+    m_pTextLabelTablespace->setBuddy( m_pLineEditConstraintName );
+    textLabel1_4->setBuddy( m_pComboBoxMatchType );
+    textLabel2_4->setBuddy( m_pComboBoxOnDelete );
+    textLabel3_2->setBuddy( m_pComboBoxOnUpdate );
+    textLabel1_6->setBuddy( m_pComboBoxRefSchema );
+    textLabel1_3->setBuddy( m_pComboBoxRefTable );
+    textLabel2_3->setBuddy( m_pComboBoxRefUiques );
+    textLabel5->setBuddy( m_pListBoxReferencingCols );
+    textLabel3_3->setBuddy( m_pLineEditCheckExpression );
+    textLabel4_2->setBuddy( m_pListBoxAvailableCheckCols );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTableWidget3Base::~KPGCreateTableWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTableWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Table - define table constraints" ) );
+    groupBox1->setTitle( tr2i18n( "Table constraints" ) );
+    m_pPushButtonConstraintAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonConstraintAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonConstraintDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonConstraintDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewConstraints->header()->setLabel( 0, tr2i18n( "Constraint definition" ) );
+    textLabel1_2->setText( tr2i18n( "Constraint t&ype:" ) );
+    textLabel2_2->setText( tr2i18n( "C&onstraint name:" ) );
+    m_pTextLabelTablespace->setText( tr2i18n( "&Tablespace:" ) );
+    m_pComboBoxTablespace->clear();
+    m_pComboBoxTablespace->insertItem( tr2i18n( "Default" ) );
+    m_pActionSelectorPKColumns->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pActionSelectorPKColumns->setSelectedLabel( tr2i18n( "&Primary key columns:" ) );
+    textLabel1_4->setText( tr2i18n( "&Match type:" ) );
+    m_pComboBoxMatchType->clear();
+    m_pComboBoxMatchType->insertItem( tr2i18n( "DEFAULT" ) );
+    m_pComboBoxMatchType->insertItem( tr2i18n( "MATCH FULL" ) );
+    textLabel2_4->setText( tr2i18n( "On D&elete:" ) );
+    m_pComboBoxOnDelete->clear();
+    m_pComboBoxOnDelete->insertItem( tr2i18n( "No action" ) );
+    m_pComboBoxOnDelete->insertItem( tr2i18n( "CASCADE" ) );
+    m_pComboBoxOnDelete->insertItem( tr2i18n( "SET DEFAULT" ) );
+    m_pComboBoxOnDelete->insertItem( tr2i18n( "SET NULL" ) );
+    textLabel3_2->setText( tr2i18n( "On U&pdate:" ) );
+    m_pComboBoxOnUpdate->clear();
+    m_pComboBoxOnUpdate->insertItem( tr2i18n( "No action" ) );
+    m_pComboBoxOnUpdate->insertItem( tr2i18n( "CASCADE" ) );
+    m_pComboBoxOnUpdate->insertItem( tr2i18n( "SET DEFAULT" ) );
+    m_pComboBoxOnUpdate->insertItem( tr2i18n( "SET NULL" ) );
+    m_pCheckBoxDeferrable->setText( tr2i18n( "Deferrab&le" ) );
+    m_pCheckBoxDeferrable->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pCheckBoxInitDeferred->setText( tr2i18n( "&Initially deferred" ) );
+    m_pCheckBoxInitDeferred->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    textLabel1_6->setText( tr2i18n( "Referenced &schema:" ) );
+    textLabel1_3->setText( tr2i18n( "&Referenced table:" ) );
+    textLabel2_3->setText( tr2i18n( "Referenced &unique:" ) );
+    m_pActionSelectorFKColumns->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pActionSelectorFKColumns->setSelectedLabel( tr2i18n( "&FK columns :" ) );
+    textLabel5->setText( tr2i18n( "Referenced &columns:" ) );
+    m_pActionSelectorUniqueColumns->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pActionSelectorUniqueColumns->setSelectedLabel( tr2i18n( "&Unique columns:" ) );
+    textLabel3_3->setText( tr2i18n( "&Expression:" ) );
+    textLabel4_2->setText( tr2i18n( "A&vailable columns:" ) );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintTypeChanged(int)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintTypeChanged(int): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintAdd()
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintAdd(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintDelete()
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintDelete(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotRefUniqueSelectChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotRefUniqueSelectChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotRefTableSelectChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotRefTableSelectChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotConstraintsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotConstraintsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotCheckExpressionChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotCheckExpressionChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotAvailableCheckColsDblClicked(QListBoxItem*)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotAvailableCheckColsDblClicked(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget3Base::slotRefSchemaSelectChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget3Base::slotRefSchemaSelectChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatetablewidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,792 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTableWidget3Base</class>
+<comment>Widged for create table wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTableWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>650</width>
+            <height>500</height>
+        </rect>
+    </property>
+    <property name="minimumSize">
+        <size>
+            <width>650</width>
+            <height>500</height>
+        </size>
+    </property>
+    <property name="caption">
+        <string>Create Table - define table constraints</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Table constraints</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConstraintAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConstraintDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Constraint definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewConstraints</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout17</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Constraint t&amp;ype:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxConstraintType</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxConstraintType</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout18</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2_2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;onstraint name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditConstraintName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditConstraintName</cstring>
+                    </property>
+                    <property name="lineWidth">
+                        <number>1</number>
+                    </property>
+                    <property name="margin">
+                        <number>0</number>
+                    </property>
+                    <property name="frame">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="2">
+            <property name="name">
+                <cstring>layout19</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>m_pTextLabelTablespace</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Tablespace:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditConstraintName</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>Default</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxTablespace</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QWidgetStack" row="1" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>m_pWidgetStack</cstring>
+            </property>
+            <property name="minimumSize">
+                <size>
+                    <width>500</width>
+                    <height>250</height>
+                </size>
+            </property>
+            <property name="frameShape">
+                <enum>Panel</enum>
+            </property>
+            <property name="frameShadow">
+                <enum>Plain</enum>
+            </property>
+            <property name="lineWidth">
+                <number>1</number>
+            </property>
+            <property name="margin">
+                <number>0</number>
+            </property>
+            <property name="midLineWidth">
+                <number>0</number>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>WStackPage0</cstring>
+                </property>
+                <attribute name="id">
+                    <number>0</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KActionSelector" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pActionSelectorPKColumns</cstring>
+                        </property>
+                        <property name="availableLabel">
+                            <string>&amp;Available columns:</string>
+                        </property>
+                        <property name="selectedLabel">
+                            <string>&amp;Primary key columns:</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>WStackPage1</cstring>
+                </property>
+                <attribute name="id">
+                    <number>1</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLayoutWidget" row="2" column="0">
+                        <property name="name">
+                            <cstring>layout18</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout13</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel1_4</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>&amp;Match type:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxMatchType</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="QComboBox">
+                                        <item>
+                                            <property name="text">
+                                                <string>DEFAULT</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>MATCH FULL</string>
+                                            </property>
+                                        </item>
+                                        <property name="name">
+                                            <cstring>m_pComboBoxMatchType</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout14</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel2_4</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>On D&amp;elete:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxOnDelete</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="QComboBox">
+                                        <item>
+                                            <property name="text">
+                                                <string>No action</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>CASCADE</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>SET DEFAULT</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>SET NULL</string>
+                                            </property>
+                                        </item>
+                                        <property name="name">
+                                            <cstring>m_pComboBoxOnDelete</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout15</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel3_2</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>On U&amp;pdate:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxOnUpdate</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="QComboBox">
+                                        <item>
+                                            <property name="text">
+                                                <string>No action</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>CASCADE</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>SET DEFAULT</string>
+                                            </property>
+                                        </item>
+                                        <item>
+                                            <property name="text">
+                                                <string>SET NULL</string>
+                                            </property>
+                                        </item>
+                                        <property name="name">
+                                            <cstring>m_pComboBoxOnUpdate</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout17</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QCheckBox">
+                                        <property name="name">
+                                            <cstring>m_pCheckBoxDeferrable</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Deferrab&amp;le</string>
+                                        </property>
+                                        <property name="accel">
+                                            <string>Alt+L</string>
+                                        </property>
+                                    </widget>
+                                    <widget class="QCheckBox">
+                                        <property name="name">
+                                            <cstring>m_pCheckBoxInitDeferred</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>&amp;Initially deferred</string>
+                                        </property>
+                                        <property name="accel">
+                                            <string>Alt+I</string>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                        </hbox>
+                    </widget>
+                    <widget class="QLayoutWidget" row="0" column="0">
+                        <property name="name">
+                            <cstring>layout26</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout25</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel1_6</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Referenced &amp;schema:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxRefSchema</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KComboBox">
+                                        <property name="name">
+                                            <cstring>m_pComboBoxRefSchema</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout4</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel1_3</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>&amp;Referenced table:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxRefTable</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KComboBox">
+                                        <property name="name">
+                                            <cstring>m_pComboBoxRefTable</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout5</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel2_3</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Referenced &amp;unique:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pComboBoxRefUiques</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KComboBox">
+                                        <property name="name">
+                                            <cstring>m_pComboBoxRefUiques</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                        </hbox>
+                    </widget>
+                    <widget class="QLayoutWidget" row="1" column="0">
+                        <property name="name">
+                            <cstring>layout26</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="KActionSelector">
+                                <property name="name">
+                                    <cstring>m_pActionSelectorFKColumns</cstring>
+                                </property>
+                                <property name="minimumSize">
+                                    <size>
+                                        <width>0</width>
+                                        <height>0</height>
+                                    </size>
+                                </property>
+                                <property name="availableLabel">
+                                    <string>&amp;Available columns:</string>
+                                </property>
+                                <property name="selectedLabel">
+                                    <string>&amp;FK columns :</string>
+                                </property>
+                                <property name="showUpDownButtons">
+                                    <bool>false</bool>
+                                </property>
+                            </widget>
+                            <widget class="QLayoutWidget">
+                                <property name="name">
+                                    <cstring>layout9</cstring>
+                                </property>
+                                <vbox>
+                                    <property name="name">
+                                        <cstring>unnamed</cstring>
+                                    </property>
+                                    <widget class="QLabel">
+                                        <property name="name">
+                                            <cstring>textLabel5</cstring>
+                                        </property>
+                                        <property name="text">
+                                            <string>Referenced &amp;columns:</string>
+                                        </property>
+                                        <property name="buddy" stdset="0">
+                                            <cstring>m_pListBoxReferencingCols</cstring>
+                                        </property>
+                                    </widget>
+                                    <widget class="KListBox">
+                                        <property name="name">
+                                            <cstring>m_pListBoxReferencingCols</cstring>
+                                        </property>
+                                    </widget>
+                                </vbox>
+                            </widget>
+                        </hbox>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>WStackPage2</cstring>
+                </property>
+                <attribute name="id">
+                    <number>2</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KActionSelector" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pActionSelectorUniqueColumns</cstring>
+                        </property>
+                        <property name="availableLabel">
+                            <string>&amp;Available columns:</string>
+                        </property>
+                        <property name="selectedLabel">
+                            <string>&amp;Unique columns:</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>WStackPage3</cstring>
+                </property>
+                <attribute name="id">
+                    <number>3</number>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+                        <property name="name">
+                            <cstring>layout23</cstring>
+                        </property>
+                        <vbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel3_3</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>&amp;Expression:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pLineEditCheckExpression</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KLineEdit">
+                                <property name="name">
+                                    <cstring>m_pLineEditCheckExpression</cstring>
+                                </property>
+                            </widget>
+                        </vbox>
+                    </widget>
+                    <widget class="QLayoutWidget" row="0" column="0">
+                        <property name="name">
+                            <cstring>layout24</cstring>
+                        </property>
+                        <vbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>textLabel4_2</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>A&amp;vailable columns:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pListBoxAvailableCheckCols</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KListBox">
+                                <property name="name">
+                                    <cstring>m_pListBoxAvailableCheckCols</cstring>
+                                </property>
+                            </widget>
+                        </vbox>
+                    </widget>
+                    <spacer row="0" column="1">
+                        <property name="name">
+                            <cstring>spacer5</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Horizontal</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>131</width>
+                                <height>21</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pPushButtonConstraintAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonConstraintDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxRefUiques</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotRefUniqueSelectChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxRefTable</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotRefTableSelectChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConstraints</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConstraints</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditConstraintName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxConstraintType</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotConstraintTypeChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditCheckExpression</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotCheckExpressionChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxAvailableCheckCols</sender>
+        <signal>doubleClicked(QListBoxItem*)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotAvailableCheckColsDblClicked(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxRefSchema</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget3Base</receiver>
+        <slot>slotRefSchemaSelectChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pComboBoxConstraintType</tabstop>
+    <tabstop>m_pLineEditConstraintName</tabstop>
+    <tabstop>m_pComboBoxRefTable</tabstop>
+    <tabstop>m_pComboBoxRefUiques</tabstop>
+    <tabstop>m_pListBoxReferencingCols</tabstop>
+    <tabstop>m_pComboBoxMatchType</tabstop>
+    <tabstop>m_pComboBoxOnDelete</tabstop>
+    <tabstop>m_pComboBoxOnUpdate</tabstop>
+    <tabstop>m_pCheckBoxDeferrable</tabstop>
+    <tabstop>m_pCheckBoxInitDeferred</tabstop>
+    <tabstop>m_pListViewConstraints</tabstop>
+    <tabstop>m_pPushButtonConstraintAdd</tabstop>
+    <tabstop>m_pPushButtonConstraintDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotConstraintTypeChanged(int)</slot>
+    <slot access="protected">slotConstraintNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotConstraintAdd()</slot>
+    <slot access="protected">slotConstraintDelete()</slot>
+    <slot access="protected">slotRefUniqueSelectChanged(const QString &amp;)</slot>
+    <slot access="protected">slotRefTableSelectChanged(const QString &amp;)</slot>
+    <slot access="protected">slotConstraintsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotConstraintsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckExpressionChanged(const QString &amp;)</slot>
+    <slot access="protected">slotAvailableCheckColsDblClicked(QListBoxItem *)</slot>
+    <slot access="protected">slotRefSchemaSelectChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kactionselector.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kactionselector.h</includehint>
+    <includehint>klistbox.h</includehint>
+    <includehint>kactionselector.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,329 @@
+//
+// C++ Implementation: kpgcreatetablewidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewidget4.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+#include <ktextedit.h> 
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTableWidget4::KPGCreateTableWidget4(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateTableWidget4Base(parent, name)
+{
+	m_pDatabase = pDatabase;
+  	m_bWhereSaved = false;
+	
+	m_pListViewIndexes->setSortColumn(-1);
+  
+  // This is here, instead of making connection in Qt Designer due to bug - forward declaration
+  // class QListBoxItem; is not added to h file.
+  connect( m_pActionSelectorIDXColumns, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotColumnAdded(QListBoxItem*) ) );
+  connect( m_pActionSelectorIDXColumns, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotColumnRemoved(QListBoxItem*) ) );
+}
+
+
+KPGCreateTableWidget4::~KPGCreateTableWidget4()
+{
+}
+
+void KPGCreateTableWidget4::setListOfAvailableColumns(KPGListTableColumnWizInfo &listOfAvailableColumns)
+{
+	m_listOfAvailableColumns = listOfAvailableColumns;
+	
+	m_pActionSelectorIDXColumns->availableListBox()->clear();
+	m_pActionSelectorIDXColumns->selectedListBox()->clear();
+	
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+	{
+		KPGTableColumnWizInfo *pTableColumnWizInfo = static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i));
+		
+		if(pTableColumnWizInfo->attNum() < 1) continue; // skip system columns
+		
+		m_pActionSelectorIDXColumns->availableListBox()->insertItem(
+				pTableColumnWizInfo->icon(), 
+				pTableColumnWizInfo->name()
+				);
+	}
+}
+
+void KPGCreateTableWidget4::slotCurrentFunctionChanged(int iIndex)
+{
+	if(iIndex > 0)
+	{
+		if(!m_bWhereSaved)
+			{
+			  m_strSavedWherePredicate = m_pTextEditWherePredicate->text(); 
+				m_bWhereSaved = true;
+			}
+			
+		m_pTextEditWherePredicate->setText("");
+		m_pTextEditWherePredicate->setEnabled(false);	
+	}
+	else
+	{
+		m_pTextEditWherePredicate->setText(m_strSavedWherePredicate);
+		m_pTextEditWherePredicate->setEnabled(true);
+		m_bWhereSaved = false;	
+	}
+}
+
+/////////////////////////////////////////////////////////////////////
+//                 INDEX COLUMNS FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget4::slotColumnAdded(QListBoxItem *)
+{
+  setDefaultIndexName();
+	enableAddIndexButton( m_pLineEditIndexName->text().isEmpty());
+	refreshListOfFunctions(m_pActionSelectorIDXColumns->selectedListBox()->count());
+}
+
+void KPGCreateTableWidget4::slotColumnRemoved(QListBoxItem *)
+{
+  enableAddIndexButton(m_pLineEditIndexName->text().isEmpty());
+	refreshListOfFunctions(m_pActionSelectorIDXColumns->selectedListBox()->count());
+}
+
+void KPGCreateTableWidget4::refreshListOfFunctions(int nArguments)
+{
+	m_pComboBoxFunctions->clear();
+	if(nArguments == 0) return;
+
+	m_pComboBoxFunctions->insertItem(""); // void item for index without function
+	
+	//--- Obtain list of "immutable" functions with required number of parameters
+	
+  // First find schema - this same as created table
+  KPGTreeItem *pItem = m_pDatabase->getChildByName(m_strNamespaceName);
+  if(!pItem)
+  {
+    kdDebug() << k_funcinfo << " No item found: " << m_strNamespaceName << endl;
+    return;
+  }
+        
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+  KPGFunctionsFolder *pFunctionsFolder = pSchema->getFunctionsFolder();
+  
+	// traverse list of functions
+  QListViewItem * pLvItem = pFunctionsFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGFunction *pFunction = static_cast <KPGFunction *> (pLvItem);
+      
+    if((pFunction->getVolatile() == "i") && (pFunction->nArgs() == nArguments))
+      m_pComboBoxFunctions->insertItem(* pFunction->pixmap(0), pFunction->text(0)); 
+      
+    pLvItem = pLvItem->nextSibling();
+  }
+	
+	//------------------------------------------------------------------
+	
+	// Second, find schema - pg_catalog
+	pItem = m_pDatabase->getChildByName("pg_catalog");
+    if(!pItem)
+    {
+        kdDebug() << k_funcinfo << " No item found: " << "pg_catalog" << endl;
+        return;
+    }
+        
+  pSchema = static_cast <KPGSchema *> (pItem);
+  pFunctionsFolder = pSchema->getFunctionsFolder();
+	
+	// traverse list of functions
+  pLvItem = pFunctionsFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGFunction *pFunction = static_cast <KPGFunction *> (pLvItem);
+      
+    if((pFunction->getVolatile() == "i") && (pFunction->nArgs() == nArguments))
+      m_pComboBoxFunctions->insertItem(* pFunction->pixmap(0), pFunction->text(0)); 
+      
+    pLvItem = pLvItem->nextSibling();
+  }
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+
+void KPGCreateTableWidget4::setDefaultIndexName()
+{
+	QString strTableName(m_strTableName);
+  	
+  	QString strFKName("idx_" + strTableName + "__");
+			
+	for(unsigned int i = 0; i < m_pActionSelectorIDXColumns->selectedListBox()->count(); i++)
+			strFKName.append("_" + m_pActionSelectorIDXColumns->selectedListBox()->text(i));
+								
+	m_pLineEditIndexName->setText(strFKName);
+							
+}
+
+void KPGCreateTableWidget4::slotIndexNameChanged(const QString& strText)
+{
+	enableAddIndexButton(strText.isEmpty());
+}
+
+void KPGCreateTableWidget4::enableAddIndexButton(bool bIndexNameEmpty)
+{
+	if(bIndexNameEmpty)
+		m_pPushButtonIndexAdd->setEnabled(false);
+	else
+		m_pPushButtonIndexAdd->setEnabled(m_pActionSelectorIDXColumns->selectedListBox()->count() > 0);
+}
+
+void KPGCreateTableWidget4::slotIndexAdd()
+{
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewIndexes->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QString strSql("CREATE");
+	
+	if(m_pCheckBoxUnique->isChecked())
+		strSql.append(" UNIQUE");
+	
+	strSql.append(" INDEX ");
+		
+	strSql.append(KPGUtil::quotedName(m_pLineEditIndexName->text()));
+	strSql.append(" ON ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+	
+	if(m_pComboBoxMethod->currentItem() > 0)
+		strSql.append(" USING " + m_pComboBoxMethod->currentText()); // USING ...
+	
+	strSql.append(" (");
+		
+	if(m_pComboBoxFunctions->currentItem() > 0)
+		strSql.append(" " + KPGUtil::quotedName(m_pComboBoxFunctions->currentText()) + "("); // (func_name(column1, column2, ... ))
+		
+	// List of index columns -----------------------------------------	
+	for(unsigned int i = 0; i < m_pActionSelectorIDXColumns->selectedListBox()->count(); i++)
+	{
+		strSql.append(KPGUtil::quotedName(m_pActionSelectorIDXColumns->selectedListBox()->text(i)));
+		
+		if(i < m_pActionSelectorIDXColumns->selectedListBox()->count() - 1)
+			strSql.append(", ");
+	}
+	strSql.append(")");
+	//----------------------------------------------------------------
+	
+	if(m_pComboBoxFunctions->currentItem() > 0)
+		strSql.append(")");
+	
+  if(m_pComboBoxTablespace->currentItem() > 0)
+    strSql.append(" TABLESPACE " + KPGUtil::quotedName(m_pComboBoxTablespace->currentText()));  
+    
+	if(m_pTextEditWherePredicate->text().length() > 0)
+	{
+		strSql.append(" WHERE ");
+		strSql.append("(" + m_pTextEditWherePredicate->text() + ")");
+	}
+		
+	// Create item for new index
+	QListViewItem *pNewItem;
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewIndexes, strSql);
+	else
+		pNewItem = new QListViewItem(m_pListViewIndexes, pLastItem, strSql);
+	
+	pNewItem->setPixmap(0, * KPGTreeItem::m_pIconIndex);
+	
+	// Renew available columns list, clear index columns list
+	m_pActionSelectorIDXColumns->selectedListBox()->clear();
+	m_pActionSelectorIDXColumns->availableListBox()->clear();
+	
+	for(unsigned int i= 0; i < m_listOfAvailableColumns.count(); i++)
+		{
+			m_pActionSelectorIDXColumns->availableListBox()->insertItem(
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->icon(), 
+				static_cast <KPGTableColumnWizInfo *> (m_listOfAvailableColumns.at(i))->name()
+				);
+		}
+		
+	// Clean up dialog	
+	m_pLineEditIndexName->setText("");
+	m_pComboBoxFunctions->clear();
+	m_pTextEditWherePredicate->setText("");
+	m_pTextEditWherePredicate->setEnabled(true);
+	sigEnableNextButton(true);
+}
+
+void KPGCreateTableWidget4::slotIndexDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewIndexes->selectedItem();
+	if(pSelectedItem)
+			delete pSelectedItem;
+	
+	m_pPushButtonIndexDel->setEnabled(false);
+	
+	enableAddIndexButton(m_pLineEditIndexName->text().isEmpty());
+	sigEnableNextButton(m_pListViewIndexes->childCount() > 0);
+}
+
+void KPGCreateTableWidget4::slotIndexesSelectionChanged(QListViewItem* pItem)
+{
+	m_pPushButtonIndexDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget4::slotIndexesCurrentChanged(QListViewItem* pItem)
+{
+	m_pPushButtonIndexDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for CREATE TABLE
+const QString KPGCreateTableWidget4::getSQL() const
+{
+	QString strSql;
+	
+	QListViewItem * pItem = m_pListViewIndexes->firstChild();
+	while(pItem)
+	{
+		strSql.append("\n");
+		strSql.append(pItem->text(0));
+		strSql.append(";");
+					  
+		pItem = pItem->nextSibling();
+	}
+	
+	return strSql;
+}
+
+
+#include "kpgcreatetablewidget4.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+//
+// C++ Interface: kpgcreatetablewidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIDGET4_H
+#define KPGCREATETABLEWIDGET4_H
+
+#include "kpgcreatetablewidget4base.h"
+
+#include "kpgtablecolumnwizinfo.h"
+
+class KPGDatabase;
+class QListBoxItem;
+
+/**
+Widget for create table wizard - define indexes
+
+http://www.postgresql.org/docs/current/static/sql-createindex.html
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWidget4 : public KPGCreateTableWidget4Base
+{
+Q_OBJECT
+public:
+    KPGCreateTableWidget4(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateTableWidget4();
+
+	KPGListTableColumnWizInfo & getListOfAvailableColumns() { return m_listOfAvailableColumns; }
+	void setListOfAvailableColumns(KPGListTableColumnWizInfo &);
+	void setTableName(const QString &strTableName) { m_strTableName = strTableName; }
+	void setNamespace(const QString &strNamespaceName) { m_strNamespaceName = strNamespaceName; }
+	const QString getSQL() const;
+
+protected:
+		
+	void enableAddIndexButton(bool);
+	void setDefaultIndexName();
+	void refreshListOfFunctions(int);
+				
+protected:
+	KPGDatabase *m_pDatabase;
+    QString m_strTableName; 	// name of the created table
+	QString m_strNamespaceName; // name of the namespace
+	KPGListTableColumnWizInfo m_listOfAvailableColumns;
+	QString m_strSavedWherePredicate;
+	bool m_bWhereSaved;
+		
+protected slots:
+
+	virtual void slotIndexNameChanged(const QString&);
+		
+	virtual void slotColumnAdded(QListBoxItem *);
+    virtual void slotColumnRemoved(QListBoxItem *);
+    virtual void slotIndexesSelectionChanged(QListViewItem *);
+    virtual void slotIndexesCurrentChanged(QListViewItem *);
+	virtual void slotCurrentFunctionChanged(int);
+		
+	virtual void slotIndexAdd();
+    virtual void slotIndexDelete();
+						
+signals:
+	void sigEnableNextButton(bool);		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,235 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablewidget4base.ui'
+**
+** Created: Út dub 1 13:07:26 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablewidget4base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlabel.h>
+#include <ktextedit.h>
+#include <qcheckbox.h>
+#include <klineedit.h>
+#include <qcombobox.h>
+#include <kcombobox.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+#include "klineedit.h"
+#include "kcombobox.h"
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCreateTableWidget4Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTableWidget4Base::KPGCreateTableWidget4Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTableWidget4Base" );
+    KPGCreateTableWidget4BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTableWidget4BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonIndexAdd = new QPushButton( groupBox1, "m_pPushButtonIndexAdd" );
+    m_pPushButtonIndexAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonIndexAdd, 0, 1 );
+
+    m_pPushButtonIndexDel = new QPushButton( groupBox1, "m_pPushButtonIndexDel" );
+    m_pPushButtonIndexDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonIndexDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewIndexes = new QListView( groupBox1, "m_pListViewIndexes" );
+    m_pListViewIndexes->addColumn( tr2i18n( "Index definition" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewIndexes, 0, 2, 0, 0 );
+
+    KPGCreateTableWidget4BaseLayout->addWidget( groupBox1, 3, 0 );
+
+    layout12 = new QVBoxLayout( 0, 0, 6, "layout12"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout12->addWidget( textLabel3 );
+
+    m_pTextEditWherePredicate = new KTextEdit( this, "m_pTextEditWherePredicate" );
+    layout12->addWidget( m_pTextEditWherePredicate );
+
+    KPGCreateTableWidget4BaseLayout->addLayout( layout12, 2, 0 );
+
+    layout13 = new QHBoxLayout( 0, 0, 6, "layout13"); 
+
+    layout9 = new QVBoxLayout( 0, 0, 6, "layout9"); 
+
+    layout8 = new QHBoxLayout( 0, 0, 6, "layout8"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout8->addWidget( textLabel2_2 );
+
+    m_pCheckBoxUnique = new QCheckBox( this, "m_pCheckBoxUnique" );
+    layout8->addWidget( m_pCheckBoxUnique );
+    layout9->addLayout( layout8 );
+
+    m_pLineEditIndexName = new KLineEdit( this, "m_pLineEditIndexName" );
+    m_pLineEditIndexName->setMargin( 2 );
+    layout9->addWidget( m_pLineEditIndexName );
+    layout13->addLayout( layout9 );
+
+    layout12_2 = new QVBoxLayout( 0, 0, 6, "layout12_2"); 
+
+    layout11 = new QHBoxLayout( 0, 0, 6, "layout11"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout11->addWidget( textLabel1_2 );
+    spacer2 = new QSpacerItem( 31, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout11->addItem( spacer2 );
+    layout12_2->addLayout( layout11 );
+
+    m_pComboBoxFunctions = new QComboBox( FALSE, this, "m_pComboBoxFunctions" );
+    layout12_2->addWidget( m_pComboBoxFunctions );
+    layout13->addLayout( layout12_2 );
+
+    layout10 = new QVBoxLayout( 0, 0, 6, "layout10"); 
+
+    textLabel2_3 = new QLabel( this, "textLabel2_3" );
+    layout10->addWidget( textLabel2_3 );
+
+    m_pComboBoxMethod = new QComboBox( FALSE, this, "m_pComboBoxMethod" );
+    layout10->addWidget( m_pComboBoxMethod );
+    layout13->addLayout( layout10 );
+
+    layout12_3 = new QVBoxLayout( 0, 0, 6, "layout12_3"); 
+
+    textLabel1_3 = new QLabel( this, "textLabel1_3" );
+    layout12_3->addWidget( textLabel1_3 );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, this, "m_pComboBoxTablespace" );
+    layout12_3->addWidget( m_pComboBoxTablespace );
+    layout13->addLayout( layout12_3 );
+
+    KPGCreateTableWidget4BaseLayout->addLayout( layout13, 0, 0 );
+
+    m_pActionSelectorIDXColumns = new KActionSelector( this, "m_pActionSelectorIDXColumns" );
+
+    KPGCreateTableWidget4BaseLayout->addWidget( m_pActionSelectorIDXColumns, 1, 0 );
+    languageChange();
+    resize( QSize(532, 480).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditIndexName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotIndexNameChanged(const QString&) ) );
+    connect( m_pPushButtonIndexAdd, SIGNAL( clicked() ), this, SLOT( slotIndexAdd() ) );
+    connect( m_pPushButtonIndexDel, SIGNAL( clicked() ), this, SLOT( slotIndexDelete() ) );
+    connect( m_pListViewIndexes, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotIndexesSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewIndexes, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotIndexesCurrentChanged(QListViewItem*) ) );
+    connect( m_pComboBoxFunctions, SIGNAL( activated(int) ), this, SLOT( slotCurrentFunctionChanged(int) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditIndexName, m_pCheckBoxUnique );
+    setTabOrder( m_pCheckBoxUnique, m_pComboBoxFunctions );
+    setTabOrder( m_pComboBoxFunctions, m_pComboBoxMethod );
+    setTabOrder( m_pComboBoxMethod, m_pComboBoxTablespace );
+    setTabOrder( m_pComboBoxTablespace, m_pTextEditWherePredicate );
+    setTabOrder( m_pTextEditWherePredicate, m_pPushButtonIndexAdd );
+    setTabOrder( m_pPushButtonIndexAdd, m_pPushButtonIndexDel );
+    setTabOrder( m_pPushButtonIndexDel, m_pListViewIndexes );
+
+    // buddies
+    textLabel3->setBuddy( m_pTextEditWherePredicate );
+    textLabel2_2->setBuddy( m_pLineEditIndexName );
+    textLabel1_2->setBuddy( m_pComboBoxFunctions );
+    textLabel2_3->setBuddy( m_pComboBoxMethod );
+    textLabel1_3->setBuddy( m_pComboBoxTablespace );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTableWidget4Base::~KPGCreateTableWidget4Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTableWidget4Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Table - define table indexes" ) );
+    groupBox1->setTitle( tr2i18n( "Table indexes" ) );
+    m_pPushButtonIndexAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonIndexAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonIndexDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonIndexDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewIndexes->header()->setLabel( 0, tr2i18n( "Index definition" ) );
+    textLabel3->setText( tr2i18n( "&WHERE predicate:" ) );
+    textLabel2_2->setText( tr2i18n( "&Index name:" ) );
+    m_pCheckBoxUnique->setText( tr2i18n( "&Unique index" ) );
+    m_pCheckBoxUnique->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    textLabel1_2->setText( tr2i18n( "Index &function:" ) );
+    textLabel2_3->setText( tr2i18n( "Access &method:" ) );
+    m_pComboBoxMethod->clear();
+    m_pComboBoxMethod->insertItem( tr2i18n( "BTREE" ) );
+    m_pComboBoxMethod->insertItem( tr2i18n( "RTREE" ) );
+    m_pComboBoxMethod->insertItem( tr2i18n( "HASH" ) );
+    m_pComboBoxMethod->insertItem( tr2i18n( "GIST" ) );
+    textLabel1_3->setText( tr2i18n( "&Tablespace:" ) );
+    m_pComboBoxTablespace->clear();
+    m_pComboBoxTablespace->insertItem( tr2i18n( "Default" ) );
+    m_pActionSelectorIDXColumns->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pActionSelectorIDXColumns->setSelectedLabel( tr2i18n( "Index &columns:" ) );
+}
+
+void KPGCreateTableWidget4Base::slotIndexNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTableWidget4Base::slotIndexNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTableWidget4Base::slotIndexAdd()
+{
+    qWarning( "KPGCreateTableWidget4Base::slotIndexAdd(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget4Base::slotIndexDelete()
+{
+    qWarning( "KPGCreateTableWidget4Base::slotIndexDelete(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget4Base::slotIndexesSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget4Base::slotIndexesSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget4Base::slotIndexesCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget4Base::slotIndexesCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget4Base::slotCurrentFunctionChanged(int)
+{
+    qWarning( "KPGCreateTableWidget4Base::slotCurrentFunctionChanged(int): Not implemented yet" );
+}
+
+#include "kpgcreatetablewidget4base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget4base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,391 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTableWidget4Base</class>
+<comment>Widged for create table wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTableWidget4Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>532</width>
+            <height>480</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create Table - define table indexes</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="3" column="0">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Table indexes</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonIndexAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonIndexDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Index definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewIndexes</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0">
+            <property name="name">
+                <cstring>layout12</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;WHERE predicate:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pTextEditWherePredicate</cstring>
+                    </property>
+                </widget>
+                <widget class="KTextEdit">
+                    <property name="name">
+                        <cstring>m_pTextEditWherePredicate</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout13</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout9</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout8</cstring>
+                            </property>
+                            <hbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel2_2</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Index name:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pLineEditIndexName</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="QCheckBox">
+                                    <property name="name">
+                                        <cstring>m_pCheckBoxUnique</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Unique index</string>
+                                    </property>
+                                    <property name="accel">
+                                        <string>Alt+U</string>
+                                    </property>
+                                </widget>
+                            </hbox>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditIndexName</cstring>
+                            </property>
+                            <property name="margin">
+                                <number>2</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout12</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout11</cstring>
+                            </property>
+                            <hbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel1_2</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Index &amp;function:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxFunctions</cstring>
+                                    </property>
+                                </widget>
+                                <spacer>
+                                    <property name="name">
+                                        <cstring>spacer2</cstring>
+                                    </property>
+                                    <property name="orientation">
+                                        <enum>Horizontal</enum>
+                                    </property>
+                                    <property name="sizeType">
+                                        <enum>Expanding</enum>
+                                    </property>
+                                    <property name="sizeHint">
+                                        <size>
+                                            <width>31</width>
+                                            <height>20</height>
+                                        </size>
+                                    </property>
+                                </spacer>
+                            </hbox>
+                        </widget>
+                        <widget class="QComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxFunctions</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout10</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Access &amp;method:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxMethod</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>BTREE</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>RTREE</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>HASH</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>GIST</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxMethod</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout12</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Tablespace:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxTablespace</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="KActionSelector" row="1" column="0">
+            <property name="name">
+                <cstring>m_pActionSelectorIDXColumns</cstring>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>Index &amp;columns:</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditIndexName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotIndexNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonIndexAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotIndexAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonIndexDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotIndexDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewIndexes</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotIndexesSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewIndexes</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotIndexesCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxFunctions</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateTableWidget4Base</receiver>
+        <slot>slotCurrentFunctionChanged(int)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditIndexName</tabstop>
+    <tabstop>m_pCheckBoxUnique</tabstop>
+    <tabstop>m_pComboBoxFunctions</tabstop>
+    <tabstop>m_pComboBoxMethod</tabstop>
+    <tabstop>m_pComboBoxTablespace</tabstop>
+    <tabstop>m_pTextEditWherePredicate</tabstop>
+    <tabstop>m_pPushButtonIndexAdd</tabstop>
+    <tabstop>m_pPushButtonIndexDel</tabstop>
+    <tabstop>m_pListViewIndexes</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotIndexNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotIndexAdd()</slot>
+    <slot access="protected">slotIndexDelete()</slot>
+    <slot access="protected">slotIndexesSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotIndexesCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCurrentFunctionChanged(int)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,361 @@
+//
+// C++ Implementation: kpgcreatetablewidget5
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewidget5.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qpushbutton.h>
+#include <qstringlist.h> 
+
+// include files for KDE
+#include <klistbox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgitemsfolder.h"
+#include "../kpgutil.h"
+
+KPGCreateTableWidget5::KPGCreateTableWidget5(QWidget *parent, const char *name, bool bGrantOrRevoke)
+ : KPGCreateTableWidget5Base(parent, name)
+{
+	m_bGrantOrRevoke = bGrantOrRevoke;
+  
+	if(bGrantOrRevoke)
+	{
+		strGR = "GRANT ";
+		strTF = " TO ";
+		m_pCheckBoxCascade->hide();
+	}
+	else
+	{
+		strGR = "REVOKE ";
+		strTF = " FROM ";
+		m_pCheckBoxGrantOptions->setText(i18n("Only revoke &GRANT privilege"));
+	}
+	
+	m_pListViewGrants->setSortColumn(-1);
+}
+
+
+KPGCreateTableWidget5::~KPGCreateTableWidget5()
+{
+}
+
+/////////////////////////////////////////////////////////////////////
+//                       GRANTS FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget5::slotCheckBoxAllToggled(bool bState)
+{
+	m_pCheckBoxRule->setEnabled(!bState);
+	m_pCheckBoxDelete->setEnabled(!bState);
+	m_pCheckBoxUpdate->setEnabled(!bState);
+	m_pCheckBoxInsert->setEnabled(!bState);
+	m_pCheckBoxSelect->setEnabled(!bState);
+	m_pCheckBoxReferences->setEnabled(!bState);
+	m_pCheckBoxTrigger->setEnabled(!bState);
+	
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxSelectToggled(bool)
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxInsertToggled(bool)
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxUpdateToggled(bool)
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxDeleteToggled(bool)
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxRuleToggled(bool)
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxReferencesToggled(bool)
+{
+  enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotCheckBoxTriggerToggled(bool)
+{
+  enableAddGrantButton();
+}
+	
+void KPGCreateTableWidget5::slotCheckBoxPublicToggled(bool bState)
+{
+	m_pListBoxUsersGroups->setEnabled(!bState);
+  	m_pCheckBoxGrantOptions->setEnabled(!bState); // Grant options can only be granted to individual users, not to groups or PUBLIC.
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotGrantOptionsToggled(bool bState)
+{
+  m_pCheckBoxCascade->setEnabled(!m_bGrantOrRevoke && bState);
+}
+
+void KPGCreateTableWidget5::slotListBoxUsersSelectionChanged()
+{
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::enableAddGrantButton()
+{
+	bool bAnyPrivilegeChecked = false;
+	
+	if(m_pCheckBoxAll->isChecked()) bAnyPrivilegeChecked = true;
+		else
+			if(m_pCheckBoxRule->isChecked()) bAnyPrivilegeChecked = true;
+				else
+					if(m_pCheckBoxDelete->isChecked()) bAnyPrivilegeChecked = true;
+					else
+						if(m_pCheckBoxUpdate->isChecked()) bAnyPrivilegeChecked = true;
+							else
+								if(m_pCheckBoxInsert->isChecked()) bAnyPrivilegeChecked = true;
+									else
+										if(m_pCheckBoxSelect->isChecked()) bAnyPrivilegeChecked = true;
+											else
+												if(m_pCheckBoxReferences->isChecked()) bAnyPrivilegeChecked = true;
+													else
+														if(m_pCheckBoxTrigger->isChecked()) bAnyPrivilegeChecked = true;
+	
+	bool bAnyUserOrGroupChecked = false;				
+	
+	if(m_pCheckBoxPublic->isChecked()) 
+		bAnyUserOrGroupChecked = true;
+	else
+		{
+			if(m_pListBoxUsersGroups->count() > 0)
+			{
+				for(unsigned int i = 0; i <m_pListBoxUsersGroups->count(); i++)
+				if(m_pListBoxUsersGroups->isSelected(i))
+					{
+					  bAnyUserOrGroupChecked = true;
+						break;
+					}
+			}
+		}
+	m_pPushButtonGrantAdd->setEnabled(bAnyPrivilegeChecked && bAnyUserOrGroupChecked);
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     COMMON FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+void KPGCreateTableWidget5::slotGrantAdd()
+{
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewGrants->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QStringList strListOfSQLs; // string list for SQL clauses GRANT ...
+  
+  	QString strWGO((m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? " WITH GRANT OPTION" : "");
+	QString strGOF((!m_bGrantOrRevoke && m_pCheckBoxGrantOptions->isChecked()) ? "GRANT OPTION FOR " : "");
+  	QString strC((!m_bGrantOrRevoke && m_pCheckBoxCascade->isChecked()) ? " CASCADE" : "");
+    	
+	if(m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+	{
+		strListOfSQLs.append(strGR + "ALL ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + "PUBLIC");		
+	}
+	
+	if(m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+	{
+    	QString strSQL(strGR);
+    
+    	if(m_pCheckBoxSelect->isChecked())
+			strSQL.append("SELECT, ");
+		
+		if(m_pCheckBoxInsert->isChecked())
+			strSQL.append("INSERT, ");
+		
+		if(m_pCheckBoxUpdate->isChecked())
+			strSQL.append("UPDATE, ");
+		
+		if(m_pCheckBoxDelete->isChecked())
+			strSQL.append("DELETE, ");
+				
+		if(m_pCheckBoxRule->isChecked())
+			strSQL.append("RULE, ");
+			
+		if(m_pCheckBoxReferences->isChecked())
+			strSQL.append("REFERENCES, ");
+			
+		if(m_pCheckBoxTrigger->isChecked())
+			strSQL.append("TRIGGER");
+      
+    if(strSQL.right(2) == ", ")  
+      strSQL = strSQL.left(strSQL.length() - 2);
+      
+    strSQL.append(" ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + "PUBLIC"); 	
+    
+    strListOfSQLs.append(strSQL);
+	}
+	
+	if(!m_pCheckBoxPublic->isChecked() && m_pCheckBoxAll->isChecked())
+	{
+		for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+		{
+			if(m_pListBoxUsersGroups->isSelected(i))
+			{
+				QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << k_funcinfo << " Bad object type !" << endl;
+          return;
+        }  
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);
+				
+		if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+			strListOfSQLs.append(strGR + "ALL ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + "GROUP " + pListBoxItem->text());
+		else
+			strListOfSQLs.append(strGR + strGOF + "ALL ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + pListBoxItem->text() + strWGO + strC);
+	
+			}
+		}
+	}
+	
+	if(!m_pCheckBoxPublic->isChecked() && !m_pCheckBoxAll->isChecked())
+	{
+		for(unsigned int i = 0; i < m_pListBoxUsersGroups->count(); i++)
+		{
+			if(m_pListBoxUsersGroups->isSelected(i))
+			{
+				QListBoxItem * pLbItem = m_pListBoxUsersGroups->item(i);
+        
+        if(pLbItem->rtti() != RTTI_KPGLISTBOXITEM)
+        {
+          kdError() << k_funcinfo << " Bad object type !" << endl;
+          return;
+        }
+        
+        KPGListBoxItem *pListBoxItem = static_cast <KPGListBoxItem *> (pLbItem);        
+                
+        QString strSQL(strGR);
+        
+        if(pListBoxItem->type() != KPGTreeItem::nodeGroup)
+           strSQL.append(strGOF);
+            
+        if(m_pCheckBoxSelect->isChecked())
+          strSQL.append("SELECT, ");
+        
+        if(m_pCheckBoxInsert->isChecked())
+          strSQL.append("INSERT, ");
+        
+        if(m_pCheckBoxUpdate->isChecked())
+          strSQL.append("UPDATE, ");
+        
+        if(m_pCheckBoxDelete->isChecked())
+          strSQL.append("DELETE, ");
+            
+        if(m_pCheckBoxRule->isChecked())
+          strSQL.append("RULE, ");
+          
+        if(m_pCheckBoxReferences->isChecked())
+          strSQL.append("REFERENCES, ");
+          
+        if(m_pCheckBoxTrigger->isChecked())
+          strSQL.append("TRIGGER");
+          
+        if(strSQL.right(2) == ", ")  
+          strSQL = strSQL.left(strSQL.length() - 2);
+        
+				if(pListBoxItem->type() == KPGTreeItem::nodeGroup)
+					strSQL.append(" ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + "GROUP " + pListBoxItem->text());
+				else
+				  strSQL.append(" ON TABLE " + KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName) + strTF + pListBoxItem->text() + strWGO + strC);
+            
+        strListOfSQLs.append(strSQL);
+			}
+		}
+	}
+			
+	// Create items for new grants
+	for ( QStringList::Iterator it = strListOfSQLs.begin(); it != strListOfSQLs.end(); ++it ) 
+	{
+   	QString strSQL(*it);
+		QListViewItem *pNewItem;
+		
+		if(pLastItem == 0) 
+			pNewItem = new QListViewItem(m_pListViewGrants, strSQL);
+		else
+			pLastItem = pNewItem = new QListViewItem(m_pListViewGrants, pLastItem, strSQL);	
+  }
+  
+  emit sigEnableNextButton(true);
+}
+
+void KPGCreateTableWidget5::slotGrantDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewGrants->selectedItem();
+	if(pSelectedItem)
+			delete pSelectedItem;
+	
+  if(m_pListViewGrants->childCount() == 0)
+	   emit sigEnableNextButton(false);
+   
+  m_pPushButtonGrantDel->setEnabled(false);
+  	
+	enableAddGrantButton();
+}
+
+void KPGCreateTableWidget5::slotGrantsSelectionChanged(QListViewItem* pItem)
+{
+	m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateTableWidget5::slotGrantsCurrentChanged(QListViewItem* pItem)
+{
+	m_pPushButtonGrantDel->setEnabled(pItem != 0);
+}
+
+// Return part of SQL statement for GRANT
+const QString KPGCreateTableWidget5::getSQL() const
+{
+	QString strSQL;
+	
+	QListViewItem * pItem = m_pListViewGrants->firstChild();
+	while(pItem)
+	{
+		strSQL.append(pItem->text(0));
+		strSQL.append(";\n");
+					  
+		pItem = pItem->nextSibling();
+	}
+	
+	return strSQL;
+}
+
+	
+#include "kpgcreatetablewidget5.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+//
+// C++ Interface: kpgcreatetablewidget5
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIDGET5_H
+#define KPGCREATETABLEWIDGET5_H
+
+#include "kpgcreatetablewidget5base.h"
+
+/**
+Widget for create table wizard - define table grants
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWidget5 : public KPGCreateTableWidget5Base
+{
+Q_OBJECT
+public:
+    KPGCreateTableWidget5(QWidget *parent, const char *name, bool);
+    ~KPGCreateTableWidget5();
+    
+	void setTableName(const QString &strTableName) { m_strTableName = strTableName; }
+	void setNamespace(const QString &strNamespace) { m_strNamespace = strNamespace; }
+	const QString getSQL() const;
+		
+
+protected:
+	void enableAddGrantButton();
+	
+protected:
+	QString m_strTableName; // name of the created table
+	QString m_strNamespace; // name of the namespace
+		
+    QString strGR; // contain GRANT or REVOKE
+    QString strTF; // contain TO or FROM
+    
+    bool m_bGrantOrRevoke;
+    
+protected slots:
+
+	virtual void slotCheckBoxAllToggled(bool);
+	virtual void slotCheckBoxSelectToggled(bool);
+	virtual void slotCheckBoxInsertToggled(bool);
+	virtual void slotCheckBoxUpdateToggled(bool);
+	virtual void slotCheckBoxDeleteToggled(bool);
+	virtual void slotCheckBoxRuleToggled(bool);
+    virtual void slotCheckBoxReferencesToggled(bool);
+    virtual void slotCheckBoxTriggerToggled(bool);
+    virtual void slotGrantOptionsToggled(bool);
+    
+	virtual void slotCheckBoxPublicToggled(bool);
+	virtual void slotListBoxUsersSelectionChanged();
+		
+	virtual void slotGrantsSelectionChanged(QListViewItem *);
+    virtual void slotGrantsCurrentChanged(QListViewItem *);
+		
+	virtual void slotGrantAdd();
+    virtual void slotGrantDelete();
+						
+signals:
+	void sigEnableNextButton(bool);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,292 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetablewidget5base.ui'
+**
+** Created: Út dub 1 13:07:26 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetablewidget5base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <qlistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateTableWidget5Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTableWidget5Base::KPGCreateTableWidget5Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTableWidget5Base" );
+    KPGCreateTableWidget5BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTableWidget5BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pCheckBoxPublic = new QCheckBox( this, "m_pCheckBoxPublic" );
+    layout1->addWidget( m_pCheckBoxPublic );
+    layout2->addLayout( layout1 );
+
+    m_pListBoxUsersGroups = new KListBox( this, "m_pListBoxUsersGroups" );
+    m_pListBoxUsersGroups->setEnabled( TRUE );
+    m_pListBoxUsersGroups->setSelectionMode( KListBox::Multi );
+    layout2->addWidget( m_pListBoxUsersGroups );
+
+    KPGCreateTableWidget5BaseLayout->addMultiCellLayout( layout2, 0, 0, 0, 1 );
+
+    m_pCheckBoxGrantOptions = new QCheckBox( this, "m_pCheckBoxGrantOptions" );
+
+    KPGCreateTableWidget5BaseLayout->addWidget( m_pCheckBoxGrantOptions, 1, 0 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pPushButtonGrantAdd = new QPushButton( groupBox1, "m_pPushButtonGrantAdd" );
+    m_pPushButtonGrantAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantAdd, 0, 1 );
+
+    m_pPushButtonGrantDel = new QPushButton( groupBox1, "m_pPushButtonGrantDel" );
+    m_pPushButtonGrantDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonGrantDel, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 2, 1 );
+
+    m_pListViewGrants = new QListView( groupBox1, "m_pListViewGrants" );
+    m_pListViewGrants->addColumn( tr2i18n( "Grant definition" ) );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewGrants, 0, 2, 0, 0 );
+
+    KPGCreateTableWidget5BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+
+    m_pCheckBoxCascade = new QCheckBox( this, "m_pCheckBoxCascade" );
+    m_pCheckBoxCascade->setEnabled( FALSE );
+
+    KPGCreateTableWidget5BaseLayout->addMultiCellWidget( m_pCheckBoxCascade, 1, 1, 1, 2 );
+
+    groupBox2 = new QGroupBox( this, "groupBox2" );
+    groupBox2->setColumnLayout(0, Qt::Vertical );
+    groupBox2->layout()->setSpacing( 6 );
+    groupBox2->layout()->setMargin( 11 );
+    groupBox2Layout = new QGridLayout( groupBox2->layout() );
+    groupBox2Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxDelete = new QCheckBox( groupBox2, "m_pCheckBoxDelete" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxDelete, 4, 0 );
+
+    m_pCheckBoxUpdate = new QCheckBox( groupBox2, "m_pCheckBoxUpdate" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxUpdate, 3, 0 );
+
+    m_pCheckBoxInsert = new QCheckBox( groupBox2, "m_pCheckBoxInsert" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxInsert, 2, 0 );
+
+    m_pCheckBoxSelect = new QCheckBox( groupBox2, "m_pCheckBoxSelect" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxSelect, 1, 0 );
+
+    m_pCheckBoxAll = new QCheckBox( groupBox2, "m_pCheckBoxAll" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxAll, 0, 0 );
+
+    m_pCheckBoxRule = new QCheckBox( groupBox2, "m_pCheckBoxRule" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxRule, 5, 0 );
+
+    m_pCheckBoxTrigger = new QCheckBox( groupBox2, "m_pCheckBoxTrigger" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxTrigger, 7, 0 );
+
+    m_pCheckBoxReferences = new QCheckBox( groupBox2, "m_pCheckBoxReferences" );
+
+    groupBox2Layout->addWidget( m_pCheckBoxReferences, 6, 0 );
+
+    KPGCreateTableWidget5BaseLayout->addWidget( groupBox2, 0, 2 );
+    languageChange();
+    resize( QSize(515, 474).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAll, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxAllToggled(bool) ) );
+    connect( m_pCheckBoxPublic, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxPublicToggled(bool) ) );
+    connect( m_pListBoxUsersGroups, SIGNAL( selectionChanged() ), this, SLOT( slotListBoxUsersSelectionChanged() ) );
+    connect( m_pCheckBoxSelect, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxSelectToggled(bool) ) );
+    connect( m_pCheckBoxInsert, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxInsertToggled(bool) ) );
+    connect( m_pCheckBoxUpdate, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxUpdateToggled(bool) ) );
+    connect( m_pCheckBoxDelete, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxDeleteToggled(bool) ) );
+    connect( m_pCheckBoxRule, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxRuleToggled(bool) ) );
+    connect( m_pPushButtonGrantAdd, SIGNAL( clicked() ), this, SLOT( slotGrantAdd() ) );
+    connect( m_pPushButtonGrantDel, SIGNAL( clicked() ), this, SLOT( slotGrantDelete() ) );
+    connect( m_pListViewGrants, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotGrantsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewGrants, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotGrantsCurrentChanged(QListViewItem*) ) );
+    connect( m_pCheckBoxReferences, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxReferencesToggled(bool) ) );
+    connect( m_pCheckBoxTrigger, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxTriggerToggled(bool) ) );
+    connect( m_pCheckBoxGrantOptions, SIGNAL( toggled(bool) ), this, SLOT( slotGrantOptionsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pListBoxUsersGroups, m_pCheckBoxPublic );
+    setTabOrder( m_pCheckBoxPublic, m_pCheckBoxAll );
+    setTabOrder( m_pCheckBoxAll, m_pCheckBoxSelect );
+    setTabOrder( m_pCheckBoxSelect, m_pCheckBoxInsert );
+    setTabOrder( m_pCheckBoxInsert, m_pCheckBoxUpdate );
+    setTabOrder( m_pCheckBoxUpdate, m_pCheckBoxDelete );
+    setTabOrder( m_pCheckBoxDelete, m_pCheckBoxRule );
+    setTabOrder( m_pCheckBoxRule, m_pCheckBoxReferences );
+    setTabOrder( m_pCheckBoxReferences, m_pCheckBoxTrigger );
+    setTabOrder( m_pCheckBoxTrigger, m_pListViewGrants );
+    setTabOrder( m_pListViewGrants, m_pPushButtonGrantAdd );
+    setTabOrder( m_pPushButtonGrantAdd, m_pPushButtonGrantDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pListBoxUsersGroups );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTableWidget5Base::~KPGCreateTableWidget5Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTableWidget5Base::languageChange()
+{
+    setCaption( tr2i18n( "Create Table - grant privileges" ) );
+    textLabel1->setText( tr2i18n( "&Users and groups:" ) );
+    m_pCheckBoxPublic->setText( tr2i18n( "&PUBLIC" ) );
+    m_pCheckBoxPublic->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+    m_pCheckBoxGrantOptions->setText( tr2i18n( "Also &give GRANT privilege" ) );
+    m_pCheckBoxGrantOptions->setAccel( QKeySequence( tr2i18n( "Alt+G" ) ) );
+    groupBox1->setTitle( tr2i18n( "&List of SQL commands" ) );
+    m_pPushButtonGrantAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonGrantAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonGrantDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonGrantDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pListViewGrants->header()->setLabel( 0, tr2i18n( "Grant definition" ) );
+    m_pCheckBoxCascade->setText( tr2i18n( "&Cascade" ) );
+    m_pCheckBoxCascade->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    groupBox2->setTitle( tr2i18n( "Privileges" ) );
+    m_pCheckBoxDelete->setText( tr2i18n( "D&ELETE" ) );
+    m_pCheckBoxDelete->setAccel( QKeySequence( tr2i18n( "Alt+E" ) ) );
+    m_pCheckBoxUpdate->setText( tr2i18n( "&UPDATE" ) );
+    m_pCheckBoxUpdate->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxInsert->setText( tr2i18n( "&INSERT" ) );
+    m_pCheckBoxInsert->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pCheckBoxSelect->setText( tr2i18n( "&SELECT" ) );
+    m_pCheckBoxSelect->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    m_pCheckBoxAll->setText( tr2i18n( "A&LL" ) );
+    m_pCheckBoxAll->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pCheckBoxRule->setText( tr2i18n( "&RULE" ) );
+    m_pCheckBoxRule->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pCheckBoxTrigger->setText( tr2i18n( "&TRIGGER" ) );
+    m_pCheckBoxTrigger->setAccel( QKeySequence( tr2i18n( "Alt+T" ) ) );
+    m_pCheckBoxReferences->setText( tr2i18n( "RE&FERENCES" ) );
+    m_pCheckBoxReferences->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxAllToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxAllToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxPublicToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxPublicToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotListBoxUsersSelectionChanged()
+{
+    qWarning( "KPGCreateTableWidget5Base::slotListBoxUsersSelectionChanged(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxSelectToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxSelectToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxInsertToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxInsertToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxUpdateToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxUpdateToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxDeleteToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxDeleteToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxRuleToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxRuleToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotGrantAdd()
+{
+    qWarning( "KPGCreateTableWidget5Base::slotGrantAdd(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotGrantDelete()
+{
+    qWarning( "KPGCreateTableWidget5Base::slotGrantDelete(): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotGrantsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotGrantsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotGrantsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotGrantsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxReferencesToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxReferencesToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotCheckBoxTriggerToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotCheckBoxTriggerToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTableWidget5Base::slotGrantOptionsToggled(bool)
+{
+    qWarning( "KPGCreateTableWidget5Base::slotGrantOptionsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreatetablewidget5base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewidget5base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,407 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTableWidget5Base</class>
+<comment>Widged for create table wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTableWidget5Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>515</width>
+            <height>474</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create Table - grant privileges</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Users and groups:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxUsersGroups</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPublic</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;PUBLIC</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxUsersGroups</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>true</bool>
+                    </property>
+                    <property name="selectionMode">
+                        <enum>Multi</enum>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxGrantOptions</cstring>
+            </property>
+            <property name="text">
+                <string>Also &amp;give GRANT privilege</string>
+            </property>
+            <property name="accel">
+                <string>Alt+G</string>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>&amp;List of SQL commands</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QPushButton" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonGrantDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Grant definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewGrants</cstring>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="1" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxCascade</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>&amp;Cascade</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+        </widget>
+        <widget class="QGroupBox" row="0" column="2">
+            <property name="name">
+                <cstring>groupBox2</cstring>
+            </property>
+            <property name="title">
+                <string>Privileges</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="4" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxDelete</cstring>
+                    </property>
+                    <property name="text">
+                        <string>D&amp;ELETE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+E</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="3" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxUpdate</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;UPDATE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxInsert</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;INSERT</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+I</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxSelect</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;SELECT</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+S</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxAll</cstring>
+                    </property>
+                    <property name="text">
+                        <string>A&amp;LL</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+L</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="5" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxRule</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;RULE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+R</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="7" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxTrigger</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;TRIGGER</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+T</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="6" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxReferences</cstring>
+                    </property>
+                    <property name="text">
+                        <string>RE&amp;FERENCES</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+F</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAll</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxAllToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxPublic</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxPublicToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxUsersGroups</sender>
+        <signal>selectionChanged()</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotListBoxUsersSelectionChanged()</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxSelect</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxSelectToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxInsert</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxInsertToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxUpdate</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxUpdateToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxDelete</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxDeleteToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxRule</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxRuleToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotGrantAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonGrantDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotGrantDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotGrantsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewGrants</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotGrantsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxReferences</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxReferencesToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxTrigger</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotCheckBoxTriggerToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxGrantOptions</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTableWidget5Base</receiver>
+        <slot>slotGrantOptionsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pListBoxUsersGroups</tabstop>
+    <tabstop>m_pCheckBoxPublic</tabstop>
+    <tabstop>m_pCheckBoxAll</tabstop>
+    <tabstop>m_pCheckBoxSelect</tabstop>
+    <tabstop>m_pCheckBoxInsert</tabstop>
+    <tabstop>m_pCheckBoxUpdate</tabstop>
+    <tabstop>m_pCheckBoxDelete</tabstop>
+    <tabstop>m_pCheckBoxRule</tabstop>
+    <tabstop>m_pCheckBoxReferences</tabstop>
+    <tabstop>m_pCheckBoxTrigger</tabstop>
+    <tabstop>m_pListViewGrants</tabstop>
+    <tabstop>m_pPushButtonGrantAdd</tabstop>
+    <tabstop>m_pPushButtonGrantDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxAllToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxPublicToggled(bool)</slot>
+    <slot access="protected">slotListBoxUsersSelectionChanged()</slot>
+    <slot access="protected">slotCheckBoxSelectToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxInsertToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxUpdateToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxDeleteToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxRuleToggled(bool)</slot>
+    <slot access="protected">slotGrantAdd()</slot>
+    <slot access="protected">slotGrantDelete()</slot>
+    <slot access="protected">slotGrantsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotGrantsCurrentChanged(QListViewItem *)</slot>
+    <slot access="protected">slotCheckBoxReferencesToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxTriggerToggled(bool)</slot>
+    <slot>slotGrantOptionsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,256 @@
+//
+// C++ Implementation: kpgcreatetablewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetablewizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+#include <qspinbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+//#include "../DbObjects/kpgconnection.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgcreatetablewidget1.h"
+#include "kpgcreatetablewidget2.h"
+#include "kpgcreatetablewidget3.h"
+#include "kpgcreatetablewidget4.h"
+#include "kpgcreatetablewidget5.h"
+
+
+KPGCreateTableWizard::KPGCreateTableWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG7StepsWizard(parent, name)
+{
+    KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+    
+	KPGCreateTableWidget1 *pCreateTableWidget1 = new KPGCreateTableWidget1(WizardPage1, "KPGCreateTableWidget1", listOfSchemas);
+	m_pPageWidget1 = pCreateTableWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+    	
+	KPGCreateTableWidget2 *pCreateTableWidget2 = new KPGCreateTableWidget2(WizardPage2, "KPGCreateTableWidget2", pDatabase);
+	m_pPageWidget2 = pCreateTableWidget2;
+	WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+	connect(pCreateTableWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+	
+	KPGCreateTableWidget3 *pCreateTableWidget3 = new KPGCreateTableWidget3(WizardPage3, "KPGCreateTableWidget3", pDatabase, true);
+	m_pPageWidget3 = pCreateTableWidget3;
+	WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+	// always enabled, don't connect
+	
+	KPGCreateTableWidget4 *pCreateTableWidget4 = new KPGCreateTableWidget4(WizardPage4, "KPGCreateTableWidget4", pDatabase);
+	m_pPageWidget4 = pCreateTableWidget4;
+	WizardPage4Layout->addWidget(m_pPageWidget4, 0, 0);
+	// always enabled, don't connect
+	
+	KPGCreateTableWidget5 *pCreateTableWidget5 = new KPGCreateTableWidget5(WizardPage5, "KPGCreateTableWidget5", true);
+	m_pPageWidget5 = pCreateTableWidget5;
+	WizardPage5Layout->addWidget(m_pPageWidget5, 0, 0);
+	//connect(pCreateTableWidget5, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton5(bool)));
+	
+    // default schema in page 2 is the same as in page 1
+    pCreateTableWidget2->m_pComboBoxSchema->setCurrentText(pCreateTableWidget1->m_pComboBoxSchema->currentText());
+    pCreateTableWidget2->refreshListOfDatatypes();
+    
+    if(pServer->versionMajor() >= 8)
+    {
+        pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateTableWidget1->m_pComboBoxTablespace);
+        pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateTableWidget3->m_pComboBoxTablespace);
+        pServer->getTablespacesFolder()->fillComboBoxWithChildItems(pCreateTableWidget4->m_pComboBoxTablespace);
+    }
+    else
+    {
+        pCreateTableWidget1->m_pComboBoxTablespace->setEnabled(false);
+        pCreateTableWidget3->m_pComboBoxTablespace->setEnabled(false);
+        pCreateTableWidget4->m_pComboBoxTablespace->setEnabled(false);
+    }
+    
+    if(((pServer->versionMajor() == 8) && (pServer->versionMiddle() >= 2)) || (pServer->versionMajor() > 8))
+    {
+        m_bVersion8_2OrNewer = true;
+    }
+    else
+    {
+        pCreateTableWidget1->m_pCheckBoxDefaultFillFactor->setEnabled(false);
+        m_bVersion8_2OrNewer = false;
+    }
+      
+    pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateTableWidget5->m_pListBoxUsersGroups);
+    pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateTableWidget5->m_pListBoxUsersGroups);
+  
+	languageChange();
+}
+
+
+KPGCreateTableWizard::~KPGCreateTableWizard()
+{
+}
+
+void KPGCreateTableWizard::languageChange()
+{
+    KPG7StepsWizard::languageChange();
+		
+	setCaption( i18n( "Create new Table" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Table name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Define columns" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Define table constraints" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Define table indexes" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Define user rights" ) );
+    setTitle( WizardPage6, i18n( "Step 6 - Review SQL statement" ) );
+    setTitle( WizardPage7, i18n( "Step 7 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTableWizard::showPage(QWidget *pPage)
+{
+	/*if(pPage == WizardPage2) // Step 2 - Define table columns
+  {
+    //--- Initialize create constraints page
+    KPGCreateTableWidget1 *pCreateTableWidget1 = static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1);
+    KPGCreateTableWidget2 *pCreateTableWidget2 = static_cast <KPGCreateTableWidget2 *> (m_pPageWidget2);
+    
+    pCreateTableWidget2->fillDatatypes();
+  }*/
+  
+    
+  if(pPage == WizardPage3) // Step 3 - Define table constraints
+	{
+		//--- Initialize create constraints page
+		KPGCreateTableWidget1 *pCreateTableWidget1 = static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1);
+		KPGCreateTableWidget2 *pCreateTableWidget2 = static_cast <KPGCreateTableWidget2 *> (m_pPageWidget2);
+		KPGCreateTableWidget3 *pCreateTableWidget3 = static_cast <KPGCreateTableWidget3 *> (m_pPageWidget3);
+				
+		if(pCreateTableWidget2->isDirty1())
+		{
+			pCreateTableWidget3->setListOfAvailableColumns(pCreateTableWidget2->getListOfColumns());
+			pCreateTableWidget2->clearDirty1();
+		}
+			
+        // set table name and selected namespace
+        pCreateTableWidget3->setNamespace(pCreateTableWidget1->m_pComboBoxSchema->currentText());
+        pCreateTableWidget3->setTableName(pCreateTableWidget1->m_pLineEditTableName->text());
+		    
+		if(pCreateTableWidget3->m_pComboBoxRefTable->count() > 0)
+			pCreateTableWidget3->refTableSelectChanged();
+			
+		pCreateTableWidget3->m_pLineEditConstraintName->setText(""); // clear preselected default name
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Define table indexes
+	{
+		//--- Initialize create constraints page
+		KPGCreateTableWidget1 *pCreateTableWidget1 = static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1);
+		KPGCreateTableWidget2 *pCreateTableWidget2 = static_cast <KPGCreateTableWidget2 *> (m_pPageWidget2);
+		KPGCreateTableWidget4 *pCreateTableWidget4 = static_cast <KPGCreateTableWidget4 *> (m_pPageWidget4);
+				
+		if(pCreateTableWidget2->isDirty2())
+		{
+			pCreateTableWidget4->setListOfAvailableColumns(pCreateTableWidget2->getListOfColumns());
+			pCreateTableWidget2->clearDirty2(); 
+		}
+		
+		// Set connection, table name and namespace
+		pCreateTableWidget4->setTableName(pCreateTableWidget1->m_pLineEditTableName->text());
+		pCreateTableWidget4->setNamespace(pCreateTableWidget1->m_pComboBoxSchema->currentText());
+	}
+	
+	if(pPage == WizardPage5) // Step 5 - Define user rights
+	{
+		KPGCreateTableWidget1 *pCreateTableWidget1 = static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1);
+		KPGCreateTableWidget5 *pCreateTableWidget5 = static_cast <KPGCreateTableWidget5 *> (m_pPageWidget5);
+				
+		// Set table name and namespace
+		pCreateTableWidget5->setTableName(pCreateTableWidget1->m_pLineEditTableName->text());
+		pCreateTableWidget5->setNamespace(pCreateTableWidget1->m_pComboBoxSchema->currentText());
+	}
+	
+	if(pPage == WizardPage6) // Step 6 - Review SQL statement
+	{
+		KPGCreateTableWidget1 *pCreateTableWidget1 = static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1);
+		
+		// prepare SQL statement
+		QString strSQL;
+		
+		strSQL.append((static_cast <KPGCreateTableWidget1 *> (m_pPageWidget1))->getSQL());
+		strSQL.append("\n(\n");
+		
+		strSQL.append((static_cast <KPGCreateTableWidget2 *> (m_pPageWidget2))->getSQL());
+		strSQL.append((static_cast <KPGCreateTableWidget3 *> (m_pPageWidget3))->getSQL());
+				
+		strSQL.append("\n)");
+		
+		if(!m_bVersion8_2OrNewer)
+		{
+            if(pCreateTableWidget1->m_pCheckBoxWithoutOIDs->isChecked())
+                strSQL.append(" WITHOUT OIDS");
+            else
+                strSQL.append(" WITH OIDS");
+        }
+        else
+        {
+            QString strOptions("\nWITH (");
+            
+            
+            if(pCreateTableWidget1->m_pCheckBoxWithoutOIDs->isChecked())
+                strOptions.append("OIDS=FALSE");
+            else
+                strOptions.append("OIDS=TRUE");
+                
+            if(pCreateTableWidget1->m_pCheckBoxDefaultFillFactor->isChecked() == false)
+    	    strOptions.append(QString(", FILLFACTOR = %1").arg(pCreateTableWidget1->m_pSpinBoxFillFactor->value()));
+    	    
+    	    strOptions.append(")");
+    	    
+    	    strSQL.append(strOptions);
+        }
+			
+		if(pCreateTableWidget1->m_pComboBoxTablespace->currentItem() > 0)
+    	strSQL.append("\nTABLESPACE " + pCreateTableWidget1->m_pComboBoxTablespace->currentText());
+    	    				
+		strSQL.append(";");
+		
+		strSQL.append((static_cast <KPGCreateTableWidget4 *> (m_pPageWidget4))->getSQL());
+		strSQL.append("\n\n");
+		strSQL.append((static_cast <KPGCreateTableWidget5 *> (m_pPageWidget5))->getSQL());
+				
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage7) // Step 7 - Check operation result
+	{
+		runQuery();
+	}
+
+	// call parent
+	KPG7StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgcreatetablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: kpgcreatetablewizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETABLEWIZARD_H
+#define KPGCREATETABLEWIZARD_H
+
+#include "kpg7stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+/**
+Create table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTableWizard : public KPG7StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTableWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateTableWizard();
+    
+protected:
+		virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();
+   
+protected:
+    bool m_bVersion8_2OrNewer;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,194 @@
+//
+// C++ Implementation: kpgcreatetriggerwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetriggerwidget1.h"
+
+// include files for Qt
+#include <qradiobutton.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTriggerWidget1::KPGCreateTriggerWidget1(QWidget *parent, const char *name, KPGDatabase *pDatabase, const QString &strNamespace, const QString &strTable)
+ : KPGCreateTriggerWidget1Base(parent, name)
+{
+    m_strNamespace = strNamespace;
+    m_strTableName = strTable;
+    m_pDatabase = pDatabase;
+  
+    // fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxSchema);
+    
+    refreshListOfFunctions();
+    m_pLineEditTriggerName->setFocus();
+}
+
+
+KPGCreateTriggerWidget1::~KPGCreateTriggerWidget1()
+{
+}
+
+void KPGCreateTriggerWidget1::slotTriggerNameChanged(const QString& strText)
+{
+	emit sigEnableNextButton(! strText.isEmpty() && (
+		m_pCheckBoxInsert->isChecked() ||
+		m_pCheckBoxUpdate->isChecked() ||
+		m_pCheckBoxDelete->isChecked()) &&
+    ! m_pComboBoxFunctions->currentText().isEmpty());
+}
+
+void KPGCreateTriggerWidget1::slotInsertToggled(bool bChecked)
+{
+	emit sigEnableNextButton(! m_pLineEditTriggerName->text().isEmpty() && (
+		bChecked ||
+		m_pCheckBoxUpdate->isChecked() ||
+		m_pCheckBoxDelete->isChecked()) &&
+    ! m_pComboBoxFunctions->currentText().isEmpty());
+}
+		
+void KPGCreateTriggerWidget1::slotUpdateToggled(bool bChecked)
+{		
+	emit sigEnableNextButton(! m_pLineEditTriggerName->text().isEmpty() && (
+		m_pCheckBoxInsert->isChecked() ||
+		bChecked ||
+		m_pCheckBoxDelete->isChecked()) &&
+    ! m_pComboBoxFunctions->currentText().isEmpty());
+}
+		
+void KPGCreateTriggerWidget1::slotDeleteToggled(bool bChecked)
+{
+	emit sigEnableNextButton(! m_pLineEditTriggerName->text().isEmpty() && (
+		m_pCheckBoxInsert->isChecked() ||
+		m_pCheckBoxUpdate->isChecked() ||
+		bChecked) &&
+    ! m_pComboBoxFunctions->currentText().isEmpty());
+}
+
+void KPGCreateTriggerWidget1::slotSchemaActivated(int)
+{
+  refreshListOfFunctions();
+}
+
+void KPGCreateTriggerWidget1::slotFunctionActivated(const QString &strFunction)
+{
+  emit sigEnableNextButton(! m_pLineEditTriggerName->text().isEmpty() && (
+    m_pCheckBoxInsert->isChecked() ||
+    m_pCheckBoxUpdate->isChecked() ||
+    m_pCheckBoxDelete->isChecked()) &&
+    ! strFunction.isEmpty());
+
+}
+
+void KPGCreateTriggerWidget1::refreshListOfFunctions()
+{
+	QString strNamespace(m_pComboBoxSchema->currentText());
+  
+  // Find schema
+  KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+  if(!pItem)
+  {
+    kdDebug() << "KPGCreateTriggerWidget1::refreshListOfFunctions: no item found: " << strNamespace << endl;
+    return;
+  }
+  
+  KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+    
+  m_pComboBoxFunctions->clear();
+	
+	//--- Obtain list of functions
+	KPGFunctionsFolder *pFunctionsFolder = pSchema->getFunctionsFolder();
+  KPGServer *pServer = static_cast <KPGServer *> (pFunctionsFolder->getParentByType(KPGTreeItem::nodeServer));
+  
+  // Triggers funtions rturns 'OPAQUE' in old PostgreSQL, and 'trigger' in new one 
+  QString strReturnDatatype(pServer->versionMajor() >= 8 ? "trigger" : "opaque");
+  
+	// traverse list of functions
+  QListViewItem * pLvItem = pFunctionsFolder->firstChild();
+  while(pLvItem)
+  {
+    KPGFunction *pFunction = static_cast <KPGFunction *> (pLvItem);
+      
+    // list functions without arguments, that return trigger or opaque datatype
+	if((pFunction->nArgs() == 0) && (pFunction->returnTypName() == strReturnDatatype))
+    	m_pComboBoxFunctions->insertItem(* pFunction->pixmap(0), pFunction->text(0) + pFunction->argTypes()); 
+      
+    pLvItem = pLvItem->nextSibling();
+  }
+}
+
+// Return SQL statement for CREATE TRIGGER
+const QString KPGCreateTriggerWidget1::getSQL() const
+{
+	QString strSql("CREATE TRIGGER ");
+	strSql.append(KPGUtil::quotedName(m_pLineEditTriggerName->text()));
+	
+	if(m_pRadioButtonBefore->isChecked())
+		strSql.append(" BEFORE ");
+	else
+		strSql.append(" AFTER ");
+		
+	bool bNeedOr = false;
+	
+	if(m_pCheckBoxInsert->isChecked())
+	{
+		strSql.append("INSERT ");
+		bNeedOr = true;
+	}
+	
+	if(m_pCheckBoxUpdate->isChecked())
+	{
+		if(bNeedOr) strSql.append("OR ");
+		strSql.append("UPDATE ");
+		bNeedOr = true;
+	}
+	
+	if(m_pCheckBoxDelete->isChecked())
+	{
+		if(bNeedOr) strSql.append("OR ");
+		strSql.append("DELETE");
+	} 
+	
+	// namespace and tablename
+	strSql.append("\nON ");
+		
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+	strSql.append("\n");
+	
+	// for each ...
+	if(m_pRadioButtonForEachStatement->isChecked())
+		strSql.append("FOR EACH STATEMENT\n");
+	else
+		strSql.append("FOR EACH ROW\n");
+	
+	// procedure
+	strSql.append("EXECUTE PROCEDURE ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), m_pComboBoxFunctions->currentText()) + "()");
+	strSql.append(";");
+		
+	return strSql;
+}
+
+#include "kpgcreatetriggerwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,55 @@
+//
+// C++ Interface: kpgcreatetriggerwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETRIGGERWIDGET1_H
+#define KPGCREATETRIGGERWIDGET1_H
+
+#include "kpgcreatetriggerwidget1base.h"
+
+class KPGDatabase;
+
+/**
+Widget for create trigger Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTriggerWidget1 : public KPGCreateTriggerWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateTriggerWidget1(QWidget *parent, const char *name, KPGDatabase *, const QString &, const QString &);
+    ~KPGCreateTriggerWidget1();
+		    
+    const QString getSQL() const;
+    	
+protected:
+	void refreshListOfFunctions();
+
+protected:
+    QString m_strNamespace; // quoted name of the table namespace
+    QString m_strTableName; // quoted name of the table
+    KPGDatabase *m_pDatabase;
+        		
+protected slots:
+
+	virtual void slotTriggerNameChanged(const QString&);
+	virtual void slotInsertToggled(bool);
+	virtual void slotUpdateToggled(bool);
+	virtual void slotDeleteToggled(bool);
+    virtual void slotSchemaActivated(int);
+    virtual void slotFunctionActivated(const QString &);
+		
+signals:
+	void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,216 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetriggerwidget1base.ui'
+**
+** Created: Út dub 1 13:07:37 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetriggerwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qbuttongroup.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateTriggerWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTriggerWidget1Base::KPGCreateTriggerWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTriggerWidget1Base" );
+    KPGCreateTriggerWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTriggerWidget1BaseLayout"); 
+
+    buttonGroup2 = new QButtonGroup( this, "buttonGroup2" );
+    buttonGroup2->setColumnLayout(0, Qt::Vertical );
+    buttonGroup2->layout()->setSpacing( 6 );
+    buttonGroup2->layout()->setMargin( 11 );
+    buttonGroup2Layout = new QGridLayout( buttonGroup2->layout() );
+    buttonGroup2Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxInsert = new QCheckBox( buttonGroup2, "m_pCheckBoxInsert" );
+
+    buttonGroup2Layout->addWidget( m_pCheckBoxInsert, 0, 0 );
+
+    m_pCheckBoxUpdate = new QCheckBox( buttonGroup2, "m_pCheckBoxUpdate" );
+
+    buttonGroup2Layout->addWidget( m_pCheckBoxUpdate, 1, 0 );
+
+    m_pCheckBoxDelete = new QCheckBox( buttonGroup2, "m_pCheckBoxDelete" );
+
+    buttonGroup2Layout->addWidget( m_pCheckBoxDelete, 2, 0 );
+
+    KPGCreateTriggerWidget1BaseLayout->addMultiCellWidget( buttonGroup2, 0, 2, 1, 1 );
+
+    layout3 = new QHBoxLayout( 0, 0, 6, "layout3"); 
+
+    buttonGroup3 = new QButtonGroup( this, "buttonGroup3" );
+    buttonGroup3->setColumnLayout(0, Qt::Vertical );
+    buttonGroup3->layout()->setSpacing( 6 );
+    buttonGroup3->layout()->setMargin( 11 );
+    buttonGroup3Layout = new QGridLayout( buttonGroup3->layout() );
+    buttonGroup3Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonForEachRow = new QRadioButton( buttonGroup3, "m_pRadioButtonForEachRow" );
+
+    buttonGroup3Layout->addWidget( m_pRadioButtonForEachRow, 1, 0 );
+
+    m_pRadioButtonForEachStatement = new QRadioButton( buttonGroup3, "m_pRadioButtonForEachStatement" );
+    m_pRadioButtonForEachStatement->setChecked( TRUE );
+
+    buttonGroup3Layout->addWidget( m_pRadioButtonForEachStatement, 0, 0 );
+    layout3->addWidget( buttonGroup3 );
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonBefore = new QRadioButton( buttonGroup1, "m_pRadioButtonBefore" );
+    m_pRadioButtonBefore->setChecked( TRUE );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonBefore, 0, 0 );
+
+    m_pRadioButtonAfter = new QRadioButton( buttonGroup1, "m_pRadioButtonAfter" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonAfter, 1, 0 );
+    layout3->addWidget( buttonGroup1 );
+
+    KPGCreateTriggerWidget1BaseLayout->addMultiCellLayout( layout3, 4, 4, 0, 1 );
+    spacer3 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTriggerWidget1BaseLayout->addItem( spacer3, 5, 0 );
+
+    layout5 = new QHBoxLayout( 0, 0, 6, "layout5"); 
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+    layout4->addWidget( textLabel2_2 );
+
+    m_pComboBoxSchema = new KComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout4->addWidget( m_pComboBoxSchema );
+    layout5->addLayout( layout4 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxFunctions = new KComboBox( FALSE, this, "m_pComboBoxFunctions" );
+    layout2->addWidget( m_pComboBoxFunctions );
+    layout5->addLayout( layout2 );
+
+    KPGCreateTriggerWidget1BaseLayout->addMultiCellLayout( layout5, 3, 3, 0, 1 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGCreateTriggerWidget1BaseLayout->addWidget( textLabel1, 0, 0 );
+
+    m_pLineEditTriggerName = new KLineEdit( this, "m_pLineEditTriggerName" );
+
+    KPGCreateTriggerWidget1BaseLayout->addWidget( m_pLineEditTriggerName, 1, 0 );
+    spacer3_2 = new QSpacerItem( 20, 31, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTriggerWidget1BaseLayout->addItem( spacer3_2, 2, 0 );
+    languageChange();
+    resize( QSize(298, 331).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditTriggerName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotTriggerNameChanged(const QString&) ) );
+    connect( m_pCheckBoxInsert, SIGNAL( toggled(bool) ), this, SLOT( slotInsertToggled(bool) ) );
+    connect( m_pCheckBoxUpdate, SIGNAL( toggled(bool) ), this, SLOT( slotUpdateToggled(bool) ) );
+    connect( m_pCheckBoxDelete, SIGNAL( toggled(bool) ), this, SLOT( slotDeleteToggled(bool) ) );
+    connect( m_pComboBoxFunctions, SIGNAL( activated(const QString&) ), this, SLOT( slotFunctionActivated(const QString&) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(int) ), this, SLOT( slotSchemaActivated(int) ) );
+
+    // buddies
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel2->setBuddy( m_pComboBoxFunctions );
+    textLabel1->setBuddy( m_pLineEditTriggerName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTriggerWidget1Base::~KPGCreateTriggerWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTriggerWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Trigger name and properties" ) );
+    buttonGroup2->setTitle( tr2i18n( "Events" ) );
+    m_pCheckBoxInsert->setText( tr2i18n( "&INSERT" ) );
+    m_pCheckBoxInsert->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pCheckBoxUpdate->setText( tr2i18n( "&UPDATE" ) );
+    m_pCheckBoxUpdate->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxDelete->setText( tr2i18n( "&DELETE" ) );
+    m_pCheckBoxDelete->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    buttonGroup3->setTitle( tr2i18n( "For each" ) );
+    m_pRadioButtonForEachRow->setText( tr2i18n( "&Row" ) );
+    m_pRadioButtonForEachRow->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pRadioButtonForEachStatement->setText( tr2i18n( "&Statement" ) );
+    m_pRadioButtonForEachStatement->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    buttonGroup1->setTitle( tr2i18n( "Fire" ) );
+    m_pRadioButtonBefore->setText( tr2i18n( "&Before" ) );
+    m_pRadioButtonBefore->setAccel( QKeySequence( tr2i18n( "Alt+B" ) ) );
+    m_pRadioButtonAfter->setText( tr2i18n( "&After" ) );
+    m_pRadioButtonAfter->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel2->setText( tr2i18n( "&Function:" ) );
+    textLabel1->setText( tr2i18n( "Trigger &name:" ) );
+}
+
+void KPGCreateTriggerWidget1Base::slotTriggerNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotTriggerNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTriggerWidget1Base::slotInsertToggled(bool)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotInsertToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTriggerWidget1Base::slotUpdateToggled(bool)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotUpdateToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTriggerWidget1Base::slotDeleteToggled(bool)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotDeleteToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateTriggerWidget1Base::slotFunctionActivated(const QString&)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotFunctionActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTriggerWidget1Base::slotSchemaActivated(int)
+{
+    qWarning( "KPGCreateTriggerWidget1Base::slotSchemaActivated(int): Not implemented yet" );
+}
+
+#include "kpgcreatetriggerwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,324 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTriggerWidget1Base</class>
+<comment>Widget for create trigger Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTriggerWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>298</width>
+            <height>331</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Trigger name and properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QButtonGroup" row="0" column="1" rowspan="3" colspan="1">
+            <property name="name">
+                <cstring>buttonGroup2</cstring>
+            </property>
+            <property name="title">
+                <string>Events</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxInsert</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;INSERT</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+I</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxUpdate</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;UPDATE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxDelete</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;DELETE</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QButtonGroup">
+                    <property name="name">
+                        <cstring>buttonGroup3</cstring>
+                    </property>
+                    <property name="title">
+                        <string>For each</string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton" row="1" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonForEachRow</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Row</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+R</string>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonForEachStatement</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Statement</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+S</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <widget class="QButtonGroup">
+                    <property name="name">
+                        <cstring>buttonGroup1</cstring>
+                    </property>
+                    <property name="title">
+                        <string>Fire</string>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton" row="0" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonBefore</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Before</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+B</string>
+                            </property>
+                            <property name="checked">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                        <widget class="QRadioButton" row="1" column="0">
+                            <property name="name">
+                                <cstring>m_pRadioButtonAfter</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;After</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+            </hbox>
+        </widget>
+        <spacer row="5" column="0">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Schema:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxSchema</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxSchema</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Function:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxFunctions</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxFunctions</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>Trigger &amp;name:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pLineEditTriggerName</cstring>
+            </property>
+        </widget>
+        <widget class="KLineEdit" row="1" column="0">
+            <property name="name">
+                <cstring>m_pLineEditTriggerName</cstring>
+            </property>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer3_2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>31</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pLineEditTriggerName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotTriggerNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxInsert</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotInsertToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxUpdate</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotUpdateToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxDelete</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotDeleteToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxFunctions</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotFunctionActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateTriggerWidget1Base</receiver>
+        <slot>slotSchemaActivated(int)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTriggerNameChanged(const QString&amp;)</slot>
+    <slot access="protected">slotInsertToggled(bool)</slot>
+    <slot access="protected">slotUpdateToggled(bool)</slot>
+    <slot>slotDeleteToggled(bool)</slot>
+    <slot access="protected">slotFunctionActivated(const QString &amp;)</slot>
+    <slot access="protected">slotSchemaActivated(int)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,79 @@
+//
+// C++ Implementation: kpgcreatetriggerwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetriggerwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreatetriggerwidget1.h"
+
+
+KPGCreateTriggerWizard::KPGCreateTriggerWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, const QString &strNamespace, const QString &strTable)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGCreateTriggerWidget1 *pCreateTriggerWidget1 = new KPGCreateTriggerWidget1(WizardPage1, "KPGCreateTriggerWidget1", pDatabase, strNamespace, strTable);
+  m_pPageWidget1 = pCreateTriggerWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pCreateTriggerWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+	languageChange();
+}
+
+KPGCreateTriggerWizard::~KPGCreateTriggerWizard()
+{
+}
+
+void KPGCreateTriggerWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Add Trigger to Table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Trigger name and properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateTriggerWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		KPGCreateTriggerWidget1 *pCreateTriggerWidget1 = static_cast <KPGCreateTriggerWidget1 *> (m_pPageWidget1);
+		m_pTextEditSQL->setText(pCreateTriggerWidget1->getSQL());
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreatetriggerwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetriggerwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgcreatetriggerwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETRIGGERWIZARD_H
+#define KPGCREATETRIGGERWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGDatabase; 
+
+/**
+Create table trigger Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTriggerWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateTriggerWizard(QWidget *parent, const char *name, KPGDatabase *, const QString &, const QString &);
+    ~KPGCreateTriggerWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+      
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,64 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetypewidget1.h"
+
+// include files for Qt
+#include <qlistview.h>
+#include <qptrlist.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+
+#include "../kpgutil.h"
+
+KPGCreateTypeWidget1::KPGCreateTypeWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> & listOfSchemas)
+ : KPGCreateTypeWidget1Base(parent, name)
+{
+  int iCurrentItem = -1;
+  int i = 0;  
+  for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+    {
+      m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+      
+      if(pSchema->text(0) == "public")
+        iCurrentItem = i;
+        
+      ++i;
+    }
+    
+  if(iCurrentItem >= 0)
+    m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+    
+  m_pLineEditTypeName->setFocus();
+}
+
+KPGCreateTypeWidget1::~KPGCreateTypeWidget1()
+{
+}
+
+void KPGCreateTypeWidget1::slotTypeNameChanged(const QString& strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty());
+}
+
+// Return part of SQL statement for CREATE TYPE
+const QString KPGCreateTypeWidget1::getSQL() const
+{
+  QString strSql("CREATE TYPE ");
+  
+  strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), m_pLineEditTypeName->text()));
+    
+  return strSql;
+}
+
+#include "kpgcreatetypewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETYPEWIDGET1_H
+#define KPGCREATETYPEWIDGET1_H
+
+#include "kpgcreatetypewidget1base.h"
+
+class QListViewItem;
+
+/**
+Widget for create type Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTypeWidget1 : public KPGCreateTypeWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateTypeWidget1(QWidget *parent, const char *name, QPtrList<QListViewItem> &);
+    ~KPGCreateTypeWidget1();
+    
+    const QString getSQL() const;
+    
+protected slots:
+
+    virtual void slotTypeNameChanged(const QString &);
+    
+signals:
+    void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,98 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetypewidget1base.ui'
+**
+** Created: Út dub 1 13:07:41 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetypewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qcombobox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateTypeWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTypeWidget1Base::KPGCreateTypeWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTypeWidget1Base" );
+    KPGCreateTypeWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTypeWidget1BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout2->addWidget( m_pComboBoxSchema );
+
+    KPGCreateTypeWidget1BaseLayout->addLayout( layout2, 0, 0 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    textLabel1->setAlignment( int( QLabel::AlignTop ) );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditTypeName = new KLineEdit( this, "m_pLineEditTypeName" );
+    layout1->addWidget( m_pLineEditTypeName );
+
+    KPGCreateTypeWidget1BaseLayout->addMultiCellLayout( layout1, 1, 1, 0, 1 );
+    spacer2 = new QSpacerItem( 31, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTypeWidget1BaseLayout->addItem( spacer2, 2, 0 );
+    spacer2_2 = new QSpacerItem( 131, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateTypeWidget1BaseLayout->addMultiCell( spacer2_2, 0, 0, 1, 2 );
+    spacer3 = new QSpacerItem( 71, 20, QSizePolicy::Minimum, QSizePolicy::Minimum );
+    KPGCreateTypeWidget1BaseLayout->addItem( spacer3, 1, 2 );
+    languageChange();
+    resize( QSize(329, 204).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditTypeName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotTypeNameChanged(const QString&) ) );
+
+    // buddies
+    textLabel2->setBuddy( m_pComboBoxSchema );
+    textLabel1->setBuddy( m_pLineEditTypeName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTypeWidget1Base::~KPGCreateTypeWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTypeWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Type name" ) );
+    textLabel2->setText( tr2i18n( "&Schema:" ) );
+    textLabel1->setText( tr2i18n( "New type &name:" ) );
+}
+
+void KPGCreateTypeWidget1Base::slotTypeNameChanged(const QString&)
+{
+    qWarning( "KPGCreateTypeWidget1Base::slotTypeNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgcreatetypewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,150 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTypeWidget1Base</class>
+<comment>Widget for create type Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTypeWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>329</width>
+            <height>204</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Type name</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New type &amp;name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="alignment">
+                        <set>AlignTop</set>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditTypeName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditTypeName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>31</width>
+                    <height>30</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer2_2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>131</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Minimum</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>71</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditTypeName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateTypeWidget1Base</receiver>
+        <slot>slotTypeNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTypeNameChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,182 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetypewidget2.h"
+
+// include files for KDE
+#include <kdebug.h>
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgfunctionsfolder.h"
+#include "../DbObjects/kpgfunction.h"
+#include "../kpgutil.h"
+
+
+KPGCreateTypeWidget2::KPGCreateTypeWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateTypeWidget2Base(parent, name)
+{
+    m_pDatabase = pDatabase;
+   
+    // fill schemas to combobox
+    KPGUtil::fillComboBoxWithDatabaseSchemas(pDatabase, m_pComboBoxSchema);
+}
+
+KPGCreateTypeWidget2::~KPGCreateTypeWidget2()
+{
+}
+
+void KPGCreateTypeWidget2::refreshListOfFunctions()
+{
+    QString strNamespace(m_pComboBoxSchema->currentText());
+    
+    // Find schema
+    KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+    if(!pItem)
+    {
+        kdDebug() << "KPGCreateTypeWidget2::refreshListOfFunctions: no item found: " << strNamespace << endl;
+        return;
+    }
+    
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+    
+    // Construct schema qualified datatype name
+    QString strNamespace_DataType;
+    if(strNamespace == "public")
+        strNamespace_DataType = m_strDataType;
+    else
+        strNamespace_DataType = "\"" + strNamespace + "\"." + m_strDataType;
+        
+    // clear comboboxes
+    m_pComboBoxInputFunction->clear();
+    m_pComboBoxOutputFunction->clear();
+    m_pComboBoxSendFunction->clear();
+    m_pComboBoxReceiveFunction->clear();
+    m_pComboBoxAnalyzeFunction->clear();
+    
+    m_pComboBoxSendFunction->insertItem("");
+    m_pComboBoxReceiveFunction->insertItem("");
+    m_pComboBoxAnalyzeFunction->insertItem("");
+    
+    //--- Obtain list of functions
+    KPGFunctionsFolder *pFunctionsFolder = pSchema->getFunctionsFolder();
+    
+    // Fill list of functions
+    QListViewItem * pLvItem = pFunctionsFolder->firstChild();
+    while(pLvItem)
+    {
+        KPGFunction *pFunction = static_cast <KPGFunction *> (pLvItem);
+        
+        QString strFunction;
+        if(strNamespace == "public")
+        strFunction = pFunction->text(0);
+        else
+        strFunction = strNamespace + "." + pFunction->text(0);
+        
+        
+        // INPUT
+        if(((pFunction->nArgs() == 1) && (pFunction->argTypes() == "cstring")) || 
+        ((pFunction->nArgs() == 3) && (pFunction->argTypes() == "cstring, oid, integer")))
+        m_pComboBoxInputFunction->insertItem(* pFunction->pixmap(0), strFunction + "(" + pFunction->argTypes() + ")");
+        
+        // OUTPUT
+        if(((pFunction->nArgs() == 1) && (pFunction->argTypes() == strNamespace_DataType)) || 
+        ((pFunction->nArgs() == 2) && (pFunction->argTypes() == strNamespace_DataType + ", oid")))
+        m_pComboBoxOutputFunction->insertItem(* pFunction->pixmap(0), strFunction + "(" + pFunction->argTypes() + ")"); 
+        
+        // SEND
+        if(((pFunction->nArgs() == 1) && (pFunction->argTypes() == strNamespace_DataType)) || 
+        ((pFunction->nArgs() == 2) && (pFunction->argTypes() == strNamespace_DataType + ", oid")))
+        {
+            if(pFunction->returnTypName() == "bytea")
+                m_pComboBoxSendFunction->insertItem(* pFunction->pixmap(0), strFunction + "(" + pFunction->argTypes() + ")"); 
+        }
+        
+        // RECEIVE
+        if(((pFunction->nArgs() == 1) && (pFunction->argTypes() == "internal")) || 
+        ((pFunction->nArgs() == 2) && (pFunction->argTypes() == strNamespace_DataType + "internal, oid")))
+        {
+            if(pFunction->returnTypName() == m_strDataType)
+                m_pComboBoxReceiveFunction->insertItem(* pFunction->pixmap(0), strFunction + "(" + pFunction->argTypes() + ")"); 
+        }
+        
+        // ANALYZE
+        if((pFunction->nArgs() == 1) && (pFunction->argTypes() == "internal") && (pFunction->returnTypName() == "boolean"))
+        m_pComboBoxAnalyzeFunction->insertItem(* pFunction->pixmap(0), strFunction + "(" + pFunction->argTypes() + ")"); 
+        
+        pLvItem = pLvItem->nextSibling();
+    }
+    
+    emit sigEnableNextButton(!m_pComboBoxInputFunction->currentText().isEmpty() && !m_pComboBoxOutputFunction->currentText().isEmpty()); 
+}
+
+void KPGCreateTypeWidget2::slotSchemaActivated(int)
+{
+  refreshListOfFunctions();
+}
+
+void KPGCreateTypeWidget2::slotInputFunctionChanged(const QString& strInputFunction)
+{
+  emit sigEnableNextButton(!strInputFunction.isEmpty() && !m_pComboBoxOutputFunction->currentText().isEmpty()); 
+}
+    
+void KPGCreateTypeWidget2::slotOutputFunctionChanged(const QString &strOutputFunction)
+{
+  emit sigEnableNextButton(!strOutputFunction.isEmpty() && !m_pComboBoxInputFunction->currentText().isEmpty()); 
+}
+
+// Return part of SQL statement for CREATE TYPE
+const QString KPGCreateTypeWidget2::getSQL() const
+{
+  QString strSQL(" (");
+  
+  QString strNamespaceFunction; // "namespace"."function"
+  
+  strSQL.append("\nINPUT = ");
+  strNamespaceFunction = "\"" +  m_pComboBoxInputFunction->currentText().left(m_pComboBoxInputFunction->currentText().find('(')) +  "\"";
+  strNamespaceFunction.replace('.', "\".\"");
+  strSQL.append(strNamespaceFunction);
+  
+  strSQL.append("\n, OUTPUT = ");
+  strNamespaceFunction = "\"" +  m_pComboBoxOutputFunction->currentText().left(m_pComboBoxOutputFunction->currentText().find('(')) + "\"";
+  strNamespaceFunction.replace('.', "\".\"");
+  strSQL.append(strNamespaceFunction);
+  
+  if(!m_pComboBoxReceiveFunction->currentText().isEmpty())
+  {
+    strSQL.append("\n, RECEIVE = ");
+    strNamespaceFunction = "\"" +  m_pComboBoxReceiveFunction->currentText().left(m_pComboBoxReceiveFunction->currentText().find('(')) +  "\"";
+    strNamespaceFunction.replace('.', "\".\"");
+    strSQL.append(strNamespaceFunction);
+  }
+  
+  if(!m_pComboBoxSendFunction->currentText().isEmpty())
+  {
+    strSQL.append("\n, SEND = ");
+    strNamespaceFunction = "\"" +  m_pComboBoxSendFunction->currentText().left(m_pComboBoxSendFunction->currentText().find('(')) +  "\"";
+    strNamespaceFunction.replace('.', "\".\"");
+    strSQL.append(strNamespaceFunction);
+  }
+    
+  if(!m_pComboBoxAnalyzeFunction->currentText().isEmpty())
+  {
+    strSQL.append("\n, ANALYZE = ");
+    strNamespaceFunction = "\"" +  m_pComboBoxAnalyzeFunction->currentText().left(m_pComboBoxAnalyzeFunction->currentText().find('(')) +  "\"";
+    strNamespaceFunction.replace('.', "\".\"");
+    strSQL.append(strNamespaceFunction);
+  }
+  
+  return strSQL;
+}
+
+#include "kpgcreatetypewidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETYPEWIDGET2_H
+#define KPGCREATETYPEWIDGET2_H
+
+#include "kpgcreatetypewidget2base.h"
+
+class KPGDatabase;
+
+/**
+Widget for create type Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTypeWidget2 : public KPGCreateTypeWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateTypeWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateTypeWidget2();
+
+    void setDataType(const QString &strDataType) { m_strDataType = strDataType; };
+    const QString &dataType() const { return m_strDataType; }
+    void refreshListOfFunctions();
+    const QString getSQL() const;
+
+protected:
+    QString m_strDataType;
+    KPGDatabase *m_pDatabase;
+
+protected slots:
+
+    virtual void slotSchemaActivated(int);
+    virtual void slotInputFunctionChanged(const QString&);
+    virtual void slotOutputFunctionChanged(const QString&);
+        
+signals:
+    void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,166 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetypewidget2base.ui'
+**
+** Created: Út dub 1 13:07:41 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetypewidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <kcombobox.h>
+#include <qlabel.h>
+#include <qframe.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGCreateTypeWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTypeWidget2Base::KPGCreateTypeWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTypeWidget2Base" );
+    KPGCreateTypeWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTypeWidget2BaseLayout"); 
+
+    m_pComboBoxSchema = new KComboBox( FALSE, this, "m_pComboBoxSchema" );
+
+    KPGCreateTypeWidget2BaseLayout->addWidget( m_pComboBoxSchema, 1, 0 );
+
+    textLabel2_2 = new QLabel( this, "textLabel2_2" );
+
+    KPGCreateTypeWidget2BaseLayout->addMultiCellWidget( textLabel2_2, 0, 0, 0, 1 );
+    spacer2 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTypeWidget2BaseLayout->addItem( spacer2, 3, 1 );
+
+    frame3 = new QFrame( this, "frame3" );
+    frame3->setFrameShape( QFrame::StyledPanel );
+    frame3->setFrameShadow( QFrame::Sunken );
+    frame3Layout = new QGridLayout( frame3, 1, 1, 11, 6, "frame3Layout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( frame3, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxInputFunction = new KComboBox( FALSE, frame3, "m_pComboBoxInputFunction" );
+    layout1->addWidget( m_pComboBoxInputFunction );
+
+    frame3Layout->addLayout( layout1, 0, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( frame3, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxOutputFunction = new KComboBox( FALSE, frame3, "m_pComboBoxOutputFunction" );
+    layout2->addWidget( m_pComboBoxOutputFunction );
+
+    frame3Layout->addLayout( layout2, 0, 1 );
+
+    layout7 = new QHBoxLayout( 0, 0, 6, "layout7"); 
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel5 = new QLabel( frame3, "textLabel5" );
+    layout5->addWidget( textLabel5 );
+
+    m_pComboBoxAnalyzeFunction = new KComboBox( FALSE, frame3, "m_pComboBoxAnalyzeFunction" );
+    layout5->addWidget( m_pComboBoxAnalyzeFunction );
+    layout7->addLayout( layout5 );
+
+    textLabel6 = new QLabel( frame3, "textLabel6" );
+    layout7->addWidget( textLabel6 );
+
+    frame3Layout->addMultiCellLayout( layout7, 2, 2, 0, 1 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel3 = new QLabel( frame3, "textLabel3" );
+    layout3->addWidget( textLabel3 );
+
+    m_pComboBoxSendFunction = new KComboBox( FALSE, frame3, "m_pComboBoxSendFunction" );
+    layout3->addWidget( m_pComboBoxSendFunction );
+
+    frame3Layout->addLayout( layout3, 1, 1 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel4 = new QLabel( frame3, "textLabel4" );
+    layout4->addWidget( textLabel4 );
+
+    m_pComboBoxReceiveFunction = new KComboBox( FALSE, frame3, "m_pComboBoxReceiveFunction" );
+    layout4->addWidget( m_pComboBoxReceiveFunction );
+
+    frame3Layout->addLayout( layout4, 1, 0 );
+
+    KPGCreateTypeWidget2BaseLayout->addMultiCellWidget( frame3, 2, 2, 0, 1 );
+    spacer3 = new QSpacerItem( 31, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateTypeWidget2BaseLayout->addItem( spacer3, 1, 1 );
+    languageChange();
+    resize( QSize(277, 297).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxInputFunction, SIGNAL( activated(const QString&) ), this, SLOT( slotInputFunctionChanged(const QString&) ) );
+    connect( m_pComboBoxOutputFunction, SIGNAL( activated(const QString&) ), this, SLOT( slotOutputFunctionChanged(const QString&) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(int) ), this, SLOT( slotSchemaActivated(int) ) );
+
+    // buddies
+    textLabel2_2->setBuddy( m_pComboBoxSchema );
+    textLabel1->setBuddy( m_pComboBoxInputFunction );
+    textLabel2->setBuddy( m_pComboBoxOutputFunction );
+    textLabel5->setBuddy( m_pComboBoxAnalyzeFunction );
+    textLabel3->setBuddy( m_pComboBoxSendFunction );
+    textLabel4->setBuddy( m_pComboBoxReceiveFunction );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTypeWidget2Base::~KPGCreateTypeWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTypeWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 2 - Define functions" ) );
+    textLabel2_2->setText( tr2i18n( "&Schema:" ) );
+    textLabel1->setText( tr2i18n( "&Input function:" ) );
+    textLabel2->setText( tr2i18n( "&Output function:" ) );
+    textLabel5->setText( tr2i18n( "&Analyze function:" ) );
+    textLabel6->setText( QString::null );
+    textLabel3->setText( tr2i18n( "Sen&d function:" ) );
+    textLabel4->setText( tr2i18n( "&Receive function:" ) );
+}
+
+void KPGCreateTypeWidget2Base::slotInputFunctionChanged(const QString&)
+{
+    qWarning( "KPGCreateTypeWidget2Base::slotInputFunctionChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTypeWidget2Base::slotOutputFunctionChanged(const QString&)
+{
+    qWarning( "KPGCreateTypeWidget2Base::slotOutputFunctionChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateTypeWidget2Base::slotSchemaActivated(int)
+{
+    qWarning( "KPGCreateTypeWidget2Base::slotSchemaActivated(int): Not implemented yet" );
+}
+
+#include "kpgcreatetypewidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,274 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTypeWidget2Base</class>
+<comment>Widget for create type Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTypeWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>277</width>
+            <height>297</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 2 - Define functions</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KComboBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pComboBoxSchema</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel2_2</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Schema:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pComboBoxSchema</cstring>
+            </property>
+        </widget>
+        <spacer row="3" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QFrame" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>frame3</cstring>
+            </property>
+            <property name="frameShape">
+                <enum>StyledPanel</enum>
+            </property>
+            <property name="frameShadow">
+                <enum>Sunken</enum>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Input function:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxInputFunction</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxInputFunction</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Output function:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxOutputFunction</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxOutputFunction</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout5</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel5</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Analyze function:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxAnalyzeFunction</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KComboBox">
+                                    <property name="name">
+                                        <cstring>m_pComboBoxAnalyzeFunction</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel6</cstring>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="1">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Sen&amp;d function:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxSendFunction</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxSendFunction</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel4</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Receive function:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxReceiveFunction</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <property name="name">
+                                <cstring>m_pComboBoxReceiveFunction</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+        <spacer row="1" column="1">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>31</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxInputFunction</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTypeWidget2Base</receiver>
+        <slot>slotInputFunctionChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxOutputFunction</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateTypeWidget2Base</receiver>
+        <slot>slotOutputFunctionChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateTypeWidget2Base</receiver>
+        <slot>slotSchemaActivated(int)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotInputFunctionChanged(const QString&amp;)</slot>
+    <slot access="protected">slotOutputFunctionChanged(const QString&amp;)</slot>
+    <slot access="protected">slotSchemaActivated(int)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreatetypewidget3.h"
+
+// include files for Qt
+#include <qcheckbox.h> 
+
+// include files for KDE
+#include <kdebug.h>
+#include <kcombobox.h> 
+#include <klineedit.h> 
+
+
+KPGCreateTypeWidget3::KPGCreateTypeWidget3(QWidget *parent, const char *name)
+ : KPGCreateTypeWidget3Base(parent, name)
+{
+}
+
+
+KPGCreateTypeWidget3::~KPGCreateTypeWidget3()
+{
+}
+
+// Return part of SQL statement for CREATE TYPE
+const QString KPGCreateTypeWidget3::getSQL() const
+{
+  QString strSQL;
+  
+  if(!m_pComboBoxInternalLength->currentText().isEmpty())
+  {
+    strSQL.append("\n, INTERNALLENGTH = ");
+    strSQL.append(m_pComboBoxInternalLength->currentText());
+  }
+  
+  if(m_pCheckBoxPassedByValue->isChecked())
+  {
+    strSQL.append("\n, PASSEDBYVALUE");
+  }
+  
+  if(m_pComboBoxAlignment->currentText() != "int4") // int4 is default
+  {
+    strSQL.append("\n, ALIGNMENT = ");
+    strSQL.append(m_pComboBoxAlignment->currentText());
+  } 
+  
+  if(m_pComboBoxStorage->currentText() != "PLAIN") // PLAIN is default
+  {
+    strSQL.append("\n, STORAGE = ");
+    strSQL.append(m_pComboBoxStorage->currentText());
+  }
+  
+  if(!m_pLineEditDefaultValue->text().isEmpty()) 
+  {
+    strSQL.append("\n, DEFAULT = ");
+    strSQL.append(m_pLineEditDefaultValue->text());
+  }  
+  
+  if(!m_pLineEditElement->text().isEmpty()) 
+  {
+    strSQL.append("\n, ELEMENT = ");
+    strSQL.append(m_pLineEditElement->text());
+  } 
+  
+  if(!m_pLineEditDelimiter->text().isEmpty()) 
+  {
+    strSQL.append("\n, DELIMITER = ");
+    strSQL.append(m_pLineEditDelimiter->text());
+  } 
+  
+  strSQL.append("\n)");
+  
+  return strSQL;
+}
+
+#include "kpgcreatetypewidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATETYPEWIDGET3_H
+#define KPGCREATETYPEWIDGET3_H
+
+#include "kpgcreatetypewidget3base.h"
+
+/**
+Widget for create type Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateTypeWidget3 : public KPGCreateTypeWidget3Base
+{
+Q_OBJECT
+public:
+    KPGCreateTypeWidget3(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateTypeWidget3();
+
+    const QString getSQL() const;
+    
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,182 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreatetypewidget3base.ui'
+**
+** Created: Út dub 1 13:07:41 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreatetypewidget3base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <qcombobox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGCreateTypeWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateTypeWidget3Base::KPGCreateTypeWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateTypeWidget3Base" );
+    KPGCreateTypeWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateTypeWidget3BaseLayout"); 
+    spacer1 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateTypeWidget3BaseLayout->addItem( spacer1, 4, 0 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout5->addWidget( textLabel3 );
+
+    m_pLineEditElement = new KLineEdit( this, "m_pLineEditElement" );
+    layout5->addWidget( m_pLineEditElement );
+
+    KPGCreateTypeWidget3BaseLayout->addLayout( layout5, 3, 0 );
+
+    layout8 = new QGridLayout( 0, 1, 1, 0, 6, "layout8"); 
+
+    m_pLineEditDelimiter = new KLineEdit( this, "m_pLineEditDelimiter" );
+    m_pLineEditDelimiter->setMaximumSize( QSize( 25, 32767 ) );
+    m_pLineEditDelimiter->setMaxLength( 1 );
+
+    layout8->addWidget( m_pLineEditDelimiter, 1, 0 );
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+
+    layout8->addMultiCellWidget( textLabel4, 0, 0, 0, 1 );
+    spacer2 = new QSpacerItem( 51, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout8->addItem( spacer2, 1, 1 );
+
+    KPGCreateTypeWidget3BaseLayout->addLayout( layout8, 3, 1 );
+
+    layout7 = new QHBoxLayout( 0, 0, 6, "layout7"); 
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout3->addWidget( textLabel1 );
+
+    m_pComboBoxAlignment = new KComboBox( FALSE, this, "m_pComboBoxAlignment" );
+    layout3->addWidget( m_pComboBoxAlignment );
+    layout7->addLayout( layout3 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1_2 = new QLabel( this, "textLabel1_2" );
+    layout2->addWidget( textLabel1_2 );
+
+    m_pComboBoxStorage = new KComboBox( FALSE, this, "m_pComboBoxStorage" );
+    layout2->addWidget( m_pComboBoxStorage );
+    layout7->addLayout( layout2 );
+
+    KPGCreateTypeWidget3BaseLayout->addMultiCellLayout( layout7, 1, 1, 0, 1 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout4->addWidget( textLabel2 );
+
+    m_pLineEditDefaultValue = new KLineEdit( this, "m_pLineEditDefaultValue" );
+    layout4->addWidget( m_pLineEditDefaultValue );
+
+    KPGCreateTypeWidget3BaseLayout->addMultiCellLayout( layout4, 2, 2, 0, 1 );
+
+    layout11 = new QHBoxLayout( 0, 0, 6, "layout11"); 
+
+    layout7_2 = new QVBoxLayout( 0, 0, 6, "layout7_2"); 
+
+    textLabel5 = new QLabel( this, "textLabel5" );
+    layout7_2->addWidget( textLabel5 );
+
+    m_pComboBoxInternalLength = new QComboBox( FALSE, this, "m_pComboBoxInternalLength" );
+    m_pComboBoxInternalLength->setEditable( TRUE );
+    layout7_2->addWidget( m_pComboBoxInternalLength );
+    layout11->addLayout( layout7_2 );
+
+    layout9 = new QVBoxLayout( 0, 0, 6, "layout9"); 
+
+    textLabel1_3 = new QLabel( this, "textLabel1_3" );
+    layout9->addWidget( textLabel1_3 );
+
+    m_pCheckBoxPassedByValue = new QCheckBox( this, "m_pCheckBoxPassedByValue" );
+    layout9->addWidget( m_pCheckBoxPassedByValue );
+    layout11->addLayout( layout9 );
+    spacer3 = new QSpacerItem( 79, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout11->addItem( spacer3 );
+
+    KPGCreateTypeWidget3BaseLayout->addMultiCellLayout( layout11, 0, 0, 0, 1 );
+    languageChange();
+    resize( QSize(347, 272).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pComboBoxInternalLength, m_pCheckBoxPassedByValue );
+    setTabOrder( m_pCheckBoxPassedByValue, m_pComboBoxAlignment );
+    setTabOrder( m_pComboBoxAlignment, m_pComboBoxStorage );
+    setTabOrder( m_pComboBoxStorage, m_pLineEditDefaultValue );
+    setTabOrder( m_pLineEditDefaultValue, m_pLineEditElement );
+    setTabOrder( m_pLineEditElement, m_pLineEditDelimiter );
+
+    // buddies
+    textLabel3->setBuddy( m_pLineEditElement );
+    textLabel4->setBuddy( m_pLineEditDelimiter );
+    textLabel1->setBuddy( m_pComboBoxAlignment );
+    textLabel1_2->setBuddy( m_pComboBoxStorage );
+    textLabel2->setBuddy( m_pLineEditDefaultValue );
+    textLabel5->setBuddy( m_pComboBoxInternalLength );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateTypeWidget3Base::~KPGCreateTypeWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateTypeWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 3 - Define type properties" ) );
+    textLabel3->setText( tr2i18n( "&Element:" ) );
+    textLabel4->setText( tr2i18n( "Deli&miter:" ) );
+    textLabel1->setText( tr2i18n( "&Alignment:" ) );
+    m_pComboBoxAlignment->clear();
+    m_pComboBoxAlignment->insertItem( tr2i18n( "int4" ) );
+    m_pComboBoxAlignment->insertItem( tr2i18n( "int2" ) );
+    m_pComboBoxAlignment->insertItem( tr2i18n( "double" ) );
+    m_pComboBoxAlignment->insertItem( tr2i18n( "char" ) );
+    textLabel1_2->setText( tr2i18n( "&Storage type:" ) );
+    m_pComboBoxStorage->clear();
+    m_pComboBoxStorage->insertItem( tr2i18n( "PLAIN" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "EXTERNAL" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "EXTENDED" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "MAIN" ) );
+    textLabel2->setText( tr2i18n( "&Default value:" ) );
+    textLabel5->setText( tr2i18n( "&Internal length:" ) );
+    m_pComboBoxInternalLength->clear();
+    m_pComboBoxInternalLength->insertItem( QString::null );
+    m_pComboBoxInternalLength->insertItem( tr2i18n( "VARIABLE" ) );
+    textLabel1_3->setText( QString::null );
+    m_pCheckBoxPassedByValue->setText( tr2i18n( "&Passed by value" ) );
+    m_pCheckBoxPassedByValue->setAccel( QKeySequence( tr2i18n( "Alt+P" ) ) );
+}
+
+#include "kpgcreatetypewidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreatetypewidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,361 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateTypeWidget3Base</class>
+<comment>Widget for create type Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateTypeWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>347</width>
+            <height>272</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 3 - Define type properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="4" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="3" column="0">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Element:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditElement</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditElement</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="3" column="1">
+            <property name="name">
+                <cstring>layout8</cstring>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="KLineEdit" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pLineEditDelimiter</cstring>
+                    </property>
+                    <property name="maximumSize">
+                        <size>
+                            <width>25</width>
+                            <height>32767</height>
+                        </size>
+                    </property>
+                    <property name="maxLength">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>textLabel4</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Deli&amp;miter:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDelimiter</cstring>
+                    </property>
+                </widget>
+                <spacer row="1" column="1">
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>51</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout7</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Alignment:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxAlignment</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>int4</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>int2</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>double</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>char</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxAlignment</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout2</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Storage type:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxStorage</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>PLAIN</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>EXTERNAL</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>EXTENDED</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>MAIN</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxStorage</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Default value:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDefaultValue</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDefaultValue</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout11</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel5</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Internal length:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxInternalLength</cstring>
+                            </property>
+                        </widget>
+                        <widget class="QComboBox">
+                            <item>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>VARIABLE</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxInternalLength</cstring>
+                            </property>
+                            <property name="editable">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout9</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxPassedByValue</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Passed by value</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+P</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer3</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>79</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<tabstops>
+    <tabstop>m_pComboBoxInternalLength</tabstop>
+    <tabstop>m_pCheckBoxPassedByValue</tabstop>
+    <tabstop>m_pComboBoxAlignment</tabstop>
+    <tabstop>m_pComboBoxStorage</tabstop>
+    <tabstop>m_pLineEditDefaultValue</tabstop>
+    <tabstop>m_pLineEditElement</tabstop>
+    <tabstop>m_pLineEditDelimiter</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,160 @@
+//
+// C++ Implementation: kpgcreateuserwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateuserwidget1.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qradiobutton.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kpassdlg.h>
+#include <qcheckbox.h>
+#include <kcombobox.h>
+#include <kdatewidget.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+// application specific includes
+#include "../kpgutil.h"
+#include "../DbObjects/kpgconnection.h"
+
+KPGCreateUserWidget1::KPGCreateUserWidget1(QWidget *parent, const char *name)
+ : KPGCreateUserWidget1Base(parent, name)
+{
+	m_pDateWidgetExpiration->setDate(QDate::currentDate().addYears(1));
+	m_pLineEditUserName->setFocus();
+}
+
+KPGCreateUserWidget1::~KPGCreateUserWidget1()
+{
+}
+
+void KPGCreateUserWidget1::slotRadioButtonExpirationChanged(int iState)
+{
+	m_pDateWidgetExpiration->setEnabled(iState == 0);
+}
+
+void KPGCreateUserWidget1::slotLineEditUserNameChanged(const QString &strUserName)
+{
+	emit sigEnableNextButton((strUserName.length() > 0) && (QString(m_pPasswordEdit1->password()) == QString(m_pPasswordEdit2->password())));
+}
+
+void KPGCreateUserWidget1::slotPasswordEdit1Changed(const QString &)
+{
+	bool bMatch = (QString(m_pPasswordEdit1->password()) == QString(m_pPasswordEdit2->password()));
+	
+	if(!bMatch)
+		m_pTextLabelInfo->setText(i18n("Passwords not match"));
+	else
+		m_pTextLabelInfo->setText("");
+		
+	emit sigEnableNextButton(bMatch && (m_pLineEditUserName->text().length() > 0));
+}
+
+void KPGCreateUserWidget1::slotPasswordEdit2Changed(const QString &)
+{
+	bool bMatch = (QString(m_pPasswordEdit1->password()) == QString(m_pPasswordEdit2->password()));
+	
+	if(!bMatch)
+		m_pTextLabelInfo->setText(i18n("Passwords not match"));
+	else
+		m_pTextLabelInfo->setText("");
+		
+	emit sigEnableNextButton(bMatch && (m_pLineEditUserName->text().length() > 0));
+}
+
+// Return part of SQL statement for CREATE USER
+const QString KPGCreateUserWidget1::getSQL(KPGConnection *pConnection)
+{
+	QString strSQL(KPGUtil::quotedName(m_pLineEditUserName->text()));
+
+	QString strWITH(" WITH\n");
+	
+	if(m_pLineEditSysId->text().length() > 0)
+	{
+		strWITH.append("SYSID " + m_pLineEditSysId->text() + "\n");
+	}
+	
+	bool bEncrypted = false;
+	if(m_pPasswordEdit1->text().length() > 0)
+	{
+		if(m_pComboBoxEncryption->currentItem() == 1)
+		{
+			strWITH.append(" ENCRYPTED ");
+			bEncrypted = true;
+		}
+		else
+		{
+			if(m_pComboBoxEncryption->currentItem() == 2)
+				strWITH.append(" UNENCRYPTED ");
+		}
+		
+		strWITH.append("PASSWORD '");
+		
+		if(!bEncrypted)
+		{
+			strWITH.append(m_pPasswordEdit1->password());
+		}
+		else
+		{
+			QString strQuery("SELECT md5 FROM pg_catalog.md5('");
+			strQuery.append(m_pPasswordEdit1->password());
+			strQuery.append(m_pLineEditUserName->text());
+			strQuery.append("');");
+			
+			QString strMD5;
+			pqxx::result pqxxResult; 
+			
+			try
+			{
+				pqxxResult = pConnection->runQuery(strQuery);
+			}
+			catch (const std::exception &e)
+			{
+				KMessageBox::error(this, e.what());
+			} 
+			
+			if (pqxxResult.size() >= 1)
+			{
+				strMD5 = pqxxResult[0][0].c_str();
+				strWITH.append("md5" + strMD5);
+			}
+		}
+		
+		strWITH.append("'\n");
+	}
+	
+	if(m_pCheckBoxCreateDb->isChecked())
+		strWITH.append("CREATEDB\n");
+		
+	if(m_pCheckBoxCreateUsers->isChecked())
+		strWITH.append("CREATEUSER\n");
+		
+	if(m_pRadioButtonExpiresOn->isChecked())
+	{
+		strWITH.append("VALID UNTIL '");
+		
+		QDate d = m_pDateWidgetExpiration->date();
+		
+		strWITH.append(d.toString("yyyy-MM-dd"));
+		strWITH.append("'\n");
+	}
+	
+	if(strWITH.length() > 7)
+		strSQL.append(strWITH);
+	
+	return strSQL;
+}
+
+#include "kpgcreateuserwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Interface: kpgcreateuserwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEUSERWIDGET1_H
+#define KPGCREATEUSERWIDGET1_H
+
+#include "kpgcreateuserwidget1base.h"
+
+#include <kdatewidget.h>
+
+class KPGConnection;
+
+/**
+  * Widget for create user Wizard
+  *
+  * @author Lumir Vanek
+  */
+class KPGCreateUserWidget1 : public KPGCreateUserWidget1Base
+{
+Q_OBJECT
+public:
+    KPGCreateUserWidget1(QWidget *parent, const char *name);
+	~KPGCreateUserWidget1();
+		
+	const QString getSQL(KPGConnection *);
+		
+protected slots:
+	
+	virtual void slotRadioButtonExpirationChanged(int);
+	virtual void slotLineEditUserNameChanged(const QString &);
+	virtual void slotPasswordEdit1Changed(const QString &);
+	virtual void slotPasswordEdit2Changed(const QString &);
+    
+    virtual void slotDateWidgetExpirationChanged(QDate) { ; } // do nothing
+    virtual void slotCheckBoxCreateDbToggled(bool) { ; } // do nothing
+    virtual void slotCheckBoxCreateUsersToggled(bool) { ; } // do nothing
+		
+signals:
+	void sigEnableNextButton(bool);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,253 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateuserwidget1base.ui'
+**
+** Created: Út dub 1 13:07:29 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateuserwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qbuttongroup.h>
+#include <kpassdlg.h>
+#include <kcombobox.h>
+#include <qradiobutton.h>
+#include <kdatewidget.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "kpassdlg.h"
+#include "kcombobox.h"
+#include "kdatewidget.h"
+
+/*
+ *  Constructs a KPGCreateUserWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateUserWidget1Base::KPGCreateUserWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateUserWidget1Base" );
+    KPGCreateUserWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateUserWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditUserName = new KLineEdit( this, "m_pLineEditUserName" );
+    layout1->addWidget( m_pLineEditUserName );
+
+    KPGCreateUserWidget1BaseLayout->addLayout( layout1, 0, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pLineEditSysId = new KLineEdit( this, "m_pLineEditSysId" );
+    layout2->addWidget( m_pLineEditSysId );
+
+    KPGCreateUserWidget1BaseLayout->addLayout( layout2, 0, 1 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxCreateDb = new QCheckBox( groupBox1, "m_pCheckBoxCreateDb" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxCreateDb, 0, 0 );
+
+    m_pCheckBoxCreateUsers = new QCheckBox( groupBox1, "m_pCheckBoxCreateUsers" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxCreateUsers, 0, 1 );
+
+    KPGCreateUserWidget1BaseLayout->addMultiCellWidget( groupBox1, 1, 1, 0, 1 );
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    layout8 = new QHBoxLayout( 0, 0, 6, "layout8"); 
+
+    layout7 = new QVBoxLayout( 0, 0, 6, "layout7"); 
+
+    textLabel3 = new QLabel( buttonGroup1, "textLabel3" );
+    textLabel3->setTextFormat( QLabel::PlainText );
+    layout7->addWidget( textLabel3 );
+
+    textLabel4 = new QLabel( buttonGroup1, "textLabel4" );
+    textLabel4->setFrameShadow( QLabel::Plain );
+    layout7->addWidget( textLabel4 );
+    layout8->addLayout( layout7 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    m_pPasswordEdit1 = new KPasswordEdit( buttonGroup1, "m_pPasswordEdit1" );
+    layout6->addWidget( m_pPasswordEdit1 );
+
+    m_pPasswordEdit2 = new KPasswordEdit( buttonGroup1, "m_pPasswordEdit2" );
+    layout6->addWidget( m_pPasswordEdit2 );
+    layout8->addLayout( layout6 );
+
+    buttonGroup1Layout->addMultiCellLayout( layout8, 0, 0, 0, 1 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel5 = new QLabel( buttonGroup1, "textLabel5" );
+    layout5->addWidget( textLabel5 );
+
+    m_pComboBoxEncryption = new KComboBox( FALSE, buttonGroup1, "m_pComboBoxEncryption" );
+    layout5->addWidget( m_pComboBoxEncryption );
+
+    buttonGroup1Layout->addMultiCellLayout( layout5, 1, 2, 0, 0 );
+
+    m_pRadioButtonExpiresNewer = new QRadioButton( buttonGroup1, "m_pRadioButtonExpiresNewer" );
+    m_pRadioButtonExpiresNewer->setAutoMask( TRUE );
+    m_pRadioButtonExpiresNewer->setChecked( TRUE );
+    buttonGroup1->insert( m_pRadioButtonExpiresNewer, 0 );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonExpiresNewer, 3, 0 );
+
+    layout7_2 = new QHBoxLayout( 0, 0, 6, "layout7_2"); 
+
+    m_pRadioButtonExpiresOn = new QRadioButton( buttonGroup1, "m_pRadioButtonExpiresOn" );
+    m_pRadioButtonExpiresOn->setAutoMask( TRUE );
+    buttonGroup1->insert( m_pRadioButtonExpiresOn, -1 );
+    layout7_2->addWidget( m_pRadioButtonExpiresOn );
+
+    m_pDateWidgetExpiration = new KDateWidget( buttonGroup1, "m_pDateWidgetExpiration" );
+    m_pDateWidgetExpiration->setEnabled( FALSE );
+    layout7_2->addWidget( m_pDateWidgetExpiration );
+
+    buttonGroup1Layout->addMultiCellLayout( layout7_2, 4, 4, 0, 1 );
+    spacer2 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    buttonGroup1Layout->addItem( spacer2, 3, 1 );
+    spacer1 = new QSpacerItem( 131, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    buttonGroup1Layout->addItem( spacer1, 2, 1 );
+
+    m_pTextLabelInfo = new QLabel( buttonGroup1, "m_pTextLabelInfo" );
+    m_pTextLabelInfo->setTextFormat( QLabel::PlainText );
+
+    buttonGroup1Layout->addWidget( m_pTextLabelInfo, 1, 1 );
+
+    KPGCreateUserWidget1BaseLayout->addMultiCellWidget( buttonGroup1, 2, 2, 0, 1 );
+    languageChange();
+    resize( QSize(423, 383).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pRadioButtonExpiresNewer, SIGNAL( stateChanged(int) ), this, SLOT( slotRadioButtonExpirationChanged(int) ) );
+    connect( m_pLineEditUserName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditUserNameChanged(const QString&) ) );
+    connect( m_pPasswordEdit1, SIGNAL( textChanged(const QString&) ), this, SLOT( slotPasswordEdit1Changed(const QString&) ) );
+    connect( m_pPasswordEdit2, SIGNAL( textChanged(const QString&) ), this, SLOT( slotPasswordEdit2Changed(const QString&) ) );
+    connect( m_pDateWidgetExpiration, SIGNAL( changed(QDate) ), this, SLOT( slotDateWidgetExpirationChanged(QDate) ) );
+    connect( m_pCheckBoxCreateDb, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxCreateDbToggled(bool) ) );
+    connect( m_pCheckBoxCreateUsers, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxCreateUsersToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditUserName, m_pLineEditSysId );
+    setTabOrder( m_pLineEditSysId, m_pCheckBoxCreateDb );
+    setTabOrder( m_pCheckBoxCreateDb, m_pCheckBoxCreateUsers );
+    setTabOrder( m_pCheckBoxCreateUsers, m_pPasswordEdit1 );
+    setTabOrder( m_pPasswordEdit1, m_pPasswordEdit2 );
+    setTabOrder( m_pPasswordEdit2, m_pComboBoxEncryption );
+    setTabOrder( m_pComboBoxEncryption, m_pRadioButtonExpiresNewer );
+    setTabOrder( m_pRadioButtonExpiresNewer, m_pRadioButtonExpiresOn );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditUserName );
+    textLabel2->setBuddy( m_pLineEditSysId );
+    textLabel3->setBuddy( m_pPasswordEdit1 );
+    textLabel4->setBuddy( m_pPasswordEdit2 );
+    textLabel5->setBuddy( m_pComboBoxEncryption );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateUserWidget1Base::~KPGCreateUserWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateUserWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create user" ) );
+    textLabel1->setText( tr2i18n( "&User name:" ) );
+    textLabel2->setText( tr2i18n( "S&ystem ID (optional):" ) );
+    groupBox1->setTitle( tr2i18n( "Privileges" ) );
+    m_pCheckBoxCreateDb->setText( tr2i18n( "Can create DB's" ) );
+    m_pCheckBoxCreateUsers->setText( tr2i18n( "Can create users" ) );
+    buttonGroup1->setTitle( tr2i18n( "Password" ) );
+    textLabel3->setText( tr2i18n( "&Password:" ) );
+    textLabel4->setText( tr2i18n( "&Re-enter password:" ) );
+    textLabel5->setText( tr2i18n( "&Encryption:" ) );
+    m_pComboBoxEncryption->clear();
+    m_pComboBoxEncryption->insertItem( tr2i18n( "Default" ) );
+    m_pComboBoxEncryption->insertItem( tr2i18n( "Encrypted" ) );
+    m_pComboBoxEncryption->insertItem( tr2i18n( "Unencrypted" ) );
+    m_pRadioButtonExpiresNewer->setText( tr2i18n( "Ne&ver expires" ) );
+    m_pRadioButtonExpiresNewer->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    m_pRadioButtonExpiresOn->setText( tr2i18n( "Expires &date:" ) );
+    m_pRadioButtonExpiresOn->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pTextLabelInfo->setText( QString::null );
+}
+
+void KPGCreateUserWidget1Base::slotRadioButtonExpirationChanged(int)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotRadioButtonExpirationChanged(int): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotLineEditUserNameChanged(const QString&)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotLineEditUserNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotPasswordEdit1Changed(const QString&)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotPasswordEdit1Changed(const QString&): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotPasswordEdit2Changed(const QString&)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotPasswordEdit2Changed(const QString&): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotDateWidgetExpirationChanged(QDate)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotDateWidgetExpirationChanged(QDate): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotCheckBoxCreateDbToggled(bool)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotCheckBoxCreateDbToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateUserWidget1Base::slotCheckBoxCreateUsersToggled(bool)
+{
+    qWarning( "KPGCreateUserWidget1Base::slotCheckBoxCreateUsersToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreateuserwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,402 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateUserWidget1Base</class>
+<comment>Widget for create user Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateUserWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>423</width>
+            <height>383</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create user</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;User name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditUserName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditUserName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>S&amp;ystem ID (optional):</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditSysId</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditSysId</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Privileges</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCreateDb</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Can create DB's</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox" row="0" column="1">
+                    <property name="name">
+                        <cstring>m_pCheckBoxCreateUsers</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Can create users</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QButtonGroup" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>buttonGroup1</cstring>
+            </property>
+            <property name="title">
+                <string>Password</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>layout8</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout7</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel3</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Password:</string>
+                                    </property>
+                                    <property name="textFormat">
+                                        <enum>PlainText</enum>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pPasswordEdit1</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel4</cstring>
+                                    </property>
+                                    <property name="frameShadow">
+                                        <enum>Plain</enum>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Re-enter password:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pPasswordEdit2</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout6</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="KPasswordEdit">
+                                    <property name="name">
+                                        <cstring>m_pPasswordEdit1</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KPasswordEdit">
+                                    <property name="name">
+                                        <cstring>m_pPasswordEdit2</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout5</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel5</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Encryption:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pComboBoxEncryption</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KComboBox">
+                            <item>
+                                <property name="text">
+                                    <string>Default</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>Encrypted</string>
+                                </property>
+                            </item>
+                            <item>
+                                <property name="text">
+                                    <string>Unencrypted</string>
+                                </property>
+                            </item>
+                            <property name="name">
+                                <cstring>m_pComboBoxEncryption</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QRadioButton" row="3" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonExpiresNewer</cstring>
+                    </property>
+                    <property name="autoMask">
+                        <bool>true</bool>
+                    </property>
+                    <property name="text">
+                        <string>Ne&amp;ver expires</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+V</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                    <property name="buttonGroupId">
+                        <number>0</number>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QRadioButton">
+                            <property name="name">
+                                <cstring>m_pRadioButtonExpiresOn</cstring>
+                            </property>
+                            <property name="autoMask">
+                                <bool>true</bool>
+                            </property>
+                            <property name="text">
+                                <string>Expires &amp;date:</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+D</string>
+                            </property>
+                            <property name="buttonGroupId">
+                                <number>-1</number>
+                            </property>
+                        </widget>
+                        <widget class="KDateWidget">
+                            <property name="name">
+                                <cstring>m_pDateWidgetExpiration</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                        </widget>
+                    </hbox>
+                </widget>
+                <spacer row="3" column="1">
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <spacer row="2" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>131</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QLabel" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pTextLabelInfo</cstring>
+                    </property>
+                    <property name="text">
+                        <string></string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pRadioButtonExpiresNewer</sender>
+        <signal>stateChanged(int)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotRadioButtonExpirationChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditUserName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotLineEditUserNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPasswordEdit1</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotPasswordEdit1Changed(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPasswordEdit2</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotPasswordEdit2Changed(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pDateWidgetExpiration</sender>
+        <signal>changed(QDate)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotDateWidgetExpirationChanged(QDate)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCreateDb</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotCheckBoxCreateDbToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCreateUsers</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateUserWidget1Base</receiver>
+        <slot>slotCheckBoxCreateUsersToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditUserName</tabstop>
+    <tabstop>m_pLineEditSysId</tabstop>
+    <tabstop>m_pCheckBoxCreateDb</tabstop>
+    <tabstop>m_pCheckBoxCreateUsers</tabstop>
+    <tabstop>m_pPasswordEdit1</tabstop>
+    <tabstop>m_pPasswordEdit2</tabstop>
+    <tabstop>m_pComboBoxEncryption</tabstop>
+    <tabstop>m_pRadioButtonExpiresNewer</tabstop>
+    <tabstop>m_pRadioButtonExpiresOn</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotRadioButtonExpirationChanged(int)</slot>
+    <slot access="protected">slotLineEditUserNameChanged(const QString &amp;)</slot>
+    <slot access="protected">slotPasswordEdit1Changed(const QString &amp;)</slot>
+    <slot access="protected">slotPasswordEdit2Changed(const QString &amp;)</slot>
+    <slot access="protected">slotDateWidgetExpirationChanged(QDate)</slot>
+    <slot access="protected">slotCheckBoxCreateDbToggled(bool)</slot>
+    <slot access="protected">slotCheckBoxCreateUsersToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpassdlg.h</includehint>
+    <includehint>kpassdlg.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kdatewidget.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,55 @@
+//
+// C++ Implementation: kpgcreateuserwidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateuserwidget2.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../kpgsqldialog.h"
+#include "../kpgutil.h"
+
+KPGCreateUserWidget2::KPGCreateUserWidget2(QWidget *parent, const char *name)
+ : KPGCreateUserWidget2Base(parent, name)
+{
+}
+
+KPGCreateUserWidget2::~KPGCreateUserWidget2()
+{
+}
+
+// Return part of SQL statement for CREATE USER
+const QString KPGCreateUserWidget2::getSQL() const
+{
+	QString strSQL("");
+
+	for(unsigned int i = 0; i < m_pActionSelectorGroups->selectedListBox()->count(); i++)
+	{
+		if(i > 0)
+			strSQL.append(", ");
+		else
+			strSQL.append(" IN GROUP ");
+			
+		strSQL.append(KPGUtil::quotedName(m_pActionSelectorGroups->selectedListBox()->item(i)->text()));
+	}
+	
+	return strSQL;
+}
+
+#include "kpgcreateuserwidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgcreateuserwidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEUSERWIDGET2_H
+#define KPGCREATEUSERWIDGET2_H
+
+#include "kpgcreateuserwidget2base.h"
+
+
+/**
+Widget for create user Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateUserWidget2 : public KPGCreateUserWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateUserWidget2(QWidget *parent = 0, const char *name = 0);
+    ~KPGCreateUserWidget2();
+
+		const QString getSQL() const;
+
+//protected slots:
+				
+signals:
+		void sigEnableNextButton(bool);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateuserwidget2base.ui'
+**
+** Created: Út dub 1 13:07:29 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateuserwidget2base.h"
+
+#include <qvariant.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGCreateUserWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateUserWidget2Base::KPGCreateUserWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateUserWidget2Base" );
+    KPGCreateUserWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateUserWidget2BaseLayout"); 
+
+    m_pActionSelectorGroups = new KActionSelector( this, "m_pActionSelectorGroups" );
+    m_pActionSelectorGroups->setShowUpDownButtons( FALSE );
+
+    KPGCreateUserWidget2BaseLayout->addWidget( m_pActionSelectorGroups, 0, 0 );
+    languageChange();
+    resize( QSize(376, 198).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateUserWidget2Base::~KPGCreateUserWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateUserWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Create user - define groups" ) );
+    m_pActionSelectorGroups->setAvailableLabel( tr2i18n( "&Available groups:" ) );
+    m_pActionSelectorGroups->setSelectedLabel( tr2i18n( "&Users groups:" ) );
+}
+
+#include "kpgcreateuserwidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateUserWidget2Base</class>
+<comment>Widget for create user Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateUserWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>376</width>
+            <height>198</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create user - define groups</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KActionSelector" row="0" column="0">
+            <property name="name">
+                <cstring>m_pActionSelectorGroups</cstring>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available groups:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Users groups:</string>
+            </property>
+            <property name="showUpDownButtons">
+                <bool>false</bool>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,95 @@
+//
+// C++ Implementation: kpgcreateuserwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateuserwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kactionselector.h> 
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "kpgcreateuserwidget1.h"
+#include "kpgcreateuserwidget2.h"
+
+
+KPGCreateUserWizard::KPGCreateUserWizard(QWidget *parent, const char *name, KPGServer *pServer)
+ : KPG4StepsWizard(parent, name)
+{
+	KPGCreateUserWidget1 *pCreateUserWidget1 = new KPGCreateUserWidget1(WizardPage1, "KPGCreateUserWidget1");
+	m_pPageWidget1 = pCreateUserWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateUserWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	KPGCreateUserWidget2 *pCreateUserWidget2 = new KPGCreateUserWidget2(WizardPage2, "KPGCreateUserWidget2");
+	m_pPageWidget2 = pCreateUserWidget2;
+	WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+	connect(pCreateUserWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+	
+  	pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateUserWidget2->m_pActionSelectorGroups->availableListBox());
+  
+	setNextEnabled(WizardPage2, true);
+	
+	languageChange();
+}
+
+
+KPGCreateUserWizard::~KPGCreateUserWizard()
+{
+}
+
+void KPGCreateUserWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+		
+	setCaption( i18n( "Create new user" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - User name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Groups membership" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateUserWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage3) // Step 3 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL("CREATE USER ");
+		
+		strSQL.append((static_cast <KPGCreateUserWidget1 *> (m_pPageWidget1))->getSQL(connection()));
+		strSQL.append((static_cast <KPGCreateUserWidget2 *> (m_pPageWidget2))->getSQL());
+				
+		strSQL.append(";");
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG4StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreateuserwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateuserwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgcreateuserwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEUSERWIZARD_H
+#define KPGCREATEUSERWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGServer;
+
+/**
+  * Create User Wizard
+  *
+  * @author Lumir Vanek
+  */
+class KPGCreateUserWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGCreateUserWizard(QWidget *parent, const char *name, KPGServer *);
+    ~KPGCreateUserWizard();
+
+protected:
+	virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,184 @@
+//
+// C++ Implementation: kpgcreateviewwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateviewwidget1.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateViewWidget1::KPGCreateViewWidget1(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPGCreateViewWidget1Base(parent, name)
+{
+  	m_pDatabase = pDatabase;
+	m_pLineEditViewName->setFocus();
+	
+	m_bIsDirty1 = false;
+	m_bIsDirty2 = false;
+	m_bIsDirty3 = false;
+   
+	int iCurrentItem = -1;
+	int i = 0;  
+	for(QListViewItem *pSchema = listOfSchemas.first(); pSchema; pSchema = listOfSchemas.next())
+	{
+		m_pComboBoxSchema->insertItem(* pSchema->pixmap(0), pSchema->text(0));
+		
+		if(pSchema->text(0) == "public")
+			iCurrentItem = i;
+			
+		++i;
+	}
+		
+	if(iCurrentItem >= 0)
+		m_pComboBoxSchema->setCurrentItem(iCurrentItem);
+}
+
+
+KPGCreateViewWidget1::~KPGCreateViewWidget1()
+{
+}
+
+void KPGCreateViewWidget1::slotViewNameChanged(const QString& strText)
+{
+	emit sigEnableNextButton((! strText.isEmpty()) && (m_pListViewTables->childCount() > 0));
+}
+
+void KPGCreateViewWidget1::slotSchemaActivated(const QString & strSchema)
+{
+	refreshAvailTablesList(strSchema);
+}
+
+void KPGCreateViewWidget1::refreshAvailTablesList(const QString & strNamespace)
+{
+	m_pListBoxAvailTables->clear();
+	m_pListViewTables->clear();
+	
+	// list of available tables
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(strNamespace);
+	if(!pItem)
+	{
+		kdDebug() << "KPGCreateViewWizard::showPage: no item found: " << strNamespace << endl;
+		return;
+	}
+			
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	pSchema->getTablesFolder()->fillListBoxWithChildItems(m_pListBoxAvailTables); 
+}
+
+void KPGCreateViewWidget1::slotAvailableTablesSelectChanged(QListBoxItem* pSelectedItem)
+{
+	m_pPushButtonTableAdd->setEnabled(pSelectedItem != 0);
+}
+
+void KPGCreateViewWidget1::slotViewTablesSelectChanged(QListViewItem* pSelectedItem)
+{
+	m_pPushButtonTableDel->setEnabled(pSelectedItem != 0);
+}
+
+void KPGCreateViewWidget1::slotTableAdd()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxAvailTables->selectedItem();
+	if(!pSelectedItem) return;
+	
+	// Avoid duplicity
+	QString strTableName(pSelectedItem->text());
+	QString strAlias(m_pLineEditAlias->text());
+	
+	if(strAlias.contains(' ') || strAlias.contains('.'))
+	{
+		KMessageBox::sorry(this, i18n("Alias cannot contain space or dot !"));
+		return;	
+	}
+		
+	QListViewItem * pItem = m_pListViewTables->firstChild();
+	while(pItem)
+	{
+		// Avoid table name duplicity
+		if((pItem->text(0) == strTableName))
+		{
+			KMessageBox::sorry(this, i18n("Table is already in list !"));
+			return;	
+		}
+		
+		// Avoid Alias duplicity
+		if(m_pLineEditAlias->text().isEmpty() == false)
+		{
+			if(pItem->text(1) == strAlias)
+			{
+				KMessageBox::sorry(this, i18n("Table with this alias already exists !"));
+				return;	
+			}
+		}
+		
+		pItem = pItem->nextSibling();
+	}
+	
+	// Move column from available list to list
+	QListViewItem *pNewItem = new QListViewItem(m_pListViewTables, strTableName, strAlias);
+	pNewItem->setPixmap(0, * pSelectedItem->pixmap());
+			
+	// set default view name, if empty
+	if(m_pLineEditViewName->text().isEmpty())
+		m_pLineEditViewName->setText("vw_" + pSelectedItem->text());
+	
+	// clear alias
+	m_pLineEditAlias->setText("");
+	
+	emit sigEnableNextButton((! m_pLineEditViewName->text().isEmpty()) && (m_pListViewTables->childCount() > 0));
+	
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+	m_bIsDirty3 = true;
+}
+
+void KPGCreateViewWidget1::slotTableDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewTables->selectedItem();
+	if(!pSelectedItem) return;
+
+	delete pSelectedItem;
+	
+	m_pPushButtonTableDel->setEnabled(false);
+	
+	emit sigEnableNextButton((! m_pLineEditViewName->text().isEmpty()) && (m_pListViewTables->childCount() > 0));
+	
+	m_bIsDirty1 = true;
+	m_bIsDirty2 = true;
+	m_bIsDirty3 = true;
+}
+
+// Return part of SQL statement for CREATE VIEW
+const QString KPGCreateViewWidget1::getSQL() const
+{
+	QString strSql("CREATE VIEW ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_pComboBoxSchema->currentText(), m_pLineEditViewName->text()));
+	
+	return strSql;
+}
+
+#include "kpgcreateviewwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: kpgcreateviewwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEVIEWWIDGET1_H
+#define KPGCREATEVIEWWIDGET1_H
+
+#include "kpgcreateviewwidget1base.h"
+
+class KPGDatabase; 
+class QListViewItem;
+
+/**
+Widget for create view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateViewWidget1 : public KPGCreateViewWidget1Base
+{
+	Q_OBJECT
+public:
+    KPGCreateViewWidget1(QWidget *parent, const char *name,  KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateViewWidget1();
+
+	const QString getSQL() const;
+	void refreshAvailTablesList(const QString &);
+	const bool isDirty1() const { return m_bIsDirty1; }
+	const bool isDirty2() const { return m_bIsDirty2; }
+	const bool isDirty3() const { return m_bIsDirty3; }
+	void clearDirty1() { m_bIsDirty1 = false; }
+	void clearDirty2() { m_bIsDirty2 = false; }
+	void clearDirty3() { m_bIsDirty3 = false; }
+		
+protected slots:
+
+    virtual void slotViewNameChanged(const QString &);
+	virtual void slotSchemaActivated(const QString &);
+	virtual void slotAvailableTablesSelectChanged(QListBoxItem*);
+	virtual void slotViewTablesSelectChanged(QListViewItem*);
+	virtual void slotTableAdd();
+	virtual void slotTableDelete();
+		
+protected:
+    KPGDatabase *m_pDatabase;
+	bool m_bIsDirty1; // table columns list changed ?
+	bool m_bIsDirty2; // table columns list changed ?
+	bool m_bIsDirty3; // table columns list changed ?
+				
+signals:
+	void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,208 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateviewwidget1base.ui'
+**
+** Created: Út dub 1 13:07:27 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateviewwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qcombobox.h>
+#include <qgroupbox.h>
+#include <klistbox.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+#include "klistbox.h"
+#include "klistview.h"
+
+/*
+ *  Constructs a KPGCreateViewWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateViewWidget1Base::KPGCreateViewWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateViewWidget1Base" );
+    KPGCreateViewWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateViewWidget1BaseLayout"); 
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout2->addWidget( textLabel1 );
+
+    m_pLineEditViewName = new KLineEdit( this, "m_pLineEditViewName" );
+    layout2->addWidget( m_pLineEditViewName );
+
+    KPGCreateViewWidget1BaseLayout->addMultiCellLayout( layout2, 1, 1, 0, 1 );
+    spacer3 = new QSpacerItem( 201, 21, QSizePolicy::Minimum, QSizePolicy::Minimum );
+    KPGCreateViewWidget1BaseLayout->addItem( spacer3, 1, 2 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout1->addWidget( textLabel2 );
+
+    m_pComboBoxSchema = new QComboBox( FALSE, this, "m_pComboBoxSchema" );
+    layout1->addWidget( m_pComboBoxSchema );
+
+    KPGCreateViewWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer2 = new QSpacerItem( 260, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateViewWidget1BaseLayout->addMultiCell( spacer2, 0, 0, 1, 2 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)5, 0, 0, groupBox1->sizePolicy().hasHeightForWidth() ) );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+    spacer1 = new QSpacerItem( 20, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 0, 1 );
+
+    layout6 = new QVBoxLayout( 0, 0, 6, "layout6"); 
+
+    textLabel1_2 = new QLabel( groupBox1, "textLabel1_2" );
+    layout6->addWidget( textLabel1_2 );
+
+    m_pListBoxAvailTables = new KListBox( groupBox1, "m_pListBoxAvailTables" );
+    layout6->addWidget( m_pListBoxAvailTables );
+
+    groupBox1Layout->addMultiCellLayout( layout6, 0, 1, 0, 0 );
+
+    layout6_2 = new QVBoxLayout( 0, 0, 6, "layout6_2"); 
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel1_3 = new QLabel( groupBox1, "textLabel1_3" );
+    textLabel1_3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, 0, 0, textLabel1_3->sizePolicy().hasHeightForWidth() ) );
+    textLabel1_3->setTextFormat( QLabel::PlainText );
+    layout5->addWidget( textLabel1_3 );
+
+    m_pLineEditAlias = new KLineEdit( groupBox1, "m_pLineEditAlias" );
+    m_pLineEditAlias->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)1, (QSizePolicy::SizeType)0, 0, 0, m_pLineEditAlias->sizePolicy().hasHeightForWidth() ) );
+    layout5->addWidget( m_pLineEditAlias );
+    layout6_2->addLayout( layout5 );
+
+    m_pPushButtonTableAdd = new QPushButton( groupBox1, "m_pPushButtonTableAdd" );
+    m_pPushButtonTableAdd->setEnabled( FALSE );
+    layout6_2->addWidget( m_pPushButtonTableAdd );
+
+    m_pPushButtonTableDel = new QPushButton( groupBox1, "m_pPushButtonTableDel" );
+    m_pPushButtonTableDel->setEnabled( FALSE );
+    layout6_2->addWidget( m_pPushButtonTableDel );
+
+    groupBox1Layout->addLayout( layout6_2, 1, 1 );
+
+    layout7 = new QVBoxLayout( 0, 0, 6, "layout7"); 
+
+    textLabel2_2 = new QLabel( groupBox1, "textLabel2_2" );
+    layout7->addWidget( textLabel2_2 );
+
+    m_pListViewTables = new KListView( groupBox1, "m_pListViewTables" );
+    m_pListViewTables->addColumn( tr2i18n( "Table" ) );
+    m_pListViewTables->addColumn( tr2i18n( "Alias" ) );
+    m_pListViewTables->setProperty( "selectionMode", "Single" );
+    layout7->addWidget( m_pListViewTables );
+
+    groupBox1Layout->addMultiCellLayout( layout7, 0, 1, 2, 2 );
+
+    KPGCreateViewWidget1BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+    languageChange();
+    resize( QSize(536, 346).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditViewName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotViewNameChanged(const QString&) ) );
+    connect( m_pComboBoxSchema, SIGNAL( activated(const QString&) ), this, SLOT( slotSchemaActivated(const QString&) ) );
+    connect( m_pPushButtonTableAdd, SIGNAL( clicked() ), this, SLOT( slotTableAdd() ) );
+    connect( m_pPushButtonTableDel, SIGNAL( clicked() ), this, SLOT( slotTableDelete() ) );
+    connect( m_pListBoxAvailTables, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotAvailableTablesSelectChanged(QListBoxItem*) ) );
+    connect( m_pListViewTables, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotViewTablesSelectChanged(QListViewItem*) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditViewName );
+    textLabel2->setBuddy( m_pComboBoxSchema );
+    textLabel1_2->setBuddy( m_pListBoxAvailTables );
+    textLabel1_3->setBuddy( m_pLineEditAlias );
+    textLabel2_2->setBuddy( m_pListViewTables );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateViewWidget1Base::~KPGCreateViewWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateViewWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Create view - view name" ) );
+    textLabel1->setText( tr2i18n( "New &view name:" ) );
+    textLabel2->setText( tr2i18n( "&Schema:" ) );
+    groupBox1->setTitle( tr2i18n( "Used tables" ) );
+    textLabel1_2->setText( tr2i18n( "&Available tables:" ) );
+    textLabel1_3->setText( tr2i18n( "A&lias:" ) );
+    m_pPushButtonTableAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonTableAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonTableDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonTableDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    textLabel2_2->setText( tr2i18n( "View &tables:" ) );
+    m_pListViewTables->header()->setLabel( 0, tr2i18n( "Table" ) );
+    m_pListViewTables->header()->setLabel( 1, tr2i18n( "Alias" ) );
+}
+
+void KPGCreateViewWidget1Base::slotViewNameChanged(const QString&)
+{
+    qWarning( "KPGCreateViewWidget1Base::slotViewNameChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotSchemaActivated(const QString&)
+{
+    qWarning( "KPGCreateViewWidget1Base::slotSchemaActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotTableAdd()
+{
+    qWarning( "KPGCreateViewWidget1Base::slotTableAdd(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotTableDelete()
+{
+    qWarning( "KPGCreateViewWidget1Base::slotTableDelete(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotAvailableTablesSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget1Base::slotAvailableTablesSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotViewTablesSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget1Base::slotViewTablesSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget1Base::slotViewTablesSelectChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateViewWidget1Base::slotViewTablesSelectChanged(QListViewItem*): Not implemented yet" );
+}
+
+#include "kpgcreateviewwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,367 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateViewWidget1Base</class>
+<comment>Widget for create view wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateViewWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>536</width>
+            <height>346</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create view - view name</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>New &amp;view name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditViewName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditViewName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="1" column="2">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Minimum</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>201</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Schema:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+                <widget class="QComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxSchema</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>260</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="sizePolicy">
+                <sizepolicy>
+                    <hsizetype>1</hsizetype>
+                    <vsizetype>5</vsizetype>
+                    <horstretch>0</horstretch>
+                    <verstretch>0</verstretch>
+                </sizepolicy>
+            </property>
+            <property name="title">
+                <string>Used tables</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <spacer row="0" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>30</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QLayoutWidget" row="0" column="0" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Available tables:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListBoxAvailTables</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KListBox">
+                            <property name="name">
+                                <cstring>m_pListBoxAvailTables</cstring>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="1">
+                    <property name="name">
+                        <cstring>layout6</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout5</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel1_3</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>1</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                    <property name="text">
+                                        <string>A&amp;lias:</string>
+                                    </property>
+                                    <property name="textFormat">
+                                        <enum>PlainText</enum>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pLineEditAlias</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KLineEdit">
+                                    <property name="name">
+                                        <cstring>m_pLineEditAlias</cstring>
+                                    </property>
+                                    <property name="sizePolicy">
+                                        <sizepolicy>
+                                            <hsizetype>1</hsizetype>
+                                            <vsizetype>0</vsizetype>
+                                            <horstretch>0</horstretch>
+                                            <verstretch>0</verstretch>
+                                        </sizepolicy>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonTableAdd</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Add</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+A</string>
+                            </property>
+                        </widget>
+                        <widget class="QPushButton">
+                            <property name="name">
+                                <cstring>m_pPushButtonTableDel</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Delete</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+D</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="2" rowspan="2" colspan="1">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>View &amp;tables:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pListViewTables</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KListView">
+                            <column>
+                                <property name="text">
+                                    <string>Table</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <column>
+                                <property name="text">
+                                    <string>Alias</string>
+                                </property>
+                                <property name="clickable">
+                                    <bool>true</bool>
+                                </property>
+                                <property name="resizable">
+                                    <bool>true</bool>
+                                </property>
+                            </column>
+                            <property name="name">
+                                <cstring>m_pListViewTables</cstring>
+                            </property>
+                            <property name="selectionMode" stdset="0">
+                                <enum>Single</enum>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditViewName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotViewNameChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxSchema</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotSchemaActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonTableAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotTableAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonTableDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotTableDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxAvailTables</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotAvailableTablesSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewTables</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateViewWidget1Base</receiver>
+        <slot>slotViewTablesSelectChanged(QListViewItem*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotViewNameChanged(const QString &amp;)</slot>
+    <slot access="protected">slotSchemaActivated(const QString &amp;)</slot>
+    <slot access="protected">slotTableAdd()</slot>
+    <slot access="protected">slotTableDelete()</slot>
+    <slot access="protected">slotAvailableTablesSelectChanged(QListBoxItem* pSelectedItem)</slot>
+    <slot access="protected">slotViewTablesSelectChanged(QListBoxItem* pSelectedItem)</slot>
+    <slot access="protected">slotViewTablesSelectChanged(QListViewItem*)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistbox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistview.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,206 @@
+//
+// C++ Implementation: kpgcreateviewwidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateviewwidget2.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateViewWidget2::KPGCreateViewWidget2(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateViewWidget2Base(parent, name)
+{
+  	m_pDatabase = pDatabase;
+	m_bCheckBoxShowSysColumns = false;
+}
+
+
+KPGCreateViewWidget2::~KPGCreateViewWidget2()
+{
+}
+
+void KPGCreateViewWidget2::slotCheckBoxShowSysColumnsToggled(bool bCheckBoxShowSysColumns)
+{
+	m_bCheckBoxShowSysColumns = bCheckBoxShowSysColumns;
+	refreshAvailColumnsList(m_pComboBoxTables->currentText());
+}
+
+void KPGCreateViewWidget2::slotComboBoxTableActivated(const QString & strTableName)
+{
+	refreshAvailColumnsList(strTableName);
+}
+
+
+void KPGCreateViewWidget2::refreshAvailColumnsList(const QString & strTableName)
+{
+	m_pListBoxColumns->clear();
+	m_pPushButtonColumnAdd->setEnabled(false);
+	
+			
+	// list of available tables
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(m_strNamespace);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " No item found: " << m_strNamespace << endl;
+		return;
+	}
+			
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	KPGTablesFolder *pTablesFolder = pSchema->getTablesFolder();
+	
+	// Lookup pointer to table
+	pItem = pTablesFolder->getChildByName(strTableName);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " No item found: " << strTableName << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pItem);
+	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pListBoxColumns, m_bCheckBoxShowSysColumns); 
+}
+
+void KPGCreateViewWidget2::slotColumnsSelectChanged(QListBoxItem* pSelectedItem)
+{
+	m_pPushButtonColumnAdd->setEnabled(pSelectedItem != 0);
+}
+
+void KPGCreateViewWidget2::slotViewColumnsSelectChanged(QListBoxItem* pSelectedItem)
+{
+	m_pPushButtonColumnDel->setEnabled(pSelectedItem != 0);
+	m_pPushButtonColumnUp->setEnabled(pSelectedItem != 0);
+	m_pPushButtonColumnDown->setEnabled(pSelectedItem != 0);
+}
+
+void KPGCreateViewWidget2::slotColumnAdd()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxColumns->selectedItem();
+	if(!pSelectedItem) return;
+	
+	QString strTableName(m_pComboBoxTables->currentText());
+	QString strTableAlias = m_MapTableNameAlias[strTableName];
+		
+	// set column name for view
+	QString strColumn;
+	
+	if(strTableAlias.length() > 0)
+	{
+		strColumn = strTableAlias;
+		strColumn.append(".");
+		strColumn.append(KPGUtil::quotedName(pSelectedItem->text()));
+	}
+	else
+	{
+		strColumn.append(KPGUtil::quotedName(pSelectedItem->text()));
+	}
+	
+	// Add AS name, if user want it
+	if(m_pLineEditAs->text().length() > 0)
+	{
+	  	strColumn.append(" AS ");
+		strColumn.append(KPGUtil::quotedName(m_pLineEditAs->text()));
+	}
+	
+	m_pListBoxViewColumns->insertItem(* pSelectedItem->pixmap(), strColumn);
+	m_pLineEditAs->setText("");
+	m_pPushButtonColumnDel->setEnabled(false);
+	
+	emit sigEnableNextButton(true);
+}
+
+void KPGCreateViewWidget2::slotColumnDelete()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxViewColumns->selectedItem();
+	if(!pSelectedItem) return;
+	
+	m_pListBoxViewColumns->removeItem(m_pListBoxViewColumns->currentItem());
+	
+	m_pPushButtonColumnDel->setEnabled(false);
+	
+	emit sigEnableNextButton(m_pListBoxViewColumns->count() > 0);
+}
+
+void KPGCreateViewWidget2::slotColumnUp()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxViewColumns->selectedItem();
+	if(!pSelectedItem) return;
+		
+	int iIndex = m_pListBoxViewColumns->index(pSelectedItem) - 1;
+	if(iIndex < 0) 
+		{
+			m_pPushButtonColumnUp->setEnabled(false);
+			return;
+		}
+		
+	m_pListBoxViewColumns->takeItem(pSelectedItem);
+	m_pListBoxViewColumns->insertItem(pSelectedItem, iIndex);
+	m_pListBoxViewColumns->setCurrentItem(pSelectedItem);
+	
+	m_pPushButtonColumnDown->setEnabled(true);
+	
+	if(iIndex == 0) 
+		m_pPushButtonColumnUp->setEnabled(false); 
+}
+
+void KPGCreateViewWidget2::slotColumnDown()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxViewColumns->selectedItem();
+	if(!pSelectedItem) return;
+		
+	int iIndex = m_pListBoxViewColumns->index(pSelectedItem) + 1;
+	if(iIndex >= (int) m_pListBoxViewColumns->count()) 
+		{
+			m_pPushButtonColumnDown->setEnabled(false);
+			return;
+		}
+		
+	m_pListBoxViewColumns->takeItem(pSelectedItem);
+	m_pListBoxViewColumns->insertItem(pSelectedItem, iIndex);
+	m_pListBoxViewColumns->setCurrentItem(pSelectedItem);
+	
+	m_pPushButtonColumnUp->setEnabled(true);
+	
+	if(iIndex == (int) m_pListBoxViewColumns->count() - 1) 
+		m_pPushButtonColumnDown->setEnabled(false); 
+}
+	
+// Return part of SQL statement for CREATE VIEW
+const QString KPGCreateViewWidget2::getSQL() const
+{
+	QString strSQL(" ");
+	
+	for(unsigned int i = 0; i < m_pListBoxViewColumns->count(); i++)
+	{
+		if(i > 0)
+			strSQL.append(", ");
+			
+		strSQL.append(m_pListBoxViewColumns->item(i)->text());
+	}
+	
+	return strSQL;
+}
+
+#include "kpgcreateviewwidget2.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+//
+// C++ Interface: kpgcreateviewwidget2
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEVIEWWIDGET2_H
+#define KPGCREATEVIEWWIDGET2_H
+
+#include "kpgcreateviewwidget2base.h"
+
+#include "kpgcreateviewwizard.h"
+
+class KPGDatabase; 
+
+/**
+Widget for create view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateViewWidget2 : public KPGCreateViewWidget2Base
+{
+Q_OBJECT
+public:
+    KPGCreateViewWidget2(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateViewWidget2();
+
+	void setNamespace(const QString &strNamespace) { m_strNamespace = strNamespace; }
+	
+	void setMapTableNameAlias(const MapTableNameAlias &mapTableNameAlias)
+	{
+		m_MapTableNameAlias = mapTableNameAlias;
+	}
+	
+	const QString getSQL() const;
+	void refreshAvailColumnsList(const QString &);
+		
+protected slots:
+
+	virtual void slotCheckBoxShowSysColumnsToggled(bool);
+	virtual void slotComboBoxTableActivated(const QString &);
+	virtual void slotColumnsSelectChanged(QListBoxItem*);
+	virtual void slotViewColumnsSelectChanged(QListBoxItem*);
+	virtual void slotColumnAdd();
+	virtual void slotColumnDelete();
+	virtual void slotColumnUp();
+	virtual void slotColumnDown();
+
+protected:
+	bool m_bCheckBoxShowSysColumns;	
+	KPGDatabase *m_pDatabase;
+    QString m_strNamespace; // name of the namespace
+    
+    // Map of pair of <QString strTableName, QString strAlias> 	
+    MapTableNameAlias m_MapTableNameAlias;
+    		
+signals:
+	void sigEnableNextButton(bool);		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,205 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateviewwidget2base.ui'
+**
+** Created: Út dub 1 13:07:27 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateviewwidget2base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qcheckbox.h>
+#include <klistbox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klistbox.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGCreateViewWidget2Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateViewWidget2Base::KPGCreateViewWidget2Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateViewWidget2Base" );
+    KPGCreateViewWidget2BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateViewWidget2BaseLayout"); 
+
+    layout12 = new QHBoxLayout( 0, 0, 6, "layout12"); 
+
+    textLabel5 = new QLabel( this, "textLabel5" );
+    textLabel5->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, textLabel5->sizePolicy().hasHeightForWidth() ) );
+    textLabel5->setTextFormat( QLabel::PlainText );
+    layout12->addWidget( textLabel5 );
+
+    m_pComboBoxTables = new KComboBox( FALSE, this, "m_pComboBoxTables" );
+    m_pComboBoxTables->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, m_pComboBoxTables->sizePolicy().hasHeightForWidth() ) );
+    layout12->addWidget( m_pComboBoxTables );
+
+    m_pCheckBoxShowSysColumns = new QCheckBox( this, "m_pCheckBoxShowSysColumns" );
+    layout12->addWidget( m_pCheckBoxShowSysColumns );
+
+    KPGCreateViewWidget2BaseLayout->addMultiCellLayout( layout12, 0, 0, 0, 2 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout1->addWidget( textLabel2 );
+
+    m_pListBoxColumns = new KListBox( this, "m_pListBoxColumns" );
+    layout1->addWidget( m_pListBoxColumns );
+
+    KPGCreateViewWidget2BaseLayout->addLayout( layout1, 1, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout2->addWidget( textLabel1 );
+
+    m_pListBoxViewColumns = new KListBox( this, "m_pListBoxViewColumns" );
+    layout2->addWidget( m_pListBoxViewColumns );
+
+    KPGCreateViewWidget2BaseLayout->addLayout( layout2, 1, 2 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+    spacer1 = new QSpacerItem( 20, 21, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    layout5->addItem( spacer1 );
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout5->addWidget( textLabel3 );
+
+    m_pLineEditAs = new KLineEdit( this, "m_pLineEditAs" );
+    layout5->addWidget( m_pLineEditAs );
+
+    m_pPushButtonColumnAdd = new QPushButton( this, "m_pPushButtonColumnAdd" );
+    m_pPushButtonColumnAdd->setEnabled( FALSE );
+    layout5->addWidget( m_pPushButtonColumnAdd );
+
+    m_pPushButtonColumnDel = new QPushButton( this, "m_pPushButtonColumnDel" );
+    m_pPushButtonColumnDel->setEnabled( FALSE );
+    layout5->addWidget( m_pPushButtonColumnDel );
+
+    m_pPushButtonColumnUp = new QPushButton( this, "m_pPushButtonColumnUp" );
+    m_pPushButtonColumnUp->setEnabled( FALSE );
+    layout5->addWidget( m_pPushButtonColumnUp );
+
+    m_pPushButtonColumnDown = new QPushButton( this, "m_pPushButtonColumnDown" );
+    m_pPushButtonColumnDown->setEnabled( FALSE );
+    layout5->addWidget( m_pPushButtonColumnDown );
+
+    KPGCreateViewWidget2BaseLayout->addLayout( layout5, 1, 1 );
+    languageChange();
+    resize( QSize(427, 274).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxTables, SIGNAL( activated(const QString&) ), this, SLOT( slotComboBoxTableActivated(const QString&) ) );
+    connect( m_pListBoxColumns, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotColumnsSelectChanged(QListBoxItem*) ) );
+    connect( m_pListBoxViewColumns, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotViewColumnsSelectChanged(QListBoxItem*) ) );
+    connect( m_pPushButtonColumnAdd, SIGNAL( clicked() ), this, SLOT( slotColumnAdd() ) );
+    connect( m_pPushButtonColumnDel, SIGNAL( clicked() ), this, SLOT( slotColumnDelete() ) );
+    connect( m_pPushButtonColumnUp, SIGNAL( clicked() ), this, SLOT( slotColumnUp() ) );
+    connect( m_pPushButtonColumnDown, SIGNAL( clicked() ), this, SLOT( slotColumnDown() ) );
+    connect( m_pCheckBoxShowSysColumns, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxShowSysColumnsToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pComboBoxTables, m_pListBoxColumns );
+    setTabOrder( m_pListBoxColumns, m_pLineEditAs );
+    setTabOrder( m_pLineEditAs, m_pPushButtonColumnAdd );
+    setTabOrder( m_pPushButtonColumnAdd, m_pPushButtonColumnDel );
+    setTabOrder( m_pPushButtonColumnDel, m_pPushButtonColumnUp );
+    setTabOrder( m_pPushButtonColumnUp, m_pPushButtonColumnDown );
+    setTabOrder( m_pPushButtonColumnDown, m_pListBoxViewColumns );
+    setTabOrder( m_pListBoxViewColumns, m_pCheckBoxShowSysColumns );
+
+    // buddies
+    textLabel5->setBuddy( m_pComboBoxTables );
+    textLabel2->setBuddy( m_pListBoxColumns );
+    textLabel1->setBuddy( m_pListBoxViewColumns );
+    textLabel3->setBuddy( m_pLineEditAs );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateViewWidget2Base::~KPGCreateViewWidget2Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateViewWidget2Base::languageChange()
+{
+    setCaption( tr2i18n( "Create view - choose tables columns" ) );
+    textLabel5->setText( tr2i18n( "&Table:" ) );
+    m_pCheckBoxShowSysColumns->setText( tr2i18n( "Show &system columns" ) );
+    m_pCheckBoxShowSysColumns->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    textLabel2->setText( tr2i18n( "C&olumns:" ) );
+    textLabel1->setText( tr2i18n( "&View columns:" ) );
+    textLabel3->setText( tr2i18n( "&AS:" ) );
+    m_pPushButtonColumnAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonColumnAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    m_pPushButtonColumnDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonColumnDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pPushButtonColumnUp->setText( tr2i18n( "&Up" ) );
+    m_pPushButtonColumnUp->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pPushButtonColumnDown->setText( tr2i18n( "&Down" ) );
+    m_pPushButtonColumnDown->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+}
+
+void KPGCreateViewWidget2Base::slotComboBoxTableActivated(const QString&)
+{
+    qWarning( "KPGCreateViewWidget2Base::slotComboBoxTableActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotColumnsSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget2Base::slotColumnsSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotViewColumnsSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget2Base::slotViewColumnsSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotColumnAdd()
+{
+    qWarning( "KPGCreateViewWidget2Base::slotColumnAdd(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotColumnDelete()
+{
+    qWarning( "KPGCreateViewWidget2Base::slotColumnDelete(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotColumnUp()
+{
+    qWarning( "KPGCreateViewWidget2Base::slotColumnUp(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotColumnDown()
+{
+    qWarning( "KPGCreateViewWidget2Base::slotColumnDown(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget2Base::slotCheckBoxShowSysColumnsToggled(bool)
+{
+    qWarning( "KPGCreateViewWidget2Base::slotCheckBoxShowSysColumnsToggled(bool): Not implemented yet" );
+}
+
+#include "kpgcreateviewwidget2base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget2base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,314 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateViewWidget2Base</class>
+<comment>Widget for create view wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateViewWidget2Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>427</width>
+            <height>274</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create view - choose tables columns</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>layout12</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel5</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>5</hsizetype>
+                            <vsizetype>5</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Table:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxTables</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxTables</cstring>
+                    </property>
+                    <property name="sizePolicy">
+                        <sizepolicy>
+                            <hsizetype>7</hsizetype>
+                            <vsizetype>0</vsizetype>
+                            <horstretch>0</horstretch>
+                            <verstretch>0</verstretch>
+                        </sizepolicy>
+                    </property>
+                </widget>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxShowSysColumns</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Show &amp;system columns</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+S</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;olumns:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pListBoxColumns</cstring>
+                    </property>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxColumns</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;View columns:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pListBoxViewColumns</cstring>
+                    </property>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxViewColumns</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="1">
+            <property name="name">
+                <cstring>layout5</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>21</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;AS:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditAs</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditAs</cstring>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonColumnAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonColumnDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonColumnUp</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Up</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+U</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonColumnDown</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Down</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxTables</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotComboBoxTableActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxColumns</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotColumnsSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxViewColumns</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotViewColumnsSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonColumnAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotColumnAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonColumnDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotColumnDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonColumnUp</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotColumnUp()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonColumnDown</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotColumnDown()</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxShowSysColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateViewWidget2Base</receiver>
+        <slot>slotCheckBoxShowSysColumnsToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pComboBoxTables</tabstop>
+    <tabstop>m_pListBoxColumns</tabstop>
+    <tabstop>m_pLineEditAs</tabstop>
+    <tabstop>m_pPushButtonColumnAdd</tabstop>
+    <tabstop>m_pPushButtonColumnDel</tabstop>
+    <tabstop>m_pPushButtonColumnUp</tabstop>
+    <tabstop>m_pPushButtonColumnDown</tabstop>
+    <tabstop>m_pListBoxViewColumns</tabstop>
+    <tabstop>m_pCheckBoxShowSysColumns</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotComboBoxTableActivated(const QString &amp; strTableName)</slot>
+    <slot access="protected">slotColumnsSelectChanged(QListBoxItem*)</slot>
+    <slot access="protected">slotViewColumnsSelectChanged(QListBoxItem*)</slot>
+    <slot access="protected">slotColumnAdd()</slot>
+    <slot access="protected">slotColumnDelete()</slot>
+    <slot access="protected">slotColumnUp()</slot>
+    <slot access="protected">slotColumnDown()</slot>
+    <slot access="protected">slotCheckBoxShowSysColumnsToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klistbox.h</includehint>
+    <includehint>klistbox.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,305 @@
+//
+// C++ Implementation: kpgcreateviewwidget3
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateviewwidget3.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qheader.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateViewWidget3::KPGCreateViewWidget3(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateViewWidget3Base(parent, name)
+{
+	m_pDatabase = pDatabase;
+  m_bCheckBoxShowSysColumns = false;
+	m_eJoinType = joinInner;
+	
+	m_pListViewJoins->setSortColumn(-1);
+}
+
+
+KPGCreateViewWidget3::~KPGCreateViewWidget3()
+{
+}
+
+void KPGCreateViewWidget3::slotCheckBoxShowSysColumnsToggled(bool bCheckBoxShowSysColumns)
+{
+	m_bCheckBoxShowSysColumns = bCheckBoxShowSysColumns;
+	refreshAvailColumnsList(m_pComboBoxLeftTables->currentText(), false);
+	refreshAvailColumnsList(m_pComboBoxRightTables->currentText(), true);
+}
+
+void KPGCreateViewWidget3::refreshAvailColumnsList(const QString & strTableName, bool bRight)
+{		
+	KListBox *pListBoxColumns;
+	if(bRight)
+		pListBoxColumns = m_pListBoxRightColumns;
+	else	
+		pListBoxColumns = m_pListBoxLeftColumns;
+			
+	pListBoxColumns->clear();
+	m_pPushButtonJoinAdd->setEnabled(false);
+		
+	// Fill list of columns to listbox
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(m_strNamespace);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " No item found: " << m_strNamespace << endl;
+		return;
+	}
+			
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	KPGTablesFolder *pTablesFolder = pSchema->getTablesFolder();
+	
+	// Lookup pointer to table
+	pItem = pTablesFolder->getChildByName(strTableName);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " No item found: " << strTableName << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pItem);
+	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(pListBoxColumns, m_bCheckBoxShowSysColumns);
+}
+
+void KPGCreateViewWidget3::slotComboBoxLeftTableActivated(const QString & strTableName)
+{
+	refreshAvailColumnsList(strTableName, false);
+}
+
+void KPGCreateViewWidget3::slotComboBoxRightTableActivated(const QString & strTableName)
+{
+	refreshAvailColumnsList(strTableName, true);
+}
+
+void KPGCreateViewWidget3::slotViewColumnsLeftSelectChanged(QListBoxItem* pSelectedItem)
+{
+	m_pPushButtonJoinAdd->setEnabled((pSelectedItem != 0) && (m_pListBoxRightColumns->selectedItem() != 0));
+}
+
+void KPGCreateViewWidget3::slotViewColumnsRightSelectChanged(QListBoxItem* pSelectedItem)
+{
+	m_pPushButtonJoinAdd->setEnabled((pSelectedItem != 0) && (m_pListBoxLeftColumns->selectedItem() != 0));
+}
+
+void KPGCreateViewWidget3::slotRadioButtonInnerJoinClicked()
+{
+	m_eJoinType = joinInner;
+}
+
+void KPGCreateViewWidget3::slotRadioButtonLeftJoinClicked()
+{
+	m_eJoinType = joinLeft;
+}
+
+void KPGCreateViewWidget3::slotRadioButtonRigthtJoinClicked()
+{
+	m_eJoinType = joinRight;
+}	
+		
+void KPGCreateViewWidget3::slotRadioButtonFullJoinClicked()
+{
+	m_eJoinType = joinFull;
+}		
+
+void KPGCreateViewWidget3::slotJoinsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonJoinDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateViewWidget3::slotJoinsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonJoinDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateViewWidget3::slotJoinAdd()
+{
+	QListBoxItem *pLeftSelectedItem = m_pListBoxLeftColumns->selectedItem();
+	if(!pLeftSelectedItem) return;
+
+	QListBoxItem *pRightSelectedItem = m_pListBoxRightColumns->selectedItem();
+	if(!pRightSelectedItem) return;
+	
+	// Left table or alias
+	QString strLeftTableName(m_pComboBoxLeftTables->currentText());
+  	QString strLeftTableAlias = m_MapTableNameAlias[strLeftTableName];
+	
+	// Right table or alias
+	QString strRightTableName(m_pComboBoxRightTables->currentText());
+  	QString strRightTableAlias = m_MapTableNameAlias[strRightTableName];
+	
+	
+	// set left column name for view
+	QString strLeftColumn;
+	
+	if(strLeftTableAlias.length() > 0)
+	{
+		strLeftColumn = strLeftTableAlias;
+		strLeftColumn.append(".");
+		strLeftColumn.append(KPGUtil::quotedName(pLeftSelectedItem->text()));
+	}
+	else
+	{
+		strLeftColumn = KPGUtil::quotedName(strLeftTableName);
+		strLeftColumn.append(".");
+		strLeftColumn.append(KPGUtil::quotedName(pLeftSelectedItem->text()));
+	}
+	
+	// set right column name for view
+	QString strRightColumn;
+	
+	if(strRightTableAlias.length() > 0)
+	{
+		strRightColumn = strRightTableAlias;
+		strRightColumn.append(".");
+		strRightColumn.append(KPGUtil::quotedName(pRightSelectedItem->text()));
+	}
+	else
+	{
+		strRightColumn = KPGUtil::quotedName(strRightTableName);
+		strRightColumn.append(".");
+		strRightColumn.append(KPGUtil::quotedName(pRightSelectedItem->text()));
+	}
+	
+	// Build SQL string
+	QString strSQL;
+	
+	switch(m_eJoinType)
+	{
+		case joinInner:
+			strSQL.append("INNER JOIN ");
+			break;
+		 
+		case  joinLeft:
+			strSQL.append("LEFT OUTER JOIN ");
+			break; 
+			
+		case joinRight:
+			strSQL.append("RIGHT OUTER JOIN ");
+			break; 
+			
+		case joinFull:
+			strSQL.append("FULL OUTER JOIN ");
+			break;
+	
+	}
+	
+	strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, strRightTableName));
+	
+	if(strRightTableAlias.length() > 0)
+	{
+		strSQL.append(" " + strRightTableAlias);
+	}
+	
+	strSQL.append(" ON (");
+	strSQL.append(strLeftColumn);
+	strSQL.append(" = ");
+	strSQL.append(strRightColumn);
+	strSQL.append(")");
+	
+	// Add JOIN to list
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewJoins->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QListViewItem *pNewItem;
+		
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewJoins, strSQL);
+	else
+		pNewItem = new QListViewItem(m_pListViewJoins, pLastItem, strSQL);
+		
+	// Prevent left table from changing
+	m_pComboBoxLeftTables->setEnabled(false);
+	
+}
+
+void KPGCreateViewWidget3::slotJoinDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewJoins->selectedItem();
+	if(pSelectedItem)
+			delete pSelectedItem;
+	
+	m_pPushButtonJoinDel->setEnabled(false);
+	
+	m_pComboBoxLeftTables->setEnabled(m_pListViewJoins->childCount() == 0);
+}
+		
+// Return part of SQL statement for CREATE VIEW
+const QString KPGCreateViewWidget3::getSQL() const
+{
+	QString strSQL(" ");
+	
+	QListViewItem * pItem = m_pListViewJoins->firstChild();
+	if(pItem)
+	{
+		QString strLeftTable(m_pComboBoxLeftTables->currentText());
+		QString strLeftTableAlias = m_MapTableNameAlias[strLeftTable];
+		strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, strLeftTable));
+		if(strLeftTableAlias.length() > 0)
+		{
+			strSQL.append(" " + strLeftTableAlias);
+		}
+		
+		while(pItem)
+		{
+			strSQL.append("\n");
+			strSQL.append(pItem->text(0));
+								
+			pItem = pItem->nextSibling();
+		}
+	}
+	else
+	{
+		for(int i = 0; i < m_pComboBoxLeftTables->count(); i++)
+		{
+			if(i > 0)
+				strSQL.append(", ");
+        
+			QString strLeftTable(m_pComboBoxLeftTables->text(i));
+			QString strLeftTableAlias = m_MapTableNameAlias[strLeftTable];
+			strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, strLeftTable));
+			if(strLeftTableAlias.length() > 0)
+			{
+				strSQL.append(" " + strLeftTableAlias);
+			}
+		}
+	}
+	
+	
+	return strSQL;
+}
+
+
+#include "kpgcreateviewwidget3.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,77 @@
+//
+// C++ Interface: kpgcreateviewwidget3
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEVIEWWIDGET3_H
+#define KPGCREATEVIEWWIDGET3_H
+
+#include "kpgcreateviewwidget3base.h"
+
+#include "kpgcreateviewwizard.h"
+
+class KPGDatabase;
+
+/**
+Widget for create view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateViewWidget3 : public KPGCreateViewWidget3Base
+{
+	Q_OBJECT
+public:
+    KPGCreateViewWidget3(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateViewWidget3();
+		
+	void setNamespace(const QString &strNamespace) { m_strNamespace = strNamespace; }
+		
+	void setMapTableNameAlias(const MapTableNameAlias &mapTableNameAlias)
+	{
+		m_MapTableNameAlias = mapTableNameAlias;
+	}
+	
+	const QString getSQL() const;
+	void refreshAvailColumnsList(const QString &, bool);
+		
+	enum eJoinType { joinInner = 0, joinLeft, joinRight, joinFull };
+
+protected slots:
+
+	virtual void slotCheckBoxShowSysColumnsToggled(bool);
+	virtual void slotComboBoxLeftTableActivated(const QString &);
+	virtual void slotComboBoxRightTableActivated(const QString &);
+	virtual void slotViewColumnsLeftSelectChanged(QListBoxItem*);
+	virtual void slotViewColumnsRightSelectChanged(QListBoxItem*);
+	virtual void slotRadioButtonInnerJoinClicked();
+	virtual void slotRadioButtonLeftJoinClicked();
+	virtual void slotRadioButtonRigthtJoinClicked();
+	virtual void slotRadioButtonFullJoinClicked();
+    
+    virtual void slotJoinsSelectionChanged(QListViewItem *);
+    virtual void slotJoinsCurrentChanged(QListViewItem *);
+		
+	virtual void slotJoinAdd();
+    virtual void slotJoinDelete();
+				
+protected:
+	bool m_bCheckBoxShowSysColumns;
+	eJoinType m_eJoinType;
+	KPGDatabase *m_pDatabase;
+    QString m_strNamespace; // name of the namespace
+    
+    // Map of pair of <QString strTableName, QString strAlias> 	
+    MapTableNameAlias m_MapTableNameAlias; 
+				
+signals:
+	void sigEnableNextButton(bool);	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,275 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateviewwidget3base.ui'
+**
+** Created: Út dub 1 13:07:27 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateviewwidget3base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <klistbox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klistview.h"
+#include "kcombobox.h"
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateViewWidget3Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateViewWidget3Base::KPGCreateViewWidget3Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateViewWidget3Base" );
+    KPGCreateViewWidget3BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateViewWidget3BaseLayout"); 
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pListViewJoins = new KListView( groupBox1, "m_pListViewJoins" );
+    m_pListViewJoins->addColumn( tr2i18n( "Join definition" ) );
+    m_pListViewJoins->setItemsMovable( FALSE );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewJoins, 0, 2, 0, 0 );
+
+    m_pPushButtonJoinDel = new QPushButton( groupBox1, "m_pPushButtonJoinDel" );
+    m_pPushButtonJoinDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonJoinDel, 2, 1 );
+
+    m_pPushButtonJoinAdd = new QPushButton( groupBox1, "m_pPushButtonJoinAdd" );
+    m_pPushButtonJoinAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonJoinAdd, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 41, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 0, 1 );
+
+    KPGCreateViewWidget3BaseLayout->addMultiCellWidget( groupBox1, 2, 2, 0, 1 );
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonInnerJoin = new QRadioButton( buttonGroup1, "m_pRadioButtonInnerJoin" );
+    m_pRadioButtonInnerJoin->setChecked( TRUE );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonInnerJoin, 0, 0 );
+
+    m_pRadioButtonLeftJoin = new QRadioButton( buttonGroup1, "m_pRadioButtonLeftJoin" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonLeftJoin, 1, 0 );
+
+    m_pRadioButtonRightJoin = new QRadioButton( buttonGroup1, "m_pRadioButtonRightJoin" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonRightJoin, 2, 0 );
+
+    m_pRadioButtonFullJoin = new QRadioButton( buttonGroup1, "m_pRadioButtonFullJoin" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonFullJoin, 3, 0 );
+
+    KPGCreateViewWidget3BaseLayout->addWidget( buttonGroup1, 0, 0 );
+    spacer3 = new QSpacerItem( 20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateViewWidget3BaseLayout->addItem( spacer3, 1, 0 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    layout3 = new QHBoxLayout( 0, 0, 6, "layout3"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxLeftTables = new KComboBox( FALSE, this, "m_pComboBoxLeftTables" );
+    layout1->addWidget( m_pComboBoxLeftTables );
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout1->addWidget( textLabel3 );
+
+    m_pListBoxLeftColumns = new KListBox( this, "m_pListBoxLeftColumns" );
+    layout1->addWidget( m_pListBoxLeftColumns );
+    layout3->addLayout( layout1 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxRightTables = new KComboBox( FALSE, this, "m_pComboBoxRightTables" );
+    layout2->addWidget( m_pComboBoxRightTables );
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+    layout2->addWidget( textLabel4 );
+
+    m_pListBoxRightColumns = new KListBox( this, "m_pListBoxRightColumns" );
+    layout2->addWidget( m_pListBoxRightColumns );
+    layout3->addLayout( layout2 );
+    layout4->addLayout( layout3 );
+
+    m_pCheckBoxShowSysColumns = new QCheckBox( this, "m_pCheckBoxShowSysColumns" );
+    layout4->addWidget( m_pCheckBoxShowSysColumns );
+
+    KPGCreateViewWidget3BaseLayout->addMultiCellLayout( layout4, 0, 1, 1, 1 );
+    languageChange();
+    resize( QSize(422, 361).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxShowSysColumns, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxShowSysColumnsToggled(bool) ) );
+    connect( m_pComboBoxLeftTables, SIGNAL( activated(const QString&) ), this, SLOT( slotComboBoxLeftTableActivated(const QString&) ) );
+    connect( m_pComboBoxRightTables, SIGNAL( activated(const QString&) ), this, SLOT( slotComboBoxRightTableActivated(const QString&) ) );
+    connect( m_pListBoxLeftColumns, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotViewColumnsLeftSelectChanged(QListBoxItem*) ) );
+    connect( m_pListBoxRightColumns, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotViewColumnsRightSelectChanged(QListBoxItem*) ) );
+    connect( m_pRadioButtonInnerJoin, SIGNAL( clicked() ), this, SLOT( slotRadioButtonInnerJoinClicked() ) );
+    connect( m_pRadioButtonLeftJoin, SIGNAL( clicked() ), this, SLOT( slotRadioButtonLeftJoinClicked() ) );
+    connect( m_pRadioButtonRightJoin, SIGNAL( clicked() ), this, SLOT( slotRadioButtonRigthtJoinClicked() ) );
+    connect( m_pRadioButtonFullJoin, SIGNAL( clicked() ), this, SLOT( slotRadioButtonFullJoinClicked() ) );
+    connect( m_pPushButtonJoinAdd, SIGNAL( clicked() ), this, SLOT( slotJoinAdd() ) );
+    connect( m_pPushButtonJoinDel, SIGNAL( clicked() ), this, SLOT( slotJoinDelete() ) );
+    connect( m_pListViewJoins, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotJoinsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewJoins, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotJoinsCurrentChanged(QListViewItem*) ) );
+
+    // tab order
+    setTabOrder( m_pRadioButtonInnerJoin, m_pRadioButtonLeftJoin );
+    setTabOrder( m_pRadioButtonLeftJoin, m_pRadioButtonRightJoin );
+    setTabOrder( m_pRadioButtonRightJoin, m_pRadioButtonFullJoin );
+    setTabOrder( m_pRadioButtonFullJoin, m_pComboBoxLeftTables );
+    setTabOrder( m_pComboBoxLeftTables, m_pListBoxLeftColumns );
+    setTabOrder( m_pListBoxLeftColumns, m_pComboBoxRightTables );
+    setTabOrder( m_pComboBoxRightTables, m_pListBoxRightColumns );
+    setTabOrder( m_pListBoxRightColumns, m_pListViewJoins );
+    setTabOrder( m_pListViewJoins, m_pPushButtonJoinAdd );
+    setTabOrder( m_pPushButtonJoinAdd, m_pPushButtonJoinDel );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxLeftTables );
+    textLabel3->setBuddy( m_pListBoxLeftColumns );
+    textLabel2->setBuddy( m_pComboBoxRightTables );
+    textLabel4->setBuddy( m_pListBoxRightColumns );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateViewWidget3Base::~KPGCreateViewWidget3Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateViewWidget3Base::languageChange()
+{
+    setCaption( tr2i18n( "Create view - setup joins" ) );
+    groupBox1->setTitle( tr2i18n( "Joins" ) );
+    m_pListViewJoins->header()->setLabel( 0, tr2i18n( "Join definition" ) );
+    m_pPushButtonJoinDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonJoinDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pPushButtonJoinAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonJoinAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    buttonGroup1->setTitle( tr2i18n( "Join type" ) );
+    m_pRadioButtonInnerJoin->setText( tr2i18n( "&INNER JOIN" ) );
+    m_pRadioButtonInnerJoin->setAccel( QKeySequence( tr2i18n( "Alt+I" ) ) );
+    m_pRadioButtonLeftJoin->setText( tr2i18n( "LEFT JOIN" ) );
+    m_pRadioButtonRightJoin->setText( tr2i18n( "RIGHT JOIN" ) );
+    m_pRadioButtonFullJoin->setText( tr2i18n( "FULL JOIN" ) );
+    textLabel1->setText( tr2i18n( "&Left table:" ) );
+    textLabel3->setText( tr2i18n( "Left column:" ) );
+    textLabel2->setText( tr2i18n( "&Right table:" ) );
+    textLabel4->setText( tr2i18n( "Right column:" ) );
+    m_pCheckBoxShowSysColumns->setText( tr2i18n( "Show &system columns" ) );
+    m_pCheckBoxShowSysColumns->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+}
+
+void KPGCreateViewWidget3Base::slotCheckBoxShowSysColumnsToggled(bool)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotCheckBoxShowSysColumnsToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotComboBoxLeftTableActivated(const QString&)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotComboBoxLeftTableActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotComboBoxRightTableActivated(const QString&)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotComboBoxRightTableActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotViewColumnsLeftSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotViewColumnsLeftSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotViewColumnsRightSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotViewColumnsRightSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotRadioButtonInnerJoinClicked()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotRadioButtonInnerJoinClicked(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotRadioButtonLeftJoinClicked()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotRadioButtonLeftJoinClicked(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotRadioButtonRigthtJoinClicked()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotRadioButtonRigthtJoinClicked(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotRadioButtonFullJoinClicked()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotRadioButtonFullJoinClicked(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotJoinAdd()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotJoinAdd(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotJoinDelete()
+{
+    qWarning( "KPGCreateViewWidget3Base::slotJoinDelete(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotJoinsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotJoinsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget3Base::slotJoinsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateViewWidget3Base::slotJoinsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+#include "kpgcreateviewwidget3base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget3base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,402 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateViewWidget3Base</class>
+<comment>Widget for create view Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateViewWidget3Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>422</width>
+            <height>361</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create view - setup joins</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Joins</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="KListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Join definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewJoins</cstring>
+                    </property>
+                    <property name="itemsMovable">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="2" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonJoinDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonJoinAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <spacer row="0" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>41</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+        <widget class="QButtonGroup" row="0" column="0">
+            <property name="name">
+                <cstring>buttonGroup1</cstring>
+            </property>
+            <property name="title">
+                <string>Join type</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QRadioButton" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonInnerJoin</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;INNER JOIN</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+I</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonLeftJoin</cstring>
+                    </property>
+                    <property name="text">
+                        <string>LEFT JOIN</string>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonRightJoin</cstring>
+                    </property>
+                    <property name="text">
+                        <string>RIGHT JOIN</string>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="3" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonFullJoin</cstring>
+                    </property>
+                    <property name="text">
+                        <string>FULL JOIN</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>40</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="1" rowspan="2" colspan="1">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <hbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout1</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel1</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Left table:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxLeftTables</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KComboBox">
+                                    <property name="name">
+                                        <cstring>m_pComboBoxLeftTables</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel3</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Left column:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pListBoxLeftColumns</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KListBox">
+                                    <property name="name">
+                                        <cstring>m_pListBoxLeftColumns</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                        <widget class="QLayoutWidget">
+                            <property name="name">
+                                <cstring>layout2</cstring>
+                            </property>
+                            <vbox>
+                                <property name="name">
+                                    <cstring>unnamed</cstring>
+                                </property>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel2</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>&amp;Right table:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pComboBoxRightTables</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KComboBox">
+                                    <property name="name">
+                                        <cstring>m_pComboBoxRightTables</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="QLabel">
+                                    <property name="name">
+                                        <cstring>textLabel4</cstring>
+                                    </property>
+                                    <property name="text">
+                                        <string>Right column:</string>
+                                    </property>
+                                    <property name="buddy" stdset="0">
+                                        <cstring>m_pListBoxRightColumns</cstring>
+                                    </property>
+                                </widget>
+                                <widget class="KListBox">
+                                    <property name="name">
+                                        <cstring>m_pListBoxRightColumns</cstring>
+                                    </property>
+                                </widget>
+                            </vbox>
+                        </widget>
+                    </hbox>
+                </widget>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxShowSysColumns</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Show &amp;system columns</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+S</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxShowSysColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotCheckBoxShowSysColumnsToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxLeftTables</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotComboBoxLeftTableActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxRightTables</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotComboBoxRightTableActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxLeftColumns</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotViewColumnsLeftSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxRightColumns</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotViewColumnsRightSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonInnerJoin</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotRadioButtonInnerJoinClicked()</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonLeftJoin</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotRadioButtonLeftJoinClicked()</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonRightJoin</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotRadioButtonRigthtJoinClicked()</slot>
+    </connection>
+    <connection>
+        <sender>m_pRadioButtonFullJoin</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotRadioButtonFullJoinClicked()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonJoinAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotJoinAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonJoinDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotJoinDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewJoins</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotJoinsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewJoins</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateViewWidget3Base</receiver>
+        <slot>slotJoinsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pRadioButtonInnerJoin</tabstop>
+    <tabstop>m_pRadioButtonLeftJoin</tabstop>
+    <tabstop>m_pRadioButtonRightJoin</tabstop>
+    <tabstop>m_pRadioButtonFullJoin</tabstop>
+    <tabstop>m_pComboBoxLeftTables</tabstop>
+    <tabstop>m_pListBoxLeftColumns</tabstop>
+    <tabstop>m_pComboBoxRightTables</tabstop>
+    <tabstop>m_pListBoxRightColumns</tabstop>
+    <tabstop>m_pListViewJoins</tabstop>
+    <tabstop>m_pPushButtonJoinAdd</tabstop>
+    <tabstop>m_pPushButtonJoinDel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotCheckBoxShowSysColumnsToggled(bool)</slot>
+    <slot access="protected">slotComboBoxLeftTableActivated(const QString &amp;)</slot>
+    <slot access="protected">slotComboBoxRightTableActivated(const QString &amp;)</slot>
+    <slot access="protected">slotViewColumnsLeftSelectChanged(QListBoxItem*)</slot>
+    <slot access="protected">slotViewColumnsRightSelectChanged(QListBoxItem*)</slot>
+    <slot access="protected">slotRadioButtonInnerJoinClicked()</slot>
+    <slot access="protected">slotRadioButtonLeftJoinClicked()</slot>
+    <slot access="protected">slotRadioButtonRigthtJoinClicked()</slot>
+    <slot access="protected">slotRadioButtonFullJoinClicked()</slot>
+    <slot access="protected">slotJoinAdd()</slot>
+    <slot access="protected">slotJoinDelete()</slot>
+    <slot access="protected">slotJoinsSelectionChanged(QListViewItem *)</slot>
+    <slot access="protected">slotJoinsCurrentChanged(QListViewItem *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klistview.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klistbox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,239 @@
+//
+// C++ Implementation: kpgcreateviewwidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateviewwidget4.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtablesfolder.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGCreateViewWidget4::KPGCreateViewWidget4(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGCreateViewWidget4Base(parent, name)
+{
+	m_pDatabase = pDatabase;
+  	m_bCheckBoxShowSysColumns = false;
+	
+	m_pListViewConditions->setSortColumn(-1);
+}
+
+
+KPGCreateViewWidget4::~KPGCreateViewWidget4()
+{
+}
+
+void KPGCreateViewWidget4::slotCheckBoxShowSysColumnsToggled(bool bCheckBoxShowSysColumns)
+{
+	m_bCheckBoxShowSysColumns = bCheckBoxShowSysColumns;
+	refreshAvailColumnsList(m_pComboBoxTables->currentText());
+}
+
+void KPGCreateViewWidget4::slotComboBoxTableActivated(const QString & strTableName)
+{
+	refreshAvailColumnsList(strTableName);
+}
+
+void KPGCreateViewWidget4::refreshAvailColumnsList(const QString & strTableName)
+{
+	m_pListBoxColumns->clear();
+	m_listOfAvailableColumns.clear();
+	m_pPushButtonConditionAdd->setEnabled(false);
+	  
+	// Fill list of columns to listbox
+	KPGTreeItem *pItem = m_pDatabase->getChildByName(m_strNamespace);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " Noo item found: " << m_strNamespace << endl;
+		return;
+	}
+			
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+	KPGTablesFolder *pTablesFolder = pSchema->getTablesFolder();
+	
+	// Lookup pointer to table
+	pItem = pTablesFolder->getChildByName(strTableName);
+	if(!pItem)
+	{
+		kdDebug() << k_funcinfo << " No item found: " << strTableName << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pItem);
+	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pListBoxColumns, m_bCheckBoxShowSysColumns);
+	pTable->getTableColumnsFolder()->fillListColumnWizInfoWithChildItems(m_listOfAvailableColumns);
+}
+
+void KPGCreateViewWidget4::slotColumnsSelectChanged(QListBoxItem* pSelectedItem)
+{
+	enableAddConditionButton(
+		pSelectedItem,
+		m_pComboBoxCondition->currentItem(),
+		m_pLineEditValue->text()
+	);
+}
+
+void KPGCreateViewWidget4::slotComboBoxConditionActivated(int iIndex)
+{
+	m_pLineEditValue->setEnabled(iIndex <= 8);
+	
+	enableAddConditionButton(
+		m_pListBoxColumns->selectedItem(),
+		iIndex,
+		m_pLineEditValue->text()
+	);
+}
+
+void KPGCreateViewWidget4::slotLineEditValueTextChanged(const QString &strLineEditValueText)
+{
+	enableAddConditionButton(
+		m_pListBoxColumns->selectedItem(),
+		m_pComboBoxCondition->currentItem(),
+		strLineEditValueText
+	);
+}
+
+void KPGCreateViewWidget4::enableAddConditionButton(
+	QListBoxItem* pSelectedColumns,
+	int iComboBoxConditionIndex,
+	const QString &strLineEditValueText
+	)
+{
+	bool bEnable = (pSelectedColumns != 0) && ( (iComboBoxConditionIndex > 8) || ((iComboBoxConditionIndex <= 8) && (strLineEditValueText.length() > 0)) );
+	
+	m_pPushButtonConditionAdd->setEnabled(bEnable);
+}
+
+void KPGCreateViewWidget4::slotConditionsSelectionChanged(QListViewItem* pItem)
+{
+  m_pPushButtonConditionDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateViewWidget4::slotConditionsCurrentChanged(QListViewItem* pItem)
+{
+  m_pPushButtonConditionDel->setEnabled(pItem != 0);
+}
+
+void KPGCreateViewWidget4::slotConditionAdd()
+{
+	QListBoxItem *pSelectedItem = m_pListBoxColumns->selectedItem();
+	if(!pSelectedItem) return;
+	
+	QString strTableName(KPGUtil::quotedName(m_pComboBoxTables->currentText()));
+  	QString strTableAlias = m_MapTableNameAlias[m_pComboBoxTables->currentText()];
+	
+	// set column name for view
+	QString strColumn;
+	
+	if(strTableAlias.length() > 0)
+	{
+		strColumn = strTableAlias;
+		strColumn.append(".");
+		strColumn.append(KPGUtil::quotedName(pSelectedItem->text()));
+	}
+	else
+	{
+		strColumn = strTableName;
+		strColumn.append(".");
+		strColumn.append(KPGUtil::quotedName(pSelectedItem->text()));
+	}
+	
+	// Build part of WHERE clause
+	QString strSQL(strColumn);
+	strSQL.append(" " + m_pComboBoxCondition->currentText());
+
+	if(m_pComboBoxCondition->currentItem() <= 8)
+	{
+		strSQL.append(" ");
+		
+		if(m_pComboBoxCondition->currentText().find("LIKE") >= 0)
+			strSQL.append("(");
+		
+					
+		if(m_pCheckBoxQuotedValue->isChecked())
+			strSQL.append("'");
+			
+		strSQL.append(m_pLineEditValue->text());
+		
+		if(m_pCheckBoxQuotedValue->isChecked())
+			strSQL.append("'");
+			
+		if(m_pComboBoxCondition->currentText().find("LIKE") >= 0)
+			strSQL.append(")");
+	}
+
+	// Add condition to list
+	QListViewItem *pLastItem = 0;
+	
+	QListViewItem * pItem = m_pListViewConditions->firstChild();
+	while(pItem)
+	{
+		pLastItem = pItem;
+		pItem = pItem->nextSibling();
+	}
+	
+	QListViewItem *pNewItem;
+		
+	if(pLastItem == 0) 
+		pNewItem = new QListViewItem(m_pListViewConditions, strSQL);
+	else
+		pNewItem = new QListViewItem(m_pListViewConditions, pLastItem, strSQL);
+}
+
+void KPGCreateViewWidget4::slotConditionDelete()
+{
+	QListViewItem *pSelectedItem = m_pListViewConditions->selectedItem();
+	if(pSelectedItem)
+			delete pSelectedItem;
+	
+	m_pPushButtonConditionDel->setEnabled(false);
+}		
+
+// Return part of SQL statement for CREATE VIEW
+const QString KPGCreateViewWidget4::getSQL() const
+{
+	QString strSQL(" ");
+	
+	QListViewItem * pItem = m_pListViewConditions->firstChild();
+	if(pItem)
+	{
+		strSQL.append("\nWHERE ");
+	
+		while(pItem)
+		{
+			strSQL.append(pItem->text(0));
+							
+			pItem = pItem->nextSibling();
+			
+			if(pItem)
+				strSQL.append(" AND\n");
+		}
+	}
+	
+	return strSQL;
+}
+
+#include "kpgcreateviewwidget4.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+//
+// C++ Interface: kpgcreateviewwidget4
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEVIEWWIDGET4_H
+#define KPGCREATEVIEWWIDGET4_H
+
+#include "kpgcreateviewwidget4base.h"
+
+#include "kpgtablecolumnwizinfo.h"
+
+#include "kpgcreateviewwizard.h"
+
+class KPGDatabase;
+
+/**
+Widget for create view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateViewWidget4 : public KPGCreateViewWidget4Base
+{
+	Q_OBJECT
+public:
+    KPGCreateViewWidget4(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGCreateViewWidget4();
+
+    void setNamespace(const QString &strNamespace) { m_strNamespace = strNamespace; }
+    
+    void setMapTableNameAlias(const MapTableNameAlias &mapTableNameAlias)
+	{
+		m_MapTableNameAlias = mapTableNameAlias;
+	}
+    
+    const QString getSQL() const;
+	void refreshAvailColumnsList(const QString &);
+
+protected:
+	void enableAddConditionButton(QListBoxItem*, int, const QString &);
+
+protected:
+	KPGDatabase *m_pDatabase;
+    QString m_strNamespace; // name of the namespace
+    
+    // Map of pair of <QString strTableName, QString strAlias> 	
+    MapTableNameAlias m_MapTableNameAlias;
+    
+	bool m_bCheckBoxShowSysColumns;
+	KPGListTableColumnWizInfo m_listOfAvailableColumns;
+		
+protected slots:
+
+	virtual void slotCheckBoxShowSysColumnsToggled(bool);
+	virtual void slotComboBoxTableActivated(const QString &);
+	virtual void slotColumnsSelectChanged(QListBoxItem*);
+	virtual void slotComboBoxConditionActivated(int);
+	virtual void slotLineEditValueTextChanged(const QString &);
+    virtual void slotConditionsSelectionChanged(QListViewItem *);
+    virtual void slotConditionsCurrentChanged(QListViewItem *);
+		
+	virtual void slotConditionAdd();
+    virtual void slotConditionDelete();
+		
+signals:
+	void sigEnableNextButton(bool);		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,232 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgcreateviewwidget4base.ui'
+**
+** Created: Út dub 1 13:07:28 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgcreateviewwidget4base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <klineedit.h>
+#include <qgroupbox.h>
+#include <qheader.h>
+#include <klistview.h>
+#include <klistbox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+#include "klineedit.h"
+#include "klistview.h"
+#include "klistbox.h"
+
+/*
+ *  Constructs a KPGCreateViewWidget4Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGCreateViewWidget4Base::KPGCreateViewWidget4Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGCreateViewWidget4Base" );
+    KPGCreateViewWidget4BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGCreateViewWidget4BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxTables = new KComboBox( FALSE, this, "m_pComboBoxTables" );
+    layout1->addWidget( m_pComboBoxTables );
+
+    KPGCreateViewWidget4BaseLayout->addLayout( layout1, 0, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout2->addWidget( textLabel3 );
+
+    m_pComboBoxCondition = new KComboBox( FALSE, this, "m_pComboBoxCondition" );
+    layout2->addWidget( m_pComboBoxCondition );
+
+    KPGCreateViewWidget4BaseLayout->addMultiCellLayout( layout2, 0, 0, 1, 2 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+    layout4->addWidget( textLabel4 );
+
+    m_pLineEditValue = new KLineEdit( this, "m_pLineEditValue" );
+    layout4->addWidget( m_pLineEditValue );
+
+    KPGCreateViewWidget4BaseLayout->addMultiCellLayout( layout4, 1, 1, 1, 2 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pListViewConditions = new KListView( groupBox1, "m_pListViewConditions" );
+    m_pListViewConditions->addColumn( tr2i18n( "Condition definition" ) );
+    m_pListViewConditions->setItemsMovable( FALSE );
+
+    groupBox1Layout->addMultiCellWidget( m_pListViewConditions, 0, 2, 0, 0 );
+
+    m_pPushButtonConditionDel = new QPushButton( groupBox1, "m_pPushButtonConditionDel" );
+    m_pPushButtonConditionDel->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConditionDel, 2, 1 );
+
+    m_pPushButtonConditionAdd = new QPushButton( groupBox1, "m_pPushButtonConditionAdd" );
+    m_pPushButtonConditionAdd->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pPushButtonConditionAdd, 1, 1 );
+    spacer1 = new QSpacerItem( 20, 41, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    groupBox1Layout->addItem( spacer1, 0, 1 );
+
+    KPGCreateViewWidget4BaseLayout->addMultiCellWidget( groupBox1, 5, 5, 0, 2 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout3->addWidget( textLabel2 );
+
+    m_pListBoxColumns = new KListBox( this, "m_pListBoxColumns" );
+    layout3->addWidget( m_pListBoxColumns );
+
+    KPGCreateViewWidget4BaseLayout->addMultiCellLayout( layout3, 1, 4, 0, 0 );
+
+    m_pCheckBoxShowSysColumns = new QCheckBox( this, "m_pCheckBoxShowSysColumns" );
+
+    KPGCreateViewWidget4BaseLayout->addMultiCellWidget( m_pCheckBoxShowSysColumns, 4, 4, 1, 2 );
+    spacer2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGCreateViewWidget4BaseLayout->addItem( spacer2, 3, 1 );
+
+    m_pCheckBoxQuotedValue = new QCheckBox( this, "m_pCheckBoxQuotedValue" );
+    m_pCheckBoxQuotedValue->setChecked( FALSE );
+
+    KPGCreateViewWidget4BaseLayout->addWidget( m_pCheckBoxQuotedValue, 2, 2 );
+    spacer3 = new QSpacerItem( 91, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGCreateViewWidget4BaseLayout->addItem( spacer3, 2, 1 );
+    languageChange();
+    resize( QSize(410, 314).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxShowSysColumns, SIGNAL( toggled(bool) ), this, SLOT( slotCheckBoxShowSysColumnsToggled(bool) ) );
+    connect( m_pComboBoxTables, SIGNAL( activated(const QString&) ), this, SLOT( slotComboBoxTableActivated(const QString&) ) );
+    connect( m_pListBoxColumns, SIGNAL( selectionChanged(QListBoxItem*) ), this, SLOT( slotColumnsSelectChanged(QListBoxItem*) ) );
+    connect( m_pComboBoxCondition, SIGNAL( activated(int) ), this, SLOT( slotComboBoxConditionActivated(int) ) );
+    connect( m_pLineEditValue, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditValueTextChanged(const QString&) ) );
+    connect( m_pPushButtonConditionAdd, SIGNAL( clicked() ), this, SLOT( slotConditionAdd() ) );
+    connect( m_pPushButtonConditionDel, SIGNAL( clicked() ), this, SLOT( slotConditionDelete() ) );
+    connect( m_pListViewConditions, SIGNAL( selectionChanged(QListViewItem*) ), this, SLOT( slotConditionsSelectionChanged(QListViewItem*) ) );
+    connect( m_pListViewConditions, SIGNAL( currentChanged(QListViewItem*) ), this, SLOT( slotConditionsCurrentChanged(QListViewItem*) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxTables );
+    textLabel3->setBuddy( m_pComboBoxCondition );
+    textLabel4->setBuddy( m_pLineEditValue );
+    textLabel2->setBuddy( m_pListBoxColumns );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGCreateViewWidget4Base::~KPGCreateViewWidget4Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGCreateViewWidget4Base::languageChange()
+{
+    setCaption( tr2i18n( "Create view - setup conditions" ) );
+    textLabel1->setText( tr2i18n( "&Table:" ) );
+    textLabel3->setText( tr2i18n( "Co&ndition:" ) );
+    m_pComboBoxCondition->clear();
+    m_pComboBoxCondition->insertItem( tr2i18n( ">" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "<" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( ">=" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "<=" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "=" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "!=" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "LIKE" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "NOT LIKE" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "BETWEEN" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "IS NULL" ) );
+    m_pComboBoxCondition->insertItem( tr2i18n( "IS NOT NULL" ) );
+    textLabel4->setText( tr2i18n( "&Value:" ) );
+    groupBox1->setTitle( tr2i18n( "Conditions" ) );
+    m_pListViewConditions->header()->setLabel( 0, tr2i18n( "Condition definition" ) );
+    m_pPushButtonConditionDel->setText( tr2i18n( "&Delete" ) );
+    m_pPushButtonConditionDel->setAccel( QKeySequence( tr2i18n( "Alt+D" ) ) );
+    m_pPushButtonConditionAdd->setText( tr2i18n( "&Add" ) );
+    m_pPushButtonConditionAdd->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+    textLabel2->setText( tr2i18n( "C&olumn:" ) );
+    m_pCheckBoxShowSysColumns->setText( tr2i18n( "Show &system columns" ) );
+    m_pCheckBoxShowSysColumns->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    m_pCheckBoxQuotedValue->setText( tr2i18n( "&Quoted" ) );
+    m_pCheckBoxQuotedValue->setAccel( QKeySequence( tr2i18n( "Alt+Q" ) ) );
+}
+
+void KPGCreateViewWidget4Base::slotCheckBoxShowSysColumnsToggled(bool)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotCheckBoxShowSysColumnsToggled(bool): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotComboBoxTableActivated(const QString&)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotComboBoxTableActivated(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotColumnsSelectChanged(QListBoxItem*)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotColumnsSelectChanged(QListBoxItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotComboBoxConditionActivated(int)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotComboBoxConditionActivated(int): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotLineEditValueTextChanged(const QString&)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotLineEditValueTextChanged(const QString&): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotConditionAdd()
+{
+    qWarning( "KPGCreateViewWidget4Base::slotConditionAdd(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotConditionDelete()
+{
+    qWarning( "KPGCreateViewWidget4Base::slotConditionDelete(): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotConditionsSelectionChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotConditionsSelectionChanged(QListViewItem*): Not implemented yet" );
+}
+
+void KPGCreateViewWidget4Base::slotConditionsCurrentChanged(QListViewItem*)
+{
+    qWarning( "KPGCreateViewWidget4Base::slotConditionsCurrentChanged(QListViewItem*): Not implemented yet" );
+}
+
+#include "kpgcreateviewwidget4base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwidget4base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,396 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGCreateViewWidget4Base</class>
+<comment>Widget for create view Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGCreateViewWidget4Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>410</width>
+            <height>314</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Create view - setup conditions</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Table:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxTables</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxTables</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="0" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Co&amp;ndition:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxCondition</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>&gt;</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>&lt;</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>&gt;=</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>&lt;=</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>=</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>!=</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>LIKE</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>NOT LIKE</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>BETWEEN</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>IS NULL</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>IS NOT NULL</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxCondition</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel4</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Value:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditValue</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditValue</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QGroupBox" row="5" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Conditions</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="KListView" row="0" column="0" rowspan="3" colspan="1">
+                    <column>
+                        <property name="text">
+                            <string>Condition definition</string>
+                        </property>
+                        <property name="clickable">
+                            <bool>true</bool>
+                        </property>
+                        <property name="resizable">
+                            <bool>true</bool>
+                        </property>
+                    </column>
+                    <property name="name">
+                        <cstring>m_pListViewConditions</cstring>
+                    </property>
+                    <property name="itemsMovable">
+                        <bool>false</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="2" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConditionDel</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Delete</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+D</string>
+                    </property>
+                </widget>
+                <widget class="QPushButton" row="1" column="1">
+                    <property name="name">
+                        <cstring>m_pPushButtonConditionAdd</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Add</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+                <spacer row="0" column="1">
+                    <property name="name">
+                        <cstring>spacer1</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Vertical</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>41</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0" rowspan="4" colspan="1">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;olumn:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pListBoxColumns</cstring>
+                    </property>
+                </widget>
+                <widget class="KListBox">
+                    <property name="name">
+                        <cstring>m_pListBoxColumns</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QCheckBox" row="4" column="1" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxShowSysColumns</cstring>
+            </property>
+            <property name="text">
+                <string>Show &amp;system columns</string>
+            </property>
+            <property name="accel">
+                <string>Alt+S</string>
+            </property>
+        </widget>
+        <spacer row="3" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QCheckBox" row="2" column="2">
+            <property name="name">
+                <cstring>m_pCheckBoxQuotedValue</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Quoted</string>
+            </property>
+            <property name="accel">
+                <string>Alt+Q</string>
+            </property>
+            <property name="checked">
+                <bool>false</bool>
+            </property>
+        </widget>
+        <spacer row="2" column="1">
+            <property name="name">
+                <cstring>spacer3</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>91</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxShowSysColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotCheckBoxShowSysColumnsToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxTables</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotComboBoxTableActivated(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListBoxColumns</sender>
+        <signal>selectionChanged(QListBoxItem*)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotColumnsSelectChanged(QListBoxItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxCondition</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotComboBoxConditionActivated(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditValue</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotLineEditValueTextChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonConditionAdd</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotConditionAdd()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonConditionDel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotConditionDelete()</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConditions</sender>
+        <signal>selectionChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotConditionsSelectionChanged(QListViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pListViewConditions</sender>
+        <signal>currentChanged(QListViewItem*)</signal>
+        <receiver>KPGCreateViewWidget4Base</receiver>
+        <slot>slotConditionsCurrentChanged(QListViewItem*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotCheckBoxShowSysColumnsToggled(bool)</slot>
+    <slot access="protected">slotComboBoxTableActivated(const QString &amp;)</slot>
+    <slot access="protected">slotColumnsSelectChanged(QListBoxItem*)</slot>
+    <slot access="protected">slotComboBoxConditionActivated(int)</slot>
+    <slot access="protected">slotLineEditValueTextChanged(const QString &amp;)</slot>
+    <slot access="protected">slotConditionAdd()</slot>
+    <slot access="protected">slotConditionDelete()</slot>
+    <slot access="protected">slotConditionsSelectionChanged(QListViewItem *)</slot>
+    <slot>slotConditionsCurrentChanged(QListViewItem *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klistview.h</includehint>
+    <includehint>klistbox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,246 @@
+//
+// C++ Implementation: kpgcreateviewwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgcreateviewwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+#include <qlistview.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <klistview.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgcreateviewwidget1.h"
+#include "kpgcreateviewwidget2.h"
+#include "kpgcreateviewwidget3.h"
+#include "kpgcreateviewwidget4.h"
+
+
+KPGCreateViewWizard::KPGCreateViewWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+ : KPG6StepsWizard(parent, name)
+{
+	KPGCreateViewWidget1 *pCreateViewWidget1 = new KPGCreateViewWidget1(WizardPage1, "KPGCreateViewWidget1", pDatabase, listOfSchemas);
+	m_pPageWidget1 = pCreateViewWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateViewWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	KPGCreateViewWidget2 *pCreateViewWidget2 = new KPGCreateViewWidget2(WizardPage2, "KPGCreateViewWidget2", pDatabase);
+	m_pPageWidget2 = pCreateViewWidget2;
+	WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+	connect(pCreateViewWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+	
+	KPGCreateViewWidget3 *pCreateViewWidget3 = new KPGCreateViewWidget3(WizardPage3, "KPGCreateViewWidget3", pDatabase);
+	m_pPageWidget3 = pCreateViewWidget3;
+	WizardPage3Layout->addWidget(m_pPageWidget3, 0, 0);
+	connect(pCreateViewWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton3(bool)));
+	
+	KPGCreateViewWidget4 *pCreateViewWidget4 = new KPGCreateViewWidget4(WizardPage4, "KPGCreateViewWidget4", pDatabase);
+	m_pPageWidget4 = pCreateViewWidget4;
+	WizardPage4Layout->addWidget(m_pPageWidget4, 0, 0);
+	connect(pCreateViewWidget4, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton4(bool)));
+  	
+	languageChange();
+}
+
+
+KPGCreateViewWizard::~KPGCreateViewWizard()
+{
+}
+
+void KPGCreateViewWizard::languageChange()
+{
+    KPG6StepsWizard::languageChange();
+		
+	setCaption( i18n( "Create new View" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - View name and used tables list" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Define columns" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Define joins" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Define conditions" ) );
+    setTitle( WizardPage5, i18n( "Step 5 - Review SQL statement" ) );
+    setTitle( WizardPage6, i18n( "Step 6 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGCreateViewWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage1) // Step 1 - Define view tables
+	{
+		//--- Initialize 1st page
+		KPGCreateViewWidget1 *pCreateViewWidget1 = static_cast <KPGCreateViewWidget1 *> (m_pPageWidget1);
+
+		if(pCreateViewWidget1->m_pListBoxAvailTables->count() == 0)
+		  pCreateViewWidget1->refreshAvailTablesList(pCreateViewWidget1->m_pComboBoxSchema->currentText()); 
+	}
+	
+		
+	if(pPage == WizardPage2) // Step 2 - Define view columns
+	{
+		//--- Initialize 2nd page
+		KPGCreateViewWidget1 *pCreateViewWidget1 = static_cast <KPGCreateViewWidget1 *> (m_pPageWidget1);
+		KPGCreateViewWidget2 *pCreateViewWidget2 = static_cast <KPGCreateViewWidget2 *> (m_pPageWidget2);
+		
+		// set selected namespace
+		pCreateViewWidget2->setNamespace(pCreateViewWidget1->m_pComboBoxSchema->currentText());
+				
+		if(pCreateViewWidget1->isDirty1())
+		{
+			// Fill tables list from 1st page
+			pCreateViewWidget2->m_pComboBoxTables->clear();
+			
+			unsigned int i = 0; 
+			QListViewItem * pItem = pCreateViewWidget1->m_pListViewTables->firstChild();
+			MapTableNameAlias mapTableNameAlias;
+			while(pItem)
+			{
+				mapTableNameAlias[pItem->text(0)] = pItem->text(1);
+				
+				pCreateViewWidget2->m_pComboBoxTables->insertItem(
+					* pItem->pixmap(0),
+					pItem->text(0)
+					);
+					
+				if(i++ == 0)
+					pCreateViewWidget2->refreshAvailColumnsList(pItem->text(0));
+					
+				pItem = pItem->nextSibling();
+			}
+			
+			pCreateViewWidget2->setMapTableNameAlias(mapTableNameAlias);
+			pCreateViewWidget1->clearDirty1();
+		}
+	}
+	
+	if(pPage == WizardPage3) // Step 2 - Define joins
+	{
+		//--- Initialize 2nd page
+		KPGCreateViewWidget1 *pCreateViewWidget1 = static_cast <KPGCreateViewWidget1 *> (m_pPageWidget1);
+		KPGCreateViewWidget3 *pCreateViewWidget3 = static_cast <KPGCreateViewWidget3 *> (m_pPageWidget3);
+		
+		// set selected namespace
+    	pCreateViewWidget3->setNamespace(pCreateViewWidget1->m_pComboBoxSchema->currentText());
+		
+		if(pCreateViewWidget1->isDirty2())
+		{
+			// Fill tables list from 1st page
+			pCreateViewWidget3->m_pComboBoxLeftTables->clear();
+			pCreateViewWidget3->m_pComboBoxRightTables->clear();
+			
+			unsigned int i = 0; 
+			QListViewItem * pItem = pCreateViewWidget1->m_pListViewTables->firstChild();
+			MapTableNameAlias mapTableNameAlias;
+			while(pItem)
+			{
+				mapTableNameAlias[pItem->text(0)] = pItem->text(1);
+				
+				// Left tables
+				pCreateViewWidget3->m_pComboBoxLeftTables->insertItem(
+					* pItem->pixmap(0),
+					pItem->text(0)
+					);
+					
+				if(i == 0)
+					pCreateViewWidget3->refreshAvailColumnsList(pItem->text(0), false);
+					
+				// Right tables
+				pCreateViewWidget3->m_pComboBoxRightTables->insertItem(
+					* pItem->pixmap(0),
+					pItem->text(0)
+					);
+					
+				if(i == 0)
+					pCreateViewWidget3->refreshAvailColumnsList(pItem->text(0), true);
+					
+				i++;
+				pItem = pItem->nextSibling();
+			}
+			
+			pCreateViewWidget3->setMapTableNameAlias(mapTableNameAlias);
+			pCreateViewWidget1->clearDirty2();
+		}
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Define view conditions
+	{
+		//--- Initialize 2nd page
+		KPGCreateViewWidget1 *pCreateViewWidget1 = static_cast <KPGCreateViewWidget1 *> (m_pPageWidget1);
+		KPGCreateViewWidget4 *pCreateViewWidget4 = static_cast <KPGCreateViewWidget4 *> (m_pPageWidget4);
+	
+		// set selected namespace
+    	pCreateViewWidget4->setNamespace(pCreateViewWidget1->m_pComboBoxSchema->currentText());
+		
+		if(pCreateViewWidget1->isDirty3())
+		{
+			// Fill tables list from 1st page
+			pCreateViewWidget4->m_pComboBoxTables->clear();
+			
+			unsigned int i = 0; 
+			QListViewItem * pItem = pCreateViewWidget1->m_pListViewTables->firstChild();
+			MapTableNameAlias mapTableNameAlias;
+			while(pItem)
+			{
+				mapTableNameAlias[pItem->text(0)] = pItem->text(1);
+				
+				pCreateViewWidget4->m_pComboBoxTables->insertItem(
+					* pItem->pixmap(0),
+					pItem->text(0)
+					);
+					
+				if(i++ == 0)
+					pCreateViewWidget4->refreshAvailColumnsList(pItem->text(0));
+					
+				pItem = pItem->nextSibling();
+			}
+			
+			pCreateViewWidget4->setMapTableNameAlias(mapTableNameAlias);
+			pCreateViewWidget1->clearDirty3();
+		}
+	}
+	
+	if(pPage == WizardPage5) // Step 5 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL;
+		
+		strSQL.append((static_cast <KPGCreateViewWidget1 *> (m_pPageWidget1))->getSQL());
+		strSQL.append(" AS\nSELECT ");
+		
+		strSQL.append((static_cast <KPGCreateViewWidget2 *> (m_pPageWidget2))->getSQL());
+		strSQL.append("\nFROM ");
+		strSQL.append((static_cast <KPGCreateViewWidget3 *> (m_pPageWidget3))->getSQL());
+		
+		strSQL.append((static_cast <KPGCreateViewWidget4 *> (m_pPageWidget4))->getSQL());
+				
+		strSQL.append(";");
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage6) // Step 6 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG6StepsWizard::showPage(pPage);
+}
+
+#include "kpgcreateviewwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgcreateviewwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: kpgcreateviewwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCREATEVIEWWIZARD_H
+#define KPGCREATEVIEWWIZARD_H
+
+#include "kpg6stepswizard.h"
+
+class KPGDatabase;
+class QListViewItem;
+
+// Map of pair of <QString strTableName, QString strAlias> 	
+typedef QMap<QString, QString> MapTableNameAlias;
+
+/**
+Create view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGCreateViewWizard : public KPG6StepsWizard
+{
+	Q_OBJECT
+public:
+    KPGCreateViewWizard(QWidget *parent, const char *name, KPGDatabase *, QPtrList<QListViewItem> &);
+    ~KPGCreateViewWizard();
+
+protected:
+	virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,34 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdropobjectwidget1.h"
+
+// include files for Qt
+#include <qradiobutton.h>
+
+KPGDropObjectWidget1::KPGDropObjectWidget1(QWidget *parent, const char *name)
+ : KPGDropObjectWidget1Base(parent, name)
+{
+}
+
+
+KPGDropObjectWidget1::~KPGDropObjectWidget1()
+{
+}
+
+// Return SQL statement for DROP
+const QString KPGDropObjectWidget1::getSQL() const
+{
+  QString strSQL(m_pRadioButtonRestrict->isChecked() ? ";" : "\nCASCADE;");
+  return strSQL;
+}
+
+#include "kpgdropobjectwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,32 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDROPOBJECTWIDGET1_H
+#define KPGDROPOBJECTWIDGET1_H
+
+#include "kpgdropobjectwidget1base.h"
+
+/**
+Widget for drop object Wizard
+
+ at author Lumir Vanek
+*/
+class KPGDropObjectWidget1 : public KPGDropObjectWidget1Base
+{
+Q_OBJECT
+public:
+    KPGDropObjectWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGDropObjectWidget1();
+
+		const QString getSQL() const;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,79 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgdropobjectwidget1base.ui'
+**
+** Created: Út dub 1 13:07:37 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdropobjectwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGDropObjectWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGDropObjectWidget1Base::KPGDropObjectWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGDropObjectWidget1Base" );
+    KPGDropObjectWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGDropObjectWidget1BaseLayout"); 
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonRestrict = new QRadioButton( buttonGroup1, "m_pRadioButtonRestrict" );
+    m_pRadioButtonRestrict->setChecked( TRUE );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonRestrict, 0, 0 );
+
+    m_pRadioButtonCascade = new QRadioButton( buttonGroup1, "m_pRadioButtonCascade" );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonCascade, 1, 0 );
+
+    KPGDropObjectWidget1BaseLayout->addWidget( buttonGroup1, 0, 0 );
+    spacer1 = new QSpacerItem( 20, 41, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGDropObjectWidget1BaseLayout->addItem( spacer1, 1, 0 );
+    languageChange();
+    resize( QSize(261, 139).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDropObjectWidget1Base::~KPGDropObjectWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDropObjectWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Drop restriction" ) );
+    buttonGroup1->setTitle( tr2i18n( "Drop dependent objects" ) );
+    m_pRadioButtonRestrict->setText( tr2i18n( "&Restrict" ) );
+    m_pRadioButtonRestrict->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pRadioButtonCascade->setText( tr2i18n( "C&ascade" ) );
+    m_pRadioButtonCascade->setAccel( QKeySequence( tr2i18n( "Alt+A" ) ) );
+}
+
+#include "kpgdropobjectwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDropObjectWidget1Base</class>
+<comment>Widget for drop object Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGDropObjectWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>261</width>
+            <height>139</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Drop restriction</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QButtonGroup" row="0" column="0">
+            <property name="name">
+                <cstring>buttonGroup1</cstring>
+            </property>
+            <property name="title">
+                <string>Drop dependent objects</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QRadioButton" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonRestrict</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Restrict</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+R</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonCascade</cstring>
+                    </property>
+                    <property name="text">
+                        <string>C&amp;ascade</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+A</string>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>41</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,108 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdropobjectwizard.h"
+
+// include files for Qt
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgdropobjectwidget1.h"
+#include "../kpgutil.h"
+
+KPGDropObjectWizard::KPGDropObjectWizard(QWidget *parent, const char *name,
+	const QString &strObjectType,
+	const QString &strNamespace,
+	const QString &strObjectName,
+	const QString &strTable,
+	const QString &strObjectParameters
+	)
+ : KPG3StepsWizard(parent, name)
+{
+	m_strObjectType = strObjectType;
+  	m_strNamespace = strNamespace; 
+	m_strObjectName = strObjectName; 
+	m_strTable = strTable;
+	m_strObjectParameters = strObjectParameters;
+	
+	KPGDropObjectWidget1 *pDropObjectWidget1 = new KPGDropObjectWidget1(WizardPage1, "KPGDropObjectWidget1");
+  	m_pPageWidget1 = pDropObjectWidget1;
+  	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  
+	languageChange();
+	setNextEnabled(WizardPage1, true);
+}
+
+KPGDropObjectWizard::~KPGDropObjectWizard()
+{
+}
+
+void KPGDropObjectWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Drop object" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Drop restriction" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGDropObjectWizard::showPage(QWidget *pPage)
+{
+    if(pPage == WizardPage2) // Step 2 - Review SQL statement
+    {
+        KPGDropObjectWidget1 *pDropObjectWidget1 = static_cast <KPGDropObjectWidget1 *> (m_pPageWidget1);
+        
+            QString strSQL("DROP ");
+            strSQL.append(m_strObjectType);
+            strSQL.append(" ");
+            
+            if(m_strTable.isEmpty())
+            {
+                strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strObjectName));
+                if(m_strObjectType == QString("FUNCTION"))
+                {
+                    strSQL.append(m_strObjectParameters);
+                }
+            }
+            else
+            {
+                strSQL.append(KPGUtil::quotedName(m_strObjectName));	
+                strSQL.append(" ON ");
+                strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTable));
+            }
+            
+            strSQL.append(pDropObjectWidget1->getSQL());
+            
+            m_pTextEditSQL->setText(strSQL);
+    }
+    
+    if(pPage == WizardPage3) // Step 3 - Check operation result
+    {
+        runQuery();
+    }
+    
+    // call parent
+    KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgdropobjectwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdropobjectwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDROPOBJECTWIZARD_H
+#define KPGDROPOBJECTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Drop object Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGDropObjectWizard : public KPG3StepsWizard
+{
+    Q_OBJECT
+public:
+    KPGDropObjectWizard(QWidget *parent, const char *name, const QString &, const QString &, const QString &, const QString & = QString::null, const QString & = QString::null);
+    ~KPGDropObjectWizard();
+				
+protected:
+    virtual void showPage(QWidget *);
+		
+protected:
+	QString m_strObjectType; // type of the dropped table - FUNCTION, RULE, TRIGGER ...
+    QString m_strObjectName; // name of the dropped object
+    QString m_strNamespace;  // name of the namespace
+	QString m_strTable;		 // name of the table, than contain dropped object (index, rule, trigger ...)
+	QString m_strObjectParameters; // another parameters, e.g. function arguments
+		 
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,93 @@
+//
+// C++ Implementation: kpgdroptableobjectwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdroptableobjectwizard.h"
+
+// include files for Qt
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "kpgdropobjectwidget1.h"
+#include "../kpgutil.h"
+
+KPGDropTableObjectWizard::KPGDropTableObjectWizard(QWidget *parent, const char *name,
+	const QString &strObjectType,
+	const QString &strNamespace,
+	const QString &strObjectName,
+	const QString &strTable)
+ : KPG3StepsWizard(parent, name)
+{
+	m_strObjectType = strObjectType;
+  	m_strNamespace = strNamespace; 
+	m_strObjectName = strObjectName; 
+	m_strTable = strTable;
+	
+	KPGDropObjectWidget1 *pDropObjectWidget1 = new KPGDropObjectWidget1(WizardPage1, "KPGDropObjectWidget1");
+  	m_pPageWidget1 = pDropObjectWidget1;
+  	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  
+	languageChange();
+	setNextEnabled(WizardPage1, true);
+}
+
+
+KPGDropTableObjectWizard::~KPGDropTableObjectWizard()
+{
+}
+
+void KPGDropTableObjectWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Drop object" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Drop restriction" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGDropTableObjectWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		KPGDropObjectWidget1 *pDropObjectWidget1 = static_cast <KPGDropObjectWidget1 *> (m_pPageWidget1);
+		
+			QString strSQL("ALTER TABLE ");
+			strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTable));
+			strSQL.append(" DROP ");
+			strSQL.append(m_strObjectType);
+			strSQL.append(" ");
+			strSQL.append(KPGUtil::quotedName(m_strObjectName));
+			
+			strSQL.append(pDropObjectWidget1->getSQL());
+			
+			m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdroptableobjectwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: kpgdroptableobjectwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDROPTABLEOBJECTWIZARD_H
+#define KPGDROPTABLEOBJECTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Wizard for DROP table object, e.g. column, constraint ...
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGDropTableObjectWizard : public KPG3StepsWizard
+{
+public:
+    KPGDropTableObjectWizard(QWidget *parent, const char *name, const QString &, const QString &, const QString &, const QString & = QString::null);
+    ~KPGDropTableObjectWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+		
+protected:
+	QString m_strObjectType; // type of the dropped table - COLUMN, CONSTRAINT ...
+    QString m_strObjectName; // name of the dropped object
+    QString m_strNamespace;  // name of the namespace
+	QString m_strTable;		 // name of the table, that contain dropped object (index, rule, trigger ...)
+	
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,175 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdumpdatabasewizard.h"
+
+#include <qframe.h>
+#include <kiconloader.h>
+#include <kurlrequester.h>
+#include <kcombobox.h>
+#include <knuminput.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+#include <dcopclient.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qtextedit.h>
+
+#include "konsoleviewwidget.h"
+
+
+KPGDumpDatabaseWizard::KPGDumpDatabaseWizard(QWidget *parent, const char *name, DCOPClient *pDcopClient, const QString &strDatabase, const QString &strHostname, const QString &strPort, const QString &strUsername)
+ : KPGDumpDatabaseWizardBase(parent, name)
+{
+  m_pDcopClient = pDcopClient;
+  m_strDatabase = strDatabase;
+  m_strHostname = strHostname;
+  m_strPort = strPort;
+  m_strUsername = strUsername;
+  
+  m_pPartManager = new KParts::PartManager(this);
+  
+  QVBoxLayout *pLayout = new QVBoxLayout(m_pFrameConsole);
+  
+  m_pConsoleWidget = new KonsoleViewWidget(m_pPartManager, m_pFrameConsole);
+  connect(m_pPartManager, SIGNAL(activePartChanged(KParts::Part*)), m_pConsoleWidget, SLOT(activePartChanged(KParts::Part*)));
+
+  pLayout->addWidget(m_pConsoleWidget);
+  
+  m_pConsoleWidget->setIcon( SmallIcon("konsole") );
+  m_pConsoleWidget->setCaption(i18n("Konsole"));
+  
+  setNextEnabled(WizardPage1, false);
+}
+
+
+KPGDumpDatabaseWizard::~KPGDumpDatabaseWizard()
+{
+  delete m_pConsoleWidget;
+  delete m_pPartManager;
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGDumpDatabaseWizard::showPage(QWidget *pPage)
+{
+  // call parent
+  KPGDumpDatabaseWizardBase::showPage(pPage);
+  
+  if(pPage == WizardPage2) 
+  {
+    m_pTextEditCommand->setText(getCommand());
+  }
+  
+  if(pPage == WizardPage3) 
+  {
+    m_dcopTalkThread.setDcopClient(m_pDcopClient);
+    m_dcopTalkThread.setCommand(m_pTextEditCommand->text());
+    m_dcopTalkThread.start(); // send command to m_pConsoleWidget via DCOP
+    
+    setFinishEnabled(WizardPage3, true);
+  }
+}
+
+void KPGDumpDatabaseWizard::slotOutputFileChanged(const QString &strOutputFile)
+{
+  setNextEnabled(WizardPage1, !strOutputFile.isEmpty());
+}
+
+void KPGDumpDatabaseWizard::slotFormatChanged(int iFormat)
+{
+  m_pCheckBoxOnlyData->setEnabled(iFormat == 0); // This option is only meaningful for the plain-text format. 
+  m_pCheckBoxCreate->setEnabled(iFormat == 0); // This option is only meaningful for the plain-text format. 
+  m_pIntNumInputCompressionLevel->setEnabled(iFormat == 2); // Currently only the custom archive format supports compression.
+  m_pCheckBoxIncludeBlobs->setEnabled(iFormat != 0); // plain-text format not support large objects
+}
+
+void KPGDumpDatabaseWizard::slotOnlyDataToggled(bool bToggled)
+{
+  m_pCheckBoxOnlySchema->setEnabled(!bToggled);
+  m_pCheckBoxDisableTriggers->setEnabled(bToggled);
+}
+
+void KPGDumpDatabaseWizard::slotOnlySchemaToggled(bool bToggled)
+{
+  m_pCheckBoxOnlyData->setEnabled(!bToggled);
+}    
+
+const QString KPGDumpDatabaseWizard::getCommand() const
+{
+  QString strCommand("pg_dump " + m_strDatabase + " --file=");
+  
+  strCommand.append(m_pURLRequesterOutputFile->url());
+  
+  strCommand.append(" --host=" + m_strHostname);  
+  strCommand.append(" --port=" + m_strPort);  
+  strCommand.append(" -U " + m_strUsername);  
+  
+  if(m_pComboBoxFormat->currentItem() == 0)
+    strCommand.append(" --format=p");
+  if(m_pComboBoxFormat->currentItem() == 1)
+    strCommand.append(" --format=t");
+  if(m_pComboBoxFormat->currentItem() == 2)
+  {
+    strCommand.append(" --format=c");
+    strCommand.append(" --compress=" + QString("%1").arg(m_pIntNumInputCompressionLevel->value()));
+  }
+  
+  if(m_pCheckBoxOnlyData->isChecked() && (m_pComboBoxFormat->currentItem() == 0))
+    strCommand.append(" --data-only");  
+    
+  if(m_pCheckBoxOnlySchema->isChecked())
+    strCommand.append(" --schema-only");   
+    
+  if(m_pCheckBoxIncludeBlobs->isChecked() && (m_pComboBoxFormat->currentItem() != 0))
+    strCommand.append(" --blobs");
+    
+  if(m_pCheckBoxClean->isChecked())
+    strCommand.append(" --clean");
+    
+  if(m_pCheckBoxCreate->isChecked())
+    strCommand.append(" --create");
+    
+  if(m_pCheckBoxInserts->isChecked())
+    strCommand.append(" --inserts");
+    
+  if(m_pCheckBoxColumnInserts->isChecked())
+    strCommand.append(" --column-inserts");
+    
+  if(m_pCheckBoxIgnoreVersion->isChecked())
+    strCommand.append(" --ignore-version");
+        
+  if(m_pCheckBoxOIDs->isChecked())
+    strCommand.append(" --oids");
+    
+  if(m_pCheckBoxNoOwner->isChecked())
+    strCommand.append(" --no-owner");
+    
+  if(m_pCheckBoxVerbose->isChecked())
+    strCommand.append(" --verbose");
+  
+  if(m_pCheckBoxNoPrivileges->isChecked())
+    strCommand.append(" --no-acl");
+  
+  if(m_pCheckBoxDisDollarQuoting->isChecked())
+    strCommand.append(" --disable-dollar-quoting");  
+    
+  if(m_pCheckBoxOnlyData->isChecked() && m_pCheckBoxDisableTriggers->isChecked())
+    strCommand.append(" --disable-triggers");  
+    
+  if(m_pCeckBoxSetSessionAuth->isChecked())
+    strCommand.append(" --use-set-session-authorization");      
+    
+  return strCommand;
+}
+
+
+#include "kpgdumpdatabasewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,62 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDUMPDATABASEWIZARD_H
+#define KPGDUMPDATABASEWIZARD_H
+
+#include "kpgdumpdatabasewizardbase.h"
+
+#include <kparts/partmanager.h>
+#include <qguardedptr.h>
+
+#include "../kpgdcoptalkthread.h"
+
+class KonsoleViewWidget;
+class DCOPClient;
+
+/**
+DUMP database wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGDumpDatabaseWizard : public KPGDumpDatabaseWizardBase
+{
+Q_OBJECT
+public:
+    KPGDumpDatabaseWizard(QWidget *parent, const char *name, DCOPClient *, const QString &, const QString &, const QString &, const QString &);
+    ~KPGDumpDatabaseWizard();
+    
+    KParts::PartManager * partManager() const { return m_pPartManager; }
+
+protected:
+    KParts::PartManager *m_pPartManager;
+    DCOPClient *m_pDcopClient;
+    QGuardedPtr<KonsoleViewWidget> m_pConsoleWidget;
+    KPGDcopTalkThread m_dcopTalkThread;
+    
+protected slots:
+    virtual void slotOutputFileChanged(const QString &);
+    virtual void slotFormatChanged(int);
+    virtual void slotOnlyDataToggled(bool);
+    virtual void slotOnlySchemaToggled(bool);
+    
+protected:
+    virtual void showPage(QWidget *);
+    const QString getCommand() const;
+    
+    QString m_strDatabase;
+    QString m_strHostname;
+    QString m_strPort;
+    QString m_strUsername;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,275 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgdumpdatabasewizardbase.ui'
+**
+** Created: Út dub 1 13:07:42 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgdumpdatabasewizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <qlabel.h>
+#include <kurlrequester.h>
+#include <kcombobox.h>
+#include <knuminput.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qtextedit.h>
+#include <qframe.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kurlrequester.h"
+#include "klineedit.h"
+#include "kpushbutton.h"
+#include "kcombobox.h"
+#include "knuminput.h"
+
+/*
+ *  Constructs a KPGDumpDatabaseWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPGDumpDatabaseWizardBase::KPGDumpDatabaseWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGDumpDatabaseWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( WizardPage1, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pURLRequesterOutputFile = new KURLRequester( WizardPage1, "m_pURLRequesterOutputFile" );
+    layout1->addWidget( m_pURLRequesterOutputFile );
+
+    WizardPage1Layout->addMultiCellLayout( layout1, 0, 0, 0, 2 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( WizardPage1, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pComboBoxFormat = new KComboBox( FALSE, WizardPage1, "m_pComboBoxFormat" );
+    layout2->addWidget( m_pComboBoxFormat );
+
+    WizardPage1Layout->addLayout( layout2, 1, 0 );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel3 = new QLabel( WizardPage1, "textLabel3" );
+    layout3->addWidget( textLabel3 );
+
+    m_pIntNumInputCompressionLevel = new KIntNumInput( WizardPage1, "m_pIntNumInputCompressionLevel" );
+    m_pIntNumInputCompressionLevel->setEnabled( FALSE );
+    m_pIntNumInputCompressionLevel->setMinValue( 0 );
+    m_pIntNumInputCompressionLevel->setMaxValue( 9 );
+    layout3->addWidget( m_pIntNumInputCompressionLevel );
+
+    WizardPage1Layout->addLayout( layout3, 1, 1 );
+    spacer3 = new QSpacerItem( 61, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    WizardPage1Layout->addItem( spacer3, 1, 2 );
+    spacer2 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    WizardPage1Layout->addItem( spacer2, 3, 1 );
+
+    groupBox1 = new QGroupBox( WizardPage1, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxOnlyData = new QCheckBox( groupBox1, "m_pCheckBoxOnlyData" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxOnlyData, 0, 0 );
+
+    m_pCheckBoxOnlySchema = new QCheckBox( groupBox1, "m_pCheckBoxOnlySchema" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxOnlySchema, 1, 0 );
+
+    m_pCheckBoxIncludeBlobs = new QCheckBox( groupBox1, "m_pCheckBoxIncludeBlobs" );
+    m_pCheckBoxIncludeBlobs->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pCheckBoxIncludeBlobs, 2, 0 );
+
+    m_pCheckBoxNoPrivileges = new QCheckBox( groupBox1, "m_pCheckBoxNoPrivileges" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxNoPrivileges, 11, 0 );
+
+    m_pCheckBoxNoOwner = new QCheckBox( groupBox1, "m_pCheckBoxNoOwner" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxNoOwner, 9, 0 );
+
+    m_pCheckBoxInserts = new QCheckBox( groupBox1, "m_pCheckBoxInserts" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxInserts, 5, 0 );
+
+    m_pCheckBoxColumnInserts = new QCheckBox( groupBox1, "m_pCheckBoxColumnInserts" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxColumnInserts, 6, 0 );
+
+    m_pCeckBoxSetSessionAuth = new QCheckBox( groupBox1, "m_pCeckBoxSetSessionAuth" );
+
+    groupBox1Layout->addWidget( m_pCeckBoxSetSessionAuth, 14, 0 );
+
+    m_pCheckBoxDisableTriggers = new QCheckBox( groupBox1, "m_pCheckBoxDisableTriggers" );
+    m_pCheckBoxDisableTriggers->setEnabled( FALSE );
+
+    groupBox1Layout->addWidget( m_pCheckBoxDisableTriggers, 13, 0 );
+
+    m_pCheckBoxClean = new QCheckBox( groupBox1, "m_pCheckBoxClean" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxClean, 4, 0 );
+
+    m_pCheckBoxVerbose = new QCheckBox( groupBox1, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setChecked( TRUE );
+
+    groupBox1Layout->addWidget( m_pCheckBoxVerbose, 10, 0 );
+
+    m_pCheckBoxOIDs = new QCheckBox( groupBox1, "m_pCheckBoxOIDs" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxOIDs, 8, 0 );
+
+    m_pCheckBoxDisDollarQuoting = new QCheckBox( groupBox1, "m_pCheckBoxDisDollarQuoting" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxDisDollarQuoting, 12, 0 );
+
+    m_pCheckBoxCreate = new QCheckBox( groupBox1, "m_pCheckBoxCreate" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxCreate, 3, 0 );
+
+    m_pCheckBoxIgnoreVersion = new QCheckBox( groupBox1, "m_pCheckBoxIgnoreVersion" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxIgnoreVersion, 7, 0 );
+
+    WizardPage1Layout->addMultiCellWidget( groupBox1, 2, 2, 0, 2 );
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+
+    m_pTextEditCommand = new QTextEdit( WizardPage2, "m_pTextEditCommand" );
+
+    WizardPage2Layout->addWidget( m_pTextEditCommand, 0, 0 );
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+
+    m_pFrameConsole = new QFrame( WizardPage3, "m_pFrameConsole" );
+    m_pFrameConsole->setFrameShape( QFrame::StyledPanel );
+    m_pFrameConsole->setFrameShadow( QFrame::Raised );
+
+    WizardPage3Layout->addWidget( m_pFrameConsole, 0, 0 );
+    addPage( WizardPage3, QString("") );
+    languageChange();
+    resize( QSize(527, 701).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pURLRequesterOutputFile, SIGNAL( textChanged(const QString&) ), this, SLOT( slotOutputFileChanged(const QString&) ) );
+    connect( m_pComboBoxFormat, SIGNAL( activated(int) ), this, SLOT( slotFormatChanged(int) ) );
+    connect( m_pCheckBoxOnlyData, SIGNAL( toggled(bool) ), this, SLOT( slotOnlyDataToggled(bool) ) );
+    connect( m_pCheckBoxOnlySchema, SIGNAL( toggled(bool) ), this, SLOT( slotOnlySchemaToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pURLRequesterOutputFile, m_pComboBoxFormat );
+    setTabOrder( m_pComboBoxFormat, m_pIntNumInputCompressionLevel );
+    setTabOrder( m_pIntNumInputCompressionLevel, m_pCheckBoxOnlyData );
+    setTabOrder( m_pCheckBoxOnlyData, m_pCheckBoxOnlySchema );
+    setTabOrder( m_pCheckBoxOnlySchema, m_pCheckBoxIncludeBlobs );
+    setTabOrder( m_pCheckBoxIncludeBlobs, m_pCheckBoxCreate );
+    setTabOrder( m_pCheckBoxCreate, m_pCheckBoxClean );
+    setTabOrder( m_pCheckBoxClean, m_pCheckBoxInserts );
+    setTabOrder( m_pCheckBoxInserts, m_pCheckBoxColumnInserts );
+    setTabOrder( m_pCheckBoxColumnInserts, m_pCheckBoxIgnoreVersion );
+    setTabOrder( m_pCheckBoxIgnoreVersion, m_pCheckBoxOIDs );
+    setTabOrder( m_pCheckBoxOIDs, m_pCheckBoxNoOwner );
+    setTabOrder( m_pCheckBoxNoOwner, m_pCheckBoxVerbose );
+    setTabOrder( m_pCheckBoxVerbose, m_pCheckBoxNoPrivileges );
+    setTabOrder( m_pCheckBoxNoPrivileges, m_pCheckBoxDisDollarQuoting );
+    setTabOrder( m_pCheckBoxDisDollarQuoting, m_pCheckBoxDisableTriggers );
+    setTabOrder( m_pCheckBoxDisableTriggers, m_pCeckBoxSetSessionAuth );
+
+    // buddies
+    textLabel1->setBuddy( m_pURLRequesterOutputFile );
+    textLabel2->setBuddy( m_pComboBoxFormat );
+    textLabel3->setBuddy( m_pIntNumInputCompressionLevel );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGDumpDatabaseWizardBase::~KPGDumpDatabaseWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGDumpDatabaseWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "Dump database" ) );
+    textLabel1->setText( tr2i18n( "&Output file:" ) );
+    textLabel2->setText( tr2i18n( "&Format:" ) );
+    m_pComboBoxFormat->clear();
+    m_pComboBoxFormat->insertItem( tr2i18n( "plain-text SQL" ) );
+    m_pComboBoxFormat->insertItem( tr2i18n( "tar archive" ) );
+    m_pComboBoxFormat->insertItem( tr2i18n( "custom archive" ) );
+    textLabel3->setText( tr2i18n( "Compression &level:" ) );
+    groupBox1->setTitle( tr2i18n( "Options" ) );
+    m_pCheckBoxOnlyData->setText( tr2i18n( "Dump only the data, not the schema" ) );
+    m_pCheckBoxOnlySchema->setText( tr2i18n( "Dump only the object definitions (schema)" ) );
+    m_pCheckBoxIncludeBlobs->setText( tr2i18n( "Include large objects" ) );
+    m_pCheckBoxNoPrivileges->setText( tr2i18n( "No privileges" ) );
+    m_pCheckBoxNoOwner->setText( tr2i18n( "No owner" ) );
+    m_pCheckBoxInserts->setText( tr2i18n( "Dump data as INSERT commands" ) );
+    m_pCheckBoxColumnInserts->setText( tr2i18n( "With explicit column names" ) );
+    m_pCeckBoxSetSessionAuth->setText( tr2i18n( "Set session authorization" ) );
+    m_pCheckBoxDisableTriggers->setText( tr2i18n( "Disable triggers" ) );
+    m_pCheckBoxClean->setText( tr2i18n( "Generate 'DROP objects' statements" ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "Verbose mode" ) );
+    m_pCheckBoxOIDs->setText( tr2i18n( "Dump OIDs" ) );
+    m_pCheckBoxDisDollarQuoting->setText( tr2i18n( "Disable dollar quoting for function" ) );
+    m_pCheckBoxCreate->setText( tr2i18n( "Include command to CREATE the database" ) );
+    m_pCheckBoxIgnoreVersion->setText( tr2i18n( "Ignore version mismatch" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Dump database parameters" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - Review command" ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - Console with operation" ) );
+}
+
+void KPGDumpDatabaseWizardBase::slotOutputFileChanged(const QString&)
+{
+    qWarning( "KPGDumpDatabaseWizardBase::slotOutputFileChanged(const QString&): Not implemented yet" );
+}
+
+void KPGDumpDatabaseWizardBase::slotFormatChanged(int)
+{
+    qWarning( "KPGDumpDatabaseWizardBase::slotFormatChanged(int): Not implemented yet" );
+}
+
+void KPGDumpDatabaseWizardBase::slotOnlyDataToggled(bool)
+{
+    qWarning( "KPGDumpDatabaseWizardBase::slotOnlyDataToggled(bool): Not implemented yet" );
+}
+
+void KPGDumpDatabaseWizardBase::slotOnlySchemaToggled(bool)
+{
+    qWarning( "KPGDumpDatabaseWizardBase::slotOnlySchemaToggled(bool): Not implemented yet" );
+}
+
+#include "kpgdumpdatabasewizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgdumpdatabasewizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,413 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGDumpDatabaseWizardBase</class>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPGDumpDatabaseWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>527</width>
+            <height>701</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Dump database</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Dump database parameters</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="3">
+                <property name="name">
+                    <cstring>layout1</cstring>
+                </property>
+                <vbox>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel">
+                        <property name="name">
+                            <cstring>textLabel1</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Output file:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pURLRequesterOutputFile</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KURLRequester">
+                        <property name="name">
+                            <cstring>m_pURLRequesterOutputFile</cstring>
+                        </property>
+                    </widget>
+                </vbox>
+            </widget>
+            <widget class="QLayoutWidget" row="1" column="0">
+                <property name="name">
+                    <cstring>layout2</cstring>
+                </property>
+                <vbox>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel">
+                        <property name="name">
+                            <cstring>textLabel2</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Format:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pComboBoxFormat</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KComboBox">
+                        <item>
+                            <property name="text">
+                                <string>plain-text SQL</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>tar archive</string>
+                            </property>
+                        </item>
+                        <item>
+                            <property name="text">
+                                <string>custom archive</string>
+                            </property>
+                        </item>
+                        <property name="name">
+                            <cstring>m_pComboBoxFormat</cstring>
+                        </property>
+                    </widget>
+                </vbox>
+            </widget>
+            <widget class="QLayoutWidget" row="1" column="1">
+                <property name="name">
+                    <cstring>layout3</cstring>
+                </property>
+                <vbox>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLabel">
+                        <property name="name">
+                            <cstring>textLabel3</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Compression &amp;level:</string>
+                        </property>
+                        <property name="buddy" stdset="0">
+                            <cstring>m_pIntNumInputCompressionLevel</cstring>
+                        </property>
+                    </widget>
+                    <widget class="KIntNumInput">
+                        <property name="name">
+                            <cstring>m_pIntNumInputCompressionLevel</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="minValue">
+                            <number>0</number>
+                        </property>
+                        <property name="maxValue">
+                            <number>9</number>
+                        </property>
+                    </widget>
+                </vbox>
+            </widget>
+            <spacer row="1" column="2">
+                <property name="name">
+                    <cstring>spacer3</cstring>
+                </property>
+                <property name="orientation">
+                    <enum>Horizontal</enum>
+                </property>
+                <property name="sizeType">
+                    <enum>Expanding</enum>
+                </property>
+                <property name="sizeHint">
+                    <size>
+                        <width>61</width>
+                        <height>20</height>
+                    </size>
+                </property>
+            </spacer>
+            <spacer row="3" column="1">
+                <property name="name">
+                    <cstring>spacer2</cstring>
+                </property>
+                <property name="orientation">
+                    <enum>Vertical</enum>
+                </property>
+                <property name="sizeType">
+                    <enum>Expanding</enum>
+                </property>
+                <property name="sizeHint">
+                    <size>
+                        <width>20</width>
+                        <height>20</height>
+                    </size>
+                </property>
+            </spacer>
+            <widget class="QGroupBox" row="2" column="0" rowspan="1" colspan="3">
+                <property name="name">
+                    <cstring>groupBox1</cstring>
+                </property>
+                <property name="title">
+                    <string>Options</string>
+                </property>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QCheckBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxOnlyData</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Dump only the data, not the schema</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxOnlySchema</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Dump only the object definitions (schema)</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxIncludeBlobs</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>Include large objects</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="11" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxNoPrivileges</cstring>
+                        </property>
+                        <property name="text">
+                            <string>No privileges</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="9" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxNoOwner</cstring>
+                        </property>
+                        <property name="text">
+                            <string>No owner</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="5" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxInserts</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Dump data as INSERT commands</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="6" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxColumnInserts</cstring>
+                        </property>
+                        <property name="text">
+                            <string>With explicit column names</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="14" column="0">
+                        <property name="name">
+                            <cstring>m_pCeckBoxSetSessionAuth</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Set session authorization</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="13" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxDisableTriggers</cstring>
+                        </property>
+                        <property name="enabled">
+                            <bool>false</bool>
+                        </property>
+                        <property name="text">
+                            <string>Disable triggers</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="4" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxClean</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Generate 'DROP objects' statements</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="10" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxVerbose</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Verbose mode</string>
+                        </property>
+                        <property name="checked">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="8" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxOIDs</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Dump OIDs</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="12" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxDisDollarQuoting</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Disable dollar quoting for function</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxCreate</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Include command to CREATE the database</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="7" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxIgnoreVersion</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Ignore version mismatch</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - Review command</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditCommand</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - Console with operation</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QFrame" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pFrameConsole</cstring>
+                </property>
+                <property name="frameShape">
+                    <enum>StyledPanel</enum>
+                </property>
+                <property name="frameShadow">
+                    <enum>Raised</enum>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pURLRequesterOutputFile</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGDumpDatabaseWizardBase</receiver>
+        <slot>slotOutputFileChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pComboBoxFormat</sender>
+        <signal>activated(int)</signal>
+        <receiver>KPGDumpDatabaseWizardBase</receiver>
+        <slot>slotFormatChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxOnlyData</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGDumpDatabaseWizardBase</receiver>
+        <slot>slotOnlyDataToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxOnlySchema</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGDumpDatabaseWizardBase</receiver>
+        <slot>slotOnlySchemaToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pURLRequesterOutputFile</tabstop>
+    <tabstop>m_pComboBoxFormat</tabstop>
+    <tabstop>m_pIntNumInputCompressionLevel</tabstop>
+    <tabstop>m_pCheckBoxOnlyData</tabstop>
+    <tabstop>m_pCheckBoxOnlySchema</tabstop>
+    <tabstop>m_pCheckBoxIncludeBlobs</tabstop>
+    <tabstop>m_pCheckBoxCreate</tabstop>
+    <tabstop>m_pCheckBoxClean</tabstop>
+    <tabstop>m_pCheckBoxInserts</tabstop>
+    <tabstop>m_pCheckBoxColumnInserts</tabstop>
+    <tabstop>m_pCheckBoxIgnoreVersion</tabstop>
+    <tabstop>m_pCheckBoxOIDs</tabstop>
+    <tabstop>m_pCheckBoxNoOwner</tabstop>
+    <tabstop>m_pCheckBoxVerbose</tabstop>
+    <tabstop>m_pCheckBoxNoPrivileges</tabstop>
+    <tabstop>m_pCheckBoxDisDollarQuoting</tabstop>
+    <tabstop>m_pCheckBoxDisableTriggers</tabstop>
+    <tabstop>m_pCeckBoxSetSessionAuth</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotOutputFileChanged(const QString &amp;)</slot>
+    <slot access="protected">slotFormatChanged(int)</slot>
+    <slot access="protected">slotOnlyDataToggled(bool)</slot>
+    <slot access="protected">slotOnlySchemaToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kcombobox.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifycolumndefaultwidget1.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <klineedit.h>
+
+
+KPGModifyColumnDefaultWidget1::KPGModifyColumnDefaultWidget1(QWidget *parent, const char *name)
+ : KPGModifyColumnDefaultWidget1Base(parent, name)
+{
+  m_pLineEditDefaultExpression->setFocus();
+}
+
+
+KPGModifyColumnDefaultWidget1::~KPGModifyColumnDefaultWidget1()
+{
+}
+
+void KPGModifyColumnDefaultWidget1::slotDefaultExpressionChanged(const QString& strText)
+{
+  emit sigEnableNextButton(! strText.isEmpty());
+}
+
+// Return part of SQL statement for ALTER TABLE ALTER COLUMN
+const QString KPGModifyColumnDefaultWidget1::getSQL() const
+{
+  	QString strSQL("SET DEFAULT ");
+  
+  	if(m_pCheckBoxQuotedDefault->isChecked() == false)
+		strSQL.append(m_pLineEditDefaultExpression->text());
+	else
+		strSQL.append("'" + m_pLineEditDefaultExpression->text() + "'");
+  
+  return strSQL;
+}
+
+#include "kpgmodifycolumndefaultwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYCOLUMNDEFAULTWIDGET1_H
+#define KPGMODIFYCOLUMNDEFAULTWIDGET1_H
+
+#include "kpgmodifycolumndefaultwidget1base.h"
+
+/**
+Widget for alter column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyColumnDefaultWidget1 : public KPGModifyColumnDefaultWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifyColumnDefaultWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGModifyColumnDefaultWidget1();
+
+    const QString getSQL() const;
+    
+protected slots:
+
+    virtual void slotDefaultExpressionChanged(const QString &);
+                    
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,88 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.ui'
+**
+** Created: Út dub 1 13:07:36 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifycolumndefaultwidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGModifyColumnDefaultWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifyColumnDefaultWidget1Base::KPGModifyColumnDefaultWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifyColumnDefaultWidget1Base" );
+    KPGModifyColumnDefaultWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifyColumnDefaultWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditDefaultExpression = new KLineEdit( this, "m_pLineEditDefaultExpression" );
+    layout1->addWidget( m_pLineEditDefaultExpression );
+
+    KPGModifyColumnDefaultWidget1BaseLayout->addMultiCellLayout( layout1, 0, 0, 0, 1 );
+    spacer1 = new QSpacerItem( 20, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGModifyColumnDefaultWidget1BaseLayout->addItem( spacer1, 2, 0 );
+
+    m_pCheckBoxQuotedDefault = new QCheckBox( this, "m_pCheckBoxQuotedDefault" );
+    m_pCheckBoxQuotedDefault->setChecked( FALSE );
+
+    KPGModifyColumnDefaultWidget1BaseLayout->addWidget( m_pCheckBoxQuotedDefault, 1, 1 );
+    spacer2 = new QSpacerItem( 101, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGModifyColumnDefaultWidget1BaseLayout->addItem( spacer2, 1, 0 );
+    languageChange();
+    resize( QSize(305, 134).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditDefaultExpression, SIGNAL( textChanged(const QString&) ), this, SLOT( slotDefaultExpressionChanged(const QString&) ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditDefaultExpression );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifyColumnDefaultWidget1Base::~KPGModifyColumnDefaultWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifyColumnDefaultWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Enter default value" ) );
+    textLabel1->setText( tr2i18n( "&Default expression:" ) );
+    m_pCheckBoxQuotedDefault->setText( tr2i18n( "&Quoted" ) );
+    m_pCheckBoxQuotedDefault->setAccel( QKeySequence( tr2i18n( "Alt+Q" ) ) );
+}
+
+void KPGModifyColumnDefaultWidget1Base::slotDefaultExpressionChanged(const QString&)
+{
+    qWarning( "KPGModifyColumnDefaultWidget1Base::slotDefaultExpressionChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgmodifycolumndefaultwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumndefaultwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,115 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifyColumnDefaultWidget1Base</class>
+<comment>Widget for Alter column Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifyColumnDefaultWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>305</width>
+            <height>134</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Enter default value</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Default expression:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDefaultExpression</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDefaultExpression</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QCheckBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pCheckBoxQuotedDefault</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Quoted</string>
+            </property>
+            <property name="accel">
+                <string>Alt+Q</string>
+            </property>
+            <property name="checked">
+                <bool>false</bool>
+            </property>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>101</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditDefaultExpression</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGModifyColumnDefaultWidget1Base</receiver>
+        <slot>slotDefaultExpressionChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotDefaultExpressionChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifycolumnstatswidget1.h"
+
+// include files for Qt
+#include <knuminput.h>
+
+
+KPGModifyColumnStatsWidget1::KPGModifyColumnStatsWidget1(QWidget *parent, const char *name)
+ : KPGModifyColumnStatsWidget1Base(parent, name)
+{
+}
+
+
+KPGModifyColumnStatsWidget1::~KPGModifyColumnStatsWidget1()
+{
+}
+
+// Return part of SQL stetement for ALTER TABLE ALTER COLUMN
+const QString KPGModifyColumnStatsWidget1::getSQL() const
+{
+  QString strSQL("SET STATISTICS ");
+  strSQL.append(QString("%1").arg(m_pIntNumInputStatistics->value()));
+  return strSQL;
+}
+
+#include "kpgmodifycolumnstatswidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYCOLUMNSTATSWIDGET1_H
+#define KPGMODIFYCOLUMNSTATSWIDGET1_H
+
+#include "kpgmodifycolumnstatswidget1base.h"
+
+/**
+Widget for alter column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyColumnStatsWidget1 : public KPGModifyColumnStatsWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifyColumnStatsWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGModifyColumnStatsWidget1();
+        
+    const QString getSQL() const;
+        
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,74 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifycolumnstatswidget1base.ui'
+**
+** Created: Út dub 1 13:07:37 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifycolumnstatswidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <knuminput.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "knuminput.h"
+
+/*
+ *  Constructs a KPGModifyColumnStatsWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifyColumnStatsWidget1Base::KPGModifyColumnStatsWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifyColumnStatsWidget1Base" );
+    KPGModifyColumnStatsWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifyColumnStatsWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pIntNumInputStatistics = new KIntNumInput( this, "m_pIntNumInputStatistics" );
+    m_pIntNumInputStatistics->setMinValue( -1 );
+    m_pIntNumInputStatistics->setMaxValue( 1000 );
+    layout1->addWidget( m_pIntNumInputStatistics );
+
+    KPGModifyColumnStatsWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer1 = new QSpacerItem( 21, 41, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGModifyColumnStatsWidget1BaseLayout->addItem( spacer1, 1, 0 );
+    spacer2 = new QSpacerItem( 61, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGModifyColumnStatsWidget1BaseLayout->addItem( spacer2, 0, 1 );
+    languageChange();
+    resize( QSize(186, 100).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pIntNumInputStatistics );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifyColumnStatsWidget1Base::~KPGModifyColumnStatsWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifyColumnStatsWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Set column statistics" ) );
+    textLabel1->setText( tr2i18n( "Column statistics:" ) );
+}
+
+#include "kpgmodifycolumnstatswidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstatswidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifyColumnStatsWidget1Base</class>
+<comment>Widget for Alter column Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifyColumnStatsWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>186</width>
+            <height>100</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Set column statistics</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Column statistics:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pIntNumInputStatistics</cstring>
+                    </property>
+                </widget>
+                <widget class="KIntNumInput">
+                    <property name="name">
+                        <cstring>m_pIntNumInputStatistics</cstring>
+                    </property>
+                    <property name="minValue">
+                        <number>-1</number>
+                    </property>
+                    <property name="maxValue">
+                        <number>1000</number>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>41</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>61</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifycolumnstoragewidget1.h"
+
+// include files for KDE
+#include <kcombobox.h>
+
+
+KPGModifyColumnStorageWidget1::KPGModifyColumnStorageWidget1(QWidget *parent, const char *name)
+ : KPGModifyColumnStorageWidget1Base(parent, name)
+{
+}
+
+
+KPGModifyColumnStorageWidget1::~KPGModifyColumnStorageWidget1()
+{
+}
+
+// Return part of SQL stetement for ALTER TABLE ALTER COLUMN
+const QString KPGModifyColumnStorageWidget1::getSQL() const
+{
+  QString strSQL("SET STORAGE ");
+  strSQL.append(m_pComboBoxStorage->currentText());
+  return strSQL;
+}
+
+#include "kpgmodifycolumnstoragewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYCOLUMNSTORAGEWIDGET1_H
+#define KPGMODIFYCOLUMNSTORAGEWIDGET1_H
+
+#include "kpgmodifycolumnstoragewidget1base.h"
+
+/**
+Widget for alter column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyColumnStorageWidget1 : public KPGModifyColumnStorageWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifyColumnStorageWidget1(QWidget *parent = 0, const char *name = 0);
+    ~KPGModifyColumnStorageWidget1();
+        
+    const QString getSQL() const;
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,77 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.ui'
+**
+** Created: Út dub 1 13:07:36 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifycolumnstoragewidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGModifyColumnStorageWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifyColumnStorageWidget1Base::KPGModifyColumnStorageWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifyColumnStorageWidget1Base" );
+    KPGModifyColumnStorageWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifyColumnStorageWidget1BaseLayout"); 
+    spacer1 = new QSpacerItem( 21, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGModifyColumnStorageWidget1BaseLayout->addItem( spacer1, 1, 0 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxStorage = new KComboBox( FALSE, this, "m_pComboBoxStorage" );
+    layout1->addWidget( m_pComboBoxStorage );
+
+    KPGModifyColumnStorageWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer2 = new QSpacerItem( 31, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGModifyColumnStorageWidget1BaseLayout->addItem( spacer2, 0, 1 );
+    languageChange();
+    resize( QSize(142, 87).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxStorage );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifyColumnStorageWidget1Base::~KPGModifyColumnStorageWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifyColumnStorageWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Choose storage type" ) );
+    textLabel1->setText( tr2i18n( "&Storage type:" ) );
+    m_pComboBoxStorage->clear();
+    m_pComboBoxStorage->insertItem( tr2i18n( "PLAIN" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "EXTERNAL" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "EXTENDED" ) );
+    m_pComboBoxStorage->insertItem( tr2i18n( "MAIN" ) );
+}
+
+#include "kpgmodifycolumnstoragewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumnstoragewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifyColumnStorageWidget1Base</class>
+<comment>Widget for Alter column Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifyColumnStorageWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>142</width>
+            <height>87</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Choose storage type</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Storage type:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxStorage</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <item>
+                        <property name="text">
+                            <string>PLAIN</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>EXTERNAL</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>EXTENDED</string>
+                        </property>
+                    </item>
+                    <item>
+                        <property name="text">
+                            <string>MAIN</string>
+                        </property>
+                    </item>
+                    <property name="name">
+                        <cstring>m_pComboBoxStorage</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>31</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,419 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifycolumntypewidget1.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qspinbox.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <klineedit.h>
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgdomainsfolder.h"
+
+
+KPGModifyColumnTypeWidget1::KPGModifyColumnTypeWidget1(QWidget *parent, const char *name, KPGDomainsFolder *pDomainsFolder)
+ : KPGModifyColumnTypeWidget1Base(parent, name)
+{
+  fillBasicDatatypes();
+  fillDomains(pDomainsFolder);
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+  slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+void KPGModifyColumnTypeWidget1::fillBasicDatatypes()
+{
+  m_pComboBoxDataType->clear();
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "char(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "varchar(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnChar, "text");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnXml, "xml");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "smallint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "integer");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigint");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "decimal(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "numeric(p, s)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "real");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "double precision");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "money");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "serial");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNum, "bigserial");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnUuid, "uuid");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit(n)");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBit, "bit varying(n)");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBool, "bool");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnTime, "time [(p)] with time zone");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "date");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)]");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "timestamp [(p)] with time zone");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnDate, "interval [(p)]");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnBin, "bytea");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "point");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "line");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "lseg");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "polygon");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "box");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "path");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnGeo, "circle");
+  
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "inet");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "cidr");
+  m_pComboBoxDataType->insertItem(* KPGTreeItem::m_pIconColumnNet, "macaddr");
+}
+
+void KPGModifyColumnTypeWidget1::fillDomains(KPGDomainsFolder *pDomainsFolder)
+{
+  pDomainsFolder->fillComboBoxWithChildItems(m_pComboBoxDataType);
+  
+  m_pComboBoxDataType->setCurrentItem(0);
+  slotComboDataTypeActivated(m_pComboBoxDataType->currentText());
+}
+
+KPGModifyColumnTypeWidget1::~KPGModifyColumnTypeWidget1()
+{
+}
+
+// Display comment for selected data type
+void KPGModifyColumnTypeWidget1::slotComboDataTypeActivated(const QString& strText)
+{
+  // Enable/disable precision and scale spins
+  m_pSpinBoxPrecision->setEnabled(false);
+  m_pSpinBoxScale->setEnabled(false);
+  
+  if(strText.find("(n)") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+  }
+  
+  if(strText.find("(p, s)") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+    m_pSpinBoxScale->setEnabled(true);
+  }
+  
+  if(strText.find("[(p)]") > 0)
+  {
+    m_pSpinBoxPrecision->setEnabled(true);
+  }
+
+  // Set help text for selected data type
+  if(strText == "char(n)")
+  { 
+    m_pTextLabelComment->setText("fixed-length, blank padded character string");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+    
+    return;
+  }    
+
+  if(strText == "varchar(n)")
+  { 
+    m_pTextLabelComment->setText("variable-length character string");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+    
+    return;
+  }    
+
+  if(strText == "text")
+  { 
+    m_pTextLabelComment->setText("variable-length character string, unlimited length");
+    return;
+  }    
+
+
+  if(strText == "smallint")
+  { 
+    m_pTextLabelComment->setText("2 bytes, small range fixed-precision, -32768 to +32767");
+    return;
+  }    
+
+  if(strText == "integer")
+  { 
+    m_pTextLabelComment->setText("4 bytes, usual choice for fixed-precision, -2147483648 to +2147483647");
+    return;
+  }    
+
+  if(strText == "bigint")
+  { 
+    m_pTextLabelComment->setText("8 bytes, large range fixed-precision, -9223372036854775808 to 9223372036854775807");
+    return;
+  }    
+
+  if((strText == "decimal(p, s)") || (strText == "numeric(p, s)"))
+  { 
+    m_pTextLabelComment->setText("variable, user-specified precision, exact, no limit");
+    
+    m_pSpinBoxPrecision->setMinValue( 1 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxScale->setMinValue( 0 );
+    m_pSpinBoxScale->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 10 );
+    return;
+  }    
+
+  if(strText == "real")
+  { 
+    m_pTextLabelComment->setText("4 bytes, variable-precision, inexact, 6 decimal digits precision");
+    return;
+  }    
+
+  if(strText == "double precision")
+  { 
+    m_pTextLabelComment->setText("8 bytes, variable-precision, inexact, 15 decimal digits precision");
+    return;
+  }    
+
+  if(strText == "money")
+  { 
+    m_pTextLabelComment->setText("currency amount. This datatype will be deprecated. Use a numeric datatype instead");
+    return;
+  }  
+  
+  if(strText == "serial")
+  { 
+    m_pTextLabelComment->setText("4 bytes, autoincrementing integer, 1 to 2147483647");
+    return;
+  }    
+
+  if(strText == "bigserial")
+  { 
+    m_pTextLabelComment->setText("8 bytes, large autoincrementing integer, 1 to 9223372036854775807");
+    return;
+  }    
+  
+  if(strText == "bit(n)")
+  { 
+    m_pTextLabelComment->setText("fixed-length bit string");  
+    return;
+  }
+  
+  if((strText == "bit(n)") || (strText == "bit varying(n)"))
+  { 
+    m_pTextLabelComment->setText("variable-length bit string");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    
+    m_pSpinBoxPrecision->setValue( 255 );
+    
+    return;
+  }
+    
+  if(strText == "bool")
+  { 
+    m_pTextLabelComment->setText("logical Boolean (true/false)");
+    return;
+  }
+  
+  if(strText == "date")
+  { 
+    m_pTextLabelComment->setText("date, 4 bytes, 4713 BC - AD 32767");
+    return;
+  }
+    
+  if(strText == "time [(p)]")
+  { 
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 13 );
+    
+    m_pSpinBoxPrecision->setValue( 13 );
+    
+    m_pTextLabelComment->setText("time of day, 8 bytes, 00:00:00.00 - 23:59:59.99");
+    return;
+  }
+  
+  if(strText == "time [(p)] with time zone")
+  { 
+    m_pTextLabelComment->setText("time of day including time zone, 12 bytes, 00:00:00.00+12 - 23:59:59.99-12");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 13 );
+    
+    m_pSpinBoxPrecision->setValue( 13 );
+    return;
+  }
+  
+  if(strText == "timestamp [(p)]")
+  { 
+    m_pTextLabelComment->setText("date and time, 8 bytes, 4713 BC - AD 1465001");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 6 );
+    
+    m_pSpinBoxPrecision->setValue( 6 );
+
+    return;
+  }
+  
+  if(strText == "timestamp [(p)] with time zone")
+  { 
+    m_pTextLabelComment->setText("date and time, including time zone, 8 bytes, 4713 BC - AD 1465001");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 6 );
+    
+    m_pSpinBoxPrecision->setValue( 6 );
+    return;
+  }
+  
+  if(strText == "interval [(p)]")
+  { 
+    m_pTextLabelComment->setText("time span, 12 bytes, from -178000000 years to 178000000 years");
+    
+    m_pSpinBoxPrecision->setMinValue( 0 );
+    m_pSpinBoxPrecision->setMaxValue( 6 );
+    
+    m_pSpinBoxPrecision->setValue( 6 );
+    
+    return;
+  }
+  
+  if(strText == "bytea")
+  { 
+    m_pTextLabelComment->setText("variable-length binary data, 4 bytes plus the data");
+    return;
+  }
+    
+  if(strText == "point")
+  { 
+    m_pTextLabelComment->setText("geometric point in 2D plane");
+    return;
+  }
+  
+  if(strText == "line")
+  { 
+    m_pTextLabelComment->setText("infinite line in 2D plane");
+    return;
+  }
+  
+  if(strText == "lseq")
+  { 
+    m_pTextLabelComment->setText("line segment in 2D plane");
+    return;
+  }
+  
+  if(strText == "polygon")
+  { 
+    m_pTextLabelComment->setText("closed geometric path in 2D plane");
+    return;
+  }
+  
+  if(strText == "box")
+  { 
+    m_pTextLabelComment->setText("rectangular box in 2D plane");
+    return;
+  }
+  
+  if(strText == "path")
+  { 
+    m_pTextLabelComment->setText("open and closed geometric path in 2D plane");
+    return;
+  }
+  
+  if(strText == "circle")
+  { 
+    m_pTextLabelComment->setText("circle (center and radius) in 2D plane");
+    return;
+  }
+  
+  if(strText == "inet")
+  { 
+    m_pTextLabelComment->setText("IP host address, 12 bytes");
+    return;
+  }
+  
+  if(strText == "cidr")
+  { 
+    m_pTextLabelComment->setText("IP network address, 12 bytes");
+    return;
+  }
+  
+  if(strText == "macaddr")
+  { 
+    m_pTextLabelComment->setText("MAC address (Ethernet card hardware address), 6 bytes");
+    return;
+  }
+  
+  m_pTextLabelComment->setText("");
+}
+
+// Return part of SQL stetement for ALTER TABLE ALTER COLUMN
+const QString KPGModifyColumnTypeWidget1::getSQL() const
+{
+  QString strSQL("TYPE ");
+  
+  QString strDefinition(m_pComboBoxDataType->currentText());
+  
+  //----------------------------------------------------------- 
+  int i;
+  if((i = strDefinition.find("(n)")) > 0)
+  {
+    strDefinition = strDefinition.left(strDefinition.length() - 3); // strip (n)
+        
+    strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+  }
+  
+  if((i = strDefinition.find("(p, s)")) > 0)
+  {
+    strDefinition = strDefinition.left(strDefinition.length() - 6); // strip (p, s)
+    
+    strDefinition.append(QString("(%1, %2)").arg(m_pSpinBoxPrecision->value()).arg(m_pSpinBoxScale->value()));
+  }
+  
+  if((i = strDefinition.find("[(p)]")) > 0)
+  {
+    QString strDefinitionPostfix(strDefinition.mid(i + 5, strDefinition.length() - i - 5));
+    strDefinition = strDefinition.left(i); // strip (n)
+    
+    strDefinition.append(QString("(%1)").arg(m_pSpinBoxPrecision->value()));
+    strDefinition.append(strDefinitionPostfix);
+  }
+    
+  strSQL.append(strDefinition);
+  //----------------------------------------------------------- 
+  
+  if(!m_pLineEditExpression->text().isEmpty())
+  {
+    strSQL.append("\nUSING ");
+    strSQL.append(m_pLineEditExpression->text());
+  }
+  
+  return strSQL;
+}
+
+#include "kpgmodifycolumntypewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYCOLUMNTYPEWIDGET1_H
+#define KPGMODIFYCOLUMNTYPEWIDGET1_H
+
+#include "kpgmodifycolumntypewidget1base.h"
+
+class KPGDomainsFolder;
+
+/**
+Widget for alter column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyColumnTypeWidget1 : public KPGModifyColumnTypeWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifyColumnTypeWidget1(QWidget *parent, const char *name, KPGDomainsFolder *);
+    ~KPGModifyColumnTypeWidget1();
+
+    void fillBasicDatatypes();
+    void fillDomains(KPGDomainsFolder *);
+    
+    const QString getSQL() const;
+
+protected slots:
+
+    virtual void slotComboDataTypeActivated(const QString &);
+                        
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,122 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifycolumntypewidget1base.ui'
+**
+** Created: Út dub 1 13:07:36 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifycolumntypewidget1base.h"
+
+#include <qvariant.h>
+#include <kcombobox.h>
+#include <qspinbox.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGModifyColumnTypeWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifyColumnTypeWidget1Base::KPGModifyColumnTypeWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifyColumnTypeWidget1Base" );
+    KPGModifyColumnTypeWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifyColumnTypeWidget1BaseLayout"); 
+
+    m_pComboBoxDataType = new KComboBox( FALSE, this, "m_pComboBoxDataType" );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( m_pComboBoxDataType, 1, 0 );
+
+    m_pSpinBoxScale = new QSpinBox( this, "m_pSpinBoxScale" );
+    m_pSpinBoxScale->setMaxValue( 999 );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( m_pSpinBoxScale, 1, 2 );
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( textLabel4, 0, 2 );
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( textLabel3, 0, 1 );
+
+    m_pSpinBoxPrecision = new QSpinBox( this, "m_pSpinBoxPrecision" );
+    m_pSpinBoxPrecision->setMaxValue( 999 );
+    m_pSpinBoxPrecision->setMinValue( 1 );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( m_pSpinBoxPrecision, 1, 1 );
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addWidget( textLabel2, 0, 0 );
+
+    m_pTextLabelComment = new QLabel( this, "m_pTextLabelComment" );
+    m_pTextLabelComment->setPaletteBackgroundColor( QColor( 255, 253, 216 ) );
+    QFont m_pTextLabelComment_font(  m_pTextLabelComment->font() );
+    m_pTextLabelComment->setFont( m_pTextLabelComment_font ); 
+    m_pTextLabelComment->setTextFormat( QLabel::PlainText );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addMultiCellWidget( m_pTextLabelComment, 2, 2, 0, 2 );
+    spacer1 = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGModifyColumnTypeWidget1BaseLayout->addItem( spacer1, 4, 0 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditExpression = new KLineEdit( this, "m_pLineEditExpression" );
+    layout1->addWidget( m_pLineEditExpression );
+
+    KPGModifyColumnTypeWidget1BaseLayout->addMultiCellLayout( layout1, 3, 3, 0, 2 );
+    languageChange();
+    resize( QSize(277, 191).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pComboBoxDataType, SIGNAL( activated(const QString&) ), this, SLOT( slotComboDataTypeActivated(const QString&) ) );
+
+    // buddies
+    textLabel4->setBuddy( m_pSpinBoxScale );
+    textLabel3->setBuddy( m_pSpinBoxPrecision );
+    textLabel2->setBuddy( m_pComboBoxDataType );
+    textLabel1->setBuddy( m_pLineEditExpression );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifyColumnTypeWidget1Base::~KPGModifyColumnTypeWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifyColumnTypeWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Choose column type" ) );
+    textLabel4->setText( tr2i18n( "&Scale:" ) );
+    textLabel3->setText( tr2i18n( "&Precision/size:" ) );
+    textLabel2->setText( tr2i18n( "&Data type:" ) );
+    m_pTextLabelComment->setText( QString::null );
+    textLabel1->setText( tr2i18n( "Using &expression:" ) );
+}
+
+void KPGModifyColumnTypeWidget1Base::slotComboDataTypeActivated(const QString&)
+{
+    qWarning( "KPGModifyColumnTypeWidget1Base::slotComboDataTypeActivated(const QString&): Not implemented yet" );
+}
+
+#include "kpgmodifycolumntypewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifycolumntypewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,163 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifyColumnTypeWidget1Base</class>
+<comment>Widget for Alter column Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifyColumnTypeWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>277</width>
+            <height>191</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Choose column type</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KComboBox" row="1" column="0">
+            <property name="name">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="1" column="2">
+            <property name="name">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="2">
+            <property name="name">
+                <cstring>textLabel4</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Scale:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxScale</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="1">
+            <property name="name">
+                <cstring>textLabel3</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Precision/size:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+        </widget>
+        <widget class="QSpinBox" row="1" column="1">
+            <property name="name">
+                <cstring>m_pSpinBoxPrecision</cstring>
+            </property>
+            <property name="maxValue">
+                <number>999</number>
+            </property>
+            <property name="minValue">
+                <number>1</number>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel2</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Data type:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pComboBoxDataType</cstring>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>m_pTextLabelComment</cstring>
+            </property>
+            <property name="paletteBackgroundColor">
+                <color>
+                    <red>255</red>
+                    <green>253</green>
+                    <blue>216</blue>
+                </color>
+            </property>
+            <property name="font">
+                <font>
+                </font>
+            </property>
+            <property name="text">
+                <string></string>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+        </widget>
+        <spacer row="4" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="3">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Using &amp;expression:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditExpression</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditExpression</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pComboBoxDataType</sender>
+        <signal>activated(const QString&amp;)</signal>
+        <receiver>KPGModifyColumnTypeWidget1Base</receiver>
+        <slot>slotComboDataTypeActivated(const QString&amp;)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotComboDataTypeActivated(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,135 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifyfunctionwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+#include <qradiobutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgfunction.h"
+#include "kpgcreatefunctionwidget3.h"
+#include "kpgcreatefunctionwidget4.h"
+#include "../kpgutil.h"
+
+
+KPGModifyFunctionWizard::KPGModifyFunctionWizard(QWidget *parent, const char *name, const QString &strNamespace, KPGFunction *pFunction)
+ : KPG4StepsWizard(parent, name)
+{
+	m_strNamespace = strNamespace;
+	
+	// use 2nd and 3rd pages from create function Wizard
+	
+	KPGCreateFunctionWidget3 *pCreateFunctionWidget3 = new KPGCreateFunctionWidget3(WizardPage1, "KPGCreateFunctionWidget3");
+	m_pPageWidget1 = pCreateFunctionWidget3;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pCreateFunctionWidget3, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	KPGCreateFunctionWidget4 *pCreateFunctionWidget4 = new KPGCreateFunctionWidget4(WizardPage2, "KPGCreateFunctionWidget4");
+	m_pPageWidget2 = pCreateFunctionWidget4;
+	WizardPage2Layout->addWidget(m_pPageWidget2, 0, 0);
+	connect(pCreateFunctionWidget4, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton2(bool)));
+	
+  	languageChange();
+	
+	m_strFunctionName = pFunction->text(0);
+	m_strFunctionArguments = pFunction->argumentTypes();
+	m_strReturnTypName = pFunction->returnTypName();
+	m_strLanName = pFunction->langName();
+	
+	// setup 1st page
+	if(pFunction->getVolatile() == "s")
+		pCreateFunctionWidget3->m_pRadioButtonStable->setChecked(true);
+		 
+	if(pFunction->getVolatile() == "v")
+		pCreateFunctionWidget3->m_pRadioButtonVolatile->setChecked(true);
+		
+	// NULL arguments behavior
+	if(pFunction->isStrict())
+		pCreateFunctionWidget3->m_pRadioButtonStrict->setChecked(true);
+	
+	// Security
+	if(pFunction->isSecdef())
+		pCreateFunctionWidget3->m_pRadioButtonSecurityDefiner->setChecked(true);	
+		
+	// Return SET ?
+	m_bReturnSet = 	pFunction->returnSet();
+		
+	// Set function definition
+	pCreateFunctionWidget4->m_pTextEditFunctionDefinition->setText(pFunction->source());
+	pCreateFunctionWidget4->switchToPage(1);
+		
+	setNextEnabled(WizardPage1, true);	
+	setNextEnabled(WizardPage2, true);	
+}
+
+KPGModifyFunctionWizard::~KPGModifyFunctionWizard()
+{
+}
+
+void KPGModifyFunctionWizard::languageChange()
+{
+    KPG4StepsWizard::languageChange();
+    
+    setCaption( i18n( "Modify function" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Function properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Function definition" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Review SQL statement" ) );
+    setTitle( WizardPage4, i18n( "Step 4 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifyFunctionWizard::showPage(QWidget *pPage)
+{ 
+  if(pPage == WizardPage3) // Step 3 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSql("CREATE OR REPLACE FUNCTION ");
+		
+    	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strFunctionName) + m_strFunctionArguments);
+    	
+    	strSql.append("\nRETURNS ");
+		if(m_bReturnSet) strSql.append("SETOF ");
+		strSql.append(KPGUtil::quotedName(m_strReturnTypName));
+		strSql.append("\nLANGUAGE ");
+		strSql.append(KPGUtil::quotedName(m_strLanName));
+		strSql.append("\n");
+		
+		strSql.append((static_cast <KPGCreateFunctionWidget3 *> (m_pPageWidget1))->getSQL());
+		strSql.append((static_cast <KPGCreateFunctionWidget4 *> (m_pPageWidget2))->getSQL());
+		strSql.append(";");
+				
+		m_pTextEditSQL->setText(strSql);
+	}
+	
+	if(pPage == WizardPage4) // Step 4 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+  	KPG4StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgmodifyfunctionwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyfunctionwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,50 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYFUNCTIONWIZARD_H
+#define KPGMODIFYFUNCTIONWIZARD_H
+
+#include "kpg4stepswizard.h"
+
+class KPGFunction;
+
+/**
+Modify function Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyFunctionWizard : public KPG4StepsWizard
+{
+Q_OBJECT
+public:
+    KPGModifyFunctionWizard(QWidget *parent, const char *name, const QString &, KPGFunction *);
+    ~KPGModifyFunctionWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+    QString m_strNamespace;    
+
+    QString m_strFunctionName;
+    QString m_strFunctionArguments;
+	QString m_strReturnTypName;
+	QString m_strLanName;
+	
+	// Return SET ?
+	bool m_bReturnSet; 
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,171 @@
+//
+// C++ Implementation: kpgmodifygroupwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifygroupwidget1.h"
+
+// include files for KDE
+#include <klineedit.h>
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroup.h"
+
+
+KPGModifyGroupWidget1::KPGModifyGroupWidget1(QWidget *parent, const char *name, KPGGroup *pGroup, KPGUsersFolder *pUsersFolder)
+ : KPGCreateGroupWidget1(parent, name)
+{
+	m_pGroup = pGroup;
+	
+	m_pLineEditGroupName->setText(pGroup->text(0));
+	
+	m_pLineEditSysId->setEnabled(false);
+	m_pLineEditSysId->setText(QString("%1").arg(pGroup->sysId()));
+	
+	pUsersFolder->fillListBoxWithChildItems(m_pActionSelectorUsers->availableListBox());
+	
+	QStringList strListOfUsers =  pGroup->getListOfUsers();
+	
+	// Move users in group to their listbox
+	for ( QStringList::Iterator it = strListOfUsers.begin(); it != strListOfUsers.end(); ++it ) 
+	{
+   	QString strUserName(*it);
+		
+		QListBoxItem *pItem = m_pActionSelectorUsers->availableListBox()->findItem(strUserName);
+		if(pItem)
+		{
+			// Move group from available list to user list 
+			m_pActionSelectorUsers->selectedListBox()->insertItem(* pItem->pixmap(), pItem->text());
+			m_pActionSelectorUsers->availableListBox()->setCurrentItem(pItem);
+			m_pActionSelectorUsers->availableListBox()->removeItem(m_pActionSelectorUsers->availableListBox()->currentItem());
+		}
+  }
+  
+  // This is here, instead of making connection in Qt Designer due to bug - forward declaration
+  // class QListBoxItem; is not added to h file.
+  connect( m_pActionSelectorUsers, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotUserAdded(QListBoxItem*) ) );
+  connect( m_pActionSelectorUsers, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotUserRemoved(QListBoxItem*) ) );
+}
+
+
+KPGModifyGroupWidget1::~KPGModifyGroupWidget1()
+{
+}
+
+void KPGModifyGroupWidget1::slotLineEditGroupNameChanged(const QString &strGroupName)
+{
+   emit sigEnableNextButton((getSQL().length() > 0) && (strGroupName.length() > 0));
+}
+
+void KPGModifyGroupWidget1::slotUserAdded(QListBoxItem*)
+{
+  emit sigEnableNextButton((getSQL().length() > 0) && (m_pLineEditGroupName->text().length() > 0));
+}
+
+void KPGModifyGroupWidget1::slotUserRemoved(QListBoxItem*)
+{
+  emit sigEnableNextButton((getSQL().length() > 0) && (m_pLineEditGroupName->text().length() > 0));
+}
+
+// Return part of SQL statement for ALTER GROUP
+const QString KPGModifyGroupWidget1::getSQL() const
+{
+	QString strSQL;
+	QString strSQLAdd("ALTER GROUP " + m_pGroup->text(0)); // group name
+	QString strSQLDrop("ALTER GROUP " + m_pGroup->text(0)); // group name
+		
+	QStringList strListOfUsersAdd;
+	QStringList strListOfUsersDrop;
+	
+	//---------------------------------------------------------------------------------
+	// check users needs add to group
+	QStringList strListOfUsers =  m_pGroup->getListOfUsers();
+	
+	for(unsigned int i = 0; i < m_pActionSelectorUsers->selectedListBox()->count(); i++)
+	{
+		// check if this user already exists in group
+		bool bIsMember = false;
+		for ( QStringList::Iterator it = strListOfUsers.begin(); it != strListOfUsers.end(); ++it ) 
+		{
+   		QString strUserName(*it);
+			if(strUserName == m_pActionSelectorUsers->selectedListBox()->item(i)->text())
+			{
+				bIsMember = true;
+				break;
+			}
+		}
+		if(!bIsMember)
+			strListOfUsersAdd.append(m_pActionSelectorUsers->selectedListBox()->item(i)->text());
+	}
+	
+	unsigned int i = 0;
+	for ( QStringList::Iterator it = strListOfUsersAdd.begin(); it != strListOfUsersAdd.end(); ++it ) 
+	{
+		QString strUserName(*it);
+		
+		if(i > 0)
+			strSQLAdd.append(", ");
+		else
+			strSQLAdd.append(" ADD USER ");
+			
+		strSQLAdd.append(strUserName);
+	}
+	
+	if(strListOfUsersAdd.count() > 0)
+	{
+		strSQL.append(strSQLAdd + ";\n");
+	}
+	
+	//---------------------------------------------------------------------------------
+	// check users needs drop from group
+	for ( QStringList::Iterator it = strListOfUsers.begin(); it != strListOfUsers.end(); ++it ) 
+	{
+  	QString strUserName(*it);
+		
+		// check if this user is in group members list box 
+		QListBoxItem *pItem = m_pActionSelectorUsers->selectedListBox()->findItem(strUserName);
+		if(!pItem)
+			strListOfUsersDrop.append(strUserName);	
+	}
+	
+	i = 0;
+	for ( QStringList::Iterator it = strListOfUsersDrop.begin(); it != strListOfUsersDrop.end(); ++it ) 
+	{
+		QString strUserName(*it);
+		
+		if(i > 0)
+			strSQLDrop.append(", ");
+		else
+			strSQLDrop.append(" DROP USER ");
+			
+		strSQLDrop.append(strUserName);
+	}
+	
+	if(strListOfUsersDrop.count() > 0)
+	{
+		strSQL.append(strSQLDrop + ";\n");
+	}
+	//---------------------------------------------------------------------------------
+	
+	if(m_pLineEditGroupName->text() != m_pGroup->text(0))
+  {
+    strSQL.append("ALTER GROUP ");
+    strSQL.append(m_pGroup->text(0));
+    strSQL.append(" RENAME TO ");
+    strSQL.append(m_pLineEditGroupName->text());
+    strSQL.append(";");
+  } 
+	
+	return strSQL;
+}
+
+
+#include "kpgmodifygroupwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: kpgmodifygroupwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYGROUPWIDGET1_H
+#define KPGMODIFYGROUPWIDGET1_H
+
+#include "kpgcreategroupwidget1.h"
+
+class KPGGroup;
+class KPGUsersFolder;
+class QListBoxItem;
+
+/**
+Widget for modify group Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyGroupWidget1 : public KPGCreateGroupWidget1
+{
+Q_OBJECT
+public:
+    KPGModifyGroupWidget1(QWidget *parent, const char *name, KPGGroup *, KPGUsersFolder *);
+    ~KPGModifyGroupWidget1();
+
+		const QString getSQL() const;
+
+protected slots:
+
+    virtual void slotLineEditGroupNameChanged(const QString &);
+    virtual void slotUserAdded(QListBoxItem *);
+    virtual void slotUserRemoved(QListBoxItem *);
+        		
+protected:
+		KPGGroup *m_pGroup; // group to modify		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+//
+// C++ Implementation: kpgmodifygroupwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifygroupwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroup.h"
+#include "kpgmodifygroupwidget1.h"
+
+
+KPGModifyGroupWizard::KPGModifyGroupWizard(QWidget *parent, const char *name, KPGGroup *pGroup, KPGUsersFolder *pUsersFolder)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGModifyGroupWidget1 *pModifyGroupWidget1 = new KPGModifyGroupWidget1(WizardPage1, "KPGModifyGroupWidget1", pGroup, pUsersFolder);
+	m_pPageWidget1 = pModifyGroupWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pModifyGroupWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	setNextEnabled(WizardPage1, false);
+	
+	languageChange();
+}
+
+
+KPGModifyGroupWizard::~KPGModifyGroupWizard()
+{
+}
+
+void KPGModifyGroupWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+		
+		setCaption( i18n( "Modify group" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Group name and list of users" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifyGroupWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL((static_cast <KPGModifyGroupWidget1 *> (m_pPageWidget1))->getSQL());
+		m_pTextEditSQL->setText(strSQL);
+		
+		setNextEnabled(WizardPage2, strSQL.length() > 0);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgmodifygroupwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifygroupwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: kpgmodifygroupwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYGROUPWIZARD_H
+#define KPGMODIFYGROUPWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGUsersFolder;
+class KPGGroup;
+
+/**
+Modify group Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyGroupWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGModifyGroupWizard(QWidget *parent, const char *name, KPGGroup *, KPGUsersFolder *);
+    ~KPGModifyGroupWizard();
+		
+protected:
+		virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,142 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifysequencewidget1.h"
+
+// include files for Qt
+#include <qlabel.h>
+#include <qcheckbox.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <klineedit.h>
+#include <kcombobox.h>
+#include <knuminput.h>
+
+// application specific includes
+#include "../DbObjects/kpgsequence.h"
+#include "../kpgutil.h"
+
+KPGModifySequenceWidget1::KPGModifySequenceWidget1(QWidget *parent, const char *name, const QString &strNamespace, KPGSequence *pSequence)
+ : KPGModifySequenceWidget1Base(parent, name)
+{
+  m_pSequence = pSequence;
+  m_strNamespace = strNamespace;
+  
+  // set initial state
+  m_bInitialized = false; // disallow to test getSQL in slots
+  m_pIntNumInputIncrement->setValue(pSequence->incrementBy());
+  m_pLineEditValue->setText(QString("%1").arg(pSequence->lastValue()));
+  m_pLineEditMinValue->setText(QString("%1").arg(pSequence->minValue()));
+  m_pLineEditMaxValue->setText(QString("%1").arg(pSequence->maxValue()));
+  m_pIntNumInputCache->setValue(pSequence->cacheValue());
+  m_pCheckBoxCycle->setChecked(pSequence->isCycled());
+  m_bInitialized = true; // allow to test getSQL in slots
+}
+
+KPGModifySequenceWidget1::~KPGModifySequenceWidget1()
+{
+}
+
+void KPGModifySequenceWidget1::slotIncrementChanged(int)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}
+
+void KPGModifySequenceWidget1::slotValueChanged(const QString &)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}
+
+void KPGModifySequenceWidget1::slotMinValueChanged(const QString &)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}    
+void KPGModifySequenceWidget1::slotMaxValueChanged(const QString &)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}    
+
+void KPGModifySequenceWidget1::slotCacheChanged(int)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}
+
+void KPGModifySequenceWidget1::slotCycledToggled(bool)
+{
+  if(!m_bInitialized) return;
+  emit sigEnableNextButton(! getSQL().isEmpty());
+}
+
+// Return SQL statement for ALTER SEQUENCE
+const QString KPGModifySequenceWidget1::getSQL() const
+{
+  QString strSQL("ALTER SEQUENCE ");
+  
+  strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_pSequence->text(0)));
+  strSQL.append("\n");
+  
+  unsigned int iBasicLength = strSQL.length(); // store this value to decide, if any changes maded
+  
+  // Increment
+  if(m_pIntNumInputIncrement->value() != m_pSequence->incrementBy())
+    strSQL.append(QString("INCREMENT %1\n").arg(m_pIntNumInputIncrement->value()));
+  
+  // Min value
+  if(m_pLineEditMinValue->text().isEmpty() == true)  
+    strSQL.append("NO MINVALUE\n");
+  else
+  {
+    if(m_pLineEditMinValue->text() != QString("%1").arg(m_pSequence->minValue()))
+      strSQL.append("MINVALUE " + m_pLineEditMinValue->text() + "\n");
+  }
+
+  // Max value
+  if(m_pLineEditMaxValue->text().isEmpty() == true)  
+    strSQL.append("NO MAXVALUE\n");
+  else
+  {
+    if(m_pLineEditMaxValue->text() != QString("%1").arg(m_pSequence->maxValue()))  
+      strSQL.append("MAXVALUE " + m_pLineEditMaxValue->text() + "\n");  
+  }
+      
+  // Cache
+  if(m_pIntNumInputCache->value() != m_pSequence->cacheValue())
+    strSQL.append(QString("CACHE %1\n").arg(m_pIntNumInputCache->value()));
+  
+  // Cycle
+  if(! m_pSequence->isCycled() && m_pCheckBoxCycle->isChecked())
+    strSQL.append("CYCLE\n");
+    
+  if(m_pSequence->isCycled() && ! m_pCheckBoxCycle->isChecked())
+    strSQL.append("NO CYCLE\n");
+    
+  // Restart value
+  if(m_pLineEditValue->text() != QString("%1").arg(m_pSequence->lastValue()))  
+    strSQL.append("RESTART WITH " + m_pLineEditValue->text() + "\n");
+  
+  if(iBasicLength == strSQL.length())
+    return ""; // no changes maded  
+    
+  strSQL.append(";");
+  
+  return strSQL;
+}
+
+#include "kpgmodifysequencewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,52 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYSEQUENCEWIDGET1_H
+#define KPGMODIFYSEQUENCEWIDGET1_H
+
+#include "kpgmodifysequencewidget1base.h"
+
+class KPGSequence;
+
+/**
+Widget for modify sequence Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifySequenceWidget1 : public KPGModifySequenceWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifySequenceWidget1(QWidget *parent, const char *name, const QString &, KPGSequence *);
+    ~KPGModifySequenceWidget1();
+    
+    const QString getSQL() const;
+
+protected:
+    bool m_bInitialized;
+    KPGSequence *m_pSequence; // pointer to modifyied Sequence
+    QString m_strNamespace; // name of the namespace
+    
+protected slots:
+    
+    virtual void slotIncrementChanged(int);
+    virtual void slotValueChanged(const QString &);
+    virtual void slotMinValueChanged(const QString &);
+    virtual void slotMaxValueChanged(const QString &);
+    virtual void slotCacheChanged(int);
+    virtual void slotCycledToggled(bool);
+    
+signals:
+    void sigEnableNextButton(bool);  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,197 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifysequencewidget1base.ui'
+**
+** Created: Út dub 1 13:07:38 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifysequencewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <knuminput.h>
+#include <qcheckbox.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "knuminput.h"
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGModifySequenceWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifySequenceWidget1Base::KPGModifySequenceWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifySequenceWidget1Base" );
+    KPGModifySequenceWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifySequenceWidget1BaseLayout"); 
+    spacer1 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGModifySequenceWidget1BaseLayout->addItem( spacer1, 1, 0 );
+
+    groupBox1 = new QGroupBox( this, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    layout3 = new QVBoxLayout( 0, 0, 6, "layout3"); 
+
+    textLabel1_2 = new QLabel( groupBox1, "textLabel1_2" );
+    layout3->addWidget( textLabel1_2 );
+
+    m_pIntNumInputIncrement = new KIntNumInput( groupBox1, "m_pIntNumInputIncrement" );
+    m_pIntNumInputIncrement->setValue( 1 );
+    layout3->addWidget( m_pIntNumInputIncrement );
+
+    groupBox1Layout->addLayout( layout3, 0, 0 );
+
+    layout7 = new QVBoxLayout( 0, 0, 6, "layout7"); 
+
+    textLabel5 = new QLabel( groupBox1, "textLabel5" );
+    layout7->addWidget( textLabel5 );
+
+    m_pIntNumInputCache = new KIntNumInput( groupBox1, "m_pIntNumInputCache" );
+    m_pIntNumInputCache->setValue( 1 );
+    m_pIntNumInputCache->setMinValue( 1 );
+    layout7->addWidget( m_pIntNumInputCache );
+
+    groupBox1Layout->addLayout( layout7, 2, 0 );
+
+    layout10 = new QVBoxLayout( 0, 0, 6, "layout10"); 
+
+    textLabel1_3 = new QLabel( groupBox1, "textLabel1_3" );
+    layout10->addWidget( textLabel1_3 );
+
+    m_pCheckBoxCycle = new QCheckBox( groupBox1, "m_pCheckBoxCycle" );
+    layout10->addWidget( m_pCheckBoxCycle );
+
+    groupBox1Layout->addLayout( layout10, 2, 1 );
+
+    layout4 = new QVBoxLayout( 0, 0, 6, "layout4"); 
+
+    textLabel2 = new QLabel( groupBox1, "textLabel2" );
+    layout4->addWidget( textLabel2 );
+
+    m_pLineEditMinValue = new KLineEdit( groupBox1, "m_pLineEditMinValue" );
+    m_pLineEditMinValue->setMinimumSize( QSize( 0, 0 ) );
+    layout4->addWidget( m_pLineEditMinValue );
+
+    groupBox1Layout->addLayout( layout4, 1, 0 );
+
+    layout5 = new QVBoxLayout( 0, 0, 6, "layout5"); 
+
+    textLabel3 = new QLabel( groupBox1, "textLabel3" );
+    layout5->addWidget( textLabel3 );
+
+    m_pLineEditMaxValue = new KLineEdit( groupBox1, "m_pLineEditMaxValue" );
+    m_pLineEditMaxValue->setMinimumSize( QSize( 0, 0 ) );
+    layout5->addWidget( m_pLineEditMaxValue );
+
+    groupBox1Layout->addLayout( layout5, 1, 1 );
+
+    layout7_2 = new QVBoxLayout( 0, 0, 6, "layout7_2"); 
+
+    textLabel1 = new QLabel( groupBox1, "textLabel1" );
+    layout7_2->addWidget( textLabel1 );
+
+    m_pLineEditValue = new KLineEdit( groupBox1, "m_pLineEditValue" );
+    m_pLineEditValue->setEnabled( TRUE );
+    layout7_2->addWidget( m_pLineEditValue );
+
+    groupBox1Layout->addLayout( layout7_2, 0, 1 );
+
+    KPGModifySequenceWidget1BaseLayout->addWidget( groupBox1, 0, 0 );
+    languageChange();
+    resize( QSize(350, 243).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pIntNumInputIncrement, SIGNAL( valueChanged(int) ), this, SLOT( slotIncrementChanged(int) ) );
+    connect( m_pLineEditValue, SIGNAL( textChanged(const QString&) ), this, SLOT( slotValueChanged(const QString&) ) );
+    connect( m_pLineEditMinValue, SIGNAL( textChanged(const QString&) ), this, SLOT( slotMinValueChanged(const QString&) ) );
+    connect( m_pLineEditMaxValue, SIGNAL( textChanged(const QString&) ), this, SLOT( slotMaxValueChanged(const QString&) ) );
+    connect( m_pIntNumInputCache, SIGNAL( valueChanged(int) ), this, SLOT( slotCacheChanged(int) ) );
+    connect( m_pCheckBoxCycle, SIGNAL( toggled(bool) ), this, SLOT( slotCycledToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pIntNumInputIncrement, m_pLineEditValue );
+    setTabOrder( m_pLineEditValue, m_pLineEditMinValue );
+    setTabOrder( m_pLineEditMinValue, m_pLineEditMaxValue );
+    setTabOrder( m_pLineEditMaxValue, m_pIntNumInputCache );
+    setTabOrder( m_pIntNumInputCache, m_pCheckBoxCycle );
+
+    // buddies
+    textLabel1_2->setBuddy( m_pIntNumInputIncrement );
+    textLabel5->setBuddy( m_pIntNumInputCache );
+    textLabel2->setBuddy( m_pLineEditMinValue );
+    textLabel3->setBuddy( m_pLineEditMaxValue );
+    textLabel1->setBuddy( m_pLineEditMinValue );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifySequenceWidget1Base::~KPGModifySequenceWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifySequenceWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Sequence properties" ) );
+    groupBox1->setTitle( tr2i18n( "Properties" ) );
+    textLabel1_2->setText( tr2i18n( "&Increment by:" ) );
+    textLabel5->setText( tr2i18n( "C&ache:" ) );
+    textLabel1_3->setText( QString::null );
+    m_pCheckBoxCycle->setText( tr2i18n( "&Cycle" ) );
+    m_pCheckBoxCycle->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    textLabel2->setText( tr2i18n( "Mi&nimum value:" ) );
+    textLabel3->setText( tr2i18n( "Ma&ximum value:" ) );
+    textLabel1->setText( tr2i18n( "Last &value:" ) );
+}
+
+void KPGModifySequenceWidget1Base::slotIncrementChanged(int)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotIncrementChanged(int): Not implemented yet" );
+}
+
+void KPGModifySequenceWidget1Base::slotValueChanged(const QString&)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotValueChanged(const QString&): Not implemented yet" );
+}
+
+void KPGModifySequenceWidget1Base::slotMinValueChanged(const QString&)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotMinValueChanged(const QString&): Not implemented yet" );
+}
+
+void KPGModifySequenceWidget1Base::slotMaxValueChanged(const QString&)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotMaxValueChanged(const QString&): Not implemented yet" );
+}
+
+void KPGModifySequenceWidget1Base::slotCacheChanged(int)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotCacheChanged(int): Not implemented yet" );
+}
+
+void KPGModifySequenceWidget1Base::slotCycledToggled(bool)
+{
+    qWarning( "KPGModifySequenceWidget1Base::slotCycledToggled(bool): Not implemented yet" );
+}
+
+#include "kpgmodifysequencewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,303 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifySequenceWidget1Base</class>
+<comment>Widget for create sequence Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifySequenceWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>350</width>
+            <height>243</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Sequence properties</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="0" column="0">
+            <property name="name">
+                <cstring>groupBox1</cstring>
+            </property>
+            <property name="title">
+                <string>Properties</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLayoutWidget" row="0" column="0">
+                    <property name="name">
+                        <cstring>layout3</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Increment by:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pIntNumInputIncrement</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KIntNumInput">
+                            <property name="name">
+                                <cstring>m_pIntNumInputIncrement</cstring>
+                            </property>
+                            <property name="value">
+                                <number>1</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="0">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel5</cstring>
+                            </property>
+                            <property name="text">
+                                <string>C&amp;ache:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pIntNumInputCache</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KIntNumInput">
+                            <property name="name">
+                                <cstring>m_pIntNumInputCache</cstring>
+                            </property>
+                            <property name="value">
+                                <number>1</number>
+                            </property>
+                            <property name="minValue">
+                                <number>1</number>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="2" column="1">
+                    <property name="name">
+                        <cstring>layout10</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1_3</cstring>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                        <widget class="QCheckBox">
+                            <property name="name">
+                                <cstring>m_pCheckBoxCycle</cstring>
+                            </property>
+                            <property name="text">
+                                <string>&amp;Cycle</string>
+                            </property>
+                            <property name="accel">
+                                <string>Alt+C</string>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout4</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel2</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Mi&amp;nimum value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditMinValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditMinValue</cstring>
+                            </property>
+                            <property name="minimumSize">
+                                <size>
+                                    <width>0</width>
+                                    <height>0</height>
+                                </size>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="1">
+                    <property name="name">
+                        <cstring>layout5</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel3</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Ma&amp;ximum value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditMaxValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditMaxValue</cstring>
+                            </property>
+                            <property name="minimumSize">
+                                <size>
+                                    <width>0</width>
+                                    <height>0</height>
+                                </size>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+                <widget class="QLayoutWidget" row="0" column="1">
+                    <property name="name">
+                        <cstring>layout7</cstring>
+                    </property>
+                    <vbox>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel">
+                            <property name="name">
+                                <cstring>textLabel1</cstring>
+                            </property>
+                            <property name="text">
+                                <string>Last &amp;value:</string>
+                            </property>
+                            <property name="buddy" stdset="0">
+                                <cstring>m_pLineEditMinValue</cstring>
+                            </property>
+                        </widget>
+                        <widget class="KLineEdit">
+                            <property name="name">
+                                <cstring>m_pLineEditValue</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>true</bool>
+                            </property>
+                        </widget>
+                    </vbox>
+                </widget>
+            </grid>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pIntNumInputIncrement</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotIncrementChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditValue</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotValueChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditMinValue</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotMinValueChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pLineEditMaxValue</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotMaxValueChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pIntNumInputCache</sender>
+        <signal>valueChanged(int)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotCacheChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxCycle</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGModifySequenceWidget1Base</receiver>
+        <slot>slotCycledToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pIntNumInputIncrement</tabstop>
+    <tabstop>m_pLineEditValue</tabstop>
+    <tabstop>m_pLineEditMinValue</tabstop>
+    <tabstop>m_pLineEditMaxValue</tabstop>
+    <tabstop>m_pIntNumInputCache</tabstop>
+    <tabstop>m_pCheckBoxCycle</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotIncrementChanged(int)</slot>
+    <slot>slotValueChanged(const QString &amp;)</slot>
+    <slot access="protected">slotMinValueChanged(const QString &amp;)</slot>
+    <slot access="protected">slotMaxValueChanged(const QString &amp;)</slot>
+    <slot access="protected">slotCacheChanged(int)</slot>
+    <slot access="protected">slotCycledToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>knuminput.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,77 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifysequencewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpgsequence.h"
+#include "kpgmodifysequencewidget1.h"
+
+
+KPGModifySequenceWizard::KPGModifySequenceWizard(QWidget *parent, const char *name, const QString &strNamespace, KPGSequence *pSequence)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGModifySequenceWidget1 *pModifySequenceWidget1 = new KPGModifySequenceWidget1(WizardPage1, "KPGModifySequenceWidget1", strNamespace, pSequence);
+  m_pPageWidget1 = pModifySequenceWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pModifySequenceWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  languageChange();
+}
+
+KPGModifySequenceWizard::~KPGModifySequenceWizard()
+{
+}
+
+void KPGModifySequenceWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Modify sequence" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Sequence properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifySequenceWizard::showPage(QWidget *pPage)
+{ 
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL;
+		strSQL.append((static_cast <KPGModifySequenceWidget1 *> (m_pPageWidget1))->getSQL());
+			
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgmodifysequencewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifysequencewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYSEQUENCEWIZARD_H
+#define KPGMODIFYSEQUENCEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGSequence;
+
+/**
+Modify sequence Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifySequenceWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGModifySequenceWizard(QWidget *parent, const char *name, const QString &, KPGSequence *);
+    ~KPGModifySequenceWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,228 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifytablecolumnwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <knuminput.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgschema.h"
+#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablecolumn.h"
+#include "kpgmodifycolumnstatswidget1.h"
+#include "kpgmodifycolumnstoragewidget1.h"
+#include "kpgmodifycolumntypewidget1.h"
+#include "kpgmodifycolumndefaultwidget1.h"
+#include "../kpgutil.h"
+
+
+KPGModifyTableColumnWizard::KPGModifyTableColumnWizard(QWidget *parent, const char *name, KPGSchema *pSchema, KPGTable *pTable, KPGTableColumn *pColumn, EWizardMode eWizardMode)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strTableName = pTable->text(0);
+  m_strNamespaceName = pSchema->text(0);
+  m_strColumnName = pColumn->text(0);
+  m_eWizardMode = eWizardMode;
+  
+  switch(m_eWizardMode)
+    {
+      case modeDefault:
+          {
+            KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = new KPGModifyColumnDefaultWidget1(WizardPage1, "KPGModifyColumnDefaultWidget1");
+            m_pPageWidget1 = pModifyColumnWidget1;
+            WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+            connect(pModifyColumnWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          }
+          break;
+          
+      case modeType:
+          {
+            KPGModifyColumnTypeWidget1 *pModifyColumnWidget1 = new KPGModifyColumnTypeWidget1(WizardPage1, "KPGModifyColumnTypeWidget1", pSchema->getDomainsFolder());
+            m_pPageWidget1 = pModifyColumnWidget1;
+            WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+            setNextEnabled(WizardPage1, true);
+          }
+          break;
+          
+      case modeStorage:
+          {
+            KPGModifyColumnStorageWidget1 *pModifyColumnWidget1 = new KPGModifyColumnStorageWidget1(WizardPage1, "KPGModifyColumnStorageWidget1");
+            m_pPageWidget1 = pModifyColumnWidget1;
+            WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+            setNextEnabled(WizardPage1, true);
+          }
+          break;
+          
+      case modeStats:
+          {
+            KPGModifyColumnStatsWidget1 *pModifyColumnWidget1 = new KPGModifyColumnStatsWidget1(WizardPage1, "KPGModifyColumnStatsWidget1");
+            m_pPageWidget1 = pModifyColumnWidget1;
+            WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+            setNextEnabled(WizardPage1, true);
+          }
+          break;
+    }
+          
+  languageChange();
+}
+
+
+KPGModifyTableColumnWizard::~KPGModifyTableColumnWizard()
+{
+}
+
+void KPGModifyTableColumnWizard::setDefaultExpression(const QString &strText)
+{
+  if(m_eWizardMode != modeDefault)
+  {
+    kdDebug() << "KPGModifyTableColumnWizard::setDefaultExpression: wrong usage !" << endl;
+    return;
+  }
+  
+  KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnDefaultWidget1 *> (m_pPageWidget1);
+  pModifyColumnWidget1->m_pLineEditDefaultExpression->setText(strText);
+}
+
+void KPGModifyTableColumnWizard::setStorage(const QString &strText)
+{
+  if(m_eWizardMode != modeStorage)
+  {
+    kdDebug() << "KPGModifyTableColumnWizard::setStorage: wrong usage !" << endl;
+    return;
+  }
+  
+  // remove given text from combobox
+  KPGModifyColumnStorageWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnStorageWidget1 *> (m_pPageWidget1);
+  for(int i = 0; i < pModifyColumnWidget1->m_pComboBoxStorage->count(); i++)
+  {
+    if(pModifyColumnWidget1->m_pComboBoxStorage->text(i) == strText)
+    {
+      pModifyColumnWidget1->m_pComboBoxStorage->removeItem(i);
+      pModifyColumnWidget1->m_pComboBoxStorage->setCurrentItem(0);
+      break;
+    }  
+  }
+}
+
+void KPGModifyTableColumnWizard::setStatTarget(int iStatTarget)
+{
+  if(m_eWizardMode != modeStats)
+  {
+    kdDebug() << "KPGModifyTableColumnWizard::setStatTarget: wrong usage !" << endl;
+    return;
+  }
+  
+  // remove given text from combobox
+  KPGModifyColumnStatsWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnStatsWidget1 *> (m_pPageWidget1);
+  pModifyColumnWidget1->m_pIntNumInputStatistics->setValue(iStatTarget);
+}
+
+void KPGModifyTableColumnWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Modify table column" ) );
+    
+    switch(m_eWizardMode)
+    {
+      case modeDefault:
+          setTitle( WizardPage1, i18n( "Step 1 - Set column default" ) );
+          break;
+          
+      case modeType:
+          setTitle( WizardPage1, i18n( "Step 1 -  Choose column type" ) );
+          break;
+          
+      case modeStorage:
+          setTitle( WizardPage1, i18n( "Step 1 - Choose storage type" ) );
+          break;
+          
+      case modeStats:
+          setTitle( WizardPage1, i18n( "Step 1 - Set column statistics" ) );
+          break;
+    }
+    
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifyTableColumnWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSql("ALTER TABLE ");
+    strSql.append(KPGUtil::fullyQualifiedName(m_strNamespaceName, m_strTableName));
+    strSql.append(" ALTER COLUMN ");
+    strSql.append(KPGUtil::quotedName(m_strColumnName));
+    strSql.append(" ");
+    
+    switch(m_eWizardMode)
+    {
+      case modeDefault:
+          {
+            KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnDefaultWidget1 *> (m_pPageWidget1);
+            strSql.append(pModifyColumnWidget1->getSQL());
+          }
+          break;
+          
+      case modeType:
+          {
+            KPGModifyColumnTypeWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnTypeWidget1 *> (m_pPageWidget1);
+            strSql.append(pModifyColumnWidget1->getSQL());
+          }
+          break;
+          
+      case modeStorage:
+          {
+          KPGModifyColumnStorageWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnStorageWidget1 *> (m_pPageWidget1);
+          strSql.append(pModifyColumnWidget1->getSQL());
+         }
+          break;
+          
+      case modeStats:
+          {
+            KPGModifyColumnStatsWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnStatsWidget1 *> (m_pPageWidget1);
+            strSql.append(pModifyColumnWidget1->getSQL());
+          }
+          break;
+    }
+          
+    strSql.append(";\n");
+    
+    m_pTextEditSQL->setText(strSql);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgmodifytablecolumnwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifytablecolumnwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,54 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYTABLECOLUMNWIZARD_H
+#define KPGMODIFYTABLECOLUMNWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGSchema; 
+class KPGTable;
+class KPGTableColumn;
+
+/**
+Alter table Alter column Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyTableColumnWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+     // This wizard is able to alter column DEFAULT, TYPE, STORAGE or STATISTICS
+     enum EWizardMode { modeDefault = 0, modeType, modeStorage, modeStats };
+    
+    KPGModifyTableColumnWizard(QWidget *parent, const char *name, KPGSchema *, KPGTable *, KPGTableColumn *, EWizardMode);
+    ~KPGModifyTableColumnWizard();
+        
+    void setDefaultExpression(const QString &);
+    void setStorage(const QString &);
+    void setStatTarget(int);
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+    EWizardMode m_eWizardMode; 
+    QString m_strColumnName; 	// name of the altered table column
+    QString m_strTableName; 	// name of the altered table
+    QString m_strNamespaceName; // name of the namespace 
+        
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,184 @@
+//
+// C++ Implementation: kpgmodifyuserwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifyuserwidget1.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <qradiobutton.h>
+
+// include files for KDE
+#include <klineedit.h>
+#include <kpassdlg.h>
+#include <qcheckbox.h>
+#include <kcombobox.h>
+#include <kdatewidget.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+// application specific includes
+#include "../DbObjects/kpguser.h"
+#include "../DbObjects/kpgconnection.h"
+
+KPGModifyUserWidget1::KPGModifyUserWidget1(QWidget *parent, const char *name, KPGUser *pUser)
+ : KPGCreateUserWidget1(parent, name)
+{
+	m_pUser = pUser;
+	m_pLineEditUserName->setText(pUser->text(0));
+	
+	m_pLineEditSysId->setEnabled(false);
+	m_pLineEditSysId->setText(QString("%1").arg(pUser->sysId()));
+	
+	if(pUser->canCreateDb())
+		m_pCheckBoxCreateDb->setChecked(true);
+	
+	if(pUser->isSuper())
+		m_pCheckBoxCreateUsers->setChecked(true);
+		
+	if(pUser->validUntil().isNull() == false)
+	{
+		m_pDateWidgetExpiration->setDate(pUser->validUntil());
+		m_pRadioButtonExpiresOn->setChecked(true);
+	}
+}
+
+KPGModifyUserWidget1::~KPGModifyUserWidget1()
+{
+}
+
+void KPGModifyUserWidget1::slotLineEditUserNameChanged(const QString &strUserName)
+{
+   emit sigEnableNextButton(strUserName.length() > 0);
+}
+
+void KPGModifyUserWidget1::slotRadioButtonExpirationChanged(int iState)
+{
+  KPGCreateUserWidget1::slotRadioButtonExpirationChanged(iState);
+  emit sigEnableNextButton(m_pLineEditUserName->text().length() > 0);
+}
+
+void KPGModifyUserWidget1::slotDateWidgetExpirationChanged(QDate)
+{
+  emit sigEnableNextButton(m_pLineEditUserName->text().length() > 0);
+}
+
+void KPGModifyUserWidget1::slotCheckBoxCreateDbToggled(bool)
+{
+  emit sigEnableNextButton(m_pLineEditUserName->text().length() > 0);
+}
+   
+void KPGModifyUserWidget1::slotCheckBoxCreateUsersToggled(bool)
+{
+  emit sigEnableNextButton(m_pLineEditUserName->text().length() > 0);
+}
+
+// Return part of SQL statement for ALTER USER
+const QString KPGModifyUserWidget1::getSQL(KPGConnection *pConnection)
+{
+	QString strSQL("ALTER USER " + m_pUser->text(0)); // user name
+
+	QString strWITH(" WITH\n");
+	
+	bool bEncrypted = false;
+	if(m_pPasswordEdit1->text().length() > 0)
+	{
+		if(m_pComboBoxEncryption->currentItem() == 1)
+		{
+			strWITH.append(" ENCRYPTED ");
+			bEncrypted = true;
+		}	
+		else
+		{
+			if(m_pComboBoxEncryption->currentItem() == 2)
+				strWITH.append(" UNENCRYPTED ");
+		}
+		
+		strWITH.append("PASSWORD '");
+		
+		if(!bEncrypted)
+		{
+			strWITH.append(m_pPasswordEdit1->password());
+		}
+		else
+		{
+			QString strQuery("SELECT md5 FROM pg_catalog.md5('");
+			strQuery.append(m_pPasswordEdit1->password());
+			strQuery.append(m_pUser->text(0));
+			strQuery.append("');");
+			
+			QString strMD5;
+			pqxx::result pqxxResult; 
+			
+			try
+			{
+				pqxxResult = pConnection->runQuery(strQuery);
+			}
+			catch (const std::exception &e)
+			{
+				KMessageBox::error(this, e.what());
+			} 
+			
+			if (pqxxResult.size() >= 1)
+			{
+				strMD5 = pqxxResult[0][0].c_str();
+				strWITH.append("md5" + strMD5);
+			}
+		}
+		
+		strWITH.append("'\n");
+	}
+	
+	if(m_pCheckBoxCreateDb->isChecked() && !m_pUser->canCreateDb())
+		strWITH.append("CREATEDB\n");
+		
+	if(!m_pCheckBoxCreateDb->isChecked() && m_pUser->canCreateDb())
+		strWITH.append("NOCREATEDB\n");
+		
+	if(m_pCheckBoxCreateUsers->isChecked() && !m_pUser->isSuper())
+		strWITH.append("CREATEUSER\n");
+	
+	if(!m_pCheckBoxCreateUsers->isChecked() && m_pUser->isSuper())
+		strWITH.append("NOCREATEUSER\n");
+		
+	if(m_pRadioButtonExpiresOn->isChecked() && ( (m_pUser->validUntil().isNull()) || (m_pUser->validUntil() != m_pDateWidgetExpiration->date()) ))
+	{
+		strWITH.append("VALID UNTIL '");
+		
+		QDate d = m_pDateWidgetExpiration->date();
+		
+		strWITH.append(d.toString("yyyy-MM-dd"));
+		strWITH.append("'\n");
+	}
+	
+	if(!m_pRadioButtonExpiresOn->isChecked() && (m_pUser->validUntil().isNull() == false))
+	{
+		strWITH.append("VALID UNTIL 'infinity'");
+	}
+		
+	if(strWITH.length() > 7)
+		strSQL.append(strWITH + ";");
+	else
+		strSQL.truncate(0);
+	
+	if(m_pLineEditUserName->text() != m_pUser->text(0))
+	{
+		strSQL.append("\nALTER USER ");
+		strSQL.append(m_pUser->text(0));
+		strSQL.append(" RENAME TO ");
+		strSQL.append(m_pLineEditUserName->text());
+		strSQL.append(";");
+	}	
+		
+	return strSQL;
+}
+
+#include "kpgmodifyuserwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,47 @@
+//
+// C++ Interface: kpgmodifyuserwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYUSERWIDGET1_H
+#define KPGMODIFYUSERWIDGET1_H
+
+#include "kpgcreateuserwidget1.h"
+
+class KPGUser;
+class KPGConnection;
+
+/**
+  * Widget for modify user Wizard
+  *
+  * @author Lumir Vanek
+  */
+class KPGModifyUserWidget1 : public KPGCreateUserWidget1
+{
+	Q_OBJECT
+	
+public:
+    KPGModifyUserWidget1(QWidget *parent, const char *name, KPGUser *);
+    ~KPGModifyUserWidget1();
+		
+	const QString getSQL(KPGConnection *);
+    
+protected slots:
+
+    virtual void slotLineEditUserNameChanged(const QString &);
+    virtual void slotRadioButtonExpirationChanged(int);
+    virtual void slotDateWidgetExpirationChanged(QDate);
+    virtual void slotCheckBoxCreateDbToggled(bool);
+    virtual void slotCheckBoxCreateUsersToggled(bool);
+		
+protected:
+	KPGUser *m_pUser;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,84 @@
+//
+// C++ Implementation: kpgmodifyuserwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifyuserwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <klistbox.h>
+#include <kcombobox.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+#include "../DbObjects/kpguser.h"
+#include "kpgmodifyuserwidget1.h"
+
+
+KPGModifyUserWizard::KPGModifyUserWizard(QWidget *parent, const char *name, KPGUser *pUser)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGModifyUserWidget1 *pModifyUserWidget1 = new KPGModifyUserWidget1(WizardPage1, "KPGModifyUserWidget1", pUser);
+	m_pPageWidget1 = pModifyUserWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pModifyUserWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+
+	setNextEnabled(WizardPage1, false);
+	
+	languageChange();
+}
+
+
+KPGModifyUserWizard::~KPGModifyUserWizard()
+{
+}
+
+void KPGModifyUserWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+		
+	setCaption( i18n( "Modify user" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - User name and another properties" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifyUserWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL("");
+		
+		strSQL.append((static_cast <KPGModifyUserWidget1 *> (m_pPageWidget1))->getSQL(connection()));
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgmodifyuserwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyuserwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: kpgmodifyuserwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYUSERWIZARD_H
+#define KPGMODIFYUSERWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGUser;
+
+/**
+Modify user Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyUserWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGModifyUserWizard(QWidget *parent, const char *name, KPGUser *);
+    ~KPGModifyUserWizard();
+
+protected:
+		virtual void showPage(QWidget *);
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,132 @@
+//
+// C++ Implementation: kpgmodifyviewwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifyviewwidget1.h"
+
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qtable.h>
+#include <qheader.h>
+#include <qtextcodec.h>
+
+// include files for KDE
+#include <ktextedit.h>
+#include <kcursor.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "../QueryResult/kpgsqleditorsettings.h"
+#include "../DbObjects/kpgdatabase.h"
+#include "../QueryResult/kpgsyntaxhighlighter.h"
+
+
+KPGModifyViewWidget1::KPGModifyViewWidget1(QWidget *parent, const char *name, KPGDatabase *pDatabase)
+ : KPGModifyViewWidget1Base(parent, name)
+{
+    m_pDatabase = pDatabase;
+	m_pSyntaxHighlighter = new KPGSyntaxHighlighter(m_pTextEditSQL);
+	
+    m_pTextEditSQL->setFont( KPoGreView::configuration()->sqleditor()->font() );
+    
+	m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->sqleditor()->colorDefaultText() );
+	m_pSyntaxHighlighter->setColorKeyWords( KPoGreView::configuration()->sqleditor()->colorKeyWords() );
+	m_pSyntaxHighlighter->setColorDataTypes( KPoGreView::configuration()->sqleditor()->colorDataTypes() );
+	m_pSyntaxHighlighter->setColorOperators( KPoGreView::configuration()->sqleditor()->colorOperators() );
+	m_pSyntaxHighlighter->setColorQuotedStrings( KPoGreView::configuration()->sqleditor()->colorQuotedStrings() );
+	m_pSyntaxHighlighter->setColorNumbers( KPoGreView::configuration()->sqleditor()->colorNumbers() );
+    m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->sqleditor()->colorComments() );
+	
+	m_pSyntaxHighlighter->rehighlight();
+}
+
+
+KPGModifyViewWidget1::~KPGModifyViewWidget1()
+{
+	delete m_pSyntaxHighlighter;
+}
+
+void KPGModifyViewWidget1::slotTextEditSQLChanged()
+{
+	m_pPushButtonTest->setEnabled(m_pTextEditSQL->length() > 0);
+	emit sigEnableNextButton(m_pTextEditSQL->length() > 0);
+}
+
+void KPGModifyViewWidget1::slotTestSQL()
+{
+	// run query on selected database
+	pqxx::result pqxxResult;  
+							
+	try
+	{
+		setCursor(KCursor::waitCursor());
+		pqxxResult = m_pDatabase->runQuery(m_pTextEditSQL->text());
+	}
+	catch (const std::exception &e)
+	{
+	   	KMessageBox::sorry(this, e.what());
+		m_pTableResult->setNumRows(0);
+  	    m_pTableResult->setNumCols(0);
+		setCursor(KCursor::arrowCursor());
+		return;
+	}
+	
+	displayResult(pqxxResult, m_pDatabase->encoderName()); 
+	setCursor(KCursor::arrowCursor());
+}
+
+// Display SQL result
+void KPGModifyViewWidget1::displayResult(pqxx::result pqxxResult, const QString& strEncoderName)
+{
+	// Fill output area with query result
+    int nRows = pqxxResult.size();
+    int nCols = pqxxResult.columns();
+    
+    m_pTableResult->setNumRows(nRows);
+    m_pTableResult->setNumCols(nCols);
+    
+    // field names
+    QHeader* hHeader = m_pTableResult->horizontalHeader();
+    
+    for(int nCol = 0; nCol < nCols; nCol++)
+    {
+        hHeader->setLabel(nCol, pqxxResult.column_name(nCol));
+    }
+    
+    QTextCodec *pTextCodec = QTextCodec::codecForName(strEncoderName);
+    if(!pTextCodec)
+        pTextCodec = QTextCodec::codecForLocale(); // hope that correct codec is returned
+        
+    // data
+    for(int nRow = 0; nRow < nRows; nRow++)
+    {
+        for(int nCol = 0; nCol < nCols; nCol++)
+        {
+        QString strValue(pTextCodec->toUnicode(pqxxResult[nRow][nCol].c_str()));
+        m_pTableResult->setText(nRow, nCol, strValue);
+        }
+    }
+    
+    for(int nCol = 0; nCol < nCols; nCol++)
+    {
+        m_pTableResult->adjustColumn(nCol);
+    }
+}
+
+// Return part of SQL statement for CREATE OR REPLACE VIEW
+const QString KPGModifyViewWidget1::getSQL() const
+{
+	return m_pTextEditSQL->text();
+}
+#include "kpgmodifyviewwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,56 @@
+//
+// C++ Interface: kpgmodifyviewwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYVIEWWIDGET1_H
+#define KPGMODIFYVIEWWIDGET1_H
+
+#include "kpgmodifyviewwidget1base.h"
+
+// include files for libpgxx 
+#include <pqxx/util> 
+#include <pqxx/transaction> 
+
+class KPGDatabase;
+class KPGSyntaxHighlighter;
+
+/**
+Widget for Modify view Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyViewWidget1 : public KPGModifyViewWidget1Base
+{
+Q_OBJECT
+public:
+    KPGModifyViewWidget1(QWidget *parent, const char *name, KPGDatabase *);
+    ~KPGModifyViewWidget1();
+
+		const QString getSQL() const;
+		
+protected:
+		void displayResult(pqxx::result, const QString&);
+
+protected slots:
+		virtual void slotTestSQL();
+		virtual void slotTextEditSQLChanged();
+		
+protected:
+		KPGDatabase *m_pDatabase;
+		
+		/** Syntax highlighter for m_pTextEditSQL */
+  	KPGSyntaxHighlighter *m_pSyntaxHighlighter;
+				
+signals:
+		void sigEnableNextButton(bool);		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgmodifyviewwidget1base.ui'
+**
+** Created: Út dub 1 13:07:29 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgmodifyviewwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qsplitter.h>
+#include <ktextedit.h>
+#include <qtable.h>
+#include <qlabel.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGModifyViewWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGModifyViewWidget1Base::KPGModifyViewWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGModifyViewWidget1Base" );
+    KPGModifyViewWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGModifyViewWidget1BaseLayout"); 
+
+    m_pPushButtonTest = new QPushButton( this, "m_pPushButtonTest" );
+
+    KPGModifyViewWidget1BaseLayout->addWidget( m_pPushButtonTest, 2, 0 );
+
+    splitter1 = new QSplitter( this, "splitter1" );
+    splitter1->setOrientation( QSplitter::Vertical );
+
+    m_pTextEditSQL = new KTextEdit( splitter1, "m_pTextEditSQL" );
+    m_pTextEditSQL->setTextFormat( KTextEdit::PlainText );
+
+    m_pTableResult = new QTable( splitter1, "m_pTableResult" );
+    m_pTableResult->setNumRows( 0 );
+    m_pTableResult->setNumCols( 0 );
+
+    KPGModifyViewWidget1BaseLayout->addMultiCellWidget( splitter1, 1, 1, 0, 1 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGModifyViewWidget1BaseLayout->addMultiCellWidget( textLabel1, 0, 0, 0, 1 );
+    spacer1 = new QSpacerItem( 291, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGModifyViewWidget1BaseLayout->addItem( spacer1, 2, 1 );
+    languageChange();
+    resize( QSize(415, 348).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pPushButtonTest, SIGNAL( clicked() ), this, SLOT( slotTestSQL() ) );
+    connect( m_pTextEditSQL, SIGNAL( textChanged() ), this, SLOT( slotTextEditSQLChanged() ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTableResult );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGModifyViewWidget1Base::~KPGModifyViewWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGModifyViewWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Modify view - enter SQL statement" ) );
+    m_pPushButtonTest->setText( tr2i18n( "Test SQL" ) );
+    textLabel1->setText( tr2i18n( "SQL query for view:" ) );
+}
+
+void KPGModifyViewWidget1Base::slotTestSQL()
+{
+    qWarning( "KPGModifyViewWidget1Base::slotTestSQL(): Not implemented yet" );
+}
+
+void KPGModifyViewWidget1Base::slotTextEditSQLChanged()
+{
+    qWarning( "KPGModifyViewWidget1Base::slotTextEditSQLChanged(): Not implemented yet" );
+}
+
+#include "kpgmodifyviewwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,108 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGModifyViewWidget1Base</class>
+<comment>Widget for Modify view Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGModifyViewWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>415</width>
+            <height>348</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Modify view - enter SQL statement</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QPushButton" row="2" column="0">
+            <property name="name">
+                <cstring>m_pPushButtonTest</cstring>
+            </property>
+            <property name="text">
+                <string>Test SQL</string>
+            </property>
+        </widget>
+        <widget class="QSplitter" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>splitter1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <widget class="KTextEdit">
+                <property name="name">
+                    <cstring>m_pTextEditSQL</cstring>
+                </property>
+                <property name="textFormat">
+                    <enum>PlainText</enum>
+                </property>
+            </widget>
+            <widget class="QTable">
+                <property name="name">
+                    <cstring>m_pTableResult</cstring>
+                </property>
+                <property name="numRows">
+                    <number>0</number>
+                </property>
+                <property name="numCols">
+                    <number>0</number>
+                </property>
+            </widget>
+        </widget>
+        <widget class="QLabel" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>SQL query for view:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTableResult</cstring>
+            </property>
+        </widget>
+        <spacer row="2" column="1">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>291</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pPushButtonTest</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGModifyViewWidget1Base</receiver>
+        <slot>slotTestSQL()</slot>
+    </connection>
+    <connection>
+        <sender>m_pTextEditSQL</sender>
+        <signal>textChanged()</signal>
+        <receiver>KPGModifyViewWidget1Base</receiver>
+        <slot>slotTextEditSQLChanged()</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotTestSQL()</slot>
+    <slot access="protected">slotTextEditSQLChanged()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Implementation: kpgmodifyviewwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgmodifyviewwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <ktextedit.h>
+
+// application specific includes
+#include "../DbObjects/kpgdatabase.h"
+#include "../DbObjects/kpgview.h"
+#include "kpgmodifyviewwidget1.h"
+#include "../kpgutil.h"
+
+
+KPGModifyViewWizard::KPGModifyViewWizard(QWidget *parent, const char *name, KPGDatabase *pDatabase, const QString & strNamespace, KPGView *pView)
+ : KPG3StepsWizard(parent, name)
+{
+	m_strNamespace = strNamespace;
+  	m_strViewName = pView->text(0);
+  
+  	KPGModifyViewWidget1 *pModifyViewWidget1 = new KPGModifyViewWidget1(WizardPage1, "KPGModifyViewWidget1", pDatabase);
+	m_pPageWidget1 = pModifyViewWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pModifyViewWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+
+	languageChange();
+		
+	// set View definition to edit box
+	pModifyViewWidget1->m_pTextEditSQL->setText(pView->definition());
+}
+
+
+KPGModifyViewWizard::~KPGModifyViewWizard()
+{
+}
+
+void KPGModifyViewWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+		
+		setCaption( i18n( "Modify view" ) );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Enter SQL statement for view" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGModifyViewWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSql("CREATE OR REPLACE VIEW ");
+		
+		strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strViewName));
+		strSql.append(" AS\n");
+		
+		strSql.append((static_cast <KPGModifyViewWidget1 *> (m_pPageWidget1))->getSQL());
+		
+		m_pTextEditSQL->setText(strSql);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+	
+}
+#include "kpgmodifyviewwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgmodifyviewwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: kpgmodifyviewwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGMODIFYVIEWWIZARD_H
+#define KPGMODIFYVIEWWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGView;
+class KPGDatabase;
+
+/**
+Modify View Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGModifyViewWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGModifyViewWizard(QWidget *parent, const char *name, KPGDatabase *, const QString &, KPGView *);
+    ~KPGModifyViewWizard();
+
+protected:
+	virtual void showPage(QWidget *);
+
+protected:
+		
+    QString m_strNamespace;
+	QString m_strViewName;
+				
+protected slots:
+    virtual void languageChange();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,101 @@
+//
+// C++ Implementation: kpgnewobjectdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgnewobjectdialog.h"
+
+#include <qpushbutton.h>
+#include <qiconview.h>
+
+// application specific includes
+#include "../DbObjects/kpgtreeitem.h"
+
+KPGNewObjectDialog::KPGNewObjectDialog(QWidget *parent, const char *name, eNewObjectIconSet eIconSet, const QString &strCaption, bool bTablespces)
+ : KPGNewObjectDialogBase(parent, name)
+{
+	if(eIconSet == iconSetServer)
+	{
+		// Server's objects
+    if(bTablespces) (void) new QIconViewItem(m_pIconView, "tablespace", * KPGTreeItem::m_pIconTablespaceUsr);
+		(void) new QIconViewItem(m_pIconView, "database", * KPGTreeItem::m_pIconDatabaseUsr);
+		(void) new QIconViewItem(m_pIconView, "group", * KPGTreeItem::m_pIconGroup);
+		(void) new QIconViewItem(m_pIconView, "user", * KPGTreeItem::m_pIconUser);
+	}
+  else
+  {
+    if(eIconSet == iconSetTable)
+    {
+      (void) new QIconViewItem(m_pIconView, "column", * KPGTreeItem::m_pIconColumnOther);
+      (void) new QIconViewItem(m_pIconView, "primary key", * KPGTreeItem::m_pIconPrimaryKeyConstr);
+      (void) new QIconViewItem(m_pIconView, "foreign key", * KPGTreeItem::m_pIconForeignKeyConstr);
+      (void) new QIconViewItem(m_pIconView, "unique", * KPGTreeItem::m_pIconUniqueConstr);
+      (void) new QIconViewItem(m_pIconView, "check", * KPGTreeItem::m_pIconCheckConstr);
+      (void) new QIconViewItem(m_pIconView, "index", * KPGTreeItem::m_pIconIndex);
+			(void) new QIconViewItem(m_pIconView, "rule", * KPGTreeItem::m_pIconRule);
+			(void) new QIconViewItem(m_pIconView, "trigger", * KPGTreeItem::m_pIconTrigger);
+    }
+	 else
+	 {
+		  // Databases's and schema's objects
+      if(eIconSet == iconSetDatabase)
+      {
+        (void) new QIconViewItem(m_pIconView, "schema", * KPGTreeItem::m_pIconSchemaUsr);
+        (void) new QIconViewItem(m_pIconView, "language", * KPGTreeItem::m_pIconLanguage);
+		  }
+          
+      (void) new QIconViewItem(m_pIconView, "table", * KPGTreeItem::m_pIconTable);
+		  (void) new QIconViewItem(m_pIconView, "view", * KPGTreeItem::m_pIconView);
+      (void) new QIconViewItem(m_pIconView, "domain", * KPGTreeItem::m_pIconDomain);
+      (void) new QIconViewItem(m_pIconView, "function", * KPGTreeItem::m_pIconFunctionSql);
+		  (void) new QIconViewItem(m_pIconView, "sequence", * KPGTreeItem::m_pIconSequence);
+      (void) new QIconViewItem(m_pIconView, "base type", * KPGTreeItem::m_pIconTypeBase);
+      (void) new QIconViewItem(m_pIconView, "composite type", * KPGTreeItem::m_pIconTypeStandalone);
+	 }
+	}
+  
+	m_strCaption = strCaption;
+	languageChange();
+}
+
+
+KPGNewObjectDialog::~KPGNewObjectDialog()
+{
+}
+
+void KPGNewObjectDialog::languageChange()
+{
+    KPGNewObjectDialogBase::languageChange();
+		
+		setCaption( m_strCaption );
+}
+
+void KPGNewObjectDialog::slotItemDoubleClicked(QIconViewItem *pItem)
+{
+	m_strObjectType = pItem->text();
+	KPGNewObjectDialogBase::accept();
+}
+
+void KPGNewObjectDialog::slotItemSelectionChanged(QIconViewItem *pItem)
+{
+	m_pButtonOk->setEnabled(pItem != 0);
+}
+
+void KPGNewObjectDialog::accept()
+{
+	QIconViewItem *pItem = m_pIconView->currentItem();
+	
+	if(pItem)
+	{
+		m_strObjectType = pItem->text();
+		KPGNewObjectDialogBase::accept();
+	}
+}
+
+#include "kpgnewobjectdialog.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Interface: kpgnewobjectdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGNEWOBJECTDIALOG_H
+#define KPGNEWOBJECTDIALOG_H
+
+#include "kpgnewobjectdialogbase.h"
+
+#include <qstring.h>
+
+/**
+Dialog for selecting new object type
+
+ at author Lumir Vanek
+*/
+
+class KPGNewObjectDialog : public KPGNewObjectDialogBase
+{
+Q_OBJECT
+public:
+    enum eNewObjectIconSet { iconSetServer = 0, iconSetDatabase, iconSetSchema, iconSetTable };
+		
+		KPGNewObjectDialog(QWidget *parent, const char *name, eNewObjectIconSet, const QString&, bool);
+    ~KPGNewObjectDialog();
+						
+		const QString & objectType() const { return m_strObjectType; }
+		
+protected:
+	QString m_strObjectType;
+	QString m_strCaption;	
+		
+protected slots:
+
+    virtual void languageChange();
+    virtual void slotItemDoubleClicked(QIconViewItem *);
+    virtual void slotItemSelectionChanged(QIconViewItem *);
+		virtual void accept();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,103 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgnewobjectdialogbase.ui'
+**
+** Created: Út dub 1 13:07:25 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgnewobjectdialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qiconview.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGNewObjectDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGNewObjectDialogBase::KPGNewObjectDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGNewObjectDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KPGNewObjectDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGNewObjectDialogBaseLayout"); 
+
+    Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1"); 
+
+    m_pButtonHelp = new QPushButton( this, "m_pButtonHelp" );
+    m_pButtonHelp->setAutoDefault( TRUE );
+    Layout1->addWidget( m_pButtonHelp );
+    Horizontal_Spacing2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    Layout1->addItem( Horizontal_Spacing2 );
+
+    m_pButtonOk = new QPushButton( this, "m_pButtonOk" );
+    m_pButtonOk->setEnabled( FALSE );
+    m_pButtonOk->setAutoDefault( TRUE );
+    m_pButtonOk->setDefault( TRUE );
+    Layout1->addWidget( m_pButtonOk );
+
+    m_pButtonCancel = new QPushButton( this, "m_pButtonCancel" );
+    m_pButtonCancel->setAutoDefault( TRUE );
+    Layout1->addWidget( m_pButtonCancel );
+
+    KPGNewObjectDialogBaseLayout->addLayout( Layout1, 1, 0 );
+
+    m_pIconView = new QIconView( this, "m_pIconView" );
+
+    KPGNewObjectDialogBaseLayout->addWidget( m_pIconView, 0, 0 );
+    languageChange();
+    resize( QSize(376, 300).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pButtonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( m_pButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+    connect( m_pIconView, SIGNAL( doubleClicked(QIconViewItem*) ), this, SLOT( slotItemDoubleClicked(QIconViewItem*) ) );
+    connect( m_pIconView, SIGNAL( selectionChanged(QIconViewItem*) ), this, SLOT( slotItemSelectionChanged(QIconViewItem*) ) );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGNewObjectDialogBase::~KPGNewObjectDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGNewObjectDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "New database object" ) );
+    m_pButtonHelp->setText( tr2i18n( "&Help" ) );
+    m_pButtonHelp->setAccel( QKeySequence( tr2i18n( "F1" ) ) );
+    m_pButtonOk->setText( tr2i18n( "&OK" ) );
+    m_pButtonOk->setAccel( QKeySequence( QString::null ) );
+    m_pButtonCancel->setText( tr2i18n( "&Cancel" ) );
+    m_pButtonCancel->setAccel( QKeySequence( QString::null ) );
+}
+
+void KPGNewObjectDialogBase::slotItemDoubleClicked(QIconViewItem*)
+{
+    qWarning( "KPGNewObjectDialogBase::slotItemDoubleClicked(QIconViewItem*): Not implemented yet" );
+}
+
+void KPGNewObjectDialogBase::slotItemSelectionChanged(QIconViewItem*)
+{
+    qWarning( "KPGNewObjectDialogBase::slotItemSelectionChanged(QIconViewItem*): Not implemented yet" );
+}
+
+#include "kpgnewobjectdialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgnewobjectdialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,146 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGNewObjectDialogBase</class>
+<comment>Dialog for choosing new object type</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGNewObjectDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>376</width>
+            <height>300</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>New database object</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>Layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pButtonHelp</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Help</string>
+                    </property>
+                    <property name="accel">
+                        <string>F1</string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>Horizontal Spacing2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pButtonOk</cstring>
+                    </property>
+                    <property name="enabled">
+                        <bool>false</bool>
+                    </property>
+                    <property name="text">
+                        <string>&amp;OK</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                    <property name="default">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pButtonCancel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Cancel</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QIconView" row="0" column="0">
+            <property name="name">
+                <cstring>m_pIconView</cstring>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pButtonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGNewObjectDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGNewObjectDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>m_pIconView</sender>
+        <signal>doubleClicked(QIconViewItem*)</signal>
+        <receiver>KPGNewObjectDialogBase</receiver>
+        <slot>slotItemDoubleClicked(QIconViewItem*)</slot>
+    </connection>
+    <connection>
+        <sender>m_pIconView</sender>
+        <signal>selectionChanged(QIconViewItem*)</signal>
+        <receiver>KPGNewObjectDialogBase</receiver>
+        <slot>slotItemSelectionChanged(QIconViewItem*)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotItemDoubleClicked(QIconViewItem *)</slot>
+    <slot access="protected">slotItemSelectionChanged(QIconViewItem *)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,213 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgprivilegeswizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <ktextedit.h>
+#include <klocale.h>
+
+#include "../DbObjects/kpgserver.h"
+#include "../DbObjects/kpgusersfolder.h"
+#include "../DbObjects/kpggroupsfolder.h"
+#include "kpgcreatetablewidget5.h"
+#include "kpgcreatedatabasewidget2.h"
+#include "kpgcreatetablespacewidget2.h"
+#include "kpgcreatefunctionwidget5.h"
+#include "kpgcreatelanguagewidget2.h"
+#include "kpgcreateschemawidget2.h"
+
+
+KPGPrivilegesWizard::KPGPrivilegesWizard(QWidget *parent, const char *name, eObjectType objType, bool bGrantOrRevoke, KPGServer *pServer, const QString &strNamespace, const QString
+&strObjectName, const QString &strObjectParameters)
+ : KPG3StepsWizard(parent, name)
+{
+  m_bGrantOrRevoke = bGrantOrRevoke;
+  m_objType = objType;
+  
+  switch(objType)
+  {
+    case typeTable:       // table, view and sequence uses common wizard
+    case typeView:
+    case typeSequence:
+        {
+          KPGCreateTableWidget5 *pCreateTableWidget5 = new KPGCreateTableWidget5(WizardPage1, "KPGCreateTableWidget5", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateTableWidget5;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateTableWidget5, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+              
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateTableWidget5->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateTableWidget5->m_pListBoxUsersGroups);
+            
+          // Set table name and namespace
+          pCreateTableWidget5->setTableName(strObjectName);
+          pCreateTableWidget5->setNamespace(strNamespace);
+        }    
+        break;
+     
+     case typeDatabase:
+        { 
+          KPGCreateDatabaseWidget2 *pCreateDatabaseWidget2 = new KPGCreateDatabaseWidget2(WizardPage1, "KPGCreateDatabaseWidget2", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateDatabaseWidget2;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateDatabaseWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateDatabaseWidget2->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateDatabaseWidget2->m_pListBoxUsersGroups);
+          
+          // Set database name
+          pCreateDatabaseWidget2->setDatabaseName(strObjectName);
+        }    
+        break;
+     
+     case typeTablespace:
+        { 
+          KPGCreateTablespaceWidget2 *pCreateTablespaceWidget2 = new KPGCreateTablespaceWidget2(WizardPage1, "KPGCreateTablespaceWidget2", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateTablespaceWidget2;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateTablespaceWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateTablespaceWidget2->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateTablespaceWidget2->m_pListBoxUsersGroups);
+  
+          // Set tablespace name
+          pCreateTablespaceWidget2->setTablespaceName(strObjectName);
+        }    
+        break;
+     
+     case typeFunction:
+        { 
+          KPGCreateFunctionWidget5 *pCreateFunctionWidget5 = new KPGCreateFunctionWidget5(WizardPage1, "KPGCreateFunctionWidget5", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateFunctionWidget5;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateFunctionWidget5, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateFunctionWidget5->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateFunctionWidget5->m_pListBoxUsersGroups);
+  
+          // Set function name and schema
+          pCreateFunctionWidget5->setFunctionName(strObjectName, strObjectParameters); pCreateFunctionWidget5->setNamespace(strNamespace);
+        }    
+        break;
+     
+     case typeLanguage:
+        { 
+          KPGCreateLanguageWidget2 *pCreateLanguageWidget2 = new KPGCreateLanguageWidget2(WizardPage1, "KPGCreateLanguageWidget2", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateLanguageWidget2;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateLanguageWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateLanguageWidget2->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateLanguageWidget2->m_pListBoxUsersGroups);
+  
+          // Set language name
+          pCreateLanguageWidget2->setLanguageName(strObjectName);
+        }    
+        break;
+     
+     case typeSchema:
+        { 
+          KPGCreateSchemaWidget2 *pCreateSchemaWidget2 = new KPGCreateSchemaWidget2(WizardPage1, "KPGCreateSchemaWidget2", bGrantOrRevoke);
+          m_pPageWidget1 = pCreateSchemaWidget2;
+          WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+          connect(pCreateSchemaWidget2, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+          
+          pServer->getGroupsFolder()->fillListBoxWithChildItems(pCreateSchemaWidget2->m_pListBoxUsersGroups);
+          pServer->getUsersFolder()->fillListBoxWithChildItems(pCreateSchemaWidget2->m_pListBoxUsersGroups);
+  
+          // Set schema name
+          pCreateSchemaWidget2->setSchemaName(strObjectName);
+        } 
+        break;    
+  }
+ 
+  setNextEnabled(WizardPage1, false);
+  languageChange();
+}
+
+
+KPGPrivilegesWizard::~KPGPrivilegesWizard()
+{
+}
+
+void KPGPrivilegesWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    if(m_bGrantOrRevoke)
+      setCaption( i18n( "Grant privileges" ) );
+    else
+      setCaption( i18n( "Revoke privileges" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Define user rights" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGPrivilegesWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL;
+    
+    switch(m_objType)
+    
+    { // TODO add quoted naming to wizard pages !!!
+      case typeTable:       // table, view and sequence uses common wizard
+      case typeView:
+      case typeSequence:
+              strSQL.append((static_cast <KPGCreateTableWidget5 *> (m_pPageWidget1))->getSQL());
+              break;
+      
+      case typeDatabase:
+              strSQL.append((static_cast <KPGCreateDatabaseWidget2 *> (m_pPageWidget1))->getSQL());
+              break;
+      
+      case typeTablespace:
+              strSQL.append((static_cast <KPGCreateTablespaceWidget2 *> (m_pPageWidget1))->getSQL());
+              break;
+      
+      case typeFunction:
+              strSQL.append((static_cast <KPGCreateFunctionWidget5 *> (m_pPageWidget1))->getSQL());
+              break;
+      
+      case typeLanguage:
+              strSQL.append((static_cast <KPGCreateLanguageWidget2 *> (m_pPageWidget1))->getSQL());
+              break;
+      
+      case typeSchema:
+              strSQL.append((static_cast <KPGCreateSchemaWidget2 *> (m_pPageWidget1))->getSQL());
+              break;    
+    }
+    
+    m_pTextEditSQL->setText(strSQL);
+    
+    setNextEnabled(WizardPage2, strSQL.length() > 0);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgprivilegeswizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgprivilegeswizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGPRIVILEGESWIZARD_H
+#define KPGPRIVILEGESWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGServer;
+
+/**
+Wizard for grant/revoke privileges
+
+ at author Lumir Vanek
+*/
+
+class KPGPrivilegesWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    // enumeration of objects, that allow change ACL using this wizard
+    enum eObjectType { typeTable, typeView, typeSequence, typeDatabase, typeTablespace, typeFunction, typeLanguage, typeSchema };
+    
+    KPGPrivilegesWizard(QWidget *, const char *name, eObjectType, bool, KPGServer *, const QString &, const QString &, const QString & = QString::null);
+    ~KPGPrivilegesWizard();
+        
+protected:    
+    bool m_bGrantOrRevoke;
+    eObjectType m_objType;
+    
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();    
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+//
+// C++ Implementation: kpgrenameobjectwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrenameobjectwidget1.h"
+
+// include files for KDE
+#include <klistbox.h>
+#include <klineedit.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+KPGRenameObjectWidget1::KPGRenameObjectWidget1(QWidget *parent, const char *name, const QString &strOldName)
+ : KPGRenameObjectWidget1Base(parent, name)
+{
+	m_pLineEditOldName->setText(strOldName);
+	m_pLineEditNewName->setFocus();
+}
+
+
+KPGRenameObjectWidget1::~KPGRenameObjectWidget1()
+{
+}
+
+void KPGRenameObjectWidget1::slotLineEditNewNameChanged(const QString &strNewName)
+{
+	emit sigEnableNextButton(strNewName.length() > 0);
+}
+
+#include "kpgrenameobjectwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,38 @@
+//
+// C++ Interface: kpgrenameobjectwidget1
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRENAMEOBJECTWIDGET1_H
+#define KPGRENAMEOBJECTWIDGET1_H
+
+#include "kpgrenameobjectwidget1base.h"
+
+/**
+Widget for rename Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGRenameObjectWidget1 : public KPGRenameObjectWidget1Base
+{
+Q_OBJECT
+public:
+    KPGRenameObjectWidget1(QWidget *parent, const char *name, const QString &);
+    ~KPGRenameObjectWidget1();
+
+protected slots:
+
+		virtual void slotLineEditNewNameChanged(const QString &);
+		
+signals:
+		void sigEnableNextButton(bool);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,97 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgrenameobjectwidget1base.ui'
+**
+** Created: Út dub 1 13:07:31 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgrenameobjectwidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGRenameObjectWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGRenameObjectWidget1Base::KPGRenameObjectWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGRenameObjectWidget1Base" );
+    KPGRenameObjectWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGRenameObjectWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pLineEditOldName = new KLineEdit( this, "m_pLineEditOldName" );
+    m_pLineEditOldName->setReadOnly( TRUE );
+    layout1->addWidget( m_pLineEditOldName );
+
+    KPGRenameObjectWidget1BaseLayout->addLayout( layout1, 0, 0 );
+
+    layout2 = new QVBoxLayout( 0, 0, 6, "layout2"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout2->addWidget( textLabel2 );
+
+    m_pLineEditNewName = new KLineEdit( this, "m_pLineEditNewName" );
+    layout2->addWidget( m_pLineEditNewName );
+
+    KPGRenameObjectWidget1BaseLayout->addLayout( layout2, 1, 0 );
+    spacer1 = new QSpacerItem( 20, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGRenameObjectWidget1BaseLayout->addItem( spacer1, 2, 0 );
+    spacer2 = new QSpacerItem( 81, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGRenameObjectWidget1BaseLayout->addMultiCell( spacer2, 0, 1, 1, 1 );
+    languageChange();
+    resize( QSize(300, 177).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pLineEditNewName, SIGNAL( textChanged(const QString&) ), this, SLOT( slotLineEditNewNameChanged(const QString&) ) );
+
+    // tab order
+    setTabOrder( m_pLineEditNewName, m_pLineEditOldName );
+
+    // buddies
+    textLabel1->setBuddy( m_pLineEditOldName );
+    textLabel2->setBuddy( m_pLineEditNewName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGRenameObjectWidget1Base::~KPGRenameObjectWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGRenameObjectWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Rename object" ) );
+    textLabel1->setText( tr2i18n( "&Old name:" ) );
+    textLabel2->setText( tr2i18n( "N&ew name:" ) );
+}
+
+void KPGRenameObjectWidget1Base::slotLineEditNewNameChanged(const QString&)
+{
+    qWarning( "KPGRenameObjectWidget1Base::slotLineEditNewNameChanged(const QString&): Not implemented yet" );
+}
+
+#include "kpgrenameobjectwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,135 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGRenameObjectWidget1Base</class>
+<comment>Widget for rename object Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGRenameObjectWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>300</width>
+            <height>177</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Rename object</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Old name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditOldName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditOldName</cstring>
+                    </property>
+                    <property name="readOnly">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout2</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>N&amp;ew name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditNewName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditNewName</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="2" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="0" column="1" rowspan="2" colspan="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>81</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pLineEditNewName</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGRenameObjectWidget1Base</receiver>
+        <slot>slotLineEditNewNameChanged(const QString&amp;)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditNewName</tabstop>
+    <tabstop>m_pLineEditOldName</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotLineEditNewNameChanged(const QString &amp;)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,140 @@
+//
+// C++ Implementation: kpgrenameobjectwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrenameobjectwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <ktextedit.h>
+#include <klineedit.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "kpgrenameobjectwidget1.h"
+#include "../kpgutil.h"
+
+
+KPGRenameObjectWizard::KPGRenameObjectWizard(QWidget *parent, const char *name,
+	const QString &strOldName, const char *szSqlName, const QString & strObjectName)
+ : KPG3StepsWizard(parent, name)
+{
+	KPGRenameObjectWidget1 *pRenameObjectWidget1 = new KPGRenameObjectWidget1(WizardPage1, "KPGRenameObjectWidget1", strOldName);
+	m_pPageWidget1 = pRenameObjectWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	connect(pRenameObjectWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+	
+	m_strObjectName = strObjectName;
+	m_strSqlName = szSqlName;
+	
+	languageChange();
+}
+
+KPGRenameObjectWizard::KPGRenameObjectWizard(QWidget *parent, const char *name, const QString &strNamespaceTableName,
+  const QString &strOldName, const char *szSqlName, const QString & strObjectName)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGRenameObjectWidget1 *pRenameObjectWidget1 = new KPGRenameObjectWidget1(WizardPage1, "KPGRenameObjectWidget1", strOldName);
+  m_pPageWidget1 = pRenameObjectWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pRenameObjectWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+ 
+  m_strNamespaceTableName = strNamespaceTableName; 
+  m_strObjectName = strObjectName;
+  m_strSqlName = szSqlName;
+  
+  languageChange();
+}
+
+KPGRenameObjectWizard::~KPGRenameObjectWizard()
+{
+}
+
+void KPGRenameObjectWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+		
+	setCaption( i18n( "Rename " ) + m_strObjectName );
+		
+    setTitle( WizardPage1, i18n( "Step 1 - Enter new  name" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+const QString KPGRenameObjectWizard::newObjectName() const
+{
+  KPGRenameObjectWidget1 *pWidget = static_cast <KPGRenameObjectWidget1 *> (m_pPageWidget1);
+  return pWidget->m_pLineEditNewName->text();
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGRenameObjectWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		KPGRenameObjectWidget1 *pWidget = static_cast <KPGRenameObjectWidget1 *> (m_pPageWidget1);
+		// prepare SQL statement
+		QString strSQL;
+    
+    if(m_strNamespaceTableName.isEmpty())
+    {
+		  strSQL.append("ALTER ");
+		  strSQL.append(m_strSqlName);
+		  strSQL.append(" ");
+		  strSQL.append(pWidget->m_pLineEditOldName->text());
+		  strSQL.append(" RENAME TO ");
+		  strSQL.append(KPGUtil::quotedName(pWidget->m_pLineEditNewName->text()));
+		  strSQL.append(";");
+		}
+    else
+    {
+      if(m_strSqlName == "COLUMN")
+      {
+        strSQL.append("ALTER TABLE ");
+        strSQL.append(m_strNamespaceTableName);
+        strSQL.append(" RENAME ");
+        strSQL.append(m_strSqlName);
+        strSQL.append(" ");
+        strSQL.append(pWidget->m_pLineEditOldName->text());
+        strSQL.append(" TO ");
+        strSQL.append(KPGUtil::quotedName(pWidget->m_pLineEditNewName->text()));
+        strSQL.append(";");
+      }
+      else
+      {
+        strSQL.append("ALTER ");
+        strSQL.append(m_strSqlName);
+        strSQL.append(" ");
+        strSQL.append(pWidget->m_pLineEditOldName->text());
+        strSQL.append(" ON ");
+        strSQL.append(m_strNamespaceTableName);
+        strSQL.append(" RENAME TO ");
+        strSQL.append(KPGUtil::quotedName(pWidget->m_pLineEditNewName->text()));
+        strSQL.append(";");
+      }
+    }
+    
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgrenameobjectwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrenameobjectwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+//
+// C++ Interface: kpgrenameobjectwizard
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRENAMEOBJECTWIZARD_H
+#define KPGRENAMEOBJECTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Universal rename Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGRenameObjectWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGRenameObjectWizard(QWidget *parent, const char *name, const QString &, const char *, const QString &);
+    KPGRenameObjectWizard(QWidget *parent, const char *name, const QString &, const QString &, const char *, const QString &);
+    ~KPGRenameObjectWizard();
+    
+    const QString newObjectName() const; 
+
+protected:
+		virtual void showPage(QWidget *);
+		
+protected:
+    QString m_strNamespaceTableName;
+		QString m_strObjectName;
+		QString m_strSqlName;
+		
+protected slots:
+    virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,149 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgrestoredatabasewizard.h"
+
+#include <qframe.h>
+#include <kiconloader.h>
+#include <kurlrequester.h>
+#include <kcombobox.h>
+#include <knuminput.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+#include <dcopclient.h>
+#include <qlayout.h>
+#include <qcheckbox.h>
+#include <qtextedit.h>
+
+#include "konsoleviewwidget.h"
+
+
+KPGRestoreDatabaseWizard::KPGRestoreDatabaseWizard(QWidget *parent, const char *name, DCOPClient *pDcopClient, const QString &strDatabase, const QString &strHostname, const QString &strPort, const QString &strUsername)
+ : KPGRestoreDatabaseWizardBase(parent, name)
+{
+  m_pDcopClient = pDcopClient;
+  m_strDatabase = strDatabase;
+  m_strHostname = strHostname;
+  m_strPort = strPort;
+  m_strUsername = strUsername;
+  
+  m_pPartManager = new KParts::PartManager(this);
+  
+  QVBoxLayout *pLayout = new QVBoxLayout(m_pFrameConsole);
+  
+  m_pConsoleWidget = new KonsoleViewWidget(m_pPartManager, m_pFrameConsole);
+  connect(m_pPartManager, SIGNAL(activePartChanged(KParts::Part*)), m_pConsoleWidget, SLOT(activePartChanged(KParts::Part*)));
+
+  pLayout->addWidget(m_pConsoleWidget);
+  
+  m_pConsoleWidget->setIcon( SmallIcon("konsole") );
+  m_pConsoleWidget->setCaption(i18n("Konsole"));
+  
+  setNextEnabled(WizardPage1, false);
+}
+
+
+KPGRestoreDatabaseWizard::~KPGRestoreDatabaseWizard()
+{
+  delete m_pConsoleWidget;
+  delete m_pPartManager;
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGRestoreDatabaseWizard::showPage(QWidget *pPage)
+{
+  // call parent
+  KPGRestoreDatabaseWizardBase::showPage(pPage);
+  
+  if(pPage == WizardPage2) 
+  {
+    m_pTextEditCommand->setText(getCommand());
+  }
+  
+  if(pPage == WizardPage3) 
+  {
+    m_dcopTalkThread.setDcopClient(m_pDcopClient);
+    m_dcopTalkThread.setCommand(m_pTextEditCommand->text());
+    m_dcopTalkThread.start(); // send command to m_pConsoleWidget via DCOP
+    
+    setFinishEnabled(WizardPage3, true);
+  }
+}
+
+void KPGRestoreDatabaseWizard::slotInputFileChanged(const QString &strInputFile)
+{
+  setNextEnabled(WizardPage1, !strInputFile.isEmpty());
+}
+
+void KPGRestoreDatabaseWizard::slotOnlyDataToggled(bool bToggled)
+{
+  m_pCheckBoxOnlySchema->setEnabled(!bToggled);
+  m_pCheckBoxDisableTriggers->setEnabled(bToggled);
+}
+
+void KPGRestoreDatabaseWizard::slotOnlySchemaToggled(bool bToggled)
+{
+  m_pCheckBoxOnlyData->setEnabled(!bToggled);
+} 
+
+const QString KPGRestoreDatabaseWizard::getCommand() const
+{
+  QString strCommand("pg_restore ");
+    
+  strCommand.append(" --dbname=" + m_strDatabase);
+  
+  strCommand.append(" --host=" + m_strHostname);  
+  strCommand.append(" --port=" + m_strPort);  
+  strCommand.append(" -U " + m_strUsername);  
+  
+  if(m_pCheckBoxOnlyData->isChecked())
+    strCommand.append(" --data-only");  
+
+  if(m_pCheckBoxOnlySchema->isChecked())
+    strCommand.append(" --schema-only");   
+       
+  if(m_pCheckBoxClean->isChecked())
+    strCommand.append(" --clean");
+    
+  if(m_pCheckBoxExitOnError->isChecked())
+    strCommand.append(" --exit-on-error");  
+    
+  /*
+   TODO: use when called from server as : Create from DUMP 
+   if(m_pCheckBoxCreate->isChecked())
+    strCommand.append(" --create");
+  */
+      
+  if(m_pCheckBoxIgnoreVersion->isChecked())
+    strCommand.append(" --ignore-version");
+    
+ if(m_pCheckBoxNoOwner->isChecked())
+    strCommand.append(" --no-owner");
+    
+  if(m_pCheckBoxVerbose->isChecked())
+    strCommand.append(" --verbose");
+  
+  if(m_pCheckBoxNoPrivileges->isChecked())
+    strCommand.append(" --no-acl");
+  
+  if(m_pCheckBoxDisableTriggers->isChecked())
+    strCommand.append(" --disable-triggers");  
+    
+  if(m_pCeckBoxSetSessionAuth->isChecked())
+    strCommand.append(" --use-set-session-authorization");   
+ 
+  strCommand.append(" " + m_pURLRequesterInputFile->url());
+        
+  return strCommand;
+}
+
+#include "kpgrestoredatabasewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGRESTOREDATABASEWIZARD_H
+#define KPGRESTOREDATABASEWIZARD_H
+
+#include "kpgrestoredatabasewizardbase.h"
+
+#include <kparts/partmanager.h>
+#include <qguardedptr.h>
+
+#include "../kpgdcoptalkthread.h"
+
+class KonsoleViewWidget;
+class DCOPClient;
+
+/**
+Restore database Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGRestoreDatabaseWizard : public KPGRestoreDatabaseWizardBase
+{
+Q_OBJECT
+public:
+    KPGRestoreDatabaseWizard(QWidget *parent, const char *name, DCOPClient *, const QString &, const QString &, const QString &, const QString &);
+    ~KPGRestoreDatabaseWizard();
+
+    KParts::PartManager * partManager() const { return m_pPartManager; }
+
+protected:
+    KParts::PartManager *m_pPartManager;
+    DCOPClient *m_pDcopClient;
+    QGuardedPtr<KonsoleViewWidget> m_pConsoleWidget;
+    KPGDcopTalkThread m_dcopTalkThread;
+    
+protected slots:
+    virtual void slotInputFileChanged(const QString &);
+    virtual void slotOnlyDataToggled(bool);
+    virtual void slotOnlySchemaToggled(bool);
+    
+protected:
+    virtual void showPage(QWidget *);
+    const QString getCommand() const;
+    
+    QString m_strDatabase;
+    QString m_strHostname;
+    QString m_strPort;
+    QString m_strUsername;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,197 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgrestoredatabasewizardbase.ui'
+**
+** Created: Út dub 1 13:07:43 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgrestoredatabasewizardbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qwidget.h>
+#include <qlabel.h>
+#include <kurlrequester.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qtextedit.h>
+#include <qframe.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kurlrequester.h"
+#include "klineedit.h"
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGRestoreDatabaseWizardBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The wizard will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal wizard.
+ */
+KPGRestoreDatabaseWizardBase::KPGRestoreDatabaseWizardBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : KWizard( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGRestoreDatabaseWizardBase" );
+
+    WizardPage1 = new QWidget( this, "WizardPage1" );
+    WizardPage1Layout = new QGridLayout( WizardPage1, 1, 1, 11, 6, "WizardPage1Layout"); 
+
+    textLabel1 = new QLabel( WizardPage1, "textLabel1" );
+
+    WizardPage1Layout->addWidget( textLabel1, 0, 0 );
+
+    m_pURLRequesterInputFile = new KURLRequester( WizardPage1, "m_pURLRequesterInputFile" );
+
+    WizardPage1Layout->addWidget( m_pURLRequesterInputFile, 1, 0 );
+    spacer2 = new QSpacerItem( 21, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    WizardPage1Layout->addItem( spacer2, 3, 0 );
+
+    groupBox1 = new QGroupBox( WizardPage1, "groupBox1" );
+    groupBox1->setColumnLayout(0, Qt::Vertical );
+    groupBox1->layout()->setSpacing( 6 );
+    groupBox1->layout()->setMargin( 11 );
+    groupBox1Layout = new QGridLayout( groupBox1->layout() );
+    groupBox1Layout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxOnlyData = new QCheckBox( groupBox1, "m_pCheckBoxOnlyData" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxOnlyData, 0, 0 );
+
+    m_pCheckBoxNoOwner = new QCheckBox( groupBox1, "m_pCheckBoxNoOwner" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxNoOwner, 5, 0 );
+
+    m_pCheckBoxIgnoreVersion = new QCheckBox( groupBox1, "m_pCheckBoxIgnoreVersion" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxIgnoreVersion, 4, 0 );
+
+    m_pCheckBoxExitOnError = new QCheckBox( groupBox1, "m_pCheckBoxExitOnError" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxExitOnError, 3, 0 );
+
+    m_pCheckBoxOnlySchema = new QCheckBox( groupBox1, "m_pCheckBoxOnlySchema" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxOnlySchema, 1, 0 );
+
+    m_pCheckBoxClean = new QCheckBox( groupBox1, "m_pCheckBoxClean" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxClean, 2, 0 );
+
+    m_pCheckBoxVerbose = new QCheckBox( groupBox1, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setChecked( TRUE );
+
+    groupBox1Layout->addWidget( m_pCheckBoxVerbose, 6, 0 );
+
+    m_pCheckBoxNoPrivileges = new QCheckBox( groupBox1, "m_pCheckBoxNoPrivileges" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxNoPrivileges, 7, 0 );
+
+    m_pCheckBoxDisableTriggers = new QCheckBox( groupBox1, "m_pCheckBoxDisableTriggers" );
+
+    groupBox1Layout->addWidget( m_pCheckBoxDisableTriggers, 8, 0 );
+
+    m_pCeckBoxSetSessionAuth = new QCheckBox( groupBox1, "m_pCeckBoxSetSessionAuth" );
+
+    groupBox1Layout->addWidget( m_pCeckBoxSetSessionAuth, 9, 0 );
+
+    WizardPage1Layout->addWidget( groupBox1, 2, 0 );
+    addPage( WizardPage1, QString("") );
+
+    WizardPage2 = new QWidget( this, "WizardPage2" );
+    WizardPage2Layout = new QGridLayout( WizardPage2, 1, 1, 11, 6, "WizardPage2Layout"); 
+
+    m_pTextEditCommand = new QTextEdit( WizardPage2, "m_pTextEditCommand" );
+
+    WizardPage2Layout->addWidget( m_pTextEditCommand, 0, 0 );
+    addPage( WizardPage2, QString("") );
+
+    WizardPage3 = new QWidget( this, "WizardPage3" );
+    WizardPage3Layout = new QGridLayout( WizardPage3, 1, 1, 11, 6, "WizardPage3Layout"); 
+
+    m_pFrameConsole = new QFrame( WizardPage3, "m_pFrameConsole" );
+    m_pFrameConsole->setFrameShape( QFrame::StyledPanel );
+    m_pFrameConsole->setFrameShadow( QFrame::Raised );
+
+    WizardPage3Layout->addWidget( m_pFrameConsole, 0, 0 );
+    addPage( WizardPage3, QString("") );
+    languageChange();
+    resize( QSize(536, 504).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pURLRequesterInputFile, SIGNAL( textChanged(const QString&) ), this, SLOT( slotInputFileChanged(const QString&) ) );
+    connect( m_pCheckBoxOnlyData, SIGNAL( toggled(bool) ), this, SLOT( slotOnlyDataToggled(bool) ) );
+    connect( m_pCheckBoxOnlySchema, SIGNAL( toggled(bool) ), this, SLOT( slotOnlySchemaToggled(bool) ) );
+
+    // tab order
+    setTabOrder( m_pURLRequesterInputFile, m_pCheckBoxOnlyData );
+    setTabOrder( m_pCheckBoxOnlyData, m_pCheckBoxOnlySchema );
+    setTabOrder( m_pCheckBoxOnlySchema, m_pCheckBoxClean );
+    setTabOrder( m_pCheckBoxClean, m_pCheckBoxExitOnError );
+    setTabOrder( m_pCheckBoxExitOnError, m_pCheckBoxIgnoreVersion );
+    setTabOrder( m_pCheckBoxIgnoreVersion, m_pCheckBoxNoOwner );
+    setTabOrder( m_pCheckBoxNoOwner, m_pCheckBoxVerbose );
+    setTabOrder( m_pCheckBoxVerbose, m_pCheckBoxNoPrivileges );
+    setTabOrder( m_pCheckBoxNoPrivileges, m_pCheckBoxDisableTriggers );
+    setTabOrder( m_pCheckBoxDisableTriggers, m_pCeckBoxSetSessionAuth );
+    setTabOrder( m_pCeckBoxSetSessionAuth, m_pTextEditCommand );
+
+    // buddies
+    textLabel1->setBuddy( m_pURLRequesterInputFile );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGRestoreDatabaseWizardBase::~KPGRestoreDatabaseWizardBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGRestoreDatabaseWizardBase::languageChange()
+{
+    setCaption( tr2i18n( "Restore database" ) );
+    textLabel1->setText( tr2i18n( "&Intput file:" ) );
+    groupBox1->setTitle( tr2i18n( "Options" ) );
+    m_pCheckBoxOnlyData->setText( tr2i18n( "Restore only the data, not the schema" ) );
+    m_pCheckBoxNoOwner->setText( tr2i18n( "No owner" ) );
+    m_pCheckBoxIgnoreVersion->setText( tr2i18n( "Ignore version mismatch" ) );
+    m_pCheckBoxExitOnError->setText( tr2i18n( "Exit on error" ) );
+    m_pCheckBoxOnlySchema->setText( tr2i18n( "Restore only the schema, not the data. Sequence values will be reset" ) );
+    m_pCheckBoxClean->setText( tr2i18n( "Clean (drop) database objects before recreating them" ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "Verbose mode" ) );
+    m_pCheckBoxNoPrivileges->setText( tr2i18n( "No privileges" ) );
+    m_pCheckBoxDisableTriggers->setText( tr2i18n( "Disable triggers" ) );
+    m_pCeckBoxSetSessionAuth->setText( tr2i18n( "Set session authorization" ) );
+    setTitle( WizardPage1, tr2i18n( "Step 1 - Restore database parameters" ) );
+    setTitle( WizardPage2, tr2i18n( "Step 2 - Review command" ) );
+    setTitle( WizardPage3, tr2i18n( "Step 3 - Console with operation" ) );
+}
+
+void KPGRestoreDatabaseWizardBase::slotInputFileChanged(const QString&)
+{
+    qWarning( "KPGRestoreDatabaseWizardBase::slotInputFileChanged(const QString&): Not implemented yet" );
+}
+
+void KPGRestoreDatabaseWizardBase::slotOnlyDataToggled(bool)
+{
+    qWarning( "KPGRestoreDatabaseWizardBase::slotOnlyDataToggled(bool): Not implemented yet" );
+}
+
+void KPGRestoreDatabaseWizardBase::slotOnlySchemaToggled(bool)
+{
+    qWarning( "KPGRestoreDatabaseWizardBase::slotOnlySchemaToggled(bool): Not implemented yet" );
+}
+
+#include "kpgrestoredatabasewizardbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgrestoredatabasewizardbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,250 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGRestoreDatabaseWizardBase</class>
+<comment>Restore database Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWizard">
+    <property name="name">
+        <cstring>KPGRestoreDatabaseWizardBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>536</width>
+            <height>504</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Restore database</string>
+    </property>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage1</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 1 - Restore database parameters</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QLabel" row="0" column="0">
+                <property name="name">
+                    <cstring>textLabel1</cstring>
+                </property>
+                <property name="text">
+                    <string>&amp;Intput file:</string>
+                </property>
+                <property name="buddy" stdset="0">
+                    <cstring>m_pURLRequesterInputFile</cstring>
+                </property>
+            </widget>
+            <widget class="KURLRequester" row="1" column="0">
+                <property name="name">
+                    <cstring>m_pURLRequesterInputFile</cstring>
+                </property>
+            </widget>
+            <spacer row="3" column="0">
+                <property name="name">
+                    <cstring>spacer2</cstring>
+                </property>
+                <property name="orientation">
+                    <enum>Vertical</enum>
+                </property>
+                <property name="sizeType">
+                    <enum>Expanding</enum>
+                </property>
+                <property name="sizeHint">
+                    <size>
+                        <width>21</width>
+                        <height>20</height>
+                    </size>
+                </property>
+            </spacer>
+            <widget class="QGroupBox" row="2" column="0">
+                <property name="name">
+                    <cstring>groupBox1</cstring>
+                </property>
+                <property name="title">
+                    <string>Options</string>
+                </property>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QCheckBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxOnlyData</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Restore only the data, not the schema</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="5" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxNoOwner</cstring>
+                        </property>
+                        <property name="text">
+                            <string>No owner</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="4" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxIgnoreVersion</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Ignore version mismatch</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="3" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxExitOnError</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Exit on error</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxOnlySchema</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Restore only the schema, not the data. Sequence values will be reset</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="2" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxClean</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Clean (drop) database objects before recreating them</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="6" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxVerbose</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Verbose mode</string>
+                        </property>
+                        <property name="checked">
+                            <bool>true</bool>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="7" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxNoPrivileges</cstring>
+                        </property>
+                        <property name="text">
+                            <string>No privileges</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="8" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxDisableTriggers</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Disable triggers</string>
+                        </property>
+                    </widget>
+                    <widget class="QCheckBox" row="9" column="0">
+                        <property name="name">
+                            <cstring>m_pCeckBoxSetSessionAuth</cstring>
+                        </property>
+                        <property name="text">
+                            <string>Set session authorization</string>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage2</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 2 - Review command</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QTextEdit" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pTextEditCommand</cstring>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+    <widget class="QWidget">
+        <property name="name">
+            <cstring>WizardPage3</cstring>
+        </property>
+        <attribute name="title">
+            <string>Step 3 - Console with operation</string>
+        </attribute>
+        <grid>
+            <property name="name">
+                <cstring>unnamed</cstring>
+            </property>
+            <widget class="QFrame" row="0" column="0">
+                <property name="name">
+                    <cstring>m_pFrameConsole</cstring>
+                </property>
+                <property name="frameShape">
+                    <enum>StyledPanel</enum>
+                </property>
+                <property name="frameShadow">
+                    <enum>Raised</enum>
+                </property>
+            </widget>
+        </grid>
+    </widget>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pURLRequesterInputFile</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGRestoreDatabaseWizardBase</receiver>
+        <slot>slotInputFileChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxOnlyData</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGRestoreDatabaseWizardBase</receiver>
+        <slot>slotOnlyDataToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxOnlySchema</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGRestoreDatabaseWizardBase</receiver>
+        <slot>slotOnlySchemaToggled(bool)</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pURLRequesterInputFile</tabstop>
+    <tabstop>m_pCheckBoxOnlyData</tabstop>
+    <tabstop>m_pCheckBoxOnlySchema</tabstop>
+    <tabstop>m_pCheckBoxClean</tabstop>
+    <tabstop>m_pCheckBoxExitOnError</tabstop>
+    <tabstop>m_pCheckBoxIgnoreVersion</tabstop>
+    <tabstop>m_pCheckBoxNoOwner</tabstop>
+    <tabstop>m_pCheckBoxVerbose</tabstop>
+    <tabstop>m_pCheckBoxNoPrivileges</tabstop>
+    <tabstop>m_pCheckBoxDisableTriggers</tabstop>
+    <tabstop>m_pCeckBoxSetSessionAuth</tabstop>
+    <tabstop>m_pTextEditCommand</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotInputFileChanged(const QString &amp;)</slot>
+    <slot access="protected">slotOnlyDataToggled(bool)</slot>
+    <slot access="protected">slotOnlySchemaToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kurlrequester.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,47 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetclustertablewidget1.h"
+
+// include files for KDE
+#include <kcombobox.h>
+
+// application specific includes
+#include "../DbObjects/kpgtableindexesfolder.h"
+#include "../kpgutil.h"
+
+KPGSetClusterTableWidget1::KPGSetClusterTableWidget1(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPGSetClusterTableWidget1Base(parent, name)
+{
+	pTable->getTableIndexesFolder()->fillComboBoxWithChildItems(m_pComboBoxIndex);
+	
+	m_strNamespace = strNamespace;
+	m_strTableName = pTable->text(0);
+}
+
+KPGSetClusterTableWidget1::~KPGSetClusterTableWidget1()
+{
+}
+
+const QString KPGSetClusterTableWidget1::getSQL() const
+{
+	QString strSql("ALTER TABLE ");
+	
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+	
+	strSql.append(" CLUSTER ON ");
+	strSql.append(KPGUtil::quotedName(m_pComboBoxIndex->currentText()));
+	strSql.append(";");
+		
+	return strSql;
+}
+
+#include "kpgsetclustertablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETCLUSTERTABLEWIDGET1_H
+#define KPGSETCLUSTERTABLEWIDGET1_H
+
+#include "kpgsetclustertablewidget1base.h"
+
+class KPGTable;
+
+/**
+Widget for set cluster Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetClusterTableWidget1 : public KPGSetClusterTableWidget1Base
+{
+Q_OBJECT
+public:
+    KPGSetClusterTableWidget1(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGSetClusterTableWidget1();
+
+    const QString getSQL() const;
+
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace    
+   
+protected slots:
+           
+signals:
+    void sigEnableNextButton(bool);    
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgsetclustertablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:39 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsetclustertablewidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGSetClusterTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSetClusterTableWidget1Base::KPGSetClusterTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSetClusterTableWidget1Base" );
+    KPGSetClusterTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSetClusterTableWidget1BaseLayout"); 
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxIndex = new KComboBox( FALSE, this, "m_pComboBoxIndex" );
+    layout1->addWidget( m_pComboBoxIndex );
+
+    KPGSetClusterTableWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    spacer1 = new QSpacerItem( 20, 51, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGSetClusterTableWidget1BaseLayout->addItem( spacer1, 1, 0 );
+    spacer2 = new QSpacerItem( 31, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGSetClusterTableWidget1BaseLayout->addItem( spacer2, 0, 1 );
+    languageChange();
+    resize( QSize(175, 117).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxIndex );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSetClusterTableWidget1Base::~KPGSetClusterTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSetClusterTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Selects  index for CLUSTER" ) );
+    textLabel1->setText( tr2i18n( "&Index for CLUSTER:" ) );
+}
+
+#include "kpgsetclustertablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSetClusterTableWidget1Base</class>
+<comment>Widget for set cluster Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSetClusterTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>175</width>
+            <height>117</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Selects  index for CLUSTER</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Index for CLUSTER:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxIndex</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxIndex</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>51</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>31</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetclustertablewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtable.h"
+#include "kpgsetclustertablewidget1.h"
+
+
+KPGSetClusterTableWizard::KPGSetClusterTableWizard(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGSetClusterTableWidget1 *pSetClusterTableWidget1 = new KPGSetClusterTableWidget1(WizardPage1, "KPGSetClusterTableWidget1", strNamespace, pTable);
+  m_pPageWidget1 = pSetClusterTableWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pSetClusterTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  setNextEnabled(WizardPage1, true);
+  languageChange();
+}
+
+KPGSetClusterTableWizard::~KPGSetClusterTableWizard()
+{
+}
+
+void KPGSetClusterTableWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Set cluster for table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Select  index for cluster" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGSetClusterTableWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    m_pTextEditSQL->setText((static_cast <KPGSetClusterTableWidget1 *> (m_pPageWidget1))->getSQL());
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery(false);
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgsetclustertablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetclustertablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETCLUSTERTABLEWIZARD_H
+#define KPGSETCLUSTERTABLEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGTable;
+
+/**
+Alter table set cluster on Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetClusterTableWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGSetClusterTableWizard(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGSetClusterTableWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,32 @@
+//
+// C++ Implementation: kpgsetdescriptionwidget1
+//
+// Description: 
+//
+//
+// Author: Rick Vernam <rickv at hobi.com>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetdescriptionwidget1.h"
+
+// include files for KDE
+#include <klistbox.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+KPGSetDescriptionWidget1::KPGSetDescriptionWidget1(QWidget *parent, const char *name, const QString &strOldDesc)
+ : KPGSetDescriptionWidget1Base(parent, name)
+{
+	m_pTextEditDescription->setText(strOldDesc);
+	m_pTextEditDescription->setFocus();
+}
+
+
+KPGSetDescriptionWidget1::~KPGSetDescriptionWidget1()
+{
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,29 @@
+//
+// C++ Interface: kpgsetdescriptionwidget1
+//
+// Description: 
+//
+//
+// Author: Rick Vernam <rickv at hobi.com>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETDESCRIPTIONWIDGET1_H
+#define KPGSETDESCRIPTIONWIDGET1_H
+
+#include "kpgsetdescriptionwidget1base.h"
+
+/**
+Widget for Set description Wizard
+
+	@author Rick Vernam <rickv at hobi.com>, (C) 2006
+*/
+class KPGSetDescriptionWidget1 : public KPGSetDescriptionWidget1Base
+{
+public:
+    KPGSetDescriptionWidget1(QWidget *parent, const char *name, const QString &);
+    ~KPGSetDescriptionWidget1();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,61 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgsetdescriptionwidget1base.ui'
+**
+** Created: Út dub 1 13:07:43 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsetdescriptionwidget1base.h"
+
+#include <qvariant.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGSetDescriptionWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSetDescriptionWidget1Base::KPGSetDescriptionWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSetDescriptionWidget1Base" );
+    setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) );
+    KPGSetDescriptionWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSetDescriptionWidget1BaseLayout"); 
+
+    m_pTextEditDescription = new KTextEdit( this, "m_pTextEditDescription" );
+    m_pTextEditDescription->setMinimumSize( QSize( 320, 40 ) );
+
+    KPGSetDescriptionWidget1BaseLayout->addWidget( m_pTextEditDescription, 0, 0 );
+    languageChange();
+    resize( QSize(400, 282).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSetDescriptionWidget1Base::~KPGSetDescriptionWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSetDescriptionWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Set description" ) );
+}
+
+#include "kpgsetdescriptionwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,52 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSetDescriptionWidget1Base</class>
+<comment>Widget for edit description Wizard</comment>
+<author>Rick Vernam</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSetDescriptionWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>400</width>
+            <height>282</height>
+        </rect>
+    </property>
+    <property name="sizePolicy">
+        <sizepolicy>
+            <hsizetype>7</hsizetype>
+            <vsizetype>7</vsizetype>
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+        </sizepolicy>
+    </property>
+    <property name="caption">
+        <string>Set description</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KTextEdit" row="0" column="0">
+            <property name="name">
+                <cstring>m_pTextEditDescription</cstring>
+            </property>
+            <property name="minimumSize">
+                <size>
+                    <width>320</width>
+                    <height>40</height>
+                </size>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<tabstops>
+    <tabstop>m_pTextEditDescription</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,142 @@
+/***************************************************************************
+                          kpgsetdescriptionwizard.cpp  -  description
+                          -------------------
+    copyright            : (C) 2004-2006 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgsetdescriptionwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <ktextedit.h>
+#include <klineedit.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "kpgsetdescriptionwidget1.h"
+#include "../kpgutil.h"
+
+KPGSetDescriptionWizard::KPGSetDescriptionWizard(
+	QWidget *parent,
+	const QString &strOldDesc,
+	const QString &strObjectType,
+	const QString &strNamespace,
+	const QString &strObjectName,
+	const QString &strTable,
+	const QString &strObjectParameters
+	)
+ : KPG3StepsWizard(parent, "KPGSetDescriptionWizard")
+{
+	m_strOldDesc = strOldDesc;
+	m_strObjectType = strObjectType;
+  	m_strNamespace = strNamespace; 
+	m_strObjectName = strObjectName; 
+	m_strTable = strTable;
+	m_strObjectParameters = strObjectParameters;
+	
+	KPGSetDescriptionWidget1 *pSetDescWidget1 = new KPGSetDescriptionWidget1(WizardPage1, "KPGSetDescriptionWidget1", strOldDesc);
+	m_pPageWidget1 = pSetDescWidget1;
+	WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+	
+	languageChange();
+
+	slotEnableNextButton1(true);	//next button should always be on.
+}
+
+
+KPGSetDescriptionWizard::~KPGSetDescriptionWizard()
+{
+}
+
+void KPGSetDescriptionWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+
+    setCaption( i18n( "Edit description of ")  + m_strObjectName );
+
+    setTitle( WizardPage1, i18n( "Step 1 - Enter new description" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+const QString KPGSetDescriptionWizard::newDescription() const
+{
+  KPGSetDescriptionWidget1 *pWidget = static_cast <KPGSetDescriptionWidget1 *> (m_pPageWidget1);
+  return pWidget->m_pTextEditDescription->text();
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGSetDescriptionWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		KPGSetDescriptionWidget1 *pWidget = static_cast <KPGSetDescriptionWidget1 *> (m_pPageWidget1);
+		
+		// prepare SQL statement
+		QString strSQL("COMMENT ON ");
+		strSQL.append(m_strObjectType);
+		strSQL.append(" ");
+		
+		if(m_strObjectType == QString("COLUMN"))
+		{
+			// For columns
+			strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTable));
+			strSQL.append(".");
+			strSQL.append(KPGUtil::quotedName(m_strObjectName));	
+		}
+		else if(m_strObjectType == QString("SCHEMA"))
+		{
+			strSQL.append(m_strObjectName);	
+		}
+		else
+		{
+			// For tables, views, ...
+			if(m_strTable.isEmpty())
+			{
+				strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strObjectName));
+				if(m_strObjectType == QString("FUNCTION"))
+                {
+                    strSQL.append(m_strObjectParameters);
+                }
+			}
+			else
+			{
+				// For constraints
+				strSQL.append(KPGUtil::quotedName(m_strObjectName));	
+				strSQL.append(" ON ");
+				strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTable));
+			}
+		}
+		
+		strSQL.append(" IS ");
+		strSQL.append("'" + pWidget->m_pTextEditDescription->text()+ "';");
+		
+		m_pTextEditSQL->setText(strSQL);
+	}
+
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery();
+	}
+
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdescriptionwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+/***************************************************************************
+                          kpgsetdescriptionwizard.h
+                             -------------------
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+ 
+#ifndef KPGSETDESCRIPTIONWIZARD_H
+#define KPGSETDESCRIPTIONWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Wizard for setting database object description
+
+	@author Lumir Vanek
+*/
+class KPGSetDescriptionWizard : public KPG3StepsWizard
+{
+public:
+    KPGSetDescriptionWizard(QWidget *, const QString &, const QString &, const QString &, const QString &, const QString & = QString::null, const QString & = QString::null);
+    ~KPGSetDescriptionWizard();
+
+	const QString newDescription() const; 
+
+protected:
+	virtual void showPage(QWidget *);
+		
+protected:
+	
+	QString m_strObjectType; // type of the dropped table - FUNCTION, RULE, TRIGGER ...
+    QString m_strObjectName; // name of the dropped object
+    QString m_strNamespace;  // name of the namespace
+	QString m_strTable;		 // name of the table, than contain object (column, index, rule, trigger ...)
+	QString m_strObjectParameters; // another parameters, e.g. function arguments
+	
+	// Old description
+	QString m_strOldDesc;
+
+protected slots:
+	virtual void languageChange();	
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,94 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetdomaindefaultwizard.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+#include <qframe.h> 
+#include <qlayout.h>
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "kpgmodifycolumndefaultwidget1.h"
+#include "../kpgutil.h"
+
+KPGSetDomainDefaultWizard::KPGSetDomainDefaultWizard(QWidget *parent, const char *name, const QString& strNamespace, const QString& strDomain)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strNamespace = strNamespace; 
+  m_strDomain = strDomain;
+    
+  // borrow widget that modify column default - it have this same functionality  
+  KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = new KPGModifyColumnDefaultWidget1(WizardPage1, "KPGModifyColumnDefaultWidget1");
+  m_pPageWidget1 = pModifyColumnWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pModifyColumnWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  languageChange();
+}
+
+KPGSetDomainDefaultWizard::~KPGSetDomainDefaultWizard()
+{
+}
+
+void KPGSetDomainDefaultWizard::setDefaultExpression(const QString &strText)
+{
+  KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnDefaultWidget1 *> (m_pPageWidget1);
+  pModifyColumnWidget1->m_pLineEditDefaultExpression->setText(strText);
+}
+
+void KPGSetDomainDefaultWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Modify domain" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Set domain default" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGSetDomainDefaultWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL("ALTER DOMAIN ");
+    strSQL.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strDomain));
+    strSQL.append(" ");
+        
+    KPGModifyColumnDefaultWidget1 *pModifyColumnWidget1 = static_cast <KPGModifyColumnDefaultWidget1 *> (m_pPageWidget1);
+    strSQL.append(pModifyColumnWidget1->getSQL());
+    strSQL.append(";\n");
+    
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery();
+  }
+
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgsetdomaindefaultwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetdomaindefaultwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,44 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETDOMAINDEFAULTWIZARD_H
+#define KPGSETDOMAINDEFAULTWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+/**
+Wizard that modify domain default
+
+ at author Lumir Vanek
+*/
+
+class KPGSetDomainDefaultWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGSetDomainDefaultWizard(QWidget *parent, const char *name, const QString&,  const QString&);
+    ~KPGSetDomainDefaultWizard();
+
+    void setDefaultExpression(const QString &);
+    
+protected:
+    virtual void showPage(QWidget *);
+	
+protected:
+    
+    QString m_strDomain; // name of the altered domain
+    QString m_strNamespace; // name of the namespace 
+        
+protected slots:
+    virtual void languageChange();        
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetownerwidget1.h"
+
+// include files for KDE
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgusersfolder.h"
+
+
+KPGSetOwnerWidget1::KPGSetOwnerWidget1(QWidget *parent, const char *name, KPGUsersFolder *pUsersFolder, const QString &strOldOwner)
+ : KPGSetOwnerWidget1Base(parent, name)
+{
+  pUsersFolder->fillComboBoxWithChildItems(m_pComboBoxOwner);
+  
+  // remove given old tablespace from combobox
+  for(int i = 0; i < m_pComboBoxOwner->count(); i++)
+  {
+    if(m_pComboBoxOwner->text(i) == strOldOwner)
+    {
+      m_pComboBoxOwner->removeItem(i);
+      m_pComboBoxOwner->setCurrentItem(0);
+      break;
+    }  
+  }
+}
+
+KPGSetOwnerWidget1::~KPGSetOwnerWidget1()
+{
+}
+
+const QString KPGSetOwnerWidget1::getSQL() const
+{
+  QString strSQL(" OWNER TO ");
+  strSQL.append(m_pComboBoxOwner->currentText());
+  strSQL.append(";");
+   
+  return strSQL;
+}
+
+#include "kpgsetownerwidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,41 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETOWNERWIDGET1_H
+#define KPGSETOWNERWIDGET1_H
+
+#include "kpgsetownerwidget1base.h"
+
+class KPGUsersFolder;
+
+/**
+Widget for set owner Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetOwnerWidget1 : public KPGSetOwnerWidget1Base
+{
+Q_OBJECT
+public:
+    KPGSetOwnerWidget1(QWidget *parent, const char *name, KPGUsersFolder *, const QString &);
+    ~KPGSetOwnerWidget1();
+    
+    const QString getSQL() const;
+
+protected slots:
+           
+signals:
+    void sigEnableNextButton(bool);      
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgsetownerwidget1base.ui'
+**
+** Created: Út dub 1 13:07:39 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsetownerwidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGSetOwnerWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSetOwnerWidget1Base::KPGSetOwnerWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSetOwnerWidget1Base" );
+    KPGSetOwnerWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSetOwnerWidget1BaseLayout"); 
+    spacer1 = new QSpacerItem( 21, 41, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGSetOwnerWidget1BaseLayout->addItem( spacer1, 1, 0 );
+    spacer2 = new QSpacerItem( 47, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGSetOwnerWidget1BaseLayout->addItem( spacer2, 0, 1 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxOwner = new KComboBox( FALSE, this, "m_pComboBoxOwner" );
+    layout1->addWidget( m_pComboBoxOwner );
+
+    KPGSetOwnerWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    languageChange();
+    resize( QSize(151, 98).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxOwner );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSetOwnerWidget1Base::~KPGSetOwnerWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSetOwnerWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step  - Select new tablespace" ) );
+    textLabel1->setText( tr2i18n( "&Owner:" ) );
+}
+
+#include "kpgsetownerwidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSetOwnerWidget1Base</class>
+<comment>Widget for set tablespace Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSetOwnerWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>151</width>
+            <height>98</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step  - Select new tablespace</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>41</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>47</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Owner:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxOwner</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxOwner</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,79 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsetownerwizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgusersfolder.h"
+#include "kpgsetownerwidget1.h"
+
+KPGSetOwnerWizard::KPGSetOwnerWizard(QWidget *parent, const char *name, KPGUsersFolder *pUsersFolder, const char *szObjectTypeName, const QString &strNamespaceObjectName, const QString &strOldOwner)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strObjectTypeName = szObjectTypeName; 
+  m_strNamespaceObjectName = strNamespaceObjectName;
+  
+  KPGSetOwnerWidget1 *pSetOwnerWidget1 = new KPGSetOwnerWidget1(WizardPage1, "KPGSetOwnerWidget1", pUsersFolder, strOldOwner);
+  m_pPageWidget1 = pSetOwnerWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pSetOwnerWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  setNextEnabled(WizardPage1, true);
+  languageChange();
+}
+
+KPGSetOwnerWizard::~KPGSetOwnerWizard()
+{
+}
+
+void KPGSetOwnerWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Set owner" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Choose new owner" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGSetOwnerWizard::showPage(QWidget *pPage)
+{
+  if(pPage == WizardPage2) // Step 2 - Review SQL statement
+  {
+    // prepare SQL statement
+    QString strSQL("ALTER " + m_strObjectTypeName + " ");
+    strSQL.append(m_strNamespaceObjectName);
+    strSQL.append((static_cast <KPGSetOwnerWidget1 *> (m_pPageWidget1))->getSQL());
+    m_pTextEditSQL->setText(strSQL);
+  }
+  
+  if(pPage == WizardPage3) // Step 3 - Check operation result
+  {
+    runQuery(false);
+  }
+  
+  // call parent
+  KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgsetownerwizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsetownerwizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETOWNERWIZARD_H
+#define KPGSETOWNERWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGUsersFolder;
+
+/**
+Set owner Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetOwnerWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGSetOwnerWizard(QWidget *parent, const char *name, KPGUsersFolder *, const char *, const QString &, const QString &);
+    ~KPGSetOwnerWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+	QString m_strObjectTypeName; // TABLE, INDEX ...
+	QString m_strNamespaceObjectName; // schema qualified object name
+        
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsettablespacewidget1.h"
+
+// include files for KDE
+#include <kcombobox.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtablespacesfolder.h"
+
+
+KPGSetTablespaceWidget1::KPGSetTablespaceWidget1(QWidget *parent, const char *name, KPGTablespacesFolder *pTablespacesFolder, const QString &strOldTablespace)
+ : KPGSetTablespaceWidget1Base(parent, name)
+{
+  pTablespacesFolder->fillComboBoxWithChildItems(m_pComboBoxTablespace);
+  
+  // remove given old tablespace from combobox
+  for(int i = 0; i < m_pComboBoxTablespace->count(); i++)
+  {
+    if(m_pComboBoxTablespace->text(i) == strOldTablespace)
+    {
+      m_pComboBoxTablespace->removeItem(i);
+      m_pComboBoxTablespace->setCurrentItem(0);
+      break;
+    }  
+  }
+}
+
+KPGSetTablespaceWidget1::~KPGSetTablespaceWidget1()
+{
+}
+
+const QString KPGSetTablespaceWidget1::getSQL() const
+{
+  QString strSQL(" SET TABLESPACE ");
+  strSQL.append(m_pComboBoxTablespace->currentText());
+  strSQL.append(";");
+   
+  return strSQL;
+}
+
+#include "kpgsettablespacewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,40 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETTABLESPACEWIDGET1_H
+#define KPGSETTABLESPACEWIDGET1_H
+
+#include "kpgsettablespacewidget1base.h"
+
+class KPGTablespacesFolder;
+
+/**
+Widget for set tablespace Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetTablespaceWidget1 : public KPGSetTablespaceWidget1Base
+{
+Q_OBJECT
+public:
+    KPGSetTablespaceWidget1(QWidget *parent, const char *name, KPGTablespacesFolder *, const QString &);
+    ~KPGSetTablespaceWidget1();
+    
+    const QString getSQL() const;
+
+protected slots:
+           
+signals:
+    void sigEnableNextButton(bool);      
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,72 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgsettablespacewidget1base.ui'
+**
+** Created: Út dub 1 13:07:40 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsettablespacewidget1base.h"
+
+#include <qvariant.h>
+#include <qlabel.h>
+#include <kcombobox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kcombobox.h"
+
+/*
+ *  Constructs a KPGSetTablespaceWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGSetTablespaceWidget1Base::KPGSetTablespaceWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGSetTablespaceWidget1Base" );
+    KPGSetTablespaceWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSetTablespaceWidget1BaseLayout"); 
+    spacer2 = new QSpacerItem( 16, 21, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGSetTablespaceWidget1BaseLayout->addItem( spacer2, 0, 1 );
+    spacer1 = new QSpacerItem( 21, 13, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGSetTablespaceWidget1BaseLayout->addItem( spacer1, 1, 0 );
+
+    layout1 = new QVBoxLayout( 0, 0, 6, "layout1"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    layout1->addWidget( textLabel1 );
+
+    m_pComboBoxTablespace = new KComboBox( FALSE, this, "m_pComboBoxTablespace" );
+    layout1->addWidget( m_pComboBoxTablespace );
+
+    KPGSetTablespaceWidget1BaseLayout->addLayout( layout1, 0, 0 );
+    languageChange();
+    resize( QSize(318, 102).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // buddies
+    textLabel1->setBuddy( m_pComboBoxTablespace );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSetTablespaceWidget1Base::~KPGSetTablespaceWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSetTablespaceWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step  - Choose new owner" ) );
+    textLabel1->setText( tr2i18n( "&Tablespace" ) );
+}
+
+#include "kpgsettablespacewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,90 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSetTablespaceWidget1Base</class>
+<comment>Widget for set owner Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGSetTablespaceWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>318</width>
+            <height>102</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step  - Choose new owner</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="0" column="1">
+            <property name="name">
+                <cstring>spacer2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>16</width>
+                    <height>21</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="0">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>13</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Tablespace</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pComboBoxTablespace</cstring>
+                    </property>
+                </widget>
+                <widget class="KComboBox">
+                    <property name="name">
+                        <cstring>m_pComboBoxTablespace</cstring>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+    </grid>
+</widget>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kcombobox.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsettablespacewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+//#include "../DbObjects/kpgtable.h"
+#include "../DbObjects/kpgtablespacesfolder.h"
+#include "kpgsettablespacewidget1.h"
+
+
+KPGSetTablespaceWizard::KPGSetTablespaceWizard(QWidget *parent, const char *name, KPGTablespacesFolder *pTablespacesFolder, const char *szObjectTypeName, const QString &strNamespaceObjectName, const QString &strOldTablespace)
+ : KPG3StepsWizard(parent, name)
+{
+  m_strObjectTypeName = szObjectTypeName; 
+  m_strNamespaceObjectName = strNamespaceObjectName;
+  
+  KPGSetTablespaceWidget1 *pSetTablespaceWidget1 = new KPGSetTablespaceWidget1(WizardPage1, "KPGSetTablespaceWidget1", pTablespacesFolder, strOldTablespace);
+  m_pPageWidget1 = pSetTablespaceWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pSetTablespaceWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  setNextEnabled(WizardPage1, true);
+  languageChange();
+}
+
+KPGSetTablespaceWizard::~KPGSetTablespaceWizard()
+{
+}
+
+void KPGSetTablespaceWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Set tablespace" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Choose tablespace" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGSetTablespaceWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		QString strSQL("ALTER " + m_strObjectTypeName + " ");
+		strSQL.append(m_strNamespaceObjectName);
+		strSQL.append((static_cast <KPGSetTablespaceWidget1 *> (m_pPageWidget1))->getSQL());
+		m_pTextEditSQL->setText(strSQL);
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery(false);
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+
+#include "kpgsettablespacewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgsettablespacewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,43 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSETTABLESPACEWIZARD_H
+#define KPGSETTABLESPACEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGTablespacesFolder;
+
+/**
+Set tablespace Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGSetTablespaceWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGSetTablespaceWizard(QWidget *parent, const char *name, KPGTablespacesFolder *, const char *, const QString &, const QString &);
+    ~KPGSetTablespaceWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+
+protected:
+  QString m_strObjectTypeName; // TABLE, INDEX ...
+  QString m_strNamespaceObjectName; // schema qualified object name
+      
+protected slots:
+    virtual void languageChange(); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,204 @@
+//
+// C++ Implementation: kpgtablecolumnwizinfo
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgtablecolumnwizinfo.h"
+
+// include files for Qt
+#include <qpixmap.h>
+
+// include files for KDE
+#include <kdebug.h>
+
+KPGTableColumnWizInfo::KPGTableColumnWizInfo(const QString & strName, 
+	const QString & strTypName, 
+	int nDimensions, 
+	int iAttNum, 
+	const QPixmap & icon,
+	const QString & strDescription)
+{
+	m_strName = strName;
+	m_strTypName = strTypName;
+	m_Icon = icon;
+	m_nDimensions = nDimensions;
+	m_iAttNum = iAttNum;
+	m_strDescription = strDescription;
+	
+	convertTypNameToBase();
+}
+
+KPGTableColumnWizInfo::KPGTableColumnWizInfo(const KPGTableColumnWizInfo &src)
+{
+	m_strName = src.name();
+	m_strTypName = src.typName();
+	m_Icon = src.icon();
+	m_nDimensions = src.nDimensions();
+	m_iAttNum = src.attNum();
+	m_strDescription = src.description();
+}
+
+KPGTableColumnWizInfo::~KPGTableColumnWizInfo()
+{
+}
+
+void KPGTableColumnWizInfo::convertTypNameToBase()
+{
+	if(m_strTypName == "bigint") { m_strTypName = "int8"; return; }
+	if(m_strTypName == "bigserial") { m_strTypName = "int8"; return; }
+	if(m_strTypName.left(12) == "bit varying(") { m_strTypName = "bitvar"; return; }
+	if(m_strTypName.left(5) == "char(") { m_strTypName = "bpchar"; return; }
+	if(m_strTypName.left(8) == "varchar(") { m_strTypName = "varchar"; return; }
+	if(m_strTypName == "double precision") { m_strTypName = "float8"; return; }
+	if(m_strTypName == "integer") { m_strTypName = "int4"; return; }
+	if(m_strTypName.left(9) == "interval(") { m_strTypName = "interval"; return; }
+	if(m_strTypName.left(8) == "numeric(") { m_strTypName = "numeric"; return; }
+	if(m_strTypName.left(8) == "decimal(") { m_strTypName = "numeric"; return; }
+	if(m_strTypName == "real") { m_strTypName = "float4"; return; }
+	if(m_strTypName == "smallint") { m_strTypName = "int2"; return; }
+	if(m_strTypName == "serial") { m_strTypName = "int4"; return; }
+	if(m_strTypName.left(5) == "time(") { m_strTypName = "time"; return; }
+	if(m_strTypName.left(20) == "time with time zone(") { m_strTypName = "timetz"; return; }
+	if(m_strTypName.left(10) == "timestamp(") { m_strTypName = "timestamp"; return; }
+	if(m_strTypName.left(25) == "timestamp with time zone(") { m_strTypName = "timestamptz"; return; }
+}
+
+// Decide, if other column type is compatible for create foreign key
+bool KPGTableColumnWizInfo::isCompatible(const KPGTableColumnWizInfo &tableColumnWizInfoOther) const
+{
+	// Array fields aren't suitable for keys
+	if((m_nDimensions > 0) || tableColumnWizInfoOther.nDimensions() > 0)
+		return false;
+
+	if(m_strTypName == tableColumnWizInfoOther.typName())
+	{
+		return true;
+	}
+	
+	// Numeric datatypes are compatible with each other, instead of money
+	if(m_strTypName == "int2")
+	{
+		if((tableColumnWizInfoOther.typName() == "int4") ||
+			 (tableColumnWizInfoOther.typName() == "int8") ||
+			 (tableColumnWizInfoOther.typName() == "float4") ||
+			 (tableColumnWizInfoOther.typName() == "float8") ||
+			 (tableColumnWizInfoOther.typName() == "numeric")
+			)
+			return true;
+	} 
+	
+	if(m_strTypName == "int4")
+	{
+		if((tableColumnWizInfoOther.typName() == "int2") ||
+			 (tableColumnWizInfoOther.typName() == "int8") ||
+			 (tableColumnWizInfoOther.typName() == "float4") ||
+			 (tableColumnWizInfoOther.typName() == "float8") ||
+			 (tableColumnWizInfoOther.typName() == "numeric")
+			)
+			return true;
+	} 
+	
+	if(m_strTypName == "int8")
+	{
+		if((tableColumnWizInfoOther.typName() == "int2") ||
+			 (tableColumnWizInfoOther.typName() == "int4") ||
+			 (tableColumnWizInfoOther.typName() == "float4") ||
+			 (tableColumnWizInfoOther.typName() == "float8") ||
+			 (tableColumnWizInfoOther.typName() == "numeric")
+			)
+			return true;
+	}
+	
+	if(m_strTypName == "float4")
+	{
+		if((tableColumnWizInfoOther.typName() == "int4") ||
+			 (tableColumnWizInfoOther.typName() == "int8") ||
+			 (tableColumnWizInfoOther.typName() == "int2") ||
+			 (tableColumnWizInfoOther.typName() == "float8") ||
+			 (tableColumnWizInfoOther.typName() == "numeric")
+			)
+			return true;
+	} 
+	
+	if(m_strTypName == "float8")
+	{
+		if((tableColumnWizInfoOther.typName() == "int4") ||
+			 (tableColumnWizInfoOther.typName() == "int8") ||
+			 (tableColumnWizInfoOther.typName() == "float4") ||
+			 (tableColumnWizInfoOther.typName() == "int2") ||
+			 (tableColumnWizInfoOther.typName() == "numeric")
+			)
+			return true;
+	} 
+	
+	if(m_strTypName == "numeric")
+	{
+		if((tableColumnWizInfoOther.typName() == "int4") ||
+			 (tableColumnWizInfoOther.typName() == "int8") ||
+			 (tableColumnWizInfoOther.typName() == "float4") ||
+			 (tableColumnWizInfoOther.typName() == "float8") ||
+			 (tableColumnWizInfoOther.typName() == "int2")
+			)
+			return true;
+	} 
+	
+	return false;
+}
+
+/******************************************************************************/
+
+bool KPGListTableColumnWizInfo::appendColumn(KPGTableColumnWizInfo *pTableColumnWizInfo)
+{ 
+	// Avoid name duplicity
+	for(unsigned int i = 0; i < count(); i++)
+	{
+		if((static_cast <KPGTableColumnWizInfo *> (at(i)))->name() ==  pTableColumnWizInfo->name())
+		{
+		  	kdError() << k_funcinfo << " Name duplicity !!!" << endl;
+			return false;
+		}
+	}
+	
+	append(pTableColumnWizInfo);
+	return true;
+}
+
+void KPGListTableColumnWizInfo::removeColumn(const QString &strColumnName) 
+{
+	KPGTableColumnWizInfo *pTableColumnWizInfo = 0;
+	
+ 	for(unsigned int i = 0; i < count(); i++)
+	{
+		pTableColumnWizInfo = static_cast <KPGTableColumnWizInfo *> (at(i));
+		 
+		if(pTableColumnWizInfo->name() == strColumnName)
+			{
+				remove(pTableColumnWizInfo);
+			  return;
+			}
+	}
+	kdError() << k_funcinfo << " Name not found !!!" << endl;
+}
+
+KPGTableColumnWizInfo * KPGListTableColumnWizInfo::findColumn(const QString &strColumnName)
+{
+	KPGTableColumnWizInfo *pTableColumnWizInfo = 0;
+	
+ 	for(unsigned int i = 0; i < count(); i++)
+	{
+		pTableColumnWizInfo = static_cast <KPGTableColumnWizInfo *> (at(i));
+		 
+		if(pTableColumnWizInfo->name() == strColumnName)
+			return pTableColumnWizInfo;
+	}
+	kdError() << k_funcinfo << " Name not found !!!" << endl;
+	return 0;
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgtablecolumnwizinfo.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,92 @@
+//
+// C++ Interface: kpgtablecolumnwizinfo
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGTABLECOLUMNWIZINFO_H
+#define KPGTABLECOLUMNWIZINFO_H
+
+// include files for Qt
+#include <qstring.h>
+#include <qptrlist.h>
+#include <qpixmap.h>
+
+
+/**
+  * Storage class for column info - name, base type, icon ... Used by 
+  * create table wizard
+  *
+  *@author Lumir Vanek
+  */
+class KPGTableColumnWizInfo
+{
+public:
+	KPGTableColumnWizInfo() {;} 
+   
+	KPGTableColumnWizInfo(const QString &, const QString &, int, int, const QPixmap &, const QString &);
+	
+	KPGTableColumnWizInfo(const KPGTableColumnWizInfo &);
+				
+	~KPGTableColumnWizInfo();
+	
+	void operator = (const KPGTableColumnWizInfo &src)
+	{
+		m_strName = src.name();
+		m_strTypName = src.typName();
+		m_Icon = src.icon();
+		m_nDimensions = src.nDimensions();
+		m_strDescription = src.description();
+	}
+	
+	// Decide, if other column type is compatible for create foreign key
+	bool isCompatible(const KPGTableColumnWizInfo &) const;
+
+	// Return columns typname
+	const QString & typName() const { return m_strTypName; }
+		
+	// Return name
+	const QString & name() const { return m_strName; }
+	
+	// Return number of dimensions
+	const int nDimensions() const { return m_nDimensions; }	
+	
+	// Return column number in table
+	int attNum() const { return m_iAttNum; }
+	
+	// Return icon
+	const QPixmap & icon() const { return m_Icon; }	
+	
+	// Return description
+	const QString & description() const { return m_strDescription; }
+		
+protected:
+	void convertTypNameToBase();
+	
+protected:
+	QString m_strName;
+	QString m_strTypName;
+	int m_nDimensions;
+	int m_iAttNum; 
+	QPixmap m_Icon;	
+	QString m_strDescription;
+};
+
+// Value list for KPGTableColumnWizInfo
+typedef QValueList<KPGTableColumnWizInfo> KPGListTableColumns;
+
+// Pointer list for KPGTableColumnWizInfo
+class KPGListTableColumnWizInfo : public QPtrList<KPGTableColumnWizInfo>
+{
+public:
+	bool appendColumn(KPGTableColumnWizInfo *);
+	void removeColumn(const QString &);
+	KPGTableColumnWizInfo * findColumn(const QString &);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,117 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgvacuumtablewidget1.h"
+
+// include files for Qt
+#include <qcheckbox.h>
+
+// include files for KDE
+#include <kactionselector.h> 
+
+// application specific includes
+#include "../DbObjects/kpgtablecolumnsfolder.h"
+#include "../kpgutil.h"
+
+
+KPGVacuumTableWidget1::KPGVacuumTableWidget1(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPGVacuumTableWidget1Base(parent, name)
+{
+	pTable->getTableColumnsFolder()->fillListBoxWithChildItems(m_pColumnsSelector->availableListBox(), false);
+	
+	m_strTableName = pTable->text(0);
+	m_strNamespace = strNamespace;
+	
+	// This is here, instead of making connection in Qt Designer due to bug - forward declaration
+	// class QListBoxItem; is not added to h file.
+	connect( m_pColumnsSelector, SIGNAL( added(QListBoxItem*) ), this, SLOT( slotColumnAdded(QListBoxItem*) ) );
+	connect( m_pColumnsSelector, SIGNAL( removed(QListBoxItem*) ), this, SLOT( slotColumnRemoved(QListBoxItem*) ) );
+}
+
+KPGVacuumTableWidget1::~KPGVacuumTableWidget1()
+{
+}
+
+void KPGVacuumTableWidget1::slotAnalyzeToggled(bool bAnalyze)
+{
+	m_pCheckBoxAllColumns->setEnabled(bAnalyze);
+	
+	if(bAnalyze)
+		m_pColumnsSelector->setEnabled(m_pCheckBoxAllColumns->isChecked() == false);
+	else
+		m_pColumnsSelector->setEnabled(false);
+}
+
+void KPGVacuumTableWidget1::slotAllColumnsToggled(bool bAllColumns)
+{
+	m_pColumnsSelector->setEnabled(!bAllColumns);
+	if(bAllColumns)
+		emit sigEnableNextButton(true);
+	else
+	{
+		if(m_pColumnsSelector->selectedListBox()->count() == 0)
+		emit sigEnableNextButton(false);
+	}
+}
+
+void KPGVacuumTableWidget1::slotColumnAdded(QListBoxItem *)
+{
+  	emit sigEnableNextButton(true);
+}
+
+void KPGVacuumTableWidget1::slotColumnRemoved(QListBoxItem *)
+{
+	if(m_pColumnsSelector->selectedListBox()->count() == 0)
+		emit sigEnableNextButton(false);
+}   
+
+const QString KPGVacuumTableWidget1::getSQL() const
+{
+	QString strSql("VACUUM ");
+	
+	if(p_pCheckBoxFull->isChecked())
+		strSql.append("FULL ");
+	
+	if(m_pCheckBoxFreeze->isChecked())
+		strSql.append("FREEZE ");
+		
+	if(m_pCheckBoxVerbose->isChecked())
+		strSql.append("VERBOSE ");
+		
+	if(m_pCheckBoxAnalyze->isChecked())  
+		strSql.append("ANALYZE ");
+		
+	strSql.append(KPGUtil::fullyQualifiedName(m_strNamespace, m_strTableName));
+	
+	if(m_pCheckBoxAnalyze->isChecked())  
+	{
+		if(m_pCheckBoxAllColumns->isChecked() == false)
+		{
+		strSql.append(" (");
+		
+		for(unsigned int i = 0; i < m_pColumnsSelector->selectedListBox()->count(); i++)
+		{
+			strSql.append(KPGUtil::quotedName(m_pColumnsSelector->selectedListBox()->text(i)));
+			
+			if(i < m_pColumnsSelector->selectedListBox()->count() - 1)
+			strSql.append(", ");
+		}
+		
+		strSql.append(")");
+		}
+	}
+	strSql.append(";");
+		
+	return strSql;
+}
+
+
+#include "kpgvacuumtablewidget1.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGVACUUMTABLEWIDGET1_H
+#define KPGVACUUMTABLEWIDGET1_H
+
+#include "kpgvacuumtablewidget1base.h"
+
+
+class QListBoxItem;
+class KPGTable;
+
+/**
+Widget for vaccum table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGVacuumTableWidget1 : public KPGVacuumTableWidget1Base
+{
+Q_OBJECT
+public:
+    KPGVacuumTableWidget1(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGVacuumTableWidget1();
+    
+    const QString getSQL() const;
+
+protected:
+    QString m_strTableName; // name of the table
+    QString m_strNamespace; // name of the namespace    
+   
+protected slots:
+
+    virtual void slotAnalyzeToggled(bool);
+    virtual void slotAllColumnsToggled(bool);
+    virtual void slotColumnAdded(QListBoxItem *);
+    virtual void slotColumnRemoved(QListBoxItem *);
+            
+signals:
+    void sigEnableNextButton(bool); 
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,113 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/Wizards/kpgvacuumtablewidget1base.ui'
+**
+** Created: Út dub 1 13:07:39 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgvacuumtablewidget1base.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+#include <kactionselector.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kactionselector.h"
+
+/*
+ *  Constructs a KPGVacuumTableWidget1Base as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGVacuumTableWidget1Base::KPGVacuumTableWidget1Base( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGVacuumTableWidget1Base" );
+    KPGVacuumTableWidget1BaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGVacuumTableWidget1BaseLayout"); 
+
+    layout1 = new QHBoxLayout( 0, 0, 6, "layout1"); 
+
+    m_pCheckBoxVerbose = new QCheckBox( this, "m_pCheckBoxVerbose" );
+    m_pCheckBoxVerbose->setChecked( TRUE );
+    layout1->addWidget( m_pCheckBoxVerbose );
+
+    p_pCheckBoxFull = new QCheckBox( this, "p_pCheckBoxFull" );
+    layout1->addWidget( p_pCheckBoxFull );
+
+    KPGVacuumTableWidget1BaseLayout->addLayout( layout1, 0, 0 );
+
+    m_pCheckBoxAllColumns = new QCheckBox( this, "m_pCheckBoxAllColumns" );
+    m_pCheckBoxAllColumns->setEnabled( FALSE );
+    m_pCheckBoxAllColumns->setChecked( TRUE );
+
+    KPGVacuumTableWidget1BaseLayout->addWidget( m_pCheckBoxAllColumns, 2, 0 );
+
+    m_pColumnsSelector = new KActionSelector( this, "m_pColumnsSelector" );
+    m_pColumnsSelector->setEnabled( FALSE );
+
+    KPGVacuumTableWidget1BaseLayout->addWidget( m_pColumnsSelector, 3, 0 );
+
+    layout3 = new QHBoxLayout( 0, 0, 6, "layout3"); 
+
+    m_pCheckBoxAnalyze = new QCheckBox( this, "m_pCheckBoxAnalyze" );
+    layout3->addWidget( m_pCheckBoxAnalyze );
+
+    m_pCheckBoxFreeze = new QCheckBox( this, "m_pCheckBoxFreeze" );
+    layout3->addWidget( m_pCheckBoxFreeze );
+
+    KPGVacuumTableWidget1BaseLayout->addLayout( layout3, 1, 0 );
+    languageChange();
+    resize( QSize(385, 272).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pCheckBoxAllColumns, SIGNAL( toggled(bool) ), this, SLOT( slotAllColumnsToggled(bool) ) );
+    connect( m_pCheckBoxAnalyze, SIGNAL( toggled(bool) ), this, SLOT( slotAnalyzeToggled(bool) ) );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGVacuumTableWidget1Base::~KPGVacuumTableWidget1Base()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGVacuumTableWidget1Base::languageChange()
+{
+    setCaption( tr2i18n( "Step 1 - Vacuum table parameters" ) );
+    m_pCheckBoxVerbose->setText( tr2i18n( "&Verbose" ) );
+    m_pCheckBoxVerbose->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    p_pCheckBoxFull->setText( tr2i18n( "&Full" ) );
+    p_pCheckBoxFull->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pCheckBoxAllColumns->setText( tr2i18n( "A&ll columns" ) );
+    m_pCheckBoxAllColumns->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+    m_pColumnsSelector->setAvailableLabel( tr2i18n( "&Available columns:" ) );
+    m_pColumnsSelector->setSelectedLabel( tr2i18n( "&Selected columns:" ) );
+    m_pCheckBoxAnalyze->setText( tr2i18n( "Also perform a&nalyze" ) );
+    m_pCheckBoxAnalyze->setAccel( QKeySequence( tr2i18n( "Alt+N" ) ) );
+    m_pCheckBoxFreeze->setText( tr2i18n( "F&reeze" ) );
+    m_pCheckBoxFreeze->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+}
+
+void KPGVacuumTableWidget1Base::slotAllColumnsToggled(bool)
+{
+    qWarning( "KPGVacuumTableWidget1Base::slotAllColumnsToggled(bool): Not implemented yet" );
+}
+
+void KPGVacuumTableWidget1Base::slotAnalyzeToggled(bool)
+{
+    qWarning( "KPGVacuumTableWidget1Base::slotAnalyzeToggled(bool): Not implemented yet" );
+}
+
+#include "kpgvacuumtablewidget1base.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewidget1base.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,146 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGVacuumTableWidget1Base</class>
+<comment>Widget for vacuum table Wizard</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGVacuumTableWidget1Base</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>385</width>
+            <height>272</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Step 1 - Vacuum table parameters</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QLayoutWidget" row="0" column="0">
+            <property name="name">
+                <cstring>layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxVerbose</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Verbose</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+V</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>p_pCheckBoxFull</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Full</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+F</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QCheckBox" row="2" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxAllColumns</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="text">
+                <string>A&amp;ll columns</string>
+            </property>
+            <property name="accel">
+                <string>Alt+L</string>
+            </property>
+            <property name="checked">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="KActionSelector" row="3" column="0">
+            <property name="name">
+                <cstring>m_pColumnsSelector</cstring>
+            </property>
+            <property name="enabled">
+                <bool>false</bool>
+            </property>
+            <property name="availableLabel">
+                <string>&amp;Available columns:</string>
+            </property>
+            <property name="selectedLabel">
+                <string>&amp;Selected columns:</string>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout3</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxAnalyze</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Also perform a&amp;nalyze</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+N</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxFreeze</cstring>
+                    </property>
+                    <property name="text">
+                        <string>F&amp;reeze</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+R</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pCheckBoxAllColumns</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGVacuumTableWidget1Base</receiver>
+        <slot>slotAllColumnsToggled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxAnalyze</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>KPGVacuumTableWidget1Base</receiver>
+        <slot>slotAnalyzeToggled(bool)</slot>
+    </connection>
+</connections>
+<slots>
+    <slot access="protected">slotAllColumnsToggled(bool)</slot>
+    <slot access="protected">slotAnalyzeToggled(bool)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kactionselector.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,75 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgvacuumtablewizard.h"
+
+// include files for Qt
+#include <qlayout.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klineedit.h>
+#include <ktextedit.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+
+// application specific includes
+#include "../DbObjects/kpgtable.h"
+#include "kpgvacuumtablewidget1.h"
+
+
+KPGVacuumTableWizard::KPGVacuumTableWizard(QWidget *parent, const char *name, const QString & strNamespace, KPGTable *pTable)
+ : KPG3StepsWizard(parent, name)
+{
+  KPGVacuumTableWidget1 *pVacuumTableWidget1 = new KPGVacuumTableWidget1(WizardPage1, "KPGVacuumTableWidget1", strNamespace, pTable);
+  m_pPageWidget1 = pVacuumTableWidget1;
+  WizardPage1Layout->addWidget(m_pPageWidget1, 0, 0);
+  connect(pVacuumTableWidget1, SIGNAL(sigEnableNextButton(bool)), this, SLOT(slotEnableNextButton1(bool)));
+  
+  setNextEnabled(WizardPage1, true);
+  languageChange();
+}
+
+
+KPGVacuumTableWizard::~KPGVacuumTableWizard()
+{
+}
+
+void KPGVacuumTableWizard::languageChange()
+{
+    KPG3StepsWizard::languageChange();
+    
+    setCaption( i18n( "Vacuum table" ) );
+    
+    setTitle( WizardPage1, i18n( "Step 1 - Vacuum table parameters" ) );
+    setTitle( WizardPage2, i18n( "Step 2 - Review SQL statement" ) );
+    setTitle( WizardPage3, i18n( "Step 3 - Check operation result" ) );
+}
+
+// When this function called, initialize appropriate Wizard page
+void KPGVacuumTableWizard::showPage(QWidget *pPage)
+{
+	if(pPage == WizardPage2) // Step 2 - Review SQL statement
+	{
+		// prepare SQL statement
+		m_pTextEditSQL->setText((static_cast <KPGVacuumTableWidget1 *> (m_pPageWidget1))->getSQL());
+	}
+	
+	if(pPage == WizardPage3) // Step 3 - Check operation result
+	{
+		runQuery(false);
+	}
+	
+	// call parent
+	KPG3StepsWizard::showPage(pPage);
+}
+
+#include "kpgvacuumtablewizard.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/Wizards/kpgvacuumtablewizard.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,39 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGVACUUMTABLEWIZARD_H
+#define KPGVACUUMTABLEWIZARD_H
+
+#include "kpg3stepswizard.h"
+
+class KPGTable;
+
+/**
+Vacuum table Wizard
+
+ at author Lumir Vanek
+*/
+
+class KPGVacuumTableWizard : public KPG3StepsWizard
+{
+Q_OBJECT
+public:
+    KPGVacuumTableWizard(QWidget *parent, const char *name, const QString &, KPGTable *);
+    ~KPGVacuumTableWizard();
+
+protected:
+    virtual void showPage(QWidget *);
+    
+protected slots:
+    virtual void languageChange();  
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,11 @@
+INCLUDES = $(all_includes)
+METASOURCES = AUTO
+libXmlSupport_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libXmlSupport.la
+
+noinst_HEADERS = kxesyntaxhighlighter.h kxetexteditordialog.h kxetextviewsettings.h
+
+EXTRA_DIST = 
+
+libXmlSupport_la_SOURCES = kxesyntaxhighlighter.cpp kxetexteditordialog.cpp \
+kxetexteditordialogbase.ui kxetextviewsettings.cpp kxetextviewsettingspage.ui

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,757 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/XmlSupport
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+	$(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+LTLIBRARIES = $(noinst_LTLIBRARIES)
+libXmlSupport_la_LIBADD =
+am_libXmlSupport_la_OBJECTS = kxesyntaxhighlighter.lo \
+	kxetexteditordialog.lo kxetextviewsettings.lo
+#>- libXmlSupport_la_OBJECTS = $(am_libXmlSupport_la_OBJECTS)
+#>+ 6
+libXmlSupport_la_final_OBJECTS = libXmlSupport_la.all_cpp.lo 
+libXmlSupport_la_nofinal_OBJECTS = kxesyntaxhighlighter.lo \
+	kxetexteditordialog.lo kxetextviewsettings.lo kxetexteditordialogbase.lo kxetextviewsettingspage.lo\
+kxetexteditordialog.moc.lo 
+ at KDE_USE_FINAL_FALSE@libXmlSupport_la_OBJECTS = $(libXmlSupport_la_nofinal_OBJECTS)
+ at KDE_USE_FINAL_TRUE@libXmlSupport_la_OBJECTS = $(libXmlSupport_la_final_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+#>- CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+#>- 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 2
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+#>- LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+#>- 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+#>- 	$(AM_CXXFLAGS) $(CXXFLAGS)
+#>+ 3
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX --mode=compile $(CXX) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CXXFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)
+CXXLD = $(CXX)
+#>- CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+#>- 	$(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+#>+ 2
+CXXLINK = $(LIBTOOL) --tag=CXX --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+	$(CXXFLAGS) $(KDE_CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libXmlSupport_la_SOURCES)
+DIST_SOURCES = $(libXmlSupport_la_SOURCES)
+HEADERS = $(noinst_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+INCLUDES = $(all_includes)
+#>- METASOURCES = AUTO
+libXmlSupport_la_LDFLAGS = $(all_libraries)
+noinst_LTLIBRARIES = libXmlSupport.la
+noinst_HEADERS = kxesyntaxhighlighter.h kxetexteditordialog.h kxetextviewsettings.h
+EXTRA_DIST = 
+#>- libXmlSupport_la_SOURCES = kxesyntaxhighlighter.cpp kxetexteditordialog.cpp \
+#>- kxetexteditordialogbase.ui kxetextviewsettings.cpp kxetextviewsettingspage.ui
+#>+ 2
+libXmlSupport_la_SOURCES=kxesyntaxhighlighter.cpp kxetexteditordialog.cpp \
+ kxetextviewsettings.cpp  kxetexteditordialogbase.cpp kxetextviewsettingspage.cpp
+
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .lo .o .obj
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/XmlSupport/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+clean-noinstLTLIBRARIES:
+	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
+	@list='$(noinst_LTLIBRARIES)'; for p in $$list; do \
+	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+	  test "$$dir" != "$$p" || dir=.; \
+	  echo "rm -f \"$${dir}/so_locations\""; \
+	  rm -f "$${dir}/so_locations"; \
+	done
+libXmlSupport.la: $(libXmlSupport_la_OBJECTS) $(libXmlSupport_la_DEPENDENCIES) 
+	$(CXXLINK)  $(libXmlSupport_la_LDFLAGS) $(libXmlSupport_la_OBJECTS) $(libXmlSupport_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kxesyntaxhighlighter.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kxetexteditordialog.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/kxetextviewsettings.Plo at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cpp.lo:
+ at am__fastdepCXX_TRUE@	if $(LTCXXCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+ at am__fastdepCXX_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(LTCXXCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \
+#>- 	mostlyclean-am
+#>+ 2
+clean-am: clean-metasources clean-ui clean-bcheck clean-final  clean-generic clean-libtool clean-noinstLTLIBRARIES \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 3
+kxetexteditordialog.moc.cpp: $(srcdir)/kxetexteditordialog.h
+	$(MOC) $(srcdir)/kxetexteditordialog.h -o kxetexteditordialog.moc.cpp
+
+#>+ 2
+mocs: kxetexteditordialog.moc.cpp
+
+#>+ 3
+clean-metasources:
+	-rm -f  kxetexteditordialog.moc.cpp
+
+#>+ 2
+KDE_DIST=kxetextviewsettingspage.h Makefile.in kxetexteditordialogbase.ui kxetextviewsettingspage.ui Makefile.am 
+
+#>+ 5
+clean-ui:
+	-rm -f \
+	kxetexteditordialogbase.cpp kxetexteditordialogbase.h kxetexteditordialogbase.moc \
+	kxetextviewsettingspage.cpp kxetextviewsettingspage.h kxetextviewsettingspage.moc 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/XmlSupport/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/XmlSupport/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXXCOMPILE)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 11
+libXmlSupport_la.all_cpp.cpp: $(srcdir)/Makefile.in $(srcdir)/kxesyntaxhighlighter.cpp $(srcdir)/kxetexteditordialog.cpp $(srcdir)/kxetextviewsettings.cpp $(srcdir)/kxetexteditordialogbase.cpp $(srcdir)/kxetextviewsettingspage.cpp kxetexteditordialog.moc.cpp  kxetexteditordialogbase.moc kxetextviewsettingspage.moc
+	@echo 'creating libXmlSupport_la.all_cpp.cpp ...'; \
+	rm -f libXmlSupport_la.all_cpp.files libXmlSupport_la.all_cpp.final; \
+	echo "#define KDE_USE_FINAL 1" >> libXmlSupport_la.all_cpp.final; \
+	for file in kxesyntaxhighlighter.cpp kxetexteditordialog.cpp kxetextviewsettings.cpp kxetexteditordialogbase.cpp kxetextviewsettingspage.cpp kxetexteditordialog.moc.cpp ; do \
+	  echo "#include \"$$file\"" >> libXmlSupport_la.all_cpp.files; \
+	  test ! -f $(srcdir)/$$file || egrep '^#pragma +implementation' $(srcdir)/$$file >> libXmlSupport_la.all_cpp.final; \
+	done; \
+	cat libXmlSupport_la.all_cpp.final libXmlSupport_la.all_cpp.files > libXmlSupport_la.all_cpp.cpp; \
+	rm -f libXmlSupport_la.all_cpp.final libXmlSupport_la.all_cpp.files
+
+#>+ 3
+clean-final:
+	-rm -f libXmlSupport_la.all_cpp.cpp
+
+#>+ 3
+final:
+	$(MAKE) libXmlSupport_la_OBJECTS="$(libXmlSupport_la_final_OBJECTS)" all-am
+
+#>+ 3
+final-install:
+	$(MAKE) libXmlSupport_la_OBJECTS="$(libXmlSupport_la_final_OBJECTS)" install-am
+
+#>+ 3
+no-final:
+	$(MAKE) libXmlSupport_la_OBJECTS="$(libXmlSupport_la_nofinal_OBJECTS)" all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) libXmlSupport_la_OBJECTS="$(libXmlSupport_la_nofinal_OBJECTS)" install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 6
+nmcheck: 
+$(srcdir)/kxesyntaxhighlighter.cpp: kxetexteditordialogbase.h kxetextviewsettingspage.h 
+nmcheck-am: nmcheck
+$(srcdir)/kxetexteditordialog.cpp: kxetexteditordialogbase.h kxetextviewsettingspage.h 
+$(srcdir)/kxetextviewsettings.cpp: kxetexteditordialogbase.h kxetextviewsettingspage.h 
+
+#>+ 30
+kxetexteditordialogbase.cpp: $(srcdir)/kxetexteditordialogbase.ui kxetexteditordialogbase.h kxetexteditordialogbase.moc
+	rm -f kxetexteditordialogbase.cpp
+	echo '#include <kdialog.h>' > kxetexteditordialogbase.cpp
+	echo '#include <klocale.h>' >> kxetexteditordialogbase.cpp
+	$(UIC) -tr ${UIC_TR} -i kxetexteditordialogbase.h $(srcdir)/kxetexteditordialogbase.ui > kxetexteditordialogbase.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kxetexteditordialogbase.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kxetexteditordialogbase,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kxetexteditordialogbase.cpp ;\
+	rm -f kxetexteditordialogbase.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kxetexteditordialogbase.moc"' >> kxetexteditordialogbase.cpp; else rm -f kxetexteditordialogbase.cpp ; exit $$ret ; fi
+
+kxetexteditordialogbase.h: $(srcdir)/kxetexteditordialogbase.ui
+	rm -rf kxetexteditordialogbase.h;
+	$(UIC) $(srcdir)/kxetexteditordialogbase.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kxetexteditordialogbase.h ;
+kxetexteditordialogbase.moc: kxetexteditordialogbase.h
+	$(MOC) kxetexteditordialogbase.h -o kxetexteditordialogbase.moc
+
+kxetextviewsettingspage.cpp: $(srcdir)/kxetextviewsettingspage.ui kxetextviewsettingspage.h kxetextviewsettingspage.moc
+	rm -f kxetextviewsettingspage.cpp
+	echo '#include <kdialog.h>' > kxetextviewsettingspage.cpp
+	echo '#include <klocale.h>' >> kxetextviewsettingspage.cpp
+	$(UIC) -tr ${UIC_TR} -i kxetextviewsettingspage.h $(srcdir)/kxetextviewsettingspage.ui > kxetextviewsettingspage.cpp.temp ; ret=$$?; \
+	$(PERL) -pe "s,${UIC_TR}( \"\" ),QString::null,g" kxetextviewsettingspage.cpp.temp | $(PERL) -pe "s,${UIC_TR}( \"\"\, \"\" ),QString::null,g" | $(PERL) -pe "s,image([0-9][0-9]*)_data,img\$$1_kxetextviewsettingspage,g" | $(PERL) -pe "s,: QWizard\(,: KWizard(,g" >> kxetextviewsettingspage.cpp ;\
+	rm -f kxetextviewsettingspage.cpp.temp ;\
+	if test "$$ret" = 0; then echo '#include "kxetextviewsettingspage.moc"' >> kxetextviewsettingspage.cpp; else rm -f kxetextviewsettingspage.cpp ; exit $$ret ; fi
+
+kxetextviewsettingspage.h: $(srcdir)/kxetextviewsettingspage.ui
+	rm -rf kxetextviewsettingspage.h;
+	$(UIC) $(srcdir)/kxetextviewsettingspage.ui | $(PERL) -pi -e "s,public QWizard,public KWizard,g; s,#include <qwizard.h>,#include <kwizard.h>,g" >> kxetextviewsettingspage.h ;
+kxetextviewsettingspage.moc: kxetextviewsettingspage.h
+	$(MOC) kxetextviewsettingspage.h -o kxetextviewsettingspage.moc

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,257 @@
+/***************************************************************************
+                          kxesyntaxhighlighter.cpp  -  XML Syntax highlighter
+                             -------------------
+    begin                : Ne pro 14 2003
+    copyright            : (C) 2003-2005 by The KXMLEditor Team
+    email                : lvanek.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kxesyntaxhighlighter.h"
+
+#include <iostream>
+
+#include <qcolor.h>
+#include <qregexp.h>
+#include <qstring.h>
+#include <qstringlist.h>
+
+#include <ktextedit.h>
+
+// Regular expressions for parsing XML borrowed from:
+// http://www.cs.sfu.ca/~cameron/REX.html
+
+KXESyntaxHighlighter::KXESyntaxHighlighter(QTextEdit *textEdit)
+  : QSyntaxHighlighter(textEdit)
+{
+  m_clrDefaultText.setRgb(0, 0, 0);
+  m_clrElementName.setRgb(128, 0, 0);
+  m_clrAttributeName.setRgb(0, 255, 255);
+  m_clrAttributeValue.setRgb(0, 255, 0);
+  m_clrXmlSyntaxChar.setRgb(0, 0, 128); 
+  m_clrComment.setRgb(128, 128, 128);
+  m_clrSyntaxError.setRgb(255, 0, 0);
+}
+
+KXESyntaxHighlighter::~KXESyntaxHighlighter()
+{
+}
+
+
+int KXESyntaxHighlighter::highlightParagraph(const QString& text, int endStateOfLastPara)
+{
+    //first I format the given line to default so any remaining highlighting is removed (Qt does not do it by itself)
+    setFormat(0 , text.length(), QColor(0, 0, 0));
+
+    int iBracketNesting = 0;
+    m_eParserState = parsingNone;
+    int pos;
+	unsigned int i = 0;
+    
+	if(endStateOfLastPara == 1)
+	{
+		QRegExp patternComment("[^-]*-([^-][^-]*-)*->"); // search end of comment
+    	pos=patternComment.search(text, i);
+
+		if(pos >= 0) // end comment found ?
+		{
+			int l = patternComment.matchedLength();
+				
+			setFormat(0, l - 3, m_clrComment);
+					setFormat(l - 3, 3, m_clrXmlSyntaxChar );
+			i += l; // skip comment
+		}
+		else
+		{
+			setFormat(0, text.length(), m_clrComment);
+			return 1; // return 1 to signify "in comment"
+		}
+	}
+		
+    for(; i < text.length() - 1; i++)
+    {
+      switch(text[i])
+      {
+        case '<':
+          iBracketNesting++;
+
+          if(iBracketNesting == 1)
+            { setFormat( i, 1, m_clrXmlSyntaxChar );
+              m_eParserState = expectElementNameOrSlash;
+            }
+          else
+            setFormat( i, 1, m_clrSyntaxError ); // wrong bracket nesting
+
+          break;
+
+        case '>':
+          iBracketNesting--;
+
+          if(iBracketNesting == 0)
+            setFormat( i, 1, m_clrXmlSyntaxChar );
+          else
+            setFormat( i, 1, m_clrSyntaxError ); // wrong bracket nesting
+
+          m_eParserState = parsingNone;
+            
+          break;
+
+        case '/':
+
+          if(m_eParserState == expectElementNameOrSlash)
+          {
+            m_eParserState = expectElementName;
+            setFormat( i, 1, m_clrXmlSyntaxChar );
+          }
+          else
+          {
+            if(m_eParserState == expectAtttributeOrEndOfElement)
+              setFormat( i, 1, m_clrXmlSyntaxChar );
+            else
+              processDefaultText(i, text);  
+          }
+          
+          break;
+            
+        case '=':
+          if(m_eParserState == expectEqual)
+          {
+            m_eParserState = expectAttributeValue;
+            setFormat( i, 1, m_clrXmlSyntaxChar );
+          }
+          else
+          {
+            processDefaultText(i, text);  
+          }
+          break;
+            
+        case '\"':
+          
+          if(m_eParserState == expectAttributeValue)
+          {
+            QRegExp patternAttribute("\"[^<\"]*\"|'[^<']*'"); // search attribute value
+            pos=patternAttribute.search(text, i);
+
+            if(pos == (int) i) // attribute value found ?
+            {
+              int l = patternAttribute.matchedLength();
+
+              setFormat(i, 1, m_clrXmlSyntaxChar );
+              setFormat(i+1, l - 2, m_clrAttributeValue);
+              setFormat(i+l-1, 1, m_clrXmlSyntaxChar );
+              
+              i += l - 1; // skip attribute value
+              m_eParserState = expectAtttributeOrEndOfElement;
+            }
+            else
+              processDefaultText(i, text);
+          }
+          else  
+            processDefaultText(i, text);
+            
+          break;
+
+        case '!':
+          if(m_eParserState == expectElementNameOrSlash)
+          {
+            QRegExp patternComment("<!--[^-]*-([^-][^-]*-)*->"); // search comment
+            pos=patternComment.search(text, i-1);
+
+            if(pos == (int) i-1) // comment found ?
+            {
+              int l = patternComment.matchedLength();
+              
+			  setFormat(pos, 4, m_clrXmlSyntaxChar);
+              setFormat(pos + 4, l  - 7, m_clrComment);
+			  setFormat(l - 3, 3, m_clrXmlSyntaxChar);
+              i += l - 2; // skip comment
+              m_eParserState = parsingNone;
+              iBracketNesting--;
+            }
+            else
+              { // Try find multiline comment
+					QRegExp patternCommentStart("<!--"); // search comment start
+            		pos=patternCommentStart.search(text, i-1);
+						
+					if(pos == (int)i-1) // comment found ?
+					{
+						setFormat(i, 3, m_clrXmlSyntaxChar );
+              			setFormat(i + 3, text.length() - i - 3, m_clrComment);
+              			return 1; // return 1 to signify "in comment"
+					}
+					else
+						processDefaultText(i, text);
+				}
+          }
+          else
+            processDefaultText(i, text);
+            
+          break;  
+
+        default:
+          int iLenght = processDefaultText(i, text);
+          if(iLenght > 0)
+            i += iLenght - 1;
+          break;
+      }
+    }
+
+    return 0;
+}
+
+int KXESyntaxHighlighter::processDefaultText(int i, const QString& text)
+{
+  int l = 0; // length of matched text
+
+  switch(m_eParserState)
+  {
+    case expectElementNameOrSlash:
+    case expectElementName:
+      {
+        QRegExp patternName("([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*"); // search element name
+        int pos=patternName.search(text, i);
+
+        if(pos == i) // found ?
+        {
+          l = patternName.matchedLength();
+
+          setFormat(pos, l, m_clrElementName);
+          m_eParserState = expectAtttributeOrEndOfElement;
+        }
+        else
+          setFormat( i, 1, m_clrDefaultText );
+      }  
+      break;
+      
+    case expectAtttributeOrEndOfElement:
+      {
+        QRegExp patternName("([A-Za-z_:]|[^\\x00-\\x7F])([A-Za-z0-9_:.-]|[^\\x00-\\x7F])*"); // search attribute name
+        int pos=patternName.search(text, i);
+
+        if(pos == i) // found ?
+        {
+          l = patternName.matchedLength();
+
+          setFormat(pos, l, m_clrAttributeName);
+          m_eParserState = expectEqual;
+        }
+        else
+          setFormat( i, 1, m_clrDefaultText );
+      }
+      break;
+
+    default:
+      setFormat( i, 1, m_clrDefaultText );
+      break;
+  }
+  return l;
+}  
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxesyntaxhighlighter.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,81 @@
+/***************************************************************************
+                          kxesyntaxhighlighter.h  -  XML Syntax highlighter
+                             -------------------
+    begin                : Ne pro 14 2003
+    copyright            : (C) 2003-2005 by The KXMLEditor Team
+    email                : lvanek.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KXESYNTAXHIGHLIGHTER_H
+#define KXESYNTAXHIGHLIGHTER_H
+
+#include <qsyntaxhighlighter.h>
+
+class QTextEdit;
+
+/**
+  * XML Syntax highlighter
+  *
+  * @author Lumir Vanek
+  */
+class KXESyntaxHighlighter : public QSyntaxHighlighter
+{
+public: 
+	KXESyntaxHighlighter(QTextEdit *);
+	~KXESyntaxHighlighter();
+
+  int highlightParagraph(const QString &text, int endStateOfLastPara);
+
+  void setColorDefaultText(const QColor color) { m_clrDefaultText = color; }
+  void setColorElementNames(const QColor color) { m_clrElementName = color; }
+  void setColorAttributeNames(const QColor color) { m_clrAttributeName = color; }
+  void setColorAttributeValues(const QColor color) { m_clrAttributeValue = color; }
+  void setColorXmlSyntaxChars(const QColor color) { m_clrXmlSyntaxChar = color; }
+  void setColorComments(const QColor color) { m_clrComment = color; }
+  void setColorSyntaxError(const QColor color) { m_clrSyntaxError = color; }
+
+  const QColor colorDefaultText() const { return m_clrDefaultText; }
+  const QColor colorElementNames() const { return m_clrElementName; }
+  const QColor colorAttributeNames() const { return m_clrAttributeName; }
+  const QColor colorAttributeValues() const { return m_clrAttributeValue; }
+  const QColor colorXmlSyntaxChars() const { return m_clrXmlSyntaxChar; }
+  const QColor colorComments() const { return m_clrComment; }
+  const QColor colorSyntaxError() const { return m_clrSyntaxError; }
+  
+protected:
+  int processDefaultText(int, const QString&);
+  
+protected:
+
+  QColor m_clrDefaultText;
+  QColor m_clrElementName;
+  QColor m_clrAttributeName;
+  QColor m_clrAttributeValue;
+  QColor m_clrXmlSyntaxChar; // < > = "
+  QColor m_clrComment;
+  QColor m_clrSyntaxError;
+
+  // states for parsing XML
+  enum ParserState
+	{
+		parsingNone = 0,
+		expectElementNameOrSlash,
+		expectElementName,
+		expectAtttributeOrEndOfElement,
+		expectEqual,
+		expectAttributeValue
+	};
+
+  ParserState m_eParserState;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,131 @@
+/***************************************************************************
+                          kxetexteditordialog.cpp  -  description
+                             -------------------
+    begin                : Ne pro 14 2003
+    copyright            : (C) 2003-2007 by The KXMLEditor Team
+    email                : lvanek.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kxetexteditordialog.h"
+
+
+// include files for Qt
+#include <qpushbutton.h>
+#include <qdom.h>
+
+// include files for KDE
+#include <kmessagebox.h>
+#include <klistbox.h>
+#include <ktextedit.h>
+#include <klocale.h>
+#include <kdebug.h>
+#include <kiconloader.h>
+
+// application specific includes
+#include "../kpogreview.h"
+#include "../kpgconfiguration.h"
+#include "kxetextviewsettings.h"
+
+
+KXETextEditorDialog::KXETextEditorDialog(QWidget *parent)
+  : KXETextEditorDialogBase(parent, "KXETextEditorDialog")
+{
+	m_pSyntaxHighlighter = new KXESyntaxHighlighter(m_pTextEditor);
+	
+	connect( m_pTextEditor, SIGNAL(textChanged()), this, SLOT(slotTextChanged()) );
+	
+	// Apply current configuration
+	slotTextViewSettingsChanged();
+	
+	// and make sure to be informed about its changes.
+	//@deprecated connect( KPoGreView::configuration()->kxetextview(), SIGNAL(sigChanged()), this, SLOT(slotTextViewSettingsChanged()) );
+}
+
+KXETextEditorDialog::~KXETextEditorDialog()
+{
+    delete m_pSyntaxHighlighter;
+}
+
+const QString KXETextEditorDialog::editorText() const 
+{ 
+    return m_pTextEditor->text(); 
+}
+
+void KXETextEditorDialog::setEditorText(const QString & strText) 
+{ 
+    m_pTextEditor->setText(strText); 
+}
+
+void KXETextEditorDialog::slotTextChanged()
+{
+	if ( m_pTextEditor->text().isEmpty())
+		m_pButtonOk->setEnabled(false);
+	else
+		m_pButtonOk->setEnabled(true);
+}
+
+void KXETextEditorDialog::slotValidate()
+{
+    validateXml(true);
+}
+
+void KXETextEditorDialog::accept()
+{
+    if(validateXml(false))
+        KXETextEditorDialogBase::accept();
+}
+
+bool KXETextEditorDialog::validateXml(bool bInfoIfOK)
+{
+	QString strXML = editorText();
+
+	// create XML documemt from text
+	QString strErrorMsg;
+  	int iErrorLine, iErrorColumn;
+	QDomDocument doc;
+
+ 	if(!doc.setContent(strXML, true, &strErrorMsg, &iErrorLine, &iErrorColumn) )
+ 	{ 
+ 		KMessageBox::error(this,
+					 		i18n("%1 in line %2, column %3").arg(strErrorMsg).arg(iErrorLine).arg(iErrorColumn),
+					 		i18n("Parsing error !"));
+
+    	m_pTextEditor->setCursorPosition(iErrorLine - 1, iErrorColumn - 1);
+    	return false;
+	}
+
+  	if(bInfoIfOK)
+    	KMessageBox::information(this, i18n("OK"));
+
+  	return true;
+}
+
+void KXETextEditorDialog::slotTextViewSettingsChanged()
+{
+	/* @deprecated m_pTextEditor->setFont(KPoGreView::configuration()->kxetextview()->font());
+    
+    m_pSyntaxHighlighter->setColorDefaultText( KPoGreView::configuration()->kxetextview()->colorDfltText() );
+	m_pSyntaxHighlighter->setColorElementNames( KPoGreView::configuration()->kxetextview()->colorElemNames() );
+	m_pSyntaxHighlighter->setColorAttributeNames( KPoGreView::configuration()->kxetextview()->colorAttrNames() );
+	m_pSyntaxHighlighter->setColorAttributeValues( KPoGreView::configuration()->kxetextview()->colorAttrValues() );
+	m_pSyntaxHighlighter->setColorXmlSyntaxChars( KPoGreView::configuration()->kxetextview()->colorSyntaxChars() );
+	m_pSyntaxHighlighter->setColorComments( KPoGreView::configuration()->kxetextview()->colorComments() );
+	m_pSyntaxHighlighter->setColorSyntaxError( KPoGreView::configuration()->kxetextview()->colorErrors() );
+	
+	if(KPoGreView::configuration()->kxetextview()->isWrapOn())
+	{
+		m_pTextEditor->setHScrollBarMode(QScrollView::AlwaysOff);
+		m_pTextEditor->setWordWrap(QTextEdit::WidgetWidth);
+	}
+
+	m_pSyntaxHighlighter->rehighlight();*/
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,71 @@
+/***************************************************************************
+                          kxetexteditordialog.h  -  description
+                             -------------------
+    begin                : Ne pro 14 2003
+    copyright            : (C) 2003-2005 by The KXMLEditor Team
+    email                : lvanek.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KXETEXTEDITORDIALOG_H
+#define KXETEXTEDITORDIALOG_H
+
+#include "kxetexteditordialogbase.h"
+
+#include <qstring.h>
+
+#include "kxesyntaxhighlighter.h"
+
+/**
+  *	Dialog for editing raw XML as text. Borrowed from
+  * KXMLEditor
+  * 
+  *
+  * @author Lumir Vanek
+  */
+class KXETextEditorDialog : public KXETextEditorDialogBase
+{
+  Q_OBJECT
+public:
+  KXETextEditorDialog(QWidget *parent);
+  ~KXETextEditorDialog();
+
+  const QString editorText() const;
+  void setEditorText(const QString &);
+
+protected:
+
+  bool validateXml(bool);
+  
+public slots:
+
+  /**
+   * Changes syntax highlighting colors.
+   */
+  void slotTextViewSettingsChanged();
+  
+protected slots:
+
+  // fired, when user press Validate button
+  virtual void slotValidate();
+
+  // fired, when user change text editor contents
+  void slotTextChanged();
+
+  // fired, when user press OK button
+  virtual void accept();
+  
+private:
+
+  KXESyntaxHighlighter *m_pSyntaxHighlighter;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,110 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/XmlSupport/kxetexteditordialogbase.ui'
+**
+** Created: Út dub 1 13:07:13 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kxetexteditordialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <ktextedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KXETextEditorDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KXETextEditorDialogBase::KXETextEditorDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KXETextEditorDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KXETextEditorDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KXETextEditorDialogBaseLayout"); 
+
+    m_pButtonValidate = new QPushButton( this, "m_pButtonValidate" );
+
+    KXETextEditorDialogBaseLayout->addWidget( m_pButtonValidate, 1, 0 );
+
+    m_pButtonCancel = new QPushButton( this, "m_pButtonCancel" );
+    m_pButtonCancel->setAutoDefault( TRUE );
+
+    KXETextEditorDialogBaseLayout->addWidget( m_pButtonCancel, 1, 3 );
+    Horizontal_Spacing2 = new QSpacerItem( 160, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KXETextEditorDialogBaseLayout->addItem( Horizontal_Spacing2, 1, 1 );
+
+    m_pButtonOk = new QPushButton( this, "m_pButtonOk" );
+    m_pButtonOk->setEnabled( TRUE );
+    m_pButtonOk->setAutoDefault( TRUE );
+    m_pButtonOk->setDefault( TRUE );
+
+    KXETextEditorDialogBaseLayout->addWidget( m_pButtonOk, 1, 2 );
+
+    m_pTextEditor = new KTextEdit( this, "m_pTextEditor" );
+    QFont m_pTextEditor_font(  m_pTextEditor->font() );
+    m_pTextEditor_font.setFamily( "Courier" );
+    m_pTextEditor->setFont( m_pTextEditor_font ); 
+    m_pTextEditor->setVScrollBarMode( KTextEdit::AlwaysOn );
+    m_pTextEditor->setHScrollBarMode( KTextEdit::Auto );
+    m_pTextEditor->setTextFormat( KTextEdit::PlainText );
+    m_pTextEditor->setWordWrap( KTextEdit::NoWrap );
+    m_pTextEditor->setAutoFormatting( int( KTextEdit::AutoAll ) );
+
+    KXETextEditorDialogBaseLayout->addMultiCellWidget( m_pTextEditor, 0, 0, 0, 3 );
+    languageChange();
+    resize( QSize(554, 371).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pButtonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( m_pButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+    connect( m_pButtonValidate, SIGNAL( clicked() ), this, SLOT( slotValidate() ) );
+
+    // tab order
+    setTabOrder( m_pTextEditor, m_pButtonValidate );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KXETextEditorDialogBase::~KXETextEditorDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KXETextEditorDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Edit XML as raw text" ) );
+    m_pButtonValidate->setText( tr2i18n( "&Validate" ) );
+    m_pButtonValidate->setAccel( QKeySequence( tr2i18n( "Alt+V" ) ) );
+    QWhatsThis::add( m_pButtonValidate, tr2i18n( "<b>Validate</b><br/>\n"
+"Press this button, if you want your XML document in the above editor to be validated." ) );
+    m_pButtonCancel->setText( tr2i18n( "&Cancel" ) );
+    m_pButtonCancel->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+    m_pButtonOk->setText( tr2i18n( "&OK" ) );
+    m_pButtonOk->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    QWhatsThis::add( m_pTextEditor, tr2i18n( "You can edit your XML document as raw text in this editor." ) );
+}
+
+void KXETextEditorDialogBase::slotValidate()
+{
+    qWarning( "KXETextEditorDialogBase::slotValidate(): Not implemented yet" );
+}
+
+#include "kxetexteditordialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetexteditordialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,154 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KXETextEditorDialogBase</class>
+<comment>Dialog for editing XML as raw text</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KXETextEditorDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>554</width>
+            <height>371</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Edit XML as raw text</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QPushButton" row="1" column="0">
+            <property name="name">
+                <cstring>m_pButtonValidate</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Validate</string>
+            </property>
+            <property name="accel">
+                <string>Alt+V</string>
+            </property>
+            <property name="whatsThis" stdset="0">
+                <string>&lt;b&gt;Validate&lt;/b&gt;&lt;br/&gt;
+Press this button, if you want your XML document in the above editor to be validated.</string>
+            </property>
+        </widget>
+        <widget class="QPushButton" row="1" column="3">
+            <property name="name">
+                <cstring>m_pButtonCancel</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Cancel</string>
+            </property>
+            <property name="accel">
+                <string>Alt+C</string>
+            </property>
+            <property name="autoDefault">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <spacer row="1" column="1">
+            <property name="name">
+                <cstring>Horizontal Spacing2</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>160</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QPushButton" row="1" column="2">
+            <property name="name">
+                <cstring>m_pButtonOk</cstring>
+            </property>
+            <property name="enabled">
+                <bool>true</bool>
+            </property>
+            <property name="text">
+                <string>&amp;OK</string>
+            </property>
+            <property name="accel">
+                <string>Alt+O</string>
+            </property>
+            <property name="autoDefault">
+                <bool>true</bool>
+            </property>
+            <property name="default">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="KTextEdit" row="0" column="0" rowspan="1" colspan="4">
+            <property name="name">
+                <cstring>m_pTextEditor</cstring>
+            </property>
+            <property name="font">
+                <font>
+                    <family>Courier</family>
+                </font>
+            </property>
+            <property name="vScrollBarMode">
+                <enum>AlwaysOn</enum>
+            </property>
+            <property name="hScrollBarMode">
+                <enum>Auto</enum>
+            </property>
+            <property name="textFormat">
+                <enum>PlainText</enum>
+            </property>
+            <property name="wordWrap">
+                <enum>NoWrap</enum>
+            </property>
+            <property name="autoFormatting">
+                <set>AutoAll</set>
+            </property>
+            <property name="whatsThis" stdset="0">
+                <string>You can edit your XML document as raw text in this editor.</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pButtonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KXETextEditorDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KXETextEditorDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonValidate</sender>
+        <signal>clicked()</signal>
+        <receiver>KXETextEditorDialogBase</receiver>
+        <slot>slotValidate()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pTextEditor</tabstop>
+    <tabstop>m_pButtonValidate</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotValidate()</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,185 @@
+/***************************************************************************
+                           kxetextviewsettings.cpp
+                           ----------------------
+    begin                : Tue Dec 23 2003
+    copyright            : (C) 2003-2005 by The KXMLEditor Team
+    email                : hartig at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kxetextviewsettings.h"
+#include "kxetextviewsettingspage.h"
+
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h>
+
+#include <qcheckbox.h>
+#include <qframe.h>
+#include <qspinbox.h>
+
+#define CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT "DefaultText"
+#define DFLT_VALUE_COLOR_DEFAULT_TEXT QColor( "#000000" )
+
+#define CONF_ENTRY_NAME_COLOR_ELEMENT_NAMES "ElementNames"
+#define DFLT_VALUE_COLOR_ELEMENT_NAMES QColor( "#800000" )
+
+#define CONF_ENTRY_NAME_COLOR_ATTR_NAMES "AttributeNames"
+#define DFLT_VALUE_COLOR_ATTR_NAMES QColor( "#00ffff" )
+
+#define CONF_ENTRY_NAME_COLOR_ATTR_VALUES "AttributeValues"
+#define DFLT_VALUE_COLOR_ATTR_VALUES QColor( "#00ff00" )
+
+#define CONF_ENTRY_NAME_COLOR_SYNTAX_CHARS "SyntaxChars"
+#define DFLT_VALUE_COLOR_SYNTAX_CHARS QColor( "#000080" )
+
+#define CONF_ENTRY_NAME_COLOR_COMENTS "Comments"
+#define DFLT_VALUE_COLOR_COMENTS QColor( "#808080" )
+
+#define CONF_ENTRY_NAME_COLOR_ERRORS "SyntaxError"
+#define DFLT_VALUE_COLOR_ERRORS QColor( "#ff0000" )
+
+#define CONF_ENTRY_NAME_INDENT_STEPS "XML indentation"
+#define DFLT_VALUE_INDENT_STEPS 2
+
+#define CONF_ENTRY_WRAP_ON "Text Wrap On"
+#define DFLT_VALUE_WRAP_ON false
+
+#define CONF_ENTRY_NAME_EDITOR_FONT "EditorFont"
+
+KXETextViewSettings::KXETextViewSettings( QObject * pParent, const char * pszName )
+ : KPGSettings( "XML editor", pParent, pszName ),
+    m_colorDfltText( DFLT_VALUE_COLOR_DEFAULT_TEXT ),
+    m_colorElemNames( DFLT_VALUE_COLOR_ELEMENT_NAMES ),
+    m_colorAttrNames( DFLT_VALUE_COLOR_ATTR_NAMES ),
+    m_colorAttrValues( DFLT_VALUE_COLOR_ATTR_VALUES ),
+    m_colorSyntaxChars( DFLT_VALUE_COLOR_SYNTAX_CHARS ),
+    m_colorComments( DFLT_VALUE_COLOR_COMENTS ),
+    m_colorErrors( DFLT_VALUE_COLOR_ERRORS ),
+    m_iIndentSteps( DFLT_VALUE_INDENT_STEPS ),
+    m_bWrapOn(DFLT_VALUE_WRAP_ON),
+    m_pDialogPage(0)
+	 
+{
+}
+
+
+void KXETextViewSettings::write( KConfig * pConfig ) const
+{
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT, m_colorDfltText );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_ELEMENT_NAMES, m_colorElemNames );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_ATTR_NAMES, m_colorAttrNames );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_ATTR_VALUES, m_colorAttrValues );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_SYNTAX_CHARS, m_colorSyntaxChars );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_COMENTS, m_colorComments );
+	pConfig->writeEntry( CONF_ENTRY_NAME_COLOR_ERRORS, m_colorErrors );
+    pConfig->writeEntry( CONF_ENTRY_NAME_INDENT_STEPS, m_iIndentSteps );
+	pConfig->writeEntry( CONF_ENTRY_WRAP_ON, m_bWrapOn );
+    pConfig->writeEntry( CONF_ENTRY_NAME_EDITOR_FONT, m_Font);   
+}
+
+
+void KXETextViewSettings::read( const KConfig * pConfig )
+{
+	m_colorDfltText = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_DEFAULT_TEXT, & DFLT_VALUE_COLOR_DEFAULT_TEXT );
+	m_colorElemNames = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_ELEMENT_NAMES, & DFLT_VALUE_COLOR_ELEMENT_NAMES );
+	m_colorAttrNames = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_ATTR_NAMES, & DFLT_VALUE_COLOR_ATTR_NAMES );
+	m_colorAttrValues = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_ATTR_VALUES, & DFLT_VALUE_COLOR_ATTR_VALUES );
+	m_colorSyntaxChars = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_SYNTAX_CHARS, & DFLT_VALUE_COLOR_SYNTAX_CHARS );
+	m_colorComments = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_COMENTS, & DFLT_VALUE_COLOR_COMENTS );
+	m_colorErrors = pConfig->readColorEntry( CONF_ENTRY_NAME_COLOR_ERRORS, &DFLT_VALUE_COLOR_ERRORS  );
+    m_iIndentSteps = pConfig->readNumEntry( CONF_ENTRY_NAME_INDENT_STEPS, DFLT_VALUE_INDENT_STEPS );
+	m_bWrapOn = pConfig->readNumEntry( CONF_ENTRY_WRAP_ON, DFLT_VALUE_WRAP_ON );
+    m_Font = pConfig->readFontEntry( CONF_ENTRY_NAME_EDITOR_FONT );   
+}
+
+
+QString KXETextViewSettings::dialogPageName() const
+{
+	return i18n( "XML editor" );
+}
+
+QString KXETextViewSettings::dialogPageHeader() const
+{
+	return i18n( "XML editor properties" );
+}
+
+QString KXETextViewSettings::dialogPageIcon() const
+{
+	return "view_tree";
+}
+
+
+QWidget * KXETextViewSettings::dialogPage( QFrame * pParent )
+{
+	if ( ! m_pDialogPage )
+	{
+		// create the page if necessary
+		m_pDialogPage = new KXETextViewSettingsPage( pParent, "xml editor config.dialog page" );
+
+		// and fill its widgets with the corresponding values
+		updatePage();
+
+		connect( m_pDialogPage->m_pColorDfltText, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorElemNames, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorAttrNames, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorAttrValues, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorSyntaxChars, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorComments, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pColorErrors, SIGNAL(changed(const QColor&)), this, SIGNAL(sigDialogPageChanged()) );
+ 		connect( m_pDialogPage->m_pIndentSteps, SIGNAL(valueChanged(int)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pCheckBoxWrapOn, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) );
+        connect( m_pDialogPage->m_pFontChooser, SIGNAL(fontSelected( const QFont &)), this, SIGNAL(sigDialogPageChanged()) );      
+	}
+
+	return m_pDialogPage;
+}
+
+
+void KXETextViewSettings::setFromPage()
+{
+    if ( m_pDialogPage )
+	{
+		m_colorDfltText = m_pDialogPage->m_pColorDfltText->color();
+		m_colorElemNames = m_pDialogPage->m_pColorElemNames->color();
+		m_colorAttrNames = m_pDialogPage->m_pColorAttrNames->color();
+		m_colorAttrValues = m_pDialogPage->m_pColorAttrValues->color();
+		m_colorSyntaxChars = m_pDialogPage->m_pColorSyntaxChars->color();
+		m_colorComments = m_pDialogPage->m_pColorComments->color();
+		m_colorErrors = m_pDialogPage->m_pColorErrors->color();
+        
+        m_iIndentSteps = m_pDialogPage->m_pIndentSteps->value();
+		m_bWrapOn = m_pDialogPage->m_pCheckBoxWrapOn->isChecked();
+        
+        m_Font = m_pDialogPage->m_pFontChooser->font();
+	}
+}
+
+void KXETextViewSettings::updatePage() const
+{
+	if ( m_pDialogPage )
+	{
+		m_pDialogPage->m_pColorDfltText->setColor( m_colorDfltText );
+		m_pDialogPage->m_pColorElemNames->setColor( m_colorElemNames );
+		m_pDialogPage->m_pColorAttrNames->setColor( m_colorAttrNames );
+		m_pDialogPage->m_pColorAttrValues->setColor( m_colorAttrValues );
+		m_pDialogPage->m_pColorSyntaxChars->setColor( m_colorSyntaxChars );
+		m_pDialogPage->m_pColorComments->setColor( m_colorComments );
+		m_pDialogPage->m_pColorErrors->setColor( m_colorErrors );
+        
+        m_pDialogPage->m_pIndentSteps->setValue( m_iIndentSteps );
+		m_pDialogPage->m_pCheckBoxWrapOn->setChecked( m_bWrapOn );
+        
+        m_pDialogPage->m_pFontChooser->setFont(m_Font); 
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettings.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,117 @@
+/***************************************************************************
+                           kxetextviewsettings.h
+                           --------------------
+    begin                : Tue Dec 23 2003
+    copyright            : (C) 2003-2005 by The KXMLEditor Team
+    email                : hartig at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KXETEXTVIEWSETTINGS_H
+#define KXETEXTVIEWSETTINGS_H
+
+#include <qcolor.h>
+#include <qfont.h>
+
+#include "../kpgsettings.h"
+
+
+class KXETextViewSettingsPage;
+
+/**
+ * This class represents the group of configuration settings for
+ * the text view.
+ *
+ * @author The KXMLEditor Team
+ */
+class KXETextViewSettings : public KPGSettings
+{
+public:
+
+	KXETextViewSettings( QObject * pParent = 0, const char * pszName = 0 );
+
+	// The following functions can be used to access this object's settings.
+	const QColor & colorDfltText() const { return m_colorDfltText; }
+	const QColor & colorElemNames() const { return  m_colorElemNames; }
+	const QColor & colorAttrNames() const { return  m_colorAttrNames; }
+	const QColor & colorAttrValues() const { return  m_colorAttrValues; }
+	const QColor & colorSyntaxChars() const { return  m_colorSyntaxChars; }
+	const QColor & colorComments() const { return  m_colorComments; }
+	const QColor & colorErrors() const { return  m_colorErrors; }
+    int indentSteps() const { return m_iIndentSteps; }
+	bool isWrapOn() const { return m_bWrapOn; }
+    const QFont & font() const { return  m_Font; }   
+    
+	/**
+	 * Derived from @ref KXESettings
+	 */
+	virtual QString dialogPageName() const;
+		
+    /**
+	 * Derived from @ref KXESettings
+	 */
+	virtual QString dialogPageHeader() const;
+		
+    /**
+	 * Derived from @ref KXESettings
+	 */
+	virtual QString dialogPageIcon() const;
+		
+    /**
+	 * Derived from @ref KXESettings
+	 */
+	virtual QWidget * dialogPage( QFrame * pParent );
+
+protected:
+
+	/**
+	 * Derived from @ref KXESettings
+	 */
+	virtual void write( KConfig * ) const;
+		
+    /**
+	 * Derived from @ref KXESettings
+	 */
+	virtual void read( const KConfig * );
+    
+	/**
+	 * Derived from @ref KXESettings
+	 */
+	virtual void setFromPage();
+		
+    /**
+	 * Derived from @ref KXESettings
+	 */
+	virtual void updatePage() const;
+
+	// the settings itself
+	QColor m_colorDfltText;
+	QColor m_colorElemNames;
+	QColor m_colorAttrNames;
+	QColor m_colorAttrValues;
+	QColor m_colorSyntaxChars;
+	QColor m_colorComments;
+	QColor m_colorErrors;
+        
+        
+    int m_iIndentSteps;
+	bool m_bWrapOn;
+
+    QFont m_Font;
+
+	/**
+	 * the corresponding configuration dialog page
+	 * It is created on demand by @ref dialogPage.
+	 */
+	KXETextViewSettingsPage * m_pDialogPage;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,208 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/XmlSupport/kxetextviewsettingspage.ui'
+**
+** Created: Út dub 1 13:07:14 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kxetextviewsettingspage.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qtabwidget.h>
+#include <qgroupbox.h>
+#include <qlabel.h>
+#include <kcolorbutton.h>
+#include <kfontdialog.h>
+#include <qspinbox.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kfontdialog.h"
+
+/*
+ *  Constructs a KXETextViewSettingsPage as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KXETextViewSettingsPage::KXETextViewSettingsPage( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KXETextViewSettingsPage" );
+    KXETextViewSettingsPageLayout = new QGridLayout( this, 1, 1, 11, 6, "KXETextViewSettingsPageLayout"); 
+
+    tabWidget2 = new QTabWidget( this, "tabWidget2" );
+
+    tab = new QWidget( tabWidget2, "tab" );
+    tabLayout = new QGridLayout( tab, 1, 1, 11, 6, "tabLayout"); 
+
+    m_pBoxSyntaxHL = new QGroupBox( tab, "m_pBoxSyntaxHL" );
+    m_pBoxSyntaxHL->setColumnLayout(0, Qt::Vertical );
+    m_pBoxSyntaxHL->layout()->setSpacing( 6 );
+    m_pBoxSyntaxHL->layout()->setMargin( 11 );
+    m_pBoxSyntaxHLLayout = new QGridLayout( m_pBoxSyntaxHL->layout() );
+    m_pBoxSyntaxHLLayout->setAlignment( Qt::AlignTop );
+
+    m_pLblColorDfltText = new QLabel( m_pBoxSyntaxHL, "m_pLblColorDfltText" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorDfltText, 0, 0 );
+
+    m_pColorSyntaxChars = new KColorButton( m_pBoxSyntaxHL, "m_pColorSyntaxChars" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorSyntaxChars, 4, 1 );
+
+    m_pLblColorElemNames = new QLabel( m_pBoxSyntaxHL, "m_pLblColorElemNames" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorElemNames, 1, 0 );
+
+    m_pColorComments = new KColorButton( m_pBoxSyntaxHL, "m_pColorComments" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorComments, 5, 1 );
+
+    m_pLblColorErrors = new QLabel( m_pBoxSyntaxHL, "m_pLblColorErrors" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorErrors, 6, 0 );
+
+    m_pLblColorAttrValues = new QLabel( m_pBoxSyntaxHL, "m_pLblColorAttrValues" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorAttrValues, 3, 0 );
+
+    m_pColorElemNames = new KColorButton( m_pBoxSyntaxHL, "m_pColorElemNames" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorElemNames, 1, 1 );
+
+    m_pLblColorComments = new QLabel( m_pBoxSyntaxHL, "m_pLblColorComments" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorComments, 5, 0 );
+
+    m_pLblColorAttrNames = new QLabel( m_pBoxSyntaxHL, "m_pLblColorAttrNames" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorAttrNames, 2, 0 );
+
+    m_pColorDfltText = new KColorButton( m_pBoxSyntaxHL, "m_pColorDfltText" );
+    m_pColorDfltText->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)0, 0, 0, m_pColorDfltText->sizePolicy().hasHeightForWidth() ) );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorDfltText, 0, 1 );
+
+    m_pColorAttrNames = new KColorButton( m_pBoxSyntaxHL, "m_pColorAttrNames" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorAttrNames, 2, 1 );
+
+    m_pLblColorSyntaxChars = new QLabel( m_pBoxSyntaxHL, "m_pLblColorSyntaxChars" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pLblColorSyntaxChars, 4, 0 );
+
+    m_pColorAttrValues = new KColorButton( m_pBoxSyntaxHL, "m_pColorAttrValues" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorAttrValues, 3, 1 );
+
+    m_pColorErrors = new KColorButton( m_pBoxSyntaxHL, "m_pColorErrors" );
+
+    m_pBoxSyntaxHLLayout->addWidget( m_pColorErrors, 6, 1 );
+
+    tabLayout->addWidget( m_pBoxSyntaxHL, 0, 0 );
+    spacer6 = new QSpacerItem( 20, 111, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    tabLayout->addItem( spacer6, 1, 0 );
+    tabWidget2->insertTab( tab, QString::fromLatin1("") );
+
+    tab_2 = new QWidget( tabWidget2, "tab_2" );
+    tabLayout_2 = new QGridLayout( tab_2, 1, 1, 11, 6, "tabLayout_2"); 
+
+    m_pFontChooser = new KFontChooser( tab_2, "m_pFontChooser" );
+
+    tabLayout_2->addWidget( m_pFontChooser, 0, 0 );
+    tabWidget2->insertTab( tab_2, QString::fromLatin1("") );
+
+    TabPage = new QWidget( tabWidget2, "TabPage" );
+    TabPageLayout = new QGridLayout( TabPage, 1, 1, 11, 6, "TabPageLayout"); 
+
+    layout2 = new QHBoxLayout( 0, 0, 6, "layout2"); 
+
+    m_pLblIndentSteps = new QLabel( TabPage, "m_pLblIndentSteps" );
+    layout2->addWidget( m_pLblIndentSteps );
+
+    m_pIndentSteps = new QSpinBox( TabPage, "m_pIndentSteps" );
+    layout2->addWidget( m_pIndentSteps );
+    spacer2 = new QSpacerItem( 16, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout2->addItem( spacer2 );
+
+    TabPageLayout->addLayout( layout2, 0, 0 );
+
+    m_pCheckBoxWrapOn = new QCheckBox( TabPage, "m_pCheckBoxWrapOn" );
+
+    TabPageLayout->addWidget( m_pCheckBoxWrapOn, 1, 0 );
+    spacer8 = new QSpacerItem( 20, 80, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    TabPageLayout->addItem( spacer8, 2, 0 );
+    tabWidget2->insertTab( TabPage, QString::fromLatin1("") );
+
+    KXETextViewSettingsPageLayout->addWidget( tabWidget2, 0, 0 );
+    languageChange();
+    resize( QSize(525, 423).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+
+    // buddies
+    m_pLblColorDfltText->setBuddy( m_pColorDfltText );
+    m_pLblColorElemNames->setBuddy( m_pColorElemNames );
+    m_pLblColorErrors->setBuddy( m_pColorErrors );
+    m_pLblColorAttrValues->setBuddy( m_pColorAttrValues );
+    m_pLblColorComments->setBuddy( m_pColorComments );
+    m_pLblColorAttrNames->setBuddy( m_pColorAttrNames );
+    m_pLblColorSyntaxChars->setBuddy( m_pColorSyntaxChars );
+    m_pLblIndentSteps->setBuddy( m_pIndentSteps );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KXETextViewSettingsPage::~KXETextViewSettingsPage()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KXETextViewSettingsPage::languageChange()
+{
+    setCaption( tr2i18n( "Text view settings" ) );
+    m_pBoxSyntaxHL->setTitle( tr2i18n( "Syntax highlighting" ) );
+    QWhatsThis::add( m_pBoxSyntaxHL, tr2i18n( "<b>Syntax highlightning</b>\n"
+"<br>\n"
+"You can define the colors to be used, when showing your XML documents as raw text." ) );
+    m_pLblColorDfltText->setText( tr2i18n( "Default &Text:" ) );
+    m_pColorSyntaxChars->setText( QString::null );
+    m_pLblColorElemNames->setText( tr2i18n( "&Element names:" ) );
+    m_pColorComments->setText( QString::null );
+    m_pLblColorErrors->setText( tr2i18n( "Syntax E&rrors:" ) );
+    m_pLblColorAttrValues->setText( tr2i18n( "Attribute &values:" ) );
+    m_pColorElemNames->setText( QString::null );
+    m_pLblColorComments->setText( tr2i18n( "Co&mments:" ) );
+    m_pLblColorAttrNames->setText( tr2i18n( "Attribute &names:" ) );
+    m_pColorDfltText->setText( QString::null );
+    m_pColorAttrNames->setText( QString::null );
+    m_pLblColorSyntaxChars->setText( tr2i18n( "&Syntax characters:" ) );
+    m_pColorAttrValues->setText( QString::null );
+    m_pColorErrors->setText( QString::null );
+    tabWidget2->changeTab( tab, tr2i18n( "Colors" ) );
+    tabWidget2->changeTab( tab_2, tr2i18n( "Font" ) );
+    m_pLblIndentSteps->setText( tr2i18n( "Element &indentation:" ) );
+    QWhatsThis::add( m_pLblIndentSteps, tr2i18n( "<b>Element indentation</b>\n"
+"<br>\n"
+"You can choose the number of characters you want to be used for indenting childnodes, when showing your XML documents as raw text." ) );
+    QWhatsThis::add( m_pIndentSteps, tr2i18n( "<b>Element indentation</b>\n"
+"<br>\n"
+"You can choose the number of characters you want to be used for indenting childnodes, when showing your XML documents as raw text." ) );
+    m_pCheckBoxWrapOn->setText( tr2i18n( "&Wrap, instead of Hrz. Scroll bar" ) );
+    m_pCheckBoxWrapOn->setAccel( QKeySequence( tr2i18n( "Alt+W" ) ) );
+    tabWidget2->changeTab( TabPage, tr2i18n( "Misc" ) );
+}
+
+#include "kxetextviewsettingspage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+/****************************************************************************
+** Form interface generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/XmlSupport/kxetextviewsettingspage.ui'
+**
+** Created: Út říj 16 14:30:44 2007
+**      by: The User Interface Compiler ($Id: kxetextviewsettingspage.h,v 1.1 2007/10/16 12:42:23 lvanek Exp $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef KXETEXTVIEWSETTINGSPAGE_H
+#define KXETEXTVIEWSETTINGSPAGE_H
+
+#include <qvariant.h>
+#include <qwidget.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QTabWidget;
+class QGroupBox;
+class QLabel;
+class KColorButton;
+class KFontChooser;
+class QSpinBox;
+class QCheckBox;
+
+class KXETextViewSettingsPage : public QWidget
+{
+    Q_OBJECT
+
+public:
+    KXETextViewSettingsPage( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
+    ~KXETextViewSettingsPage();
+
+    QTabWidget* tabWidget2;
+    QWidget* tab;
+    QGroupBox* m_pBoxSyntaxHL;
+    QLabel* m_pLblColorDfltText;
+    KColorButton* m_pColorSyntaxChars;
+    QLabel* m_pLblColorElemNames;
+    KColorButton* m_pColorComments;
+    QLabel* m_pLblColorErrors;
+    QLabel* m_pLblColorAttrValues;
+    KColorButton* m_pColorElemNames;
+    QLabel* m_pLblColorComments;
+    QLabel* m_pLblColorAttrNames;
+    KColorButton* m_pColorDfltText;
+    KColorButton* m_pColorAttrNames;
+    QLabel* m_pLblColorSyntaxChars;
+    KColorButton* m_pColorAttrValues;
+    KColorButton* m_pColorErrors;
+    QWidget* tab_2;
+    KFontChooser* m_pFontChooser;
+    QWidget* TabPage;
+    QLabel* m_pLblIndentSteps;
+    QSpinBox* m_pIndentSteps;
+    QCheckBox* m_pCheckBoxWrapOn;
+
+protected:
+    QGridLayout* KXETextViewSettingsPageLayout;
+    QGridLayout* tabLayout;
+    QSpacerItem* spacer6;
+    QGridLayout* m_pBoxSyntaxHLLayout;
+    QGridLayout* tabLayout_2;
+    QGridLayout* TabPageLayout;
+    QSpacerItem* spacer8;
+    QHBoxLayout* layout2;
+    QSpacerItem* spacer2;
+
+protected slots:
+    virtual void languageChange();
+
+};
+
+#endif // KXETEXTVIEWSETTINGSPAGE_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/XmlSupport/kxetextviewsettingspage.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,338 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KXETextViewSettingsPage</class>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KXETextViewSettingsPage</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>525</width>
+            <height>423</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Text view settings</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QTabWidget" row="0" column="0">
+            <property name="name">
+                <cstring>tabWidget2</cstring>
+            </property>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tab</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Colors</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QGroupBox" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pBoxSyntaxHL</cstring>
+                        </property>
+                        <property name="title">
+                            <string>Syntax highlighting</string>
+                        </property>
+                        <property name="whatsThis" stdset="0">
+                            <string>&lt;b&gt;Syntax highlightning&lt;/b&gt;
+&lt;br&gt;
+You can define the colors to be used, when showing your XML documents as raw text.</string>
+                        </property>
+                        <grid>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel" row="0" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorDfltText</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Default &amp;Text:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorDfltText</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="4" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorSyntaxChars</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="1" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorElemNames</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>&amp;Element names:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorElemNames</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="5" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorComments</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="6" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorErrors</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Syntax E&amp;rrors:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorErrors</cstring>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="3" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorAttrValues</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Attribute &amp;values:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorAttrValues</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="1" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorElemNames</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="5" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorComments</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Co&amp;mments:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorComments</cstring>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="2" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorAttrNames</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Attribute &amp;names:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorAttrNames</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="0" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorDfltText</cstring>
+                                </property>
+                                <property name="sizePolicy">
+                                    <sizepolicy>
+                                        <hsizetype>7</hsizetype>
+                                        <vsizetype>0</vsizetype>
+                                        <horstretch>0</horstretch>
+                                        <verstretch>0</verstretch>
+                                    </sizepolicy>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="2" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorAttrNames</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="QLabel" row="4" column="0">
+                                <property name="name">
+                                    <cstring>m_pLblColorSyntaxChars</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>&amp;Syntax characters:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pColorSyntaxChars</cstring>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="3" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorAttrValues</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                            <widget class="KColorButton" row="6" column="1">
+                                <property name="name">
+                                    <cstring>m_pColorErrors</cstring>
+                                </property>
+                                <property name="text">
+                                    <string></string>
+                                </property>
+                            </widget>
+                        </grid>
+                    </widget>
+                    <spacer row="1" column="0">
+                        <property name="name">
+                            <cstring>spacer6</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>20</width>
+                                <height>111</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>tab</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Font</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="KFontChooser" row="0" column="0">
+                        <property name="name">
+                            <cstring>m_pFontChooser</cstring>
+                        </property>
+                    </widget>
+                </grid>
+            </widget>
+            <widget class="QWidget">
+                <property name="name">
+                    <cstring>TabPage</cstring>
+                </property>
+                <attribute name="title">
+                    <string>Misc</string>
+                </attribute>
+                <grid>
+                    <property name="name">
+                        <cstring>unnamed</cstring>
+                    </property>
+                    <widget class="QLayoutWidget" row="0" column="0">
+                        <property name="name">
+                            <cstring>layout2</cstring>
+                        </property>
+                        <hbox>
+                            <property name="name">
+                                <cstring>unnamed</cstring>
+                            </property>
+                            <widget class="QLabel">
+                                <property name="name">
+                                    <cstring>m_pLblIndentSteps</cstring>
+                                </property>
+                                <property name="text">
+                                    <string>Element &amp;indentation:</string>
+                                </property>
+                                <property name="buddy" stdset="0">
+                                    <cstring>m_pIndentSteps</cstring>
+                                </property>
+                                <property name="whatsThis" stdset="0">
+                                    <string>&lt;b&gt;Element indentation&lt;/b&gt;
+&lt;br&gt;
+You can choose the number of characters you want to be used for indenting childnodes, when showing your XML documents as raw text.</string>
+                                </property>
+                            </widget>
+                            <widget class="QSpinBox">
+                                <property name="name">
+                                    <cstring>m_pIndentSteps</cstring>
+                                </property>
+                                <property name="whatsThis" stdset="0">
+                                    <string>&lt;b&gt;Element indentation&lt;/b&gt;
+&lt;br&gt;
+You can choose the number of characters you want to be used for indenting childnodes, when showing your XML documents as raw text.</string>
+                                </property>
+                            </widget>
+                            <spacer>
+                                <property name="name">
+                                    <cstring>spacer2</cstring>
+                                </property>
+                                <property name="orientation">
+                                    <enum>Horizontal</enum>
+                                </property>
+                                <property name="sizeType">
+                                    <enum>Expanding</enum>
+                                </property>
+                                <property name="sizeHint">
+                                    <size>
+                                        <width>16</width>
+                                        <height>20</height>
+                                    </size>
+                                </property>
+                            </spacer>
+                        </hbox>
+                    </widget>
+                    <widget class="QCheckBox" row="1" column="0">
+                        <property name="name">
+                            <cstring>m_pCheckBoxWrapOn</cstring>
+                        </property>
+                        <property name="text">
+                            <string>&amp;Wrap, instead of Hrz. Scroll bar</string>
+                        </property>
+                        <property name="accel">
+                            <string>Alt+W</string>
+                        </property>
+                    </widget>
+                    <spacer row="2" column="0">
+                        <property name="name">
+                            <cstring>spacer8</cstring>
+                        </property>
+                        <property name="orientation">
+                            <enum>Vertical</enum>
+                        </property>
+                        <property name="sizeType">
+                            <enum>Expanding</enum>
+                        </property>
+                        <property name="sizeHint">
+                            <size>
+                                <width>20</width>
+                                <height>80</height>
+                            </size>
+                        </property>
+                    </spacer>
+                </grid>
+            </widget>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<tabstops>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kfontdialog.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,19 @@
+EXTRA_DIST = hi22-action-dbgnext.png hi22-action-dbgrestart.png hi22-action-dbgrun.png hi22-action-dbgstepout.png hi22-action-dbgstep.png
+
+install-data-local:
+	$(mkinstalldirs) $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/
+	$(INSTALL_DATA) $(srcdir)/hi22-action-kpg_debugger.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgnext.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrestart.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrun.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png	
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstepout.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstep.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+
+uninstall-local:
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png 
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png 
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png 
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+	-rmdir $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/icons/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,593 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/icons
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+EXTRA_DIST = hi22-action-dbgnext.png hi22-action-dbgrestart.png hi22-action-dbgrun.png hi22-action-dbgstepout.png hi22-action-dbgstep.png
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/icons/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/icons/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/icons/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/icons/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/icons/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-local
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am uninstall-local
+
+
+install-data-local:
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-kpg_debugger.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-kpg_debugger.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgnext.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgnext.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrestart.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrestart.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrun.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png	
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgrun.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstepout.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstepout.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+#>- 	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstep.png $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/hi22-action-dbgstep.png $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+
+uninstall-local:
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/kpg_debugger.png
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgnext.png
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrestart.png
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgrun.png
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstepout.png
+#>- 	-rm -f $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/dbgstep.png
+#>- 	-rmdir $(kde_datadir)/kpogre/icons/hicolor/22x22/actions/
+#>+ 1
+	-rmdir $(DESTDIR)$(kde_datadir)/kpogre/icons/hicolor/22x22/actions/
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=Makefile.in hi22-action-kpg_debugger.png Makefile.am 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/icons/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/icons/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/icons/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgnext.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgnext.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrestart.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrestart.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrun.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgrun.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstep.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstep.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstepout.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-dbgstepout.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-kpg_debugger.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/icons/hi22-action-kpg_debugger.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,432 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgaclitem.h"
+
+// include files for KDE
+#include <kdebug.h>
+
+
+KPGAclItem::KPGAclItem(const QString &strACL)
+{
+  m_bSELECT = false;
+  m_bUPDATE = false;
+  m_bINSERT = false;
+  m_bDELETE = false; 
+  m_bRULE = false;
+  m_bREFERENCES = false;
+  m_bTRIGGER = false;
+  m_bEXECUTE = false;
+  m_bUSAGE = false;
+  m_bCREATE = false;
+  m_bTEMPORARY = false;
+    
+  m_bGrantSELECT = false;
+  m_bGrantUPDATE = false;
+  m_bGrantINSERT = false;
+  m_bGrantDELETE = false;
+  m_bGrantRULE = false;
+  m_bGrantREFERENCES = false; 
+  m_bGrantTRIGGER = false;
+  m_bGrantEXECUTE = false;
+  m_bGrantUSAGE = false;
+  m_bGrantCREATE = false;
+  m_bGrantTEMPORARY = false;
+  
+  m_bIsGroup = false;
+  m_pListViewItem = 0;
+  
+  unsigned int i = 0;
+  
+  // Get grantee
+  for(; i < strACL.length(); i++)
+  {
+    if(strACL[i] == '"')
+      continue;
+      
+    if(strACL[i] == '=')
+    {  
+      if(m_strGrantee.isEmpty())
+      {
+        m_strGrantee = "PUBLIC";
+      }
+      i++;
+      break;
+    }
+      
+    m_strGrantee.append(strACL[i]);
+  }
+  
+  // Get ACL string
+  QString strPrivileges;     // ACL - privilege, such as "arwdRxt" for table
+  for(; i < strACL.length(); i++)
+  {
+    if(strACL[i] == '/')
+      break;
+      
+    strPrivileges.append(strACL[i]);
+  }
+  
+  parsePrivileges(strPrivileges);
+  
+  // Get grantor
+  for(; i < strACL.length(); i++)
+  {
+    if((strACL[i] == '"') || (strACL[i] == '}') || (strACL[i] == '/'))
+      continue;
+      
+    m_strGrantor.append(strACL[i]);
+  }
+}
+
+
+KPGAclItem::~KPGAclItem()
+{
+}
+
+void KPGAclItem::parsePrivileges(const QString &strPrivileges)
+{
+  for(unsigned int i = 0; i < strPrivileges.length(); i++)
+  {
+    
+    switch(strPrivileges[i])
+    {
+      case 'r':
+          m_bSELECT = true;
+          break;
+          
+      case 'w':
+          m_bUPDATE = true;
+          break;
+          
+      case 'a':
+          m_bINSERT = true;
+          break;
+          
+      case 'd':
+          m_bDELETE = true;
+          break;
+          
+      case 'R':
+          m_bRULE = true;
+          break;
+          
+      case 'x':
+          m_bREFERENCES = true;
+          break;
+          
+      case 't':
+          m_bTRIGGER = true;
+          break;    
+            
+      case 'X':
+          m_bEXECUTE = true;
+          break;  
+          
+      case 'U':
+          m_bUSAGE = true;
+          break;
+          
+      case 'C':
+          m_bCREATE = true;
+          break;  
+        
+      case 'T':
+          m_bTEMPORARY = true;
+          break;
+          
+      case '*': // * -- grant option for preceding privilege
+          {
+            switch(strPrivileges[i - 1])
+            {
+              case 'r':
+                  m_bGrantSELECT = true;
+                  break;
+                  
+              case 'w':
+                  m_bGrantUPDATE = true;
+                  break;
+                  
+              case 'a':
+                  m_bGrantINSERT = true;
+                  break;
+                  
+              case 'd':
+                  m_bGrantDELETE = true;
+                  break;
+                  
+              case 'R':
+                  m_bGrantRULE = true;
+                  break;
+                  
+              case 'x':
+                  m_bGrantREFERENCES = true;
+                  break;
+                  
+              case 't':
+                  m_bGrantTRIGGER = true;
+                  break;    
+                    
+              case 'X':
+                  m_bGrantEXECUTE = true;
+                  break;  
+                  
+              case 'U':
+                  m_bGrantUSAGE = true;
+                  break;
+                  
+              case 'C':
+                  m_bGrantCREATE = true;
+                  break;  
+                
+              case 'T':
+                  m_bGrantTEMPORARY = true;
+                  break;
+            
+              default:
+                kdError() << "KPGAclItem::parsePrivileges - unexpected character: " << QString(strPrivileges[i - 1]) << endl;
+                kdError() << strPrivileges << endl;
+                break;     
+            }
+          }
+          break;
+          
+      default:
+          kdError() << "KPGAclItem::parsePrivileges - unexpected character: " << QString(strPrivileges[i]) <<  endl;
+          kdError() << strPrivileges << endl;
+          break;      
+          
+    }
+  }
+    
+  // Initialize variables for user editing to state loaded from DB server
+  m_bSELECT_New = m_bSELECT;
+  m_bUPDATE_New = m_bUPDATE;
+  m_bINSERT_New = m_bINSERT;
+  m_bDELETE_New = m_bDELETE; 
+  m_bRULE_New = m_bRULE;
+  m_bREFERENCES_New = m_bREFERENCES;
+  m_bTRIGGER_New = m_bTRIGGER;
+  m_bEXECUTE_New = m_bEXECUTE;
+  m_bUSAGE_New = m_bUSAGE;
+  m_bCREATE_New = m_bCREATE;
+  m_bTEMPORARY_New = m_bTEMPORARY;
+    
+  m_bGrantSELECT_New = m_bGrantSELECT;
+  m_bGrantUPDATE_New = m_bGrantUPDATE;
+  m_bGrantINSERT_New = m_bGrantINSERT;
+  m_bGrantDELETE_New = m_bGrantDELETE;
+  m_bGrantRULE_New = m_bGrantRULE;
+  m_bGrantREFERENCES_New = m_bGrantREFERENCES; 
+  m_bGrantTRIGGER_New = m_bGrantTRIGGER;
+  m_bGrantEXECUTE_New = m_bGrantEXECUTE;
+  m_bGrantUSAGE_New = m_bGrantUSAGE;
+  m_bGrantCREATE_New = m_bGrantCREATE;
+  m_bGrantTEMPORARY_New = m_bGrantTEMPORARY;    
+}
+
+const QString KPGAclItem::getSQL(const QString &strObjectTypeName) const
+{
+  QString strSQL;
+  
+  if(m_bSELECT != m_bSELECT_New)
+  {
+    if(m_bSELECT_New)
+      strSQL.append("GRANT SELECT ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE SELECT ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bUPDATE != m_bUPDATE_New)
+  {
+    if(m_bUPDATE_New)
+      strSQL.append("GRANT UPDATE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE UPDATE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bINSERT != m_bINSERT_New)
+  {
+    if(m_bINSERT_New)
+      strSQL.append("GRANT INSERT ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE INSERT ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bDELETE != m_bDELETE_New)
+  {
+    if(m_bDELETE_New)
+      strSQL.append("GRANT DELETE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE DELETE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+
+  if(m_bRULE != m_bRULE_New)
+  {
+    if(m_bRULE_New)
+      strSQL.append("GRANT RULE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE RULE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bREFERENCES != m_bREFERENCES_New)
+  {
+    if(m_bREFERENCES_New)
+      strSQL.append("GRANT REFERENCES ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE REFERENCES ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bTRIGGER != m_bTRIGGER_New)
+  {
+    if(m_bTRIGGER_New)
+      strSQL.append("GRANT TRIGGER ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE TRIGGER ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bEXECUTE != m_bEXECUTE_New)
+  {
+    if(m_bEXECUTE_New)
+      strSQL.append("GRANT EXECUTE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE EXECUTE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bUSAGE != m_bUSAGE_New)
+  {
+    if(m_bUSAGE_New)
+      strSQL.append("GRANT USAGE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE USAGE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bCREATE != m_bCREATE_New)
+  {
+    if(m_bCREATE_New)
+      strSQL.append("GRANT CREATE ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE CREATE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bTEMPORARY != m_bTEMPORARY_New)
+  {
+    if(m_bTEMPORARY_New)
+      strSQL.append("GRANT TEMPORARY ON " + strObjectTypeName + " TO " + m_strGrantee + ";\n");
+    else
+      strSQL.append("REVOKE TEMPORARY ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  //------------------------------------------------------------------------------------------
+  // WITH GRANT OPTIONs
+  //------------------------------------------------------------------------------------------
+  if(m_bGrantSELECT != m_bGrantSELECT_New)
+  {
+    if(m_bGrantSELECT_New)
+      strSQL.append("GRANT SELECT ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR SELECT ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+    if(m_bGrantUPDATE != m_bGrantUPDATE_New)
+  {
+    if(m_bGrantUPDATE_New)
+      strSQL.append("GRANT UPDATE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR UPDATE ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantINSERT != m_bGrantINSERT_New)
+  {
+    if(m_bGrantINSERT_New)
+      strSQL.append("GRANT INSERT ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR INSERT ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantDELETE != m_bGrantDELETE_New)
+  {
+    if(m_bGrantDELETE_New)
+      strSQL.append("GRANT DELETE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR DELETE ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+
+  if(m_bGrantRULE != m_bGrantRULE_New)
+  {
+    if(m_bGrantRULE_New)
+      strSQL.append("GRANT RULE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR RULE ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantREFERENCES != m_bGrantREFERENCES_New)
+  {
+    if(m_bGrantREFERENCES_New)
+      strSQL.append("GRANT REFERENCES ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR REFERENCES ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantTRIGGER != m_bGrantTRIGGER_New)
+  {
+    if(m_bGrantTRIGGER_New)
+      strSQL.append("GRANT TRIGGER ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR TRIGGER ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantEXECUTE != m_bGrantEXECUTE_New)
+  {
+    if(m_bGrantEXECUTE_New)
+      strSQL.append("GRANT EXECUTE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR EXECUTE ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  if(m_bGrantUSAGE != m_bGrantUSAGE_New)
+  {
+    if(m_bGrantUSAGE_New)
+      strSQL.append("GRANT USAGE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR USAGE ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantCREATE != m_bGrantCREATE_New)
+  {
+    if(m_bGrantCREATE_New)
+      strSQL.append("GRANT CREATE ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR CREATE ON " + strObjectTypeName + " FROM " + m_strGrantee + " ;\n");
+  }
+  
+  if(m_bGrantTEMPORARY != m_bGrantTEMPORARY_New)
+  {
+    if(m_bGrantTEMPORARY_New)
+      strSQL.append("GRANT TEMPORARY ON " + strObjectTypeName + " TO " + m_strGrantee + " WITH GRANT OPTION;\n");
+    else
+      strSQL.append("REVOKE GRANT OPTION FOR TEMPORARY ON " + strObjectTypeName + " FROM " + m_strGrantee + ";\n");
+  }
+  
+  return strSQL;
+}
+
+bool KPGAclItem::canPassGrantToOther() const
+{
+  // Grant options can only be granted to individual users, not to groups or PUBLIC
+  if(m_strGrantee == "PUBLIC")
+    return false;
+    
+  if(m_strGrantee.left(6) == "group ")
+    return false;
+    
+  return true;  
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgaclitem.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,165 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGACLITEM_H
+#define KPGACLITEM_H
+
+#include <qvaluelist.h>
+
+class QListViewItem;
+
+/**
+ACL item
+
+ at author Lumir Vanek
+*/
+
+class KPGAclItem
+{
+public:
+    KPGAclItem() {};
+    KPGAclItem(const QString &);
+    ~KPGAclItem();
+
+    const QString& grantor() const { return  m_strGrantor; } 
+    const QString& grantee() const { return m_strGrantee; }
+        
+    // Those functions return User right attribute state loaded from DB server
+    bool canSelect() const { return m_bSELECT; }
+    bool canUpdate() const { return m_bUPDATE; }
+    bool canInsert() const { return m_bINSERT; }
+    bool canDelete() const { return m_bDELETE; }
+    bool canCreateRule() const { return m_bRULE; }
+    bool canCreateReference() const { return m_bREFERENCES; }
+    bool canCreateTrigger() const { return m_bTRIGGER; }
+    bool canExecute() const { return m_bEXECUTE; }
+    bool canUse() const { return m_bUSAGE; }
+    bool canCreate() const { return m_bCREATE; }
+    bool canCreateTemp() const { return m_bTEMPORARY; }
+    
+    bool canGrantSelect() const { return m_bGrantSELECT; }
+    bool canGrantUpdate() const { return m_bGrantUPDATE; }
+    bool canGrantInsert() const { return m_bGrantINSERT; }
+    bool canGrantDelete() const { return m_bGrantDELETE; }
+    bool canGrantCreateRule() const { return m_bGrantRULE; }
+    bool canGrantCreateReference() const { return m_bGrantREFERENCES; }
+    bool canGrantCreateTrigger() const { return m_bGrantTRIGGER; }
+    bool canGrantExecute() const { return m_bGrantEXECUTE; }
+    bool canGrantUse() const { return m_bGrantUSAGE; }
+    bool canGrantCreate() const { return m_bGrantCREATE; }
+    bool canGrantCreateTemp() const { return m_bGrantTEMPORARY; }
+    
+    // Set m_pListViewItem
+    void setListViewItem(QListViewItem *pListViewItem) { m_pListViewItem = pListViewItem; }
+    QListViewItem * getListViewItem() const { return m_pListViewItem; }
+    bool isGroup() const { return m_bIsGroup; }
+    const QString getSQL(const QString &) const;
+    
+    // Those functions toggle User right attribute state and return new value
+    bool toggleSelect() { m_bSELECT_New = !m_bSELECT_New; return m_bSELECT_New; }
+    bool toggleUpdate() { m_bUPDATE_New = !m_bUPDATE_New; return m_bUPDATE_New; }
+    bool toggleInsert() { m_bINSERT_New = !m_bINSERT_New; return m_bINSERT_New; }
+    bool toggleDelete() { m_bDELETE_New = !m_bDELETE_New; return m_bDELETE_New; }
+    bool toggleCreateRule() { m_bRULE_New = !m_bRULE_New; return m_bRULE_New; }
+    bool toggleCreateReference() { m_bREFERENCES_New = !m_bREFERENCES_New; return m_bREFERENCES_New; }
+    bool toggleCreateTrigger() { m_bTRIGGER_New = !m_bTRIGGER_New; return m_bTRIGGER_New; }
+    bool toggleExecute() { m_bEXECUTE_New = !m_bEXECUTE_New; return m_bEXECUTE_New; }
+    bool toggleUse() { m_bUSAGE_New = !m_bUSAGE_New; return m_bUSAGE_New; }
+    bool toggleCreate() { m_bCREATE_New = !m_bCREATE_New; return m_bCREATE_New; }
+    bool toggleCreateTemp() { m_bTEMPORARY_New = !m_bTEMPORARY_New; return m_bTEMPORARY_New; }
+    
+    bool toggleGrantSelect() { m_bGrantSELECT_New = !m_bGrantSELECT_New; return m_bGrantSELECT_New; }
+    bool toggleGrantUpdate() { m_bGrantUPDATE_New = !m_bGrantUPDATE_New; return m_bGrantUPDATE_New; }
+    bool toggleGrantInsert() { m_bGrantINSERT_New = !m_bGrantINSERT_New; return m_bGrantINSERT_New; }
+    bool toggleGrantDelete() { m_bGrantDELETE_New = !m_bGrantDELETE_New; return m_bGrantDELETE_New; }
+    bool toggleGrantCreateRule() { m_bGrantRULE_New = !m_bGrantRULE_New; return m_bGrantRULE_New; }
+    bool toggleGrantCreateReference() { m_bGrantREFERENCES_New = !m_bGrantREFERENCES_New; return m_bGrantREFERENCES_New; }
+    bool toggleGrantCreateTrigger() { m_bGrantTRIGGER_New = !m_bGrantTRIGGER_New; return m_bGrantTRIGGER_New; }
+    bool toggleGrantExecute() { m_bGrantEXECUTE_New = !m_bGrantEXECUTE_New; return m_bGrantEXECUTE_New; }
+    bool toggleGrantUse() { m_bGrantUSAGE_New = !m_bGrantUSAGE_New; return m_bGrantUSAGE_New; }
+    bool toggleGrantCreate() { m_bGrantCREATE_New = !m_bGrantCREATE_New; return m_bGrantCREATE_New; }
+    bool toggleGrantCreateTemp() { m_bGrantTEMPORARY_New = !m_bGrantTEMPORARY_New; return m_bGrantTEMPORARY_New; }
+    
+    bool canPassGrantToOther() const; // false for GROUP or PUBLIC
+    
+protected:
+    void parsePrivileges(const QString &);
+    
+protected:
+    QString m_strGrantor; // Name of the user that granted the privilege
+    QString m_strGrantee; // Name of the user or group that the privilege was granted to
+       
+    bool m_bIsGroup; // it is group privilege ?
+    
+    //-- Values loaded from DB server -------------
+    // Privileges -------------------
+    bool m_bSELECT;     // r ("read")
+    bool m_bUPDATE;     // w ("write")
+    bool m_bINSERT;     // a ("append")
+    bool m_bDELETE;     // d
+    bool m_bRULE;       // R
+    bool m_bREFERENCES; // x
+    bool m_bTRIGGER;    // t
+    bool m_bEXECUTE;    // X
+    bool m_bUSAGE;      // U
+    bool m_bCREATE;     // C
+    bool m_bTEMPORARY;  // T 
+    
+    // GRANT Privileges ---------------
+    bool m_bGrantSELECT;     // r ("read")
+    bool m_bGrantUPDATE;     // w ("write")
+    bool m_bGrantINSERT;     // a ("append")
+    bool m_bGrantDELETE;     // d
+    bool m_bGrantRULE;       // R
+    bool m_bGrantREFERENCES; // x
+    bool m_bGrantTRIGGER;    // t
+    bool m_bGrantEXECUTE;    // X
+    bool m_bGrantUSAGE;      // U
+    bool m_bGrantCREATE;     // C
+    bool m_bGrantTEMPORARY;  // T 
+    
+    //-------------------------------------------
+    
+    //-- Values changed by user -----------------
+    // Privileges -------------------
+    bool m_bSELECT_New;     // r ("read")
+    bool m_bUPDATE_New;     // w ("write")
+    bool m_bINSERT_New;     // a ("append")
+    bool m_bDELETE_New;     // d
+    bool m_bRULE_New;       // R
+    bool m_bREFERENCES_New; // x
+    bool m_bTRIGGER_New;    // t
+    bool m_bEXECUTE_New;    // X
+    bool m_bUSAGE_New;      // U
+    bool m_bCREATE_New;     // C
+    bool m_bTEMPORARY_New;  // T 
+    
+    // GRANT Privileges ---------------
+    bool m_bGrantSELECT_New;     // r ("read")
+    bool m_bGrantUPDATE_New;     // w ("write")
+    bool m_bGrantINSERT_New;     // a ("append")
+    bool m_bGrantDELETE_New;     // d
+    bool m_bGrantRULE_New;       // R
+    bool m_bGrantREFERENCES_New; // x
+    bool m_bGrantTRIGGER_New;    // t
+    bool m_bGrantEXECUTE_New;    // X
+    bool m_bGrantUSAGE_New;      // U
+    bool m_bGrantCREATE_New;     // C
+    bool m_bGrantTEMPORARY_New;  // T 
+    
+    //-------------------------------------------
+    
+    QListViewItem *m_pListViewItem; // List View item that display this ACL item 
+};
+
+typedef QValueList<KPGAclItem> KPGAclItemList;
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,13 @@
+//
+// C++ Implementation: kpgactionsstates
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgactionsstates.h"
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgactionsstates.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,82 @@
+//
+// C++ Interface: kpgactionsstates
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGACTIONSSTATES_H
+#define KPGACTIONSSTATES_H
+
+// OBSOLETE, remove when KAtePert integration will be finished
+
+/*  
+typedef struct EditActions
+{
+    bool bEnableDeselect;
+};
+*/
+
+/*typedef struct PropertyPageActions
+{
+    bool bEnableExport;
+};*/
+
+/*typedef struct QueryResultActions
+{
+    bool bEnableOpen;
+    bool bEnableSave; 
+    bool bEnableSaveAs; 
+    bool bEnableExport;
+    
+    bool bEnableClearInpArea;
+    bool bEnableUndo;
+    bool bEnableRedo;
+    bool bEnableCutCopy;
+    bool bEnablePaste;
+        
+    bool bEnableRunQuery;
+    bool bEnableStopQuery;
+    bool bEnableFetchNext;
+    bool bEnableFetchAll;
+};*/
+
+/*typedef struct DatatableActions
+{
+    bool bEnableFirstRow;
+    bool bEnablePreviousRow;
+    bool bEnableNextRow;
+    bool bEnableLastRow;
+    bool bEnableEditCell;
+    bool bEnableClearCell;
+    bool bEnableInsertRow;
+    bool bEnableDeleteRow;
+    bool bEnableCommitChanges;
+    bool bEnableCancelChanges;
+    bool bEnableReloadData;
+    bool bEnableStopReload;
+    bool bEnableExport;
+};*/
+/*
+typedef struct ExecutorActions
+{
+    bool bEnableExecute;
+    bool bEnableStopExecute;
+    bool bEnableFetchNext;
+    bool bEnableFetchAll;
+    
+    bool bEnableExport;
+};
+
+typedef struct DebuggerActions
+{
+    bool bEnableDebuggerStart;
+    bool bEnableDebuggerStop;
+    bool bEnableStepOver;
+};*/
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,86 @@
+/***************************************************************************
+                          kpgbookmarkhandler.cpp  -  description
+                             -------------------
+    begin                : Ne led 25 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgbookmarkhandler.h"
+
+#include <qstring.h>
+
+#include <kbookmarkimporter.h>
+#include <kpopupmenu.h>
+#include <ksavefile.h>
+#include <kstandarddirs.h>
+#include <kdiroperator.h>
+#include <kaction.h>
+#include <kmessagebox.h>
+#include <kdebug.h>
+
+#include "kpgbookmarkmenu.h"
+
+KPGBookmarkHandler::KPGBookmarkHandler( QWidget* parent, KPopupMenu* kpopupmenu )
+    : QObject( parent ),
+      KBookmarkOwner(),
+      mParent( parent )
+{
+  KPopupMenu *menu = kpopupmenu;
+
+  if (!menu)
+    menu = new KPopupMenu( parent, "bookmark menu" );
+    
+  // Let's find our bookmark file
+  QString file = locate( "data", "kpogre/servers.xml" );
+  if ( file.isEmpty() )
+  {
+    file = locateLocal( "data", "kpogre/servers.xml" );
+  }
+
+  KBookmarkManager *manager = KBookmarkManager::managerForFile( file, false);
+  manager->setUpdate( true );
+  manager->setShowNSBookmarks( false );
+
+  m_pBookmarkMenu = new KPGBookmarkMenu( manager, this, menu, 0, true );
+
+  m_strNewBookmarkName = "";
+  m_strNewBookmarkUrl = "";
+}
+
+KPGBookmarkHandler::~KPGBookmarkHandler()
+{
+}
+
+void KPGBookmarkHandler::openBookmarkURL(const QString& url)
+{
+  kdDebug() << "Opening url: " << url << endl;
+  emit openUrl( url );
+}
+
+
+QString KPGBookmarkHandler::currentURL() const
+{
+    return m_strNewBookmarkUrl;
+}
+
+QString KPGBookmarkHandler::currentTitle() const
+{
+  return m_strNewBookmarkName;
+}
+
+void KPGBookmarkHandler::enableAddBookmarkMenu(bool bEnable)
+{
+   m_pBookmarkMenu->enableAddBookmarkMenu(bEnable);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkhandler.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,85 @@
+/***************************************************************************
+                          kpgbookmarkhandler.h  -  description
+                             -------------------
+    begin                : Ne led 25 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGBOOKMARKHANDLER_H
+#define KPGBOOKMARKHANDLER_H
+
+#include "kbookmarkmanager.h"
+
+#include <qobject.h>
+  
+class KPopupMenu;
+class KActionMenu;
+class KPGBookmarkMenu;
+
+/** 
+  * Bookmark handler, for list of registered servers
+  * 
+  * @author Lumir Vanek
+  */
+class KPGBookmarkHandler : public QObject, public KBookmarkOwner
+{
+	Q_OBJECT
+
+public:
+  KPGBookmarkHandler( QWidget* parent, KPopupMenu *kpopupmenu=0 );
+  ~KPGBookmarkHandler();
+  
+  void setNewBookmarkName(const QString strNewBookmarkName) { m_strNewBookmarkName = strNewBookmarkName; }
+  void setNewBookmarkUrl(const QString strNewBookmarkUrl) { m_strNewBookmarkUrl = strNewBookmarkUrl; }
+
+  /**
+   * This function is called when the user selects a bookmark.
+  */
+  virtual void openBookmarkURL( const QString& url );
+
+  /**
+   * This method is called whenever the user wants to add the
+   * current location to the bookmarks list. It is called
+   * after currentURL().
+   *
+   * @returns QString that will become the name of the bookmark.
+  */
+  virtual QString currentTitle() const;
+
+  /**
+   * This method is called whenever the user wants to add the
+   * current location to the bookmarks list.
+   * It is called before currentTitle().
+   *
+   * @returns QString that will become the URL of the bookmark.
+  */
+  virtual QString currentURL() const;
+  
+  // Enables / disables new bookmark menu
+  void enableAddBookmarkMenu(bool);
+
+  KPGBookmarkMenu *menu() const { return m_pBookmarkMenu; }
+
+signals:
+  void openUrl(const QString& url );
+
+protected:
+
+  QWidget *mParent;
+  KPGBookmarkMenu *m_pBookmarkMenu;
+
+  QString m_strNewBookmarkName;
+  QString m_strNewBookmarkUrl;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+/***************************************************************************
+                          kpgbookmarkmenu  -  description
+                             -------------------
+    begin                : Pá led 30 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgbookmarkmenu.h"
+
+#include <kaction.h>
+#include <kdebug.h>
+
+#include <qstring.h>
+
+
+KPGBookmarkMenu::KPGBookmarkMenu( KBookmarkManager* mgr, KBookmarkOwner * owner, KPopupMenu * parentMenu, KActionCollection * collec, bool root)
+ : KBookmarkMenu( mgr, owner, parentMenu, collec, root)
+{
+}
+
+
+KPGBookmarkMenu::~KPGBookmarkMenu()
+{
+}
+
+void KPGBookmarkMenu::enableAddBookmarkMenu(bool bEnable)
+{
+  
+  // enable / disable own actions
+  for(KAction *pAction = m_actions.first(); pAction; pAction = m_actions.next())
+   {
+     QString strName = pAction->name();
+     //kdDebug() << "text: " << strName << endl;
+     if(strName == "add_bookmark")
+       pAction->setEnabled(bEnable);
+   }
+   
+   // Iterate recursively into child menus 
+   /*QPtrListIterator<KBookmarkMenu> it( m_lstSubMenus ); 
+   for (; it.current(); ++it ) 
+   { 
+     KPGBookmarkMenu *menu = static_cast <KPGBookmarkMenu *> (it.current());
+       
+     menu->enableAddBookmarkMenu( bEnable ); 
+   }*/
+}
+
+
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarkmenu.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,45 @@
+/***************************************************************************
+                          kpgbookmarkmenu  -  description
+                             -------------------
+    begin                : Pá led 30 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGBOOKMARKMENU_H
+#define KPGBOOKMARKMENU_H
+
+#include <kbookmarkmenu.h>
+
+class KBookmarkManager;
+class KBookmarkOwner;
+class KPopupMenu;
+class KActionCollection;
+ 
+/**
+Bookmark menu
+
+ at author Lumir Vanek
+*/
+
+class KPGBookmarkMenu : public KBookmarkMenu
+{
+public:
+    KPGBookmarkMenu( KBookmarkManager*, KBookmarkOwner *, KPopupMenu *, KActionCollection *, bool);
+
+    ~KPGBookmarkMenu();
+    
+    // Enables / disables new bookmark menu
+    void enableAddBookmarkMenu(bool);
+
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+/***************************************************************************
+                          kpgbookmarksbutton.cpp  -  description
+                             -------------------
+    begin                : Ne led 25 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgbookmarksbutton.h"
+
+
+#include <kaction.h>
+#include <klocale.h>
+#include <kdebug.h>
+
+
+KPGBookmarksButton::KPGBookmarksButton(QWidget *parent)
+  : KToolBarButton("bookmark", 1000, parent)
+{
+  setTextLabel(i18n("Open your bookmarks"), true);
+  setPopupDelay(10); // 0.01 seconds press
+  setAcceptDrops(false);
+
+  KActionMenu *acmBookmarks = new KActionMenu(i18n("Bookmarks"), "bookmark", 0, "bookmarks");
+  acmBookmarks->setDelayed(false);
+
+  m_pBookmarkHandler = new KPGBookmarkHandler(this, acmBookmarks->popupMenu());
+  QObject::connect(m_pBookmarkHandler, SIGNAL(openUrl(const QString&)), this, SIGNAL(openUrl(const QString&)));
+  setPopup(acmBookmarks->popupMenu());
+}
+
+KPGBookmarksButton::~KPGBookmarksButton()
+{
+  delete m_pBookmarkHandler;
+}
+
+void KPGBookmarksButton::openPopup()
+{
+  if(m_pBookmarkHandler->currentTitle().length() == 0)
+    m_pBookmarkHandler->enableAddBookmarkMenu(false);
+  
+  popup()->exec(mapToGlobal(QPoint(0, height())));
+}
+
+void KPGBookmarksButton::enableAddBookmarkMenu(bool bEnable)
+{
+  m_pBookmarkHandler->enableAddBookmarkMenu(bEnable);
+}
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgbookmarksbutton.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,56 @@
+/***************************************************************************
+                          kpgbookmarksbutton.h  -  description
+                             -------------------
+    begin                : Ne led 25 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGBOOKMARKSBUTTON_H
+#define KPGBOOKMARKSBUTTON_H
+
+#include <qwidget.h>
+#include <qtoolbutton.h>
+
+#include "kpgbookmarkhandler.h"
+
+#include <ktoolbar.h>
+#include <ktoolbarbutton.h>
+#include <qpixmap.h>
+#include <kpopupmenu.h>
+
+/**Bookmarks button. Display registered servers
+  *@author Lumir Vanek
+  */
+
+class KPGBookmarksButton : public KToolBarButton 
+{
+   Q_OBJECT
+public: 
+	KPGBookmarksButton(QWidget *parent=0);
+	~KPGBookmarksButton();
+
+  void openPopup();
+  
+  // Return pointer to bookmark handler
+  KPGBookmarkHandler *bookmarkHandler() { return m_pBookmarkHandler; }
+  
+  void enableAddBookmarkMenu(bool);
+  
+private:
+  KPGBookmarkHandler *m_pBookmarkHandler;
+  
+signals:
+  void openUrl(const QString& url);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,173 @@
+/***************************************************************************
+                          kpgconfiguration.cpp  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgconfiguration.h"
+
+#include "QueryResult/kpgsqleditorsettings.h"
+#include "kpggeneralsettings.h"
+#include "DataTable/kpgdatatablesettings.h"
+#include "XmlSupport/kxetextviewsettings.h"
+
+#include <kglobal.h>
+#include <klocale.h>
+#include <kdialogbase.h>
+#include <kiconloader.h>
+
+#include <qlayout.h>
+
+
+KPGConfiguration::KPGConfiguration()
+ : QObject( 0, "KPoGre's configuration (KPGConfiguration)" ),
+   m_pDialog( 0 )
+{
+	// initialize all setting group objects
+  	m_pSettingsGeneral = new KPGGeneralSettings( this, "General settings" );
+	m_pSettingsSqlEditor = new KPGSqlEditorSettings( this, "SQL editor config. settings" );
+	m_pSettingsDataTable = new KPGDataTableSettings( this, "Datatable settings" );
+	//m_pSettingsKXETextView = new KXETextViewSettings( this, "XML Editor settings" );
+	// restore the settings from our config file
+	restore();
+}
+
+KPGConfiguration::~KPGConfiguration()
+{
+	if ( m_pDialog )
+		delete m_pDialog;
+}
+
+void KPGConfiguration::store( KConfig * pConfig ) const
+{
+	if ( ! pConfig )
+		pConfig = KGlobal::config();
+
+  	m_pSettingsGeneral->store(pConfig);  
+	m_pSettingsSqlEditor->store(pConfig);
+	m_pSettingsDataTable->store(pConfig);
+	// @deprecated m_pSettingsKXETextView->store(pConfig);
+}
+
+
+void KPGConfiguration::restore( KConfig * pConfig )
+{
+	if(!pConfig)
+		pConfig = KGlobal::config();
+
+  	m_pSettingsGeneral->restore(pConfig);  
+	m_pSettingsSqlEditor->restore(pConfig);
+	m_pSettingsDataTable->restore(pConfig);
+	// @deprecated m_pSettingsKXETextView->store(pConfig);
+}
+
+
+void KPGConfiguration::showDialog()
+{
+	if ( ! m_pDialog ) // if there is no dialog yet,
+	{
+		//--- Create one
+		m_pDialog = new KDialogBase( KDialogBase::IconList,        // dialog face
+		                             i18n("Configure KPoGre"), // caption
+		                             KDialogBase::Apply | KDialogBase::Ok | KDialogBase::Cancel | KDialogBase::Help,   // buttons
+		                             KDialogBase::Ok,              // default button
+		                             0,                            // parent
+		                             "configuration dialog",       // name
+		                             false,                        // not modal
+		                             true );                       // show separator
+		connect( m_pDialog, SIGNAL(applyClicked()), this, SLOT(slotDlgApplied()) );
+		connect( m_pDialog, SIGNAL(okClicked()), this, SLOT(slotDlgApplied()) );
+
+		// and add the pages
+		QFrame * pFrame;
+		QWidget * pPage;
+		QVBoxLayout * pLayout;
+
+		//--- General editor properties page
+		pFrame = m_pDialog->addPage( m_pSettingsGeneral->dialogPageName(),
+		                             m_pSettingsGeneral->dialogPageHeader(),
+		                             KGlobal::instance()->iconLoader()->loadIcon( m_pSettingsGeneral->dialogPageIcon(), KIcon::NoGroup, KIcon::SizeMedium ) );
+                                 
+		pLayout = new QVBoxLayout( pFrame );
+		pPage = m_pSettingsGeneral->dialogPage( pFrame );
+		pLayout->addWidget( pPage );
+		connect( m_pSettingsGeneral, SIGNAL(sigDialogPageChanged()), this, SLOT(slotDlgChanged()) );
+									
+		//--- SQL editor properties page
+		pFrame = m_pDialog->addPage( m_pSettingsSqlEditor->dialogPageName(),
+									m_pSettingsSqlEditor->dialogPageHeader(),
+									KGlobal::instance()->iconLoader()->loadIcon( m_pSettingsSqlEditor->dialogPageIcon(), KIcon::NoGroup, KIcon::SizeMedium ) );
+									
+                                 
+		pLayout = new QVBoxLayout( pFrame );
+		pPage = m_pSettingsSqlEditor->dialogPage( pFrame );
+		pLayout->addWidget( pPage );
+		connect( m_pSettingsSqlEditor, SIGNAL(sigDialogPageChanged()), this, SLOT(slotDlgChanged()) );
+		
+		//--- Datatable editor properties page
+		pFrame = m_pDialog->addPage( m_pSettingsDataTable->dialogPageName(),
+		                             m_pSettingsDataTable->dialogPageHeader(),
+		                             KGlobal::instance()->iconLoader()->loadIcon( m_pSettingsDataTable->dialogPageIcon(), KIcon::NoGroup, KIcon::SizeMedium ) );
+                                 
+		pLayout = new QVBoxLayout( pFrame );
+		pPage = m_pSettingsDataTable->dialogPage( pFrame );
+		pLayout->addWidget( pPage );
+		connect( m_pSettingsDataTable, SIGNAL(sigDialogPageChanged()), this, SLOT(slotDlgChanged()) );
+		
+		//--- XML editor properties page
+		/* @deprecated
+		pFrame = m_pDialog->addPage( m_pSettingsKXETextView->dialogPageName(),
+		                             m_pSettingsKXETextView->dialogPageHeader(),
+		                             KGlobal::instance()->iconLoader()->loadIcon( m_pSettingsKXETextView->dialogPageIcon(), KIcon::NoGroup, KIcon::SizeMedium ) );
+                                 
+		pLayout = new QVBoxLayout( pFrame );
+		pPage = m_pSettingsKXETextView->dialogPage( pFrame );
+		pLayout->addWidget( pPage );
+		connect( m_pSettingsKXETextView, SIGNAL(sigDialogPageChanged()), this, SLOT(slotDlgChanged()) ); */
+	}
+
+	if ( m_pDialog->isVisible() ) // If the dialog is visible (probably opened by
+	{                             // another part), it has to be hidden to make
+		m_pDialog->hide();         // it appear on the current desktop by the later
+	}                             // call of show.
+	else                                      // If the dialog is not visible, it's
+	{                                         // Apply- and Ok-buttons have to be
+		m_pDialog->enableButtonApply( false ); // disabled (until something is changed
+		m_pDialog->enableButtonOK( false );    // within the dialog).
+	}
+
+	m_pDialog->show();   // show our configuration dialog
+}
+
+void KPGConfiguration::slotDlgApplied()
+{
+	// reset configuration dialog
+	m_pDialog->enableButtonApply( false );
+	m_pDialog->enableButtonOK( false );
+
+	// apply the page's data to the corresponding setting groups
+	m_pSettingsGeneral->apply();
+  	m_pSettingsSqlEditor->apply();
+  	m_pSettingsDataTable->apply();
+  	// @deprecated m_pSettingsKXETextView->apply();
+	
+	// store the applied data to our config file
+	store();
+}
+
+void KPGConfiguration::slotDlgChanged()
+{
+	m_pDialog->enableButtonApply( true );
+	m_pDialog->enableButtonOK( true );
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconfiguration.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,126 @@
+/***************************************************************************
+                          kpgconfiguration.h  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGCONFIGURATION_H
+#define KPGCONFIGURATION_H
+
+#include <qwidget.h>
+#include <qobject.h>
+
+class KPGSqlEditorSettings;
+class KPGGeneralSettings;
+class KPGDataTableSettings;
+class KXETextViewSettings;
+
+class KConfig;
+class KDialogBase;
+
+/**
+  This class is a container for KXMLEditor's configuration data.
+ * It consists of objects for the different groups of settings
+ * (objects of child classes of KXESettings) and manages the configuration
+ * dialog (@ref m_pDialog). This dialog consists of one page per settings
+ * group, that are initialized by them (using their dialogPage* functions).
+ *
+ * @short container for KXMLEditor's configuration data
+ 
+  *@author Lumir Vanek
+
+Note: Borrowed from KXMLEditor - Olaf Hartig's KXEConfiguration class
+
+  */
+
+class KPGConfiguration : public QObject
+{
+	Q_OBJECT
+
+public:
+
+	/**
+	 * The constructor initializes the configuration setting groups
+	 * (objects of KPGSettings' child classes) and restores the
+	 * configuration data from the config file by calling @ref restore.
+	 */
+	KPGConfiguration();
+	~KPGConfiguration();
+
+	/**
+	 * Stores all configuration to the given @ref KConfig object by
+	 * using @ref KXESettings's @ref store function.
+	 * If no @ref KConfig object is given, @ref KGlobal::config is
+	 * used.
+	 */
+	void store( KConfig * pConfig = 0 ) const;
+		
+	/**
+	 * Restores all configuration from the given @ref KConfig object
+	 * by using @ref KXESettings's @ref restore function.
+	 * If no @ref KConfig object is given, @ref KGlobal::config is
+	 * used.
+	 */
+	void restore( KConfig * pConfig = 0 );
+		
+	/**
+	 * Shows the configuration dialog.
+	 * If there is no one yet, it is created by.
+	 */
+	void showDialog();
+
+	// The following functions return pointers to the configuration setting
+	// groups (objects of KXESettings' child classes), that can be used to
+	// access their data (or to connect to their signals).
+
+	KPGSqlEditorSettings * const sqleditor() const { return m_pSettingsSqlEditor; }
+    KPGGeneralSettings * const general() const { return m_pSettingsGeneral; }
+    KPGDataTableSettings * const datatable() const { return m_pSettingsDataTable; }
+	//KXETextViewSettings * const kxetextview() const { return m_pSettingsKXETextView; }
+	
+protected slots:
+
+	/**
+	 * Applies the new data in the dialog's pages to our setting groups
+	 * by using @ref KPGSettings's @ref apply function and stores
+	 * all settings with @ref store.
+	 * After applying, the dialog's state is reseted (disabled Apply- and
+	 * OK-buttons).
+	 */
+		
+	void slotDlgApplied();
+	/**
+	 * Enables the configuration dialog's Apply- and OK-button.
+	 */
+	void slotDlgChanged();
+
+protected:
+
+	// The following members are the configuration setting
+	// groups (objects of KPGSettings' child classes).
+
+	KPGSqlEditorSettings * m_pSettingsSqlEditor;
+    KPGGeneralSettings * m_pSettingsGeneral;
+    KPGDataTableSettings * m_pSettingsDataTable;
+    //KXETextViewSettings * m_pSettingsKXETextView;
+		
+	/**
+	 * This is a pointer to our configuration dialog.
+	 * The dialog itself is created on demand in @ref showDialog.
+	 * It consists of one page per settings group.
+	 */
+	KDialogBase * m_pDialog;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,71 @@
+/***************************************************************************
+                          kpgconnectdialog.cpp  -  description
+                             -------------------
+    begin                : So led 10 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgconnectdialog.h"
+
+#include <qpushbutton.h>
+#include <klineedit.h>
+
+KPGConnectDialog::KPGConnectDialog(QWidget *parent, const char *name )
+  : KPGConnectDialogBase(parent, name)
+{
+ 	connect( m_pLineEditHostName, SIGNAL(textChanged(const QString&)), this, SLOT(slotContextChanged(const QString&)) );
+	connect( m_pLineEditUserName, SIGNAL(textChanged(const QString&)), this, SLOT(slotContextChanged(const QString&)) );
+	connect( m_pLineEditPassword, SIGNAL(textChanged(const QString&)), this, SLOT(slotContextChanged(const QString&)) );
+}
+
+KPGConnectDialog::~KPGConnectDialog()
+{
+}
+
+void KPGConnectDialog::toggleAcceptButton()
+{
+  if ( m_pLineEditHostName->text().isEmpty() ||
+       m_pLineEditUserName->text().isEmpty() ||
+       //m_pLineEditPassword->text().isEmpty() ||
+       m_pLineEditPort->text().isEmpty()
+     )
+    m_pButtonOk->setEnabled(false);
+  else
+    m_pButtonOk->setEnabled(true);
+}
+
+void KPGConnectDialog::slotContextChanged( const QString & /*strText*/ )
+{
+  toggleAcceptButton();
+}
+
+void KPGConnectDialog::accept()
+{
+  m_strHostName = m_pLineEditHostName->text();
+  m_strPortNumber = m_pLineEditPort->text();
+  m_strDatabaseName = m_pLineEditDatabase->text();
+  m_strUserName = m_pLineEditUserName->text();
+  m_strPassword = m_pLineEditPassword->text();
+  
+  
+  KPGConnectDialogBase::accept();
+}
+
+void KPGConnectDialog::setGui()
+{
+  m_pLineEditHostName->setText(m_strHostName);
+  m_pLineEditPort->setText(m_strPortNumber);
+  m_pLineEditUserName->setText(m_strUserName);
+  m_pLineEditDatabase->setText(m_strDatabaseName);
+  m_pLineEditPassword->setFocus();
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,73 @@
+/***************************************************************************
+                          kpgconnectdialog.h  -  description
+                             -------------------
+    begin                : So led 10 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGCONNECTDIALOG_H
+#define KPGCONNECTDIALOG_H
+
+#include <qwidget.h>
+#include <qstring.h>
+
+#include <kpgconnectdialogbase.h>
+
+/**Dialog for connecting to database
+  *@author Lumir Vanek
+  */
+
+// forward references
+class QString;
+
+class KPGConnectDialog : public KPGConnectDialogBase
+{
+   Q_OBJECT
+public: 
+	KPGConnectDialog(QWidget *parent=0, const char *name=0);
+	~KPGConnectDialog();
+
+  QString		hostName() const { return m_strHostName; }
+  QString		portNumber() const { return m_strPortNumber; }
+  QString		databaseName() const { return m_strDatabaseName; }
+  QString		userName() const { return m_strUserName; }
+	QString		password() const { return m_strPassword; }
+  
+  
+  void setHostName(const QString strHostName) { m_strHostName = strHostName; }
+  void setPortNumber(const QString strPortNumber) { m_strPortNumber = strPortNumber; }
+  void setUserName(const QString strUserName) { m_strUserName = strUserName; }
+  void setDatabaseName(const QString strDatabaseName) { m_strDatabaseName = strDatabaseName; }
+  
+  void setGui();
+      
+protected:
+  void toggleAcceptButton();
+
+  // fired, when user press OK button
+  virtual void accept();
+
+protected slots:
+		void slotContextChanged( const QString & );
+
+    
+protected:
+
+  QString		m_strHostName;
+  QString		m_strPortNumber;
+  QString   m_strDatabaseName;
+  QString		m_strUserName;
+	QString		m_strPassword;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,173 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpgconnectdialogbase.ui'
+**
+** Created: Út dub 1 13:07:11 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgconnectdialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qlabel.h>
+#include <klineedit.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "klineedit.h"
+
+/*
+ *  Constructs a KPGConnectDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGConnectDialogBase::KPGConnectDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGConnectDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KPGConnectDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGConnectDialogBaseLayout"); 
+    spacer5 = new QSpacerItem( 20, 16, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGConnectDialogBaseLayout->addItem( spacer5, 5, 1 );
+    spacer6 = new QSpacerItem( 111, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    KPGConnectDialogBaseLayout->addItem( spacer6, 1, 1 );
+
+    layout9 = new QVBoxLayout( 0, 0, 6, "layout9"); 
+
+    textLabel3 = new QLabel( this, "textLabel3" );
+    layout9->addWidget( textLabel3 );
+
+    m_pLineEditHostName = new KLineEdit( this, "m_pLineEditHostName" );
+    layout9->addWidget( m_pLineEditHostName );
+
+    KPGConnectDialogBaseLayout->addMultiCellLayout( layout9, 0, 0, 0, 1 );
+
+    layout11 = new QVBoxLayout( 0, 0, 6, "layout11"); 
+
+    textLabel4 = new QLabel( this, "textLabel4" );
+    textLabel4->setTextFormat( QLabel::PlainText );
+    layout11->addWidget( textLabel4 );
+
+    m_pLineEditPort = new KLineEdit( this, "m_pLineEditPort" );
+    layout11->addWidget( m_pLineEditPort );
+
+    KPGConnectDialogBaseLayout->addLayout( layout11, 1, 0 );
+
+    layout12 = new QVBoxLayout( 0, 0, 6, "layout12"); 
+
+    textLabel5 = new QLabel( this, "textLabel5" );
+    layout12->addWidget( textLabel5 );
+
+    m_pLineEditDatabase = new KLineEdit( this, "m_pLineEditDatabase" );
+    m_pLineEditDatabase->setAcceptDrops( FALSE );
+    layout12->addWidget( m_pLineEditDatabase );
+
+    KPGConnectDialogBaseLayout->addMultiCellLayout( layout12, 2, 2, 0, 1 );
+
+    layout14 = new QVBoxLayout( 0, 0, 6, "layout14"); 
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+    layout14->addWidget( textLabel2 );
+
+    m_pLineEditPassword = new KLineEdit( this, "m_pLineEditPassword" );
+    m_pLineEditPassword->setEchoMode( KLineEdit::Password );
+    layout14->addWidget( m_pLineEditPassword );
+
+    KPGConnectDialogBaseLayout->addMultiCellLayout( layout14, 4, 4, 0, 1 );
+
+    layout13 = new QVBoxLayout( 0, 0, 6, "layout13"); 
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+    textLabel1->setTextFormat( QLabel::PlainText );
+    layout13->addWidget( textLabel1 );
+
+    m_pLineEditUserName = new KLineEdit( this, "m_pLineEditUserName" );
+    layout13->addWidget( m_pLineEditUserName );
+
+    KPGConnectDialogBaseLayout->addMultiCellLayout( layout13, 3, 3, 0, 1 );
+
+    Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1"); 
+    Horizontal_Spacing2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    Layout1->addItem( Horizontal_Spacing2 );
+
+    m_pButtonOk = new QPushButton( this, "m_pButtonOk" );
+    m_pButtonOk->setAutoDefault( TRUE );
+    m_pButtonOk->setDefault( TRUE );
+    Layout1->addWidget( m_pButtonOk );
+
+    m_pButtonCancel = new QPushButton( this, "m_pButtonCancel" );
+    m_pButtonCancel->setAutoDefault( TRUE );
+    Layout1->addWidget( m_pButtonCancel );
+
+    KPGConnectDialogBaseLayout->addMultiCellLayout( Layout1, 6, 6, 0, 1 );
+    languageChange();
+    resize( QSize(196, 304).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pButtonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( m_pButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+    // tab order
+    setTabOrder( m_pLineEditHostName, m_pLineEditPort );
+    setTabOrder( m_pLineEditPort, m_pLineEditDatabase );
+    setTabOrder( m_pLineEditDatabase, m_pLineEditUserName );
+    setTabOrder( m_pLineEditUserName, m_pLineEditPassword );
+    setTabOrder( m_pLineEditPassword, m_pButtonOk );
+    setTabOrder( m_pButtonOk, m_pButtonCancel );
+
+    // buddies
+    textLabel3->setBuddy( m_pLineEditHostName );
+    textLabel4->setBuddy( m_pLineEditPort );
+    textLabel5->setBuddy( m_pLineEditDatabase );
+    textLabel2->setBuddy( m_pLineEditPassword );
+    textLabel1->setBuddy( m_pLineEditUserName );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGConnectDialogBase::~KPGConnectDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGConnectDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Connect to server" ) );
+    textLabel3->setText( tr2i18n( "&Host name:" ) );
+    m_pLineEditHostName->setText( tr2i18n( "localhost" ) );
+    QToolTip::add( m_pLineEditHostName, tr2i18n( "Host name or IP for DB server" ) );
+    QWhatsThis::add( m_pLineEditHostName, tr2i18n( "<b>Host name</b><br/>Host name or IP for DB server" ) );
+    textLabel4->setText( tr2i18n( "&Port:" ) );
+    m_pLineEditPort->setText( tr2i18n( "5432" ) );
+    QToolTip::add( m_pLineEditPort, tr2i18n( "TCP Port number" ) );
+    QWhatsThis::add( m_pLineEditPort, tr2i18n( "<b>Port</b><br/>TCP Port number" ) );
+    textLabel5->setText( tr2i18n( "&Database:" ) );
+    QToolTip::add( m_pLineEditDatabase, tr2i18n( "Database name" ) );
+    QWhatsThis::add( m_pLineEditDatabase, tr2i18n( "<b>Database Name</b><br/>Name of initial database, used after connection. May be void, if there is exists database with username" ) );
+    textLabel2->setText( tr2i18n( "&Password:" ) );
+    m_pLineEditPassword->setText( QString::null );
+    QToolTip::add( m_pLineEditPassword, tr2i18n( "User password for connect to database" ) );
+    QWhatsThis::add( m_pLineEditPassword, tr2i18n( "<b>Password</b><br/>User password for connect to database" ) );
+    textLabel1->setText( tr2i18n( "&User Name:" ) );
+    QToolTip::add( m_pLineEditUserName, tr2i18n( "User name for connect to database" ) );
+    QWhatsThis::add( m_pLineEditUserName, tr2i18n( "<b>User Name</b><br/>User name for connect to database" ) );
+    m_pButtonOk->setText( tr2i18n( "&OK" ) );
+    m_pButtonOk->setAccel( QKeySequence( QString::null ) );
+    m_pButtonCancel->setText( tr2i18n( "&Cancel" ) );
+    m_pButtonCancel->setAccel( QKeySequence( QString::null ) );
+}
+
+#include "kpgconnectdialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,62 @@
+/****************************************************************************
+** Form interface generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpgconnectdialogbase.ui'
+**
+** Created: Út dub 1 13:07:11 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef KPGCONNECTDIALOGBASE_H
+#define KPGCONNECTDIALOGBASE_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class QLabel;
+class KLineEdit;
+class QPushButton;
+
+class KPGConnectDialogBase : public QDialog
+{
+    Q_OBJECT
+
+public:
+    KPGConnectDialogBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~KPGConnectDialogBase();
+
+    QLabel* textLabel3;
+    KLineEdit* m_pLineEditHostName;
+    QLabel* textLabel4;
+    KLineEdit* m_pLineEditPort;
+    QLabel* textLabel5;
+    KLineEdit* m_pLineEditDatabase;
+    QLabel* textLabel2;
+    KLineEdit* m_pLineEditPassword;
+    QLabel* textLabel1;
+    KLineEdit* m_pLineEditUserName;
+    QPushButton* m_pButtonOk;
+    QPushButton* m_pButtonCancel;
+
+protected:
+    QGridLayout* KPGConnectDialogBaseLayout;
+    QSpacerItem* spacer5;
+    QSpacerItem* spacer6;
+    QVBoxLayout* layout9;
+    QVBoxLayout* layout11;
+    QVBoxLayout* layout12;
+    QVBoxLayout* layout14;
+    QVBoxLayout* layout13;
+    QHBoxLayout* Layout1;
+    QSpacerItem* Horizontal_Spacing2;
+
+protected slots:
+    virtual void languageChange();
+
+};
+
+#endif // KPGCONNECTDIALOGBASE_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectdialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,339 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGConnectDialogBase</class>
+<comment>Dialog for connecting to database</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGConnectDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>196</width>
+            <height>304</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Connect to server</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="5" column="1">
+            <property name="name">
+                <cstring>spacer5</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>16</height>
+                </size>
+            </property>
+        </spacer>
+        <spacer row="1" column="1">
+            <property name="name">
+                <cstring>spacer6</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Horizontal</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>111</width>
+                    <height>20</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout9</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel3</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Host name:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditHostName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditHostName</cstring>
+                    </property>
+                    <property name="text">
+                        <string>localhost</string>
+                    </property>
+                    <property name="toolTip" stdset="0">
+                        <string>Host name or IP for DB server</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Host name&lt;/b&gt;&lt;br/&gt;Host name or IP for DB server</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="1" column="0">
+            <property name="name">
+                <cstring>layout11</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel4</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Port:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditPort</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditPort</cstring>
+                    </property>
+                    <property name="text">
+                        <string>5432</string>
+                    </property>
+                    <property name="toolTip" stdset="0">
+                        <string>TCP Port number</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Port&lt;/b&gt;&lt;br/&gt;TCP Port number</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout12</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel5</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Database:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditDatabase</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditDatabase</cstring>
+                    </property>
+                    <property name="acceptDrops">
+                        <bool>false</bool>
+                    </property>
+                    <property name="toolTip" stdset="0">
+                        <string>Database name</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Database Name&lt;/b&gt;&lt;br/&gt;Name of initial database, used after connection. May be void, if there is exists database with username</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout14</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel2</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Password:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditPassword</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditPassword</cstring>
+                    </property>
+                    <property name="text">
+                        <string></string>
+                    </property>
+                    <property name="echoMode">
+                        <enum>Password</enum>
+                    </property>
+                    <property name="toolTip" stdset="0">
+                        <string>User password for connect to database</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Password&lt;/b&gt;&lt;br/&gt;User password for connect to database</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout13</cstring>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>textLabel1</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;User Name:</string>
+                    </property>
+                    <property name="textFormat">
+                        <enum>PlainText</enum>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pLineEditUserName</cstring>
+                    </property>
+                </widget>
+                <widget class="KLineEdit">
+                    <property name="name">
+                        <cstring>m_pLineEditUserName</cstring>
+                    </property>
+                    <property name="toolTip" stdset="0">
+                        <string>User name for connect to database</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;User Name&lt;/b&gt;&lt;br/&gt;User name for connect to database</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <widget class="QLayoutWidget" row="6" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>Layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>Horizontal Spacing2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pButtonOk</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;OK</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                    <property name="default">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>m_pButtonCancel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Cancel</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>m_pButtonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGConnectDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>m_pButtonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGConnectDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pLineEditHostName</tabstop>
+    <tabstop>m_pLineEditPort</tabstop>
+    <tabstop>m_pLineEditDatabase</tabstop>
+    <tabstop>m_pLineEditUserName</tabstop>
+    <tabstop>m_pLineEditPassword</tabstop>
+    <tabstop>m_pButtonOk</tabstop>
+    <tabstop>m_pButtonCancel</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+    <includehint>klineedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,109 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgconnectioninthread.h"
+
+// include files for Qt
+#include <qdatetime.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <kapplication.h>
+
+#include "DbObjects/kpgtreeitem.h"
+
+
+KPGConnectionInThread::KPGConnectionInThread()
+ : QThread()
+{
+    m_pConnection = 0;
+    m_OperationType = eRunSql; // default
+}
+
+KPGConnectionInThread::~KPGConnectionInThread()
+{
+    if(m_pConnection)
+    {
+        if(m_pConnection->is_open() == true)
+        m_pConnection->disconnect();
+    
+        delete m_pConnection;
+  	}
+}
+
+// Try connect to PostgreSQL server by given connection strong. Throw exception, if fails
+void KPGConnectionInThread::connectToServer(const QString &strConnectString)
+{
+    m_pConnection = new KPGConnection(strConnectString);
+    
+        
+    if(m_pConnection->is_open() == false)
+    {
+        kdError() << "Failed to open connection" << endl;
+        throw PGSTD::runtime_error(i18n("Failed to open connection"));
+    }
+}
+
+// Close connection
+void KPGConnectionInThread::disconnectFromServer()
+{
+    if(m_pConnection)
+    {
+        if(m_pConnection->is_open() == true)
+        m_pConnection->disconnect();
+    
+        delete m_pConnection;
+        m_pConnection = 0;
+    }
+}
+
+// Call it when connection thread is terminated
+void KPGConnectionInThread::leaveConnection()
+{
+    if(m_pConnection)
+    {
+        m_pConnection = 0;
+    }
+}
+
+void KPGConnectionInThread::run()
+{
+	KPGQueryResultEvent *pQueryResultEvent = new KPGQueryResultEvent(m_pConnection);
+	// run query on selected database
+	try
+	{
+		QTime t;
+		t.start();
+		
+		if(m_OperationType == eRunSql)
+		{
+			*m_pPqxxResult = m_pConnection->runQuery(m_strSQL, m_eTransType);
+		}
+		else if(m_OperationType == eRunPreparedStatement)
+		{
+			*m_pPqxxResult = m_pConnection->runPreparedStatement(m_stdstrPrepStmtName, m_listArgumentsWithValues, m_eTransType);
+		}
+		else
+		{
+			kdError() << k_funcinfo <<  "Unknown operation !" << endl;
+		}
+		
+		pQueryResultEvent->setExecutionMiliseconds(t.elapsed());
+	}
+	catch(const std::exception &e)
+	{
+		pQueryResultEvent->setError(e.what());
+	} 
+	
+	QApplication::postEvent(m_pEventReceiver, pQueryResultEvent);
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgconnectioninthread.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,127 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGCONNECTIONINTHREAD_H
+#define KPGCONNECTIONINTHREAD_H
+
+// include files for Qt
+#include <qstringlist.h>
+#include <qthread.h>
+#include <qevent.h>
+
+#include "DbObjects/kpgconnection.h"
+
+/**
+Event, that contain SQL operation result
+
+ at author Lumir Vanek
+*/
+
+class KPGQueryResultEvent : public QCustomEvent
+{
+public:
+    KPGQueryResultEvent(KPGConnection * pConnection)
+      : QCustomEvent( 65432 )
+    {
+        m_pConnection = pConnection;
+        m_iExecutionMiliseconds = 0;
+    }
+     
+    void setError(const QString & strError) { m_strError = strError; }
+    const QString & error() const { return m_strError; }
+    KPGConnection * connection() { return m_pConnection; }
+    
+    void setExecutionMiliseconds(int iExecutionMiliseconds) { m_iExecutionMiliseconds = iExecutionMiliseconds; }
+    int executionMiliseconds() const { return m_iExecutionMiliseconds; }
+
+private:
+    QString m_strError;
+    KPGConnection *m_pConnection;
+    int m_iExecutionMiliseconds;
+};
+
+/**
+Thread, that run connection to PostgreSQL server
+
+ at author Lumir Vanek
+*/
+
+class KPGConnectionInThread : public QThread
+{
+public:
+    KPGConnectionInThread();
+    ~KPGConnectionInThread();
+    
+    // Types of operation, that this class can do 
+	enum eOperationType { eRunSql, eRunPreparedStatement };
+    
+    // Set type of operation
+    void setOperationType(eOperationType operationType) { m_OperationType = operationType; }
+    
+    // Try connect to PostgreSQL server by given connection strong. Throw exception, if fails
+    void connectToServer(const QString &);
+    
+    // Close connection
+    void disconnectFromServer();
+    
+    // Call it when connection thread is terminated
+    void leaveConnection();
+    
+    // Return connection
+    KPGConnection * connection() const { return m_pConnection; }
+
+    void setSQL(const QString &strSQL, KPGConnection::ETransType eTransType) 
+    { 
+    	m_strSQL = strSQL; 
+    	m_eTransType = eTransType; 
+    }
+    
+    // Set name of prepared statement
+    void setPrepStatementName(const std::string &stdstrPrepStmtName, KPGConnection::ETransType eTransType)
+    { 
+    	m_stdstrPrepStmtName = stdstrPrepStmtName; 
+    	m_eTransType = eTransType;
+    } 
+    
+    // Get name of prepared statement
+    const std::string & prepStatementName() const { return m_stdstrPrepStmtName; }
+    
+    // Set arguments for prepared statement
+    void setPrepStatementArgumentValues(const ListArgumentsWithValues & listArgumentsWithValues)
+    { 
+    	m_listArgumentsWithValues = listArgumentsWithValues;
+    } 
+    
+    // Receiver of event, it contain pqxx::result that is set when event fired
+    void setEventReceiver(QObject * pEventReceiver, pqxx::result *pPqxxResult) 
+    { 
+    	m_pEventReceiver = pEventReceiver; 
+    	m_pPqxxResult = pPqxxResult;
+    }
+        
+protected:
+    virtual void run();
+    
+protected:
+	eOperationType m_OperationType;
+	KPGConnection *m_pConnection;
+	pqxx::result *m_pPqxxResult;
+	
+	QString m_strSQL; // SQL that is used for perform action
+	
+	ListArgumentsWithValues m_listArgumentsWithValues;
+	std::string m_stdstrPrepStmtName; // Name of prepared statement to execute
+	
+	KPGConnection::ETransType m_eTransType;
+	QObject *m_pEventReceiver; // event receiver
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgdatatable.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgdatatable.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgdatatable.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,83 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<MenuBar>
+	
+	<Menu name="edit"><text>&amp;Edit</text>
+		<Action name="edit_find"/>
+		<Action name="edit_find_next"/>
+	</Menu>
+	
+	<Menu name="datatable"><text>D&amp;atatable</text>
+		
+		<Action name="datatable_first_row"/>
+		<Action name="datatable_previous_row"/>
+		<Action name="datatable_next_row"/>
+		<Action name="datatable_last_row"/>
+		<Separator/>
+		<Action name="datatable_edit_cell"/>
+		<Action name="datatable_clear_cell"/>
+		<Action name="datatable_insert_row"/>
+		<Action name="datatable_delete_row"/>
+		<Separator/>
+		<Action name="datatable_commit_changes"/>
+		<Action name="datatable_cancel_changes"/>
+		<Separator/>
+		<Action name="datatable_reload_data"/>
+		<Action name="datatable_stop_reload"/>
+		
+	</Menu>
+</MenuBar>	
+
+<Menu name="popupDataTable">
+	<Title>Datatable</Title>
+	<Action name="copy_cell"/>
+	<Action name="copy_row"/>
+	<Action name="copy_table_csv"/>
+	<Action name="copy_table_xml"/>
+	<Separator/>
+	<Action name="datatable_edit_cell"/>
+	<Action name="datatable_clear_cell"/>
+	<Action name="datatable_insert_row"/>
+	<Action name="datatable_delete_row"/>
+	<Separator/>
+	<Action name="datatable_commit_changes"/>
+	<Action name="datatable_cancel_changes"/>
+	<Separator/>
+	<Action name="datatable_reload_data"/>
+	<Action name="datatable_stop_reload"/>
+</Menu>
+
+<Menu name="popupDataTableText">
+	<Title>Text</Title>
+	<Action name="datatable_load_lob"/>
+	<Action name="datatable_save_lob"/>
+	<Separator/>
+	<Action name="datatable_edit_lob_editor"/>
+</Menu>
+
+<Menu name="popupDataTableBytea">
+	<Title>Binary data</Title>
+	<Action name="datatable_load_lob"/>
+	<Action name="datatable_save_lob"/>
+</Menu>
+
+<ToolBar name="dataTableToolBar"><text>Datatable Toolbar</text>
+	<Action name="datatable_first_row"/>
+	<Action name="datatable_previous_row"/>
+	<Action name="datatable_next_row"/>
+	<Action name="datatable_last_row"/>
+	<Separator/>
+	<Action name="datatable_edit_cell"/>
+	<Action name="datatable_clear_cell"/>
+	<Action name="datatable_insert_row"/>
+	<Action name="datatable_delete_row"/>
+	<Separator/>
+	<Action name="datatable_commit_changes"/>
+	<Action name="datatable_cancel_changes"/>
+	<Separator/>
+	<Action name="datatable_reload_data"/>
+	<Action name="datatable_stop_reload"/>
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,60 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgdcoptalkthread.h"
+
+#include <dcopclient.h>
+#include <kdebug.h>
+
+KPGDcopTalkThread::KPGDcopTalkThread()
+ : QThread()
+{
+	m_bSessionClosed = false;
+}
+
+
+KPGDcopTalkThread::~KPGDcopTalkThread()
+{
+}
+
+void KPGDcopTalkThread::setDcopClient(DCOPClient *pDcopClient)
+{
+  	m_pDcopClient = pDcopClient;
+}
+
+void KPGDcopTalkThread::setCommand(const QString & strCommand)
+{
+  	m_strCommand = strCommand;
+}
+
+void KPGDcopTalkThread::run()
+{ 
+	kdDebug() << "DCOP Id:" << m_pDcopClient->appId() << endl; 
+  
+  	if(!m_bSessionClosed)
+  	{
+		 msleep(1000); // wait for Console part creation command available
+		 
+  		// close session to make sendSession DCOP 
+  		bool bClose = m_pDcopClient->send(m_pDcopClient->appId(), "session-1", "closeSession()", "");
+  		if(!bClose)
+    		kdDebug() << "closeSession failed " << endl;
+    
+    	m_bSessionClosed = true;
+    }
+  	
+  	msleep(1000); // wait for previous operation
+  	
+  	// send command to Console part
+	bool bSend = m_pDcopClient->send(m_pDcopClient->appId(), "session-1", "sendSession(QString)", m_strCommand); 
+	if(!bSend)
+		kdDebug() << "sendSession failed " << endl;
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgdcoptalkthread.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,46 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGDCOPTALKTHREAD_H
+#define KPGDCOPTALKTHREAD_H
+
+#include <qthread.h>
+
+class DCOPClient;
+
+/**
+Thread that talk with Console part via DCOP
+
+ at author Lumir Vanek
+*/
+
+class KPGDcopTalkThread : public QThread
+{
+public:
+    KPGDcopTalkThread();
+    ~KPGDcopTalkThread();
+
+    void setDcopClient(DCOPClient *);
+    void setCommand(const QString &);
+    
+protected:
+    virtual void run();
+    
+protected:  
+    DCOPClient *m_pDcopClient;
+    QString m_strCommand; // Command for Console
+    bool m_bSessionClosed;
+};
+
+#endif
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgdebugger.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgdebugger.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgdebugger.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,28 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<MenuBar>	
+	<Menu name="debugger"><text>De&amp;bugger</text>
+		
+		<Action name="debugger_start"/>
+		<Action name="debugger_restart"/>
+		<Action name="debugger_stop"/>
+		<Separator/>
+		<Action name="debugger_step_over"/>
+		<Action name="debugger_step_into"/>
+		<Action name="debugger_step_out"/>
+		
+	</Menu>
+</MenuBar>	
+	
+<ToolBar name="debuggerToolBar"><text>Debugger Toolbar</text>
+		<Action name="debugger_start"/>
+		<Action name="debugger_restart"/>
+		<Action name="debugger_stop"/>
+		<Separator/>
+		<Action name="debugger_step_over"/>
+		<Action name="debugger_step_into"/>
+		<Action name="debugger_step_out"/>
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgexecutor.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgexecutor.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgexecutor.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,42 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<MenuBar>	
+	<Menu name="executor"><text>&amp;Executor</text>
+		<Action name="executor_execute"/>
+		<Action name="executor_stop"/>
+		<Separator/>
+		<Action name="executor_fetch_next"/>
+		<Action name="executor_fetch_all"/>
+		<Separator/>
+		<Action name="edit_find_in_result"/>
+		<Action name="edit_find_next_in_result"/>
+	</Menu>
+</MenuBar>	
+	
+<Menu name="popupExecutorTable">
+	<Title>Result table</Title>
+	<Action name="copy_cell"/>
+	<Action name="copy_row"/>
+	<Action name="copy_table_csv"/>
+	<Action name="copy_table_xml"/>
+	<Separator/>
+	<Action name="edit_find_in_result"/>
+	<Action name="edit_find_next_in_result"/>
+	<Separator/>
+	<Action name="executor_fetch_next"/>
+	<Action name="executor_fetch_all"/>
+</Menu>
+
+<ToolBar name="executorToolBar"><text>Executor Toolbar</text>
+	<Action name="executor_execute"/>
+	<Action name="executor_stop"/>
+	<Separator/>
+	<Action name="executor_fetch_next"/>
+	<Action name="executor_fetch_all"/>
+	<Separator/>
+	<Action name="edit_find_in_result"/>
+	<Action name="edit_find_next_in_result"/>
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,148 @@
+//
+// C++ Implementation: %{MODULE}
+//
+// Description:
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpggeneralsettings.h"
+
+#include <klocale.h>
+#include <kconfig.h>
+#include <kdebug.h>
+#include <kcolorbutton.h>
+
+#include <qframe.h>
+#include <qcheckbox.h>
+#include <qradiobutton.h>
+
+#include "kpggeneralsettingspage.h"
+
+#define CONF_ENTRY_NAME_AUTO_LOAD_SYS_SCHEMAS "AutoLoadSysSchemas"
+#define DFLT_VALUE_AUTO_LOAD_SYS_SCHEMAS true
+
+#define CONF_ENTRY_NAME_AUTO_LOAD_USR_SCHEMAS "AutoLoadUsrSchemas"
+#define DFLT_VALUE_AUTO_LOAD_USR_SCHEMAS true
+
+#define CONF_ENTRY_NAME_USE_DOLLARS_FOR_FNC_BODY "UseDollarsForFncBody"
+#define DFLT_VALUE_USE_DOLLARS_FOR_FNC_BODY false
+
+#define CONF_ENTRY_NAME_LAZY_LOAD_TBL_CHILDS "LazyLoadTablesChilds"
+#define DFLT_VALUE_LAZY_LOAD_TBL_CHILDS false
+
+#define CONF_ENTRY_NAME_XACT_TYPE "TransactionType"
+#define DFLT_VALUE_XACT_TYPE KPGConnection::eTransNormal
+
+
+KPGGeneralSettings::KPGGeneralSettings( QObject * pParent, const char * pszName )
+ : KPGSettings( "General", pParent, pszName ),
+   m_bAutoLoadSysSchemas( DFLT_VALUE_AUTO_LOAD_SYS_SCHEMAS ),
+   m_bAutoLoadUsrSchemas( DFLT_VALUE_AUTO_LOAD_USR_SCHEMAS ),
+   m_bUseDollarsForFncBody( DFLT_VALUE_USE_DOLLARS_FOR_FNC_BODY ),
+   m_bLazyLoadTablesChilds( DFLT_VALUE_LAZY_LOAD_TBL_CHILDS ),
+   m_eTransType( DFLT_VALUE_XACT_TYPE ),
+   m_pDialogPage(0)
+{
+}
+
+KPGGeneralSettings::~KPGGeneralSettings()
+{
+}
+
+void KPGGeneralSettings::write( KConfig * pConfig ) const
+{
+	pConfig->writeEntry( CONF_ENTRY_NAME_AUTO_LOAD_SYS_SCHEMAS, m_bAutoLoadSysSchemas );
+	pConfig->writeEntry( CONF_ENTRY_NAME_AUTO_LOAD_USR_SCHEMAS, m_bAutoLoadUsrSchemas );
+	pConfig->writeEntry( CONF_ENTRY_NAME_USE_DOLLARS_FOR_FNC_BODY, m_bUseDollarsForFncBody );
+	pConfig->writeEntry( CONF_ENTRY_NAME_LAZY_LOAD_TBL_CHILDS, m_bLazyLoadTablesChilds );
+	pConfig->writeEntry( CONF_ENTRY_NAME_XACT_TYPE, m_eTransType );
+}
+
+void KPGGeneralSettings::read( const KConfig * pConfig )
+{
+	m_bAutoLoadSysSchemas = pConfig->readBoolEntry( CONF_ENTRY_NAME_AUTO_LOAD_SYS_SCHEMAS, DFLT_VALUE_AUTO_LOAD_SYS_SCHEMAS );
+	m_bAutoLoadUsrSchemas = pConfig->readBoolEntry( CONF_ENTRY_NAME_AUTO_LOAD_USR_SCHEMAS, DFLT_VALUE_AUTO_LOAD_USR_SCHEMAS );
+	m_bUseDollarsForFncBody = pConfig->readBoolEntry( CONF_ENTRY_NAME_USE_DOLLARS_FOR_FNC_BODY, DFLT_VALUE_USE_DOLLARS_FOR_FNC_BODY );
+	m_bLazyLoadTablesChilds = pConfig->readBoolEntry( CONF_ENTRY_NAME_LAZY_LOAD_TBL_CHILDS, DFLT_VALUE_LAZY_LOAD_TBL_CHILDS );
+	m_eTransType = (KPGConnection::ETransType) pConfig->readNumEntry( CONF_ENTRY_NAME_XACT_TYPE, DFLT_VALUE_XACT_TYPE );
+}
+
+QString KPGGeneralSettings::dialogPageName() const
+{
+  	return i18n( "General" );
+}
+
+QString KPGGeneralSettings::dialogPageHeader() const
+{
+  	return i18n( "General setting" );
+}
+
+QString KPGGeneralSettings::dialogPageIcon() const
+{
+  	return "kpogre";
+}
+
+QWidget * KPGGeneralSettings::dialogPage( QFrame * pParent )
+{
+	if ( ! m_pDialogPage )
+	{
+		// create the page if necessary
+		m_pDialogPage = new KPGGeneralSettingsPage( pParent, "general setting config.dialog page" );
+	
+		// and fill its widgets with the corresponding values
+		updatePage();
+	
+		connect( m_pDialogPage->m_pCheckBoxAutoLoadSysSchemas, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pCheckBoxAutoLoadUsrSchemas, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) );
+		connect( m_pDialogPage->m_pCheckBoxUseDollarsForFncBody, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) ); 
+		connect( m_pDialogPage->m_pCheckBoxLazyLoadTblChilds, SIGNAL(toggled(bool)), this, SIGNAL(sigDialogPageChanged()) ); 
+		connect( m_pDialogPage->m_pRadioButtonNormalTX, SIGNAL(stateChanged(int)), this, SIGNAL(sigDialogPageChanged()) ); 
+		connect( m_pDialogPage->m_pRadioButtonNonTX, SIGNAL(stateChanged(int)), this, SIGNAL(sigDialogPageChanged()) ); 
+		connect( m_pDialogPage->m_pRadioButtonRobustTX, SIGNAL(stateChanged(int)), this, SIGNAL(sigDialogPageChanged()) ); 
+	}
+	
+	return m_pDialogPage;
+}
+
+void KPGGeneralSettings::setFromPage()
+{
+	if ( m_pDialogPage )
+	{
+		m_bAutoLoadSysSchemas = m_pDialogPage->m_pCheckBoxAutoLoadSysSchemas->isChecked();
+		m_bAutoLoadUsrSchemas = m_pDialogPage->m_pCheckBoxAutoLoadUsrSchemas->isChecked();
+		m_bUseDollarsForFncBody = m_pDialogPage->m_pCheckBoxUseDollarsForFncBody->isChecked();
+		m_bLazyLoadTablesChilds = m_pDialogPage->m_pCheckBoxLazyLoadTblChilds->isChecked();
+		 
+		if(m_pDialogPage->m_pRadioButtonNormalTX->isChecked()) m_eTransType = KPGConnection::eTransNormal;
+		else if(m_pDialogPage->m_pRadioButtonNonTX->isChecked()) m_eTransType = KPGConnection::eTransNone;
+		else if(m_pDialogPage->m_pRadioButtonRobustTX->isChecked()) m_eTransType = KPGConnection::eTransRobust;
+	}
+}
+
+void KPGGeneralSettings::updatePage() const
+{
+	if ( m_pDialogPage )
+	{
+		m_pDialogPage->m_pCheckBoxAutoLoadSysSchemas->setChecked( m_bAutoLoadSysSchemas );
+		m_pDialogPage->m_pCheckBoxAutoLoadUsrSchemas->setChecked( m_bAutoLoadUsrSchemas );
+		m_pDialogPage->m_pCheckBoxUseDollarsForFncBody->setChecked( m_bUseDollarsForFncBody );
+		m_pDialogPage->m_pCheckBoxLazyLoadTblChilds->setChecked( m_bLazyLoadTablesChilds );
+		
+		switch(m_eTransType)
+		{
+		  case KPGConnection::eTransNormal: m_pDialogPage->m_pRadioButtonNormalTX->setChecked(true);
+		  break;
+		  
+		  case KPGConnection::eTransNone: m_pDialogPage->m_pRadioButtonNonTX->setChecked(true);
+		  break;
+		  
+		  case KPGConnection::eTransRobust: m_pDialogPage->m_pRadioButtonRobustTX->setChecked(true);
+		  break;
+		}
+	}
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettings.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,93 @@
+//
+// C++ Interface: %{MODULE}
+//
+// Description: 
+//
+//
+// Author: %{AUTHOR} <%{EMAIL}>, (C) %{YEAR}
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGGENERALSETTINGS_H
+#define KPGGENERALSETTINGS_H
+
+#include "kpgsettings.h"
+#include "DbObjects/kpgconnection.h"
+
+class KPGGeneralSettingsPage;
+
+/**
+  * KPoGre general settings
+  *
+  * @author Lumir Vanek
+  */
+class KPGGeneralSettings : public KPGSettings
+{
+public:
+    KPGGeneralSettings( QObject * pParent = 0, const char * pszName = 0 );
+    ~KPGGeneralSettings();
+
+    bool autoLoadSysSchemas() const { return m_bAutoLoadSysSchemas; }
+    bool autoLoadUsrSchemas() const { return m_bAutoLoadUsrSchemas; }
+    bool useDollarsForFncBody() const { return m_bUseDollarsForFncBody; }
+    bool lazyLoadTablesChilds() const { return  m_bLazyLoadTablesChilds; }
+    KPGConnection::ETransType transactionType() const { return m_eTransType; }
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageName() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageHeader() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QString dialogPageIcon() const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual QWidget * dialogPage( QFrame * pParent );
+
+protected:
+
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void write( KConfig * ) const;
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void read( const KConfig * );
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void setFromPage();
+    
+    /**
+     * Derived from @ref KPGSettings
+     */
+    virtual void updatePage() const;
+
+    // the settings itself
+    bool m_bAutoLoadSysSchemas;
+    bool m_bAutoLoadUsrSchemas;
+    bool m_bUseDollarsForFncBody;
+    bool m_bLazyLoadTablesChilds;
+    KPGConnection::ETransType m_eTransType;
+    
+    /**
+     * the corresponding configuration dialog page
+     * It is created on demand by @ref dialogPage.
+     */
+    KPGGeneralSettingsPage * m_pDialogPage;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,118 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpggeneralsettingspage.ui'
+**
+** Created: Út dub 1 13:07:12 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpggeneralsettingspage.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qcheckbox.h>
+#include <qbuttongroup.h>
+#include <qradiobutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+
+/*
+ *  Constructs a KPGGeneralSettingsPage as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ */
+KPGGeneralSettingsPage::KPGGeneralSettingsPage( QWidget* parent, const char* name, WFlags fl )
+    : QWidget( parent, name, fl )
+{
+    if ( !name )
+	setName( "KPGGeneralSettingsPage" );
+    KPGGeneralSettingsPageLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGGeneralSettingsPageLayout"); 
+    spacer1 = new QSpacerItem( 21, 30, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGGeneralSettingsPageLayout->addItem( spacer1, 5, 1 );
+
+    m_pCheckBoxAutoLoadSysSchemas = new QCheckBox( this, "m_pCheckBoxAutoLoadSysSchemas" );
+
+    KPGGeneralSettingsPageLayout->addMultiCellWidget( m_pCheckBoxAutoLoadSysSchemas, 0, 0, 0, 1 );
+
+    buttonGroup1 = new QButtonGroup( this, "buttonGroup1" );
+    buttonGroup1->setColumnLayout(0, Qt::Vertical );
+    buttonGroup1->layout()->setSpacing( 6 );
+    buttonGroup1->layout()->setMargin( 11 );
+    buttonGroup1Layout = new QGridLayout( buttonGroup1->layout() );
+    buttonGroup1Layout->setAlignment( Qt::AlignTop );
+
+    m_pRadioButtonNonTX = new QRadioButton( buttonGroup1, "m_pRadioButtonNonTX" );
+    buttonGroup1->insert( m_pRadioButtonNonTX, 1 );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonNonTX, 1, 0 );
+
+    m_pRadioButtonNormalTX = new QRadioButton( buttonGroup1, "m_pRadioButtonNormalTX" );
+    m_pRadioButtonNormalTX->setChecked( TRUE );
+    buttonGroup1->insert( m_pRadioButtonNormalTX, 1 );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonNormalTX, 0, 0 );
+
+    m_pRadioButtonRobustTX = new QRadioButton( buttonGroup1, "m_pRadioButtonRobustTX" );
+    buttonGroup1->insert( m_pRadioButtonRobustTX, 1 );
+
+    buttonGroup1Layout->addWidget( m_pRadioButtonRobustTX, 2, 0 );
+
+    KPGGeneralSettingsPageLayout->addMultiCellWidget( buttonGroup1, 4, 4, 0, 1 );
+
+    m_pCheckBoxUseDollarsForFncBody = new QCheckBox( this, "m_pCheckBoxUseDollarsForFncBody" );
+
+    KPGGeneralSettingsPageLayout->addMultiCellWidget( m_pCheckBoxUseDollarsForFncBody, 3, 3, 0, 1 );
+
+    m_pCheckBoxAutoLoadUsrSchemas = new QCheckBox( this, "m_pCheckBoxAutoLoadUsrSchemas" );
+
+    KPGGeneralSettingsPageLayout->addMultiCellWidget( m_pCheckBoxAutoLoadUsrSchemas, 1, 1, 0, 1 );
+
+    m_pCheckBoxLazyLoadTblChilds = new QCheckBox( this, "m_pCheckBoxLazyLoadTblChilds" );
+
+    KPGGeneralSettingsPageLayout->addWidget( m_pCheckBoxLazyLoadTblChilds, 2, 0 );
+    languageChange();
+    resize( QSize(357, 330).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // tab order
+    setTabOrder( m_pCheckBoxAutoLoadSysSchemas, m_pCheckBoxAutoLoadUsrSchemas );
+    setTabOrder( m_pCheckBoxAutoLoadUsrSchemas, m_pCheckBoxUseDollarsForFncBody );
+    setTabOrder( m_pCheckBoxUseDollarsForFncBody, m_pRadioButtonNormalTX );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGGeneralSettingsPage::~KPGGeneralSettingsPage()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGGeneralSettingsPage::languageChange()
+{
+    setCaption( tr2i18n( "General" ) );
+    m_pCheckBoxAutoLoadSysSchemas->setText( tr2i18n( "Automatically load &system schemas" ) );
+    m_pCheckBoxAutoLoadSysSchemas->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    buttonGroup1->setTitle( tr2i18n( "Transaction type for catalog queries" ) );
+    m_pRadioButtonNonTX->setText( tr2i18n( "&Non-transaction" ) );
+    m_pRadioButtonNonTX->setAccel( QKeySequence( tr2i18n( "Alt+N" ) ) );
+    m_pRadioButtonNormalTX->setText( tr2i18n( "Normal &transaction" ) );
+    m_pRadioButtonNormalTX->setAccel( QKeySequence( tr2i18n( "Alt+T" ) ) );
+    m_pRadioButtonRobustTX->setText( tr2i18n( "&Robust transaction" ) );
+    m_pRadioButtonRobustTX->setAccel( QKeySequence( tr2i18n( "Alt+R" ) ) );
+    m_pCheckBoxUseDollarsForFncBody->setText( tr2i18n( "Use $$ for &functions body definition" ) );
+    m_pCheckBoxUseDollarsForFncBody->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pCheckBoxAutoLoadUsrSchemas->setText( tr2i18n( "Automatically load &user schemas" ) );
+    m_pCheckBoxAutoLoadUsrSchemas->setAccel( QKeySequence( tr2i18n( "Alt+U" ) ) );
+    m_pCheckBoxLazyLoadTblChilds->setText( tr2i18n( "&Lazy load tables childs" ) );
+    m_pCheckBoxLazyLoadTblChilds->setAccel( QKeySequence( tr2i18n( "Alt+L" ) ) );
+}
+
+#include "kpggeneralsettingspage.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpggeneralsettingspage.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,152 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGGeneralSettingsPage</class>
+<comment>Generel setting page</comment>
+<author>Lumir Vanek</author>
+<widget class="QWidget">
+    <property name="name">
+        <cstring>KPGGeneralSettingsPage</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>357</width>
+            <height>330</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>General</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <spacer row="5" column="1">
+            <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>21</width>
+                    <height>30</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxAutoLoadSysSchemas</cstring>
+            </property>
+            <property name="text">
+                <string>Automatically load &amp;system schemas</string>
+            </property>
+            <property name="accel">
+                <string>Alt+S</string>
+            </property>
+        </widget>
+        <widget class="QButtonGroup" row="4" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>buttonGroup1</cstring>
+            </property>
+            <property name="title">
+                <string>Transaction type for catalog queries</string>
+            </property>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QRadioButton" row="1" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonNonTX</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Non-transaction</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+N</string>
+                    </property>
+                    <property name="buttonGroupId">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="0" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonNormalTX</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Normal &amp;transaction</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+T</string>
+                    </property>
+                    <property name="checked">
+                        <bool>true</bool>
+                    </property>
+                    <property name="buttonGroupId">
+                        <number>1</number>
+                    </property>
+                </widget>
+                <widget class="QRadioButton" row="2" column="0">
+                    <property name="name">
+                        <cstring>m_pRadioButtonRobustTX</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Robust transaction</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+R</string>
+                    </property>
+                    <property name="buttonGroupId">
+                        <number>1</number>
+                    </property>
+                </widget>
+            </grid>
+        </widget>
+        <widget class="QCheckBox" row="3" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxUseDollarsForFncBody</cstring>
+            </property>
+            <property name="text">
+                <string>Use $$ for &amp;functions body definition</string>
+            </property>
+            <property name="accel">
+                <string>Alt+F</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pCheckBoxAutoLoadUsrSchemas</cstring>
+            </property>
+            <property name="text">
+                <string>Automatically load &amp;user schemas</string>
+            </property>
+            <property name="accel">
+                <string>Alt+U</string>
+            </property>
+        </widget>
+        <widget class="QCheckBox" row="2" column="0">
+            <property name="name">
+                <cstring>m_pCheckBoxLazyLoadTblChilds</cstring>
+            </property>
+            <property name="text">
+                <string>&amp;Lazy load tables childs</string>
+            </property>
+            <property name="accel">
+                <string>Alt+L</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<tabstops>
+    <tabstop>m_pCheckBoxAutoLoadSysSchemas</tabstop>
+    <tabstop>m_pCheckBoxAutoLoadUsrSchemas</tabstop>
+    <tabstop>m_pCheckBoxUseDollarsForFncBody</tabstop>
+    <tabstop>m_pRadioButtonNormalTX</tabstop>
+</tabstops>
+<layoutdefaults spacing="6" margin="11"/>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgkateui.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgkateui.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgkateui.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,28 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpgkateui" version="1.5.7">
+
+<Menu name="ktexteditor_popup">
+	<DefineGroup name="popup_operations" />
+</Menu>
+
+<ToolBar fullWidth="true" name="mainToolBar" newline="true" position="top" noMerge="1"><text>Main Toolbar</text>
+	<Action name="file_new" />
+	<Action name="file_open" />
+	<Separator />
+	<DefineGroup name="file_operations" />
+	<Separator />
+	<DefineGroup name="print_merge" />
+	<Separator />
+	<Action name="file_close" />
+	<Separator />
+	<DefineGroup name="edit_operations" />
+	<Action name="clear_input_area"/>
+	<Separator />
+	<DefineGroup name="find_operations" />
+	<Separator />
+	<DefineGroup name="zoom_operations" />
+	<Separator/>
+
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,48 @@
+//
+// C++ Implementation: kpglinklabel
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpglinklabel.h"
+
+#include <qtooltip.h>
+#include <qstring.h>
+
+#include <kcursor.h>
+
+KPGLinkLabel::KPGLinkLabel(QWidget *parent, const char *name)
+ : QLabel(parent, name) // KActiveLabel 
+{
+	setPaletteForegroundColor( QColor( 0, 0, 128 ) );
+	setPaletteBackgroundColor( QColor( 244, 238, 215 ) );
+	setCursor(KCursor::handCursor());
+	setTextFormat( QLabel::PlainText );
+	m_oid = 0;
+}
+
+
+KPGLinkLabel::~KPGLinkLabel()
+{
+}
+
+void KPGLinkLabel::setValues(pqxx::oid _oid, const QString &strObjectName)
+{
+	//setText("<a href='#" + strObjectName + "'>" + strObjectName + "</a>");
+  	setText(strObjectName);
+	QToolTip::add( this, QString("OID: %1").arg(_oid));
+	m_oid = _oid;
+}
+
+/*
+void KPGLinkLabel::openLink(const QString &)
+{
+  // do nothing
+}*/
+
+#include "kpglinklabel.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpglinklabel.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Interface: kpglinklabel
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGLINKLABEL_H
+#define KPGLINKLABEL_H
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+#include <qlabel.h>
+//#include <kactivelabel.h>
+
+/**
+Label for OID and their object name. Used in property pages to browse PostgreSQL catalog using OIDs.
+
+ at author Lumir Vanek
+*/
+
+class KPGLinkLabel : public QLabel //KActiveLabel
+{
+	Q_OBJECT
+public:
+	KPGLinkLabel(QWidget *parent, const char *name = 0);
+    ~KPGLinkLabel();
+		
+	// Set object name and OID
+	void setValues(pqxx::oid, const QString &);
+
+	// Return PostgreSQL row identifier
+	const pqxx::oid oid() const { return m_oid; }
+		
+//public slots:
+//   virtual void openLink(const QString &);
+
+protected:
+
+	// PostgreSQL row identifier
+	pqxx::oid m_oid;		
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgproppage.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgproppage.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgproppage.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,13 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<Menu name="popupPropertyTable">
+	<Title>Properties</Title>
+	<Action name="copy_cell"/>
+	<Action name="copy_row"/>
+	<Action name="copy_table_csv"/>
+	<Action name="copy_table_xml"/>
+</Menu>
+
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgqueryreslt.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgqueryreslt.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgqueryreslt.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,105 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<MenuBar>
+	<Menu name="query"><text>&amp;Query</text>
+		<Action name="queryresult_run_query"/>
+		<Action name="queryresult_stop_query"/>
+		<Separator/>
+		<Action name="queryresult_fetch_next"/>
+		<Action name="queryresult_fetch_all"/>
+		<Separator/>
+		<Action name="edit_find_in_result"/>
+		<Action name="edit_find_next_in_result"/>
+	</Menu>
+</MenuBar>	
+	
+<Menu name="popupQueryResultTable">
+	<Title>Result table</Title>
+	<Action name="copy_cell"/>
+	<Action name="copy_row"/>
+	<Action name="copy_table_csv"/>
+	<Action name="copy_table_xml"/>
+	<Separator/>
+	<Action name="edit_find_in_result"/>
+	<Action name="edit_find_next_in_result"/>
+	<Separator/>
+	<Action name="queryresult_fetch_next"/>
+	<Action name="queryresult_fetch_all"/>
+</Menu>
+
+<!-- MenuBar noMerge="1">
+	<Menu name="file" noMerge="1"><text>&amp;File</text>
+		
+		<DefineGroup name="open_merge" />
+		<Separator />
+		
+		<DefineGroup name="save_merge" />
+		<Separator />
+		
+		<DefineGroup name="revert_merge" />
+		<DefineGroup name="print_merge" />
+		<Separator />
+		
+		<Action name="file_close"/>
+	<Separator />
+		
+	</Menu>
+			
+	<Menu name="edit"><text>&amp;Edit</text>
+		<DefineGroup name="edit_undo_merge"/>
+		<Separator/>
+		<DefineGroup name="edit_paste_merge"/>
+		<Separator/>
+		<DefineGroup name="edit_select_merge"/>
+		<Separator/>
+		<DefineGroup name="edit_find_merge"/>
+		<Separator/>
+		<Action name="clear_input_area"/>
+		<Separator/>
+	</Menu>
+	
+	<Menu name="view"><text>&amp;View</text>
+		<DefineGroup name="view_operations" />
+	</Menu>
+	
+	<Merge/>
+	
+	<Menu name="tools"><text>&amp;Tools</text>
+		<DefineGroup name="tools_operations" />
+	</Menu>
+	
+</MenuBar -->
+
+<!-- ToolBar name="mainToolBar" noMerge="1"><text>Main Toolbar</text> zbytecne, cpe si to tam jakchce
+	<Merge name="mainToolBar_kate_actions">
+		<DefineGroup name="file_operations" />
+		<Action name="file_close" />
+		<Separator/>
+		
+		<DefineGroup name="print_merge" />
+		<Separator/>
+		
+		<DefineGroup name="edit_operations" />
+		<Separator/>
+		
+		<DefineGroup name="find_operations" />
+		<Separator/>
+		
+		<DefineGroup name="zoom_operations"/>
+		<Separator/>
+	</Merge>
+</ToolBar -->
+
+<ToolBar name="queryResultToolBar"><text>Query - Result Toolbar</text>
+	<Action name="queryresult_run_query"/>
+	<Action name="queryresult_stop_query"/>
+	<Separator/>
+	<Action name="queryresult_fetch_next"/>
+	<Action name="queryresult_fetch_all"/>
+	<Separator/>
+	<Action name="edit_find_in_result"/>
+	<Action name="edit_find_next_in_result"/>
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,64 @@
+//
+// C++ Implementation: kpgsearchdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsearchdialog.h"
+
+// include files for Qt
+#include <qpushbutton.h>
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kpushbutton.h>
+
+KPGSearchDialog::KPGSearchDialog(QWidget *parent, const char *name, bool modal)
+	: KPGSearchDialogBase(parent, name, modal)
+{
+	m_pPushButtonFind->setEnabled(false);
+	m_pEditSearchedString->setFocus();
+		
+	m_pPushButtonFind->setIconSet(QIconSet(QPixmap(SmallIcon("find"))));
+	m_pPushButtonCancel->setIconSet(QIconSet(QPixmap(SmallIcon("fileclose"))));  
+}
+
+
+KPGSearchDialog::~KPGSearchDialog()
+{
+}
+
+void KPGSearchDialog::slotTextChanged(const QString& string)
+{
+	if ( string.isEmpty() )
+		m_pPushButtonFind->setEnabled(false);
+	else
+		m_pPushButtonFind->setEnabled(true);
+
+	toggleAcceptButton();
+}
+
+void KPGSearchDialog::slotFindInChanged(int)
+{
+	toggleAcceptButton();
+}
+
+void KPGSearchDialog::toggleAcceptButton()
+{
+	if ( (m_pCheckBoxNames->isChecked()) ||(m_pCheckBoxOIDs->isChecked()) )
+	{
+		if ( m_pEditSearchedString->text().isEmpty() )
+			m_pPushButtonFind->setEnabled(false);
+		else
+			m_pPushButtonFind->setEnabled(true);
+	}
+	else
+		m_pPushButtonFind->setEnabled(false);
+}
+
+#include "kpgsearchdialog.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,49 @@
+//
+// C++ Interface: kpgsearchdialog
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSEARCHDIALOG_H
+#define KPGSEARCHDIALOG_H
+
+#include "kpgsearchdialogbase.h"
+
+#include <qlineedit.h>
+#include <qcheckbox.h>
+
+/**
+Search dialog
+
+ at author Lumir Vanek
+*/
+
+class KPGSearchDialog : public KPGSearchDialogBase
+{
+	Q_OBJECT
+public:
+    KPGSearchDialog(QWidget * pParent, const char * pszName = 0, bool bModal = true);
+    ~KPGSearchDialog();
+
+		QString getSearchString() const { return m_pEditSearchedString->text(); }
+		bool getOIDs() const { return m_pCheckBoxOIDs->isChecked(); }
+		bool getInNames() const { return m_pCheckBoxNames->isChecked(); }
+		
+protected:
+		/** Enables/Disables the "Find"-button. */
+		void toggleAcceptButton();
+
+protected slots:
+		/** Called when text in edit line is changed */
+		virtual void slotTextChanged(const QString & );
+
+    /** Called on a change of the "find in" checkbuttons. */
+		virtual void slotFindInChanged(int);
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,158 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpgsearchdialogbase.ui'
+**
+** Created: Út dub 1 13:07:12 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsearchdialogbase.h"
+
+#include <qvariant.h>
+#include <qpushbutton.h>
+#include <qgroupbox.h>
+#include <qcheckbox.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <kpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "kpushbutton.h"
+
+/*
+ *  Constructs a KPGSearchDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGSearchDialogBase::KPGSearchDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGSearchDialogBase" );
+    KPGSearchDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSearchDialogBaseLayout"); 
+
+    m_pGroupBoxSearchIn = new QGroupBox( this, "m_pGroupBoxSearchIn" );
+    m_pGroupBoxSearchIn->setColumnLayout(0, Qt::Vertical );
+    m_pGroupBoxSearchIn->layout()->setSpacing( 6 );
+    m_pGroupBoxSearchIn->layout()->setMargin( 11 );
+    m_pGroupBoxSearchInLayout = new QVBoxLayout( m_pGroupBoxSearchIn->layout() );
+    m_pGroupBoxSearchInLayout->setAlignment( Qt::AlignTop );
+
+    m_pCheckBoxOIDs = new QCheckBox( m_pGroupBoxSearchIn, "m_pCheckBoxOIDs" );
+    m_pGroupBoxSearchInLayout->addWidget( m_pCheckBoxOIDs );
+
+    m_pCheckBoxNames = new QCheckBox( m_pGroupBoxSearchIn, "m_pCheckBoxNames" );
+    m_pGroupBoxSearchInLayout->addWidget( m_pCheckBoxNames );
+
+    KPGSearchDialogBaseLayout->addMultiCellWidget( m_pGroupBoxSearchIn, 2, 3, 0, 0 );
+    Spacer9 = new QSpacerItem( 16, 130, QSizePolicy::Minimum, QSizePolicy::Expanding );
+    KPGSearchDialogBaseLayout->addItem( Spacer9, 3, 1 );
+
+    Layout5 = new QHBoxLayout( 0, 0, 6, "Layout5"); 
+
+    m_pTextLabelSearchedString = new QLabel( this, "m_pTextLabelSearchedString" );
+    m_pTextLabelSearchedString->setFrameShape( QLabel::MShape );
+    m_pTextLabelSearchedString->setFrameShadow( QLabel::MShadow );
+    Layout5->addWidget( m_pTextLabelSearchedString );
+    Spacer3 = new QSpacerItem( 262, 0, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    Layout5->addItem( Spacer3 );
+
+    KPGSearchDialogBaseLayout->addMultiCellLayout( Layout5, 0, 0, 0, 1 );
+
+    layout23 = new QHBoxLayout( 0, 0, 6, "layout23"); 
+    spacer19 = new QSpacerItem( 18, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout23->addItem( spacer19 );
+
+    m_pCheckBoxMatchCase = new QCheckBox( this, "m_pCheckBoxMatchCase" );
+    layout23->addWidget( m_pCheckBoxMatchCase );
+
+    KPGSearchDialogBaseLayout->addLayout( layout23, 2, 1 );
+
+    m_pEditSearchedString = new QLineEdit( this, "m_pEditSearchedString" );
+
+    KPGSearchDialogBaseLayout->addMultiCellWidget( m_pEditSearchedString, 1, 1, 0, 1 );
+
+    layout4 = new QHBoxLayout( 0, 0, 6, "layout4"); 
+    Spacer2 = new QSpacerItem( 90, 16, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    layout4->addItem( Spacer2 );
+
+    m_pPushButtonFind = new KPushButton( this, "m_pPushButtonFind" );
+    m_pPushButtonFind->setDefault( TRUE );
+    layout4->addWidget( m_pPushButtonFind );
+
+    m_pPushButtonCancel = new KPushButton( this, "m_pPushButtonCancel" );
+    layout4->addWidget( m_pPushButtonCancel );
+
+    KPGSearchDialogBaseLayout->addMultiCellLayout( layout4, 4, 4, 0, 1 );
+    languageChange();
+    resize( QSize(353, 223).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( m_pEditSearchedString, SIGNAL( textChanged(const QString&) ), this, SLOT( slotTextChanged(const QString&) ) );
+    connect( m_pCheckBoxOIDs, SIGNAL( stateChanged(int) ), this, SLOT( slotFindInChanged(int) ) );
+    connect( m_pCheckBoxNames, SIGNAL( stateChanged(int) ), this, SLOT( slotFindInChanged(int) ) );
+    connect( m_pPushButtonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+    connect( m_pPushButtonFind, SIGNAL( clicked() ), this, SLOT( accept() ) );
+
+    // tab order
+    setTabOrder( m_pEditSearchedString, m_pCheckBoxOIDs );
+    setTabOrder( m_pCheckBoxOIDs, m_pCheckBoxNames );
+    setTabOrder( m_pCheckBoxNames, m_pCheckBoxMatchCase );
+    setTabOrder( m_pCheckBoxMatchCase, m_pPushButtonFind );
+    setTabOrder( m_pPushButtonFind, m_pPushButtonCancel );
+
+    // buddies
+    m_pTextLabelSearchedString->setBuddy( m_pEditSearchedString );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSearchDialogBase::~KPGSearchDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSearchDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "Find text - KPoGre" ) );
+    m_pGroupBoxSearchIn->setTitle( tr2i18n( "Find &in" ) );
+    m_pCheckBoxOIDs->setText( tr2i18n( "&OIDs" ) );
+    m_pCheckBoxOIDs->setAccel( QKeySequence( tr2i18n( "Alt+O" ) ) );
+    m_pCheckBoxNames->setText( tr2i18n( "&Names" ) );
+    m_pCheckBoxNames->setAccel( QKeySequence( tr2i18n( "Alt+N" ) ) );
+    m_pTextLabelSearchedString->setText( tr2i18n( "&Text to find:" ) );
+    QWhatsThis::add( m_pTextLabelSearchedString, tr2i18n( "<b>Search string</b></br>\n"
+"Here you can enter the string you want to search." ) );
+    m_pCheckBoxMatchCase->setText( tr2i18n( "Case &sensitive" ) );
+    m_pCheckBoxMatchCase->setAccel( QKeySequence( tr2i18n( "Alt+S" ) ) );
+    QWhatsThis::add( m_pCheckBoxMatchCase, tr2i18n( "<b>Match case</b><br/>\n"
+"Check this for case sensitive search." ) );
+    m_pPushButtonFind->setText( tr2i18n( "&Find" ) );
+    m_pPushButtonFind->setAccel( QKeySequence( tr2i18n( "Alt+F" ) ) );
+    m_pPushButtonCancel->setText( tr2i18n( "&Close" ) );
+    m_pPushButtonCancel->setAccel( QKeySequence( tr2i18n( "Alt+C" ) ) );
+}
+
+void KPGSearchDialogBase::slotTextChanged(const QString&)
+{
+    qWarning( "KPGSearchDialogBase::slotTextChanged(const QString&): Not implemented yet" );
+}
+
+void KPGSearchDialogBase::slotFindInChanged(int)
+{
+    qWarning( "KPGSearchDialogBase::slotFindInChanged(int): Not implemented yet" );
+}
+
+#include "kpgsearchdialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsearchdialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,288 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSearchDialogBase</class>
+<comment>Search dialog</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGSearchDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>353</width>
+            <height>223</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>Find text - KPoGre</string>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="QGroupBox" row="2" column="0" rowspan="2" colspan="1">
+            <property name="name">
+                <cstring>m_pGroupBoxSearchIn</cstring>
+            </property>
+            <property name="title">
+                <string>Find &amp;in</string>
+            </property>
+            <vbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>11</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxOIDs</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;OIDs</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+O</string>
+                    </property>
+                </widget>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxNames</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Names</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+N</string>
+                    </property>
+                </widget>
+            </vbox>
+        </widget>
+        <spacer row="3" column="1">
+            <property name="name">
+                <cstring>Spacer9</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>16</width>
+                    <height>130</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>Layout5</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <widget class="QLabel">
+                    <property name="name">
+                        <cstring>m_pTextLabelSearchedString</cstring>
+                    </property>
+                    <property name="frameShape">
+                        <enum>MShape</enum>
+                    </property>
+                    <property name="frameShadow">
+                        <enum>MShadow</enum>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Text to find:</string>
+                    </property>
+                    <property name="buddy" stdset="0">
+                        <cstring>m_pEditSearchedString</cstring>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Search string&lt;/b&gt;&lt;/br&gt;
+Here you can enter the string you want to search.</string>
+                    </property>
+                </widget>
+                <spacer>
+                    <property name="name">
+                        <cstring>Spacer3</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>262</width>
+                            <height>0</height>
+                        </size>
+                    </property>
+                </spacer>
+            </hbox>
+        </widget>
+        <widget class="QLayoutWidget" row="2" column="1">
+            <property name="name">
+                <cstring>layout23</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>spacer19</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>18</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QCheckBox">
+                    <property name="name">
+                        <cstring>m_pCheckBoxMatchCase</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Case &amp;sensitive</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+S</string>
+                    </property>
+                    <property name="whatsThis" stdset="0">
+                        <string>&lt;b&gt;Match case&lt;/b&gt;&lt;br/&gt;
+Check this for case sensitive search.</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLineEdit" row="1" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>m_pEditSearchedString</cstring>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="4" column="0" rowspan="1" colspan="2">
+            <property name="name">
+                <cstring>layout4</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>Spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>90</width>
+                            <height>16</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="KPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonFind</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Find</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+F</string>
+                    </property>
+                    <property name="default">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="KPushButton">
+                    <property name="name">
+                        <cstring>m_pPushButtonCancel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Close</string>
+                    </property>
+                    <property name="accel">
+                        <string>Alt+C</string>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+    </grid>
+</widget>
+<customwidgets>
+</customwidgets>
+<connections>
+    <connection>
+        <sender>m_pEditSearchedString</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>KPGSearchDialogBase</receiver>
+        <slot>slotTextChanged(const QString&amp;)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxOIDs</sender>
+        <signal>stateChanged(int)</signal>
+        <receiver>KPGSearchDialogBase</receiver>
+        <slot>slotFindInChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pCheckBoxNames</sender>
+        <signal>stateChanged(int)</signal>
+        <receiver>KPGSearchDialogBase</receiver>
+        <slot>slotFindInChanged(int)</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSearchDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+    <connection>
+        <sender>m_pPushButtonFind</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSearchDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+</connections>
+<tabstops>
+    <tabstop>m_pEditSearchedString</tabstop>
+    <tabstop>m_pCheckBoxOIDs</tabstop>
+    <tabstop>m_pCheckBoxNames</tabstop>
+    <tabstop>m_pCheckBoxMatchCase</tabstop>
+    <tabstop>m_pPushButtonFind</tabstop>
+    <tabstop>m_pPushButtonCancel</tabstop>
+</tabstops>
+<slots>
+    <slot access="protected">slotTextChanged(const QString &amp;)</slot>
+    <slot access="protected">slotFindInChanged(int)</slot>
+</slots>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>kpushbutton.h</includehint>
+    <includehint>kpushbutton.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,67 @@
+/***************************************************************************
+                          kpgsettings.cpp  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#include "kpgsettings.h"
+
+#include <kconfig.h>
+
+KPGSettings::KPGSettings( const QString & strConfigGroup,  QObject * pParent, const char * pszName )
+ : QObject( pParent, pszName ),
+   m_bPageChanged( false ),
+   m_strConfigGroup( strConfigGroup )
+{
+	connect( this, SIGNAL(sigDialogPageChanged()), this, SLOT(slotDialogPageChanged()) );
+}
+
+void KPGSettings::setConfigGroup( KConfig * pConfig ) const
+{
+	pConfig->setGroup( m_strConfigGroup );
+}
+
+void KPGSettings::store( KConfig * pConfig ) const
+{
+	setConfigGroup( pConfig );
+	write( pConfig );
+}
+
+void KPGSettings::restore( KConfig * pConfig )
+{
+	setConfigGroup( pConfig );
+	read( pConfig );
+
+	// update the corresponding config.dialog page
+	blockSignals( true ); // block this object's signals (especially sigDialogPageChanged)
+	updatePage();
+	blockSignals( false ); // unblock the signals
+
+	emit sigChanged();
+}
+
+void KPGSettings::slotDialogPageChanged()
+{
+	m_bPageChanged = true;
+}
+
+void KPGSettings::apply()
+{
+	if ( m_bPageChanged )
+	{
+		setFromPage();
+		m_bPageChanged = false;
+		emit sigChanged();
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsettings.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,177 @@
+/***************************************************************************
+                          kpgsettings.h  -  description
+                             -------------------
+    begin                : Ne led 18 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPGSETTINGS_H
+#define KPGSETTINGS_H
+
+#include <qobject.h>
+
+/** This is an abstract base class for classes representing a group,
+that stores several configuration settings and manages a corresponding
+page in the configuration dialog.
+
+ at author Lumir Vanek
+
+Note: Borrowed from KXMLEditor - Olaf Hartig's KXESettings class
+
+*/
+
+class KConfig;
+class QFrame;
+
+class KPGSettings : public QObject
+{
+Q_OBJECT
+
+	public:
+
+		/**
+		 * the constructor
+		 *
+		 * @param strConfigGroup the name of the corresponding group in the config file,
+		 *                       it is copied to the member @ref m_strConfigGroup
+		 */
+		KPGSettings( const QString & strConfigGroup, QObject * pParent = 0, const char * pszName = 0 );
+
+		/**
+		 * Stores this settings to the given @ref KConfig object, by doing the
+		 * following things:
+		 *
+		 * - set the config group by calling @ref setConfigGroup
+		 * - write the data to the given @ref KConfig object by calling @ref write
+		 *   (which is implemented in the child class)
+		 */
+		void store( KConfig * ) const;
+		/**
+		 * Restores the settings from the given @ref KConfig object, by doing
+		 * following things:
+		 *
+		 * - set the config group by calling @ref setConfigGroup
+		 * - read the data from the given @ref KConfig object by calling @ref read
+		 *   (which is implemented in the child class)
+		 * - try to update the corresponding config.page by calling @ref updatePage
+		 *   (implemented in the child class)
+		 * - emit the signal sigChanged
+		 */
+		void restore( KConfig * );
+		/**
+		 * If the data in the corresponding configuration dialog page has been
+		 * changed (@ref m_bPageChanged), this data gets applied by the
+		 * @ref setFromPage member function implemented in child classes,
+		 * the flag @ref m_bPageChanged is reset (to false) and the signal
+		 * sigChanged is emitted.
+		 */
+		void apply();
+
+		/**
+		 * Override this function and return the name of the corresponding
+		 * configuration dialog page. This is the name used in the list of
+		 * pages in the configuration dialog.
+		 * This name has to be internationalized.
+		 */
+		virtual QString dialogPageName() const = 0;
+		/**
+		 * You can override this function and return a header line to
+		 * be used for the corresponding configuration dialog page.
+		 * If it's not overridden, the pages name is used (see
+		 * @ref dialogPageName)
+		 * This string has to be internationalized.
+		 */
+		virtual QString dialogPageHeader() const { return QString::null; }
+		/**
+		 * Override this function and return the (file-)name of the icon
+		 * to be used in the configuration dialog for the corresponding page.
+		 */
+		virtual QString dialogPageIcon() const = 0;
+		/**
+		 * Override this function to create the corresponding configuration
+		 * dialog page with the given parent and return it.
+		 * Update the page's widgets (usually by using @ref updatePage).
+		 * Connect the signal @ref sigDialogPageChanged to the page's
+		 * data changed signal(s).
+		 */
+		virtual QWidget * dialogPage( QFrame * pParent ) = 0;
+
+
+	signals:
+
+		/**
+		 * This signal is always emitted when the settings change.
+		 * It is emitted by @ref restore and @ref apply.
+		 */
+		void sigChanged();
+		/**
+		 * Emitted, when the data in the corresponding dialog page
+		 * has been changed.
+		 * Connect this signal to the page's changed signal in your
+		 * child class in @ref dialogPage.
+		 */
+		void sigDialogPageChanged();
+
+	protected:
+
+		/**
+		 * Overide this function and write your settings to the given KConfig object.
+		 * You mustn't change the config group.
+		 */
+		virtual void write( KConfig * ) const = 0;
+		/**
+		 * Overide this function and read the settings from the given KConfig object.
+		 * You mustn't change the config group.
+		 */
+		virtual void read( const KConfig * ) = 0;
+		/**
+		 * Override this function to set this object's data to the data in the
+		 * corresponding configuration dialog page, if a page has already been
+		 * created (check this!).
+		 */
+		 virtual void setFromPage() = 0;
+		 /**
+		  * Override this function to update the widgets in the corresponding
+		  * configuration dialog page with the current data (from your child class
+		  * object), if a page has already been created (check this!).
+		  */
+		 virtual void updatePage() const = 0;
+
+		/**
+		 * Sets the config group of the given @ref KConfig object to
+		 * this setting's config group (@ref m_strConfigGroup).
+		 */
+		void setConfigGroup( KConfig * ) const;
+
+		/**
+		 * This flag is set to true if the data in the corresponding configuration
+		 * dialog's page has been changed but not applied yet.
+		 */
+		bool m_bPageChanged;
+
+	protected slots:
+
+		/**
+		 * Sets the flag @ref m_bPageChanged to true.
+		 */
+		void slotDialogPageChanged();
+
+	private:
+
+		/**
+		 * name of the config group for this group of settings
+		 */
+		const QString m_strConfigGroup;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,35 @@
+/***************************************************************************
+                          kpgsqldialog  -  description
+                             -------------------
+    begin                : Ne úno 8 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#include "kpgsqldialog.h"
+
+#include <ktextedit.h>
+#include <klineedit.h>
+
+KPGSqlDialog::KPGSqlDialog(QWidget *parent, const QString & strSQL, const QString &strMessage)
+ : KPGSqlDialogBase(parent, "SQL dialog")
+{
+	m_pTextEditQuery->setText(strSQL);
+	m_pLineEditMessage->setText(strMessage);
+}
+
+
+KPGSqlDialog::~KPGSqlDialog()
+{
+}
+
+
+#include "kpgsqldialog.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialog.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,36 @@
+/***************************************************************************
+                          kpgsqldialog  -  description
+                             -------------------
+    begin                : Ne úno 8 2004
+    copyright            : (C) 2004 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+#ifndef KPGSQLDIALOG_H
+#define KPGSQLDIALOG_H
+
+#include "kpgsqldialogbase.h"
+
+/**
+SQL query dialog. For internal use only.
+
+ at author Lumir Vanek
+*/
+
+class KPGSqlDialog : public KPGSqlDialogBase
+{
+Q_OBJECT
+public:
+    KPGSqlDialog(QWidget *parent, const QString &, const QString &);
+    ~KPGSqlDialog();
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,111 @@
+#include <kdialog.h>
+#include <klocale.h>
+/****************************************************************************
+** Form implementation generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpgsqldialogbase.ui'
+**
+** Created: Út dub 1 13:07:12 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#include "kpgsqldialogbase.h"
+
+#include <qvariant.h>
+#include <ktextedit.h>
+#include <qlabel.h>
+#include <qlineedit.h>
+#include <qpushbutton.h>
+#include <qlayout.h>
+#include <qtooltip.h>
+#include <qwhatsthis.h>
+#include "ktextedit.h"
+
+/*
+ *  Constructs a KPGSqlDialogBase as a child of 'parent', with the
+ *  name 'name' and widget flags set to 'f'.
+ *
+ *  The dialog will by default be modeless, unless you set 'modal' to
+ *  TRUE to construct a modal dialog.
+ */
+KPGSqlDialogBase::KPGSqlDialogBase( QWidget* parent, const char* name, bool modal, WFlags fl )
+    : QDialog( parent, name, modal, fl )
+{
+    if ( !name )
+	setName( "KPGSqlDialogBase" );
+    setSizeGripEnabled( TRUE );
+    KPGSqlDialogBaseLayout = new QGridLayout( this, 1, 1, 11, 6, "KPGSqlDialogBaseLayout"); 
+
+    m_pTextEditQuery = new KTextEdit( this, "m_pTextEditQuery" );
+    m_pTextEditQuery->setReadOnly( TRUE );
+
+    KPGSqlDialogBaseLayout->addWidget( m_pTextEditQuery, 3, 0 );
+
+    textLabel1 = new QLabel( this, "textLabel1" );
+
+    KPGSqlDialogBaseLayout->addWidget( textLabel1, 2, 0 );
+
+    m_pLineEditMessage = new QLineEdit( this, "m_pLineEditMessage" );
+    m_pLineEditMessage->setReadOnly( TRUE );
+
+    KPGSqlDialogBaseLayout->addWidget( m_pLineEditMessage, 1, 0 );
+
+    textLabel2 = new QLabel( this, "textLabel2" );
+
+    KPGSqlDialogBaseLayout->addWidget( textLabel2, 0, 0 );
+
+    Layout1 = new QHBoxLayout( 0, 0, 6, "Layout1"); 
+    Horizontal_Spacing2 = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
+    Layout1->addItem( Horizontal_Spacing2 );
+
+    buttonOk = new QPushButton( this, "buttonOk" );
+    buttonOk->setAutoDefault( TRUE );
+    buttonOk->setDefault( TRUE );
+    Layout1->addWidget( buttonOk );
+
+    buttonCancel = new QPushButton( this, "buttonCancel" );
+    buttonCancel->setAutoDefault( TRUE );
+    Layout1->addWidget( buttonCancel );
+
+    KPGSqlDialogBaseLayout->addLayout( Layout1, 5, 0 );
+
+    textLabelMessage = new QLabel( this, "textLabelMessage" );
+
+    KPGSqlDialogBaseLayout->addWidget( textLabelMessage, 4, 0 );
+    languageChange();
+    resize( QSize(511, 429).expandedTo(minimumSizeHint()) );
+    clearWState( WState_Polished );
+
+    // signals and slots connections
+    connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
+    connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
+
+    // buddies
+    textLabel1->setBuddy( m_pTextEditQuery );
+}
+
+/*
+ *  Destroys the object and frees any allocated resources
+ */
+KPGSqlDialogBase::~KPGSqlDialogBase()
+{
+    // no need to delete child widgets, Qt does it all for us
+}
+
+/*
+ *  Sets the strings of the subwidgets using the current
+ *  language.
+ */
+void KPGSqlDialogBase::languageChange()
+{
+    setCaption( tr2i18n( "SQL query" ) );
+    textLabel1->setText( tr2i18n( "SQL query:" ) );
+    textLabel2->setText( tr2i18n( "Message:" ) );
+    buttonOk->setText( tr2i18n( "&OK" ) );
+    buttonOk->setAccel( QKeySequence( QString::null ) );
+    buttonCancel->setText( tr2i18n( "&Cancel" ) );
+    buttonCancel->setAccel( QKeySequence( QString::null ) );
+    textLabelMessage->setText( tr2i18n( "Pleasse report this error to <font face=\"Adobe Courier\">lvanek at users.sourceforge.net</font> with subject <b>KPoGre SQL bug report</b>. Send error message text, SQL query and your PostgreSQL server version." ) );
+}
+
+#include "kpgsqldialogbase.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,51 @@
+/****************************************************************************
+** Form interface generated from reading ui file '/home/lvanek/Projects/Own/kpogre/kpogre/kpgsqldialogbase.ui'
+**
+** Created: Út dub 1 13:07:11 2008
+**      by: The User Interface Compiler ($Id: qt/main.cpp   3.3.7   edited Aug 31 2005 $)
+**
+** WARNING! All changes made in this file will be lost!
+****************************************************************************/
+
+#ifndef KPGSQLDIALOGBASE_H
+#define KPGSQLDIALOGBASE_H
+
+#include <qvariant.h>
+#include <qdialog.h>
+
+class QVBoxLayout;
+class QHBoxLayout;
+class QGridLayout;
+class QSpacerItem;
+class KTextEdit;
+class QLabel;
+class QLineEdit;
+class QPushButton;
+
+class KPGSqlDialogBase : public QDialog
+{
+    Q_OBJECT
+
+public:
+    KPGSqlDialogBase( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 );
+    ~KPGSqlDialogBase();
+
+    KTextEdit* m_pTextEditQuery;
+    QLabel* textLabel1;
+    QLineEdit* m_pLineEditMessage;
+    QLabel* textLabel2;
+    QPushButton* buttonOk;
+    QPushButton* buttonCancel;
+    QLabel* textLabelMessage;
+
+protected:
+    QGridLayout* KPGSqlDialogBaseLayout;
+    QHBoxLayout* Layout1;
+    QSpacerItem* Horizontal_Spacing2;
+
+protected slots:
+    virtual void languageChange();
+
+};
+
+#endif // KPGSQLDIALOGBASE_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.ui
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.ui	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqldialogbase.ui	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,154 @@
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
+<class>KPGSqlDialogBase</class>
+<comment>Helper dialog for displaing SQL query. For debuging use only.</comment>
+<author>Lumir Vanek</author>
+<widget class="QDialog">
+    <property name="name">
+        <cstring>KPGSqlDialogBase</cstring>
+    </property>
+    <property name="geometry">
+        <rect>
+            <x>0</x>
+            <y>0</y>
+            <width>511</width>
+            <height>429</height>
+        </rect>
+    </property>
+    <property name="caption">
+        <string>SQL query</string>
+    </property>
+    <property name="sizeGripEnabled">
+        <bool>true</bool>
+    </property>
+    <grid>
+        <property name="name">
+            <cstring>unnamed</cstring>
+        </property>
+        <widget class="KTextEdit" row="3" column="0">
+            <property name="name">
+                <cstring>m_pTextEditQuery</cstring>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QLabel" row="2" column="0">
+            <property name="name">
+                <cstring>textLabel1</cstring>
+            </property>
+            <property name="text">
+                <string>SQL query:</string>
+            </property>
+            <property name="buddy" stdset="0">
+                <cstring>m_pTextEditQuery</cstring>
+            </property>
+        </widget>
+        <widget class="QLineEdit" row="1" column="0">
+            <property name="name">
+                <cstring>m_pLineEditMessage</cstring>
+            </property>
+            <property name="readOnly">
+                <bool>true</bool>
+            </property>
+        </widget>
+        <widget class="QLabel" row="0" column="0">
+            <property name="name">
+                <cstring>textLabel2</cstring>
+            </property>
+            <property name="text">
+                <string>Message:</string>
+            </property>
+        </widget>
+        <widget class="QLayoutWidget" row="5" column="0">
+            <property name="name">
+                <cstring>Layout1</cstring>
+            </property>
+            <hbox>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <property name="margin">
+                    <number>0</number>
+                </property>
+                <property name="spacing">
+                    <number>6</number>
+                </property>
+                <spacer>
+                    <property name="name">
+                        <cstring>Horizontal Spacing2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>20</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>buttonOk</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;OK</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                    <property name="default">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+                <widget class="QPushButton">
+                    <property name="name">
+                        <cstring>buttonCancel</cstring>
+                    </property>
+                    <property name="text">
+                        <string>&amp;Cancel</string>
+                    </property>
+                    <property name="accel">
+                        <string></string>
+                    </property>
+                    <property name="autoDefault">
+                        <bool>true</bool>
+                    </property>
+                </widget>
+            </hbox>
+        </widget>
+        <widget class="QLabel" row="4" column="0">
+            <property name="name">
+                <cstring>textLabelMessage</cstring>
+            </property>
+            <property name="text">
+                <string>Pleasse report this error to &lt;font face="Adobe Courier"&gt;lvanek at users.sourceforge.net&lt;/font&gt; with subject &lt;b&gt;KPoGre SQL bug report&lt;/b&gt;. Send error message text, SQL query and your PostgreSQL server version.</string>
+            </property>
+        </widget>
+    </grid>
+</widget>
+<connections>
+    <connection>
+        <sender>buttonOk</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSqlDialogBase</receiver>
+        <slot>accept()</slot>
+    </connection>
+    <connection>
+        <sender>buttonCancel</sender>
+        <signal>clicked()</signal>
+        <receiver>KPGSqlDialogBase</receiver>
+        <slot>reject()</slot>
+    </connection>
+</connections>
+<layoutdefaults spacing="6" margin="11"/>
+<includehints>
+    <includehint>ktextedit.h</includehint>
+</includehints>
+</UI>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,22 @@
+//
+// C++ Implementation: kpgsqlexception
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgsqlexception.h"
+
+KPGSqlException::KPGSqlException(const char* what, const QString & strSql)
+ : std::runtime_error(what)
+{
+    m_strSql = strSql;
+}
+
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgsqlexception.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,37 @@
+//
+// C++ Interface: kpgsqlexception
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2007
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGSQLEXCEPTION_H
+#define KPGSQLEXCEPTION_H
+
+#include <stdexcept>
+
+// include files for Qt
+#include <qstring.h>
+
+/**
+SQL Exception, contain info about SQL statement, that cause it
+
+	@author Lumir Vanek <lvanek at users.sourceforge.net>
+*/
+class KPGSqlException : public std::runtime_error
+{
+public:
+    KPGSqlException(const char* what, const QString & strSql);
+    ~KPGSqlException() throw() {;}
+
+    const QString & getSql() const { return m_strSql; }
+protected:
+
+    QString m_strSql;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,369 @@
+//
+// C++ Implementation: kpgutil
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpgutil.h"
+
+
+#include <qtable.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+#include <qinputdialog.h>
+
+// include files for KDE
+#include <kdebug.h>
+#include <kcombobox.h>
+#include <kiconloader.h>
+#include <klocale.h>
+
+#include "kpglinklabel.h"
+#include "DbObjects/kpgdatabase.h"
+#include "DbObjects/kpgschema.h"
+
+
+QPixmap * KPGUtil::m_pIconTrue = 0;
+QPixmap * KPGUtil::m_pIconFalse = 0;
+
+KPGUtil::KPGUtil()
+{
+}
+
+KPGUtil::~KPGUtil()
+{
+}
+
+const QString KPGUtil::quotedName(const QString &strName)
+{
+	if(strName.contains('\"'))
+	{
+		kdError() << k_funcinfo << "Name already contain quote: " << strName << endl;
+	}
+	
+	if(strName.contains('('))
+	{
+		int indexOfLeftParenthesis = strName.find('(');
+		QString strNamePart1 = strName.left(indexOfLeftParenthesis);
+		QString strNamePart2 = strName.mid(indexOfLeftParenthesis, strName.length() - indexOfLeftParenthesis);
+		
+		kdDebug() << strName << endl;
+		kdDebug() << strNamePart1 << endl;
+		kdDebug() << strNamePart2 << endl;
+		
+		if(strNamePart1.contains(' ') || containsUpperCase(strNamePart1))
+		{
+			return QString("\"" + strNamePart1 + "\"" + strNamePart2);
+		}
+	}
+	else
+	{
+		if(strName.contains(' ') || containsUpperCase(strName))
+		{
+			return QString("\"" + strName + "\"");
+		}
+	}
+	
+	return strName;
+}
+
+const QString KPGUtil::unspacedName(const QString &strName)
+{
+	QString strNameUnspaced = strName;
+	strNameUnspaced.replace(" ", "_");
+	return strNameUnspaced;
+}
+
+const QString KPGUtil::unquotedName(const QString &strName)
+{
+	QString strNameUnquoted = strName;
+	strNameUnquoted.replace("\"", "");
+	return strNameUnquoted;
+}
+
+const QString KPGUtil::fullyQualifiedName(
+	const QString &strNamespaceName, 
+	const QString &strObjectName)
+{
+	return QString(quotedName(strNamespaceName) + "." + quotedName(strObjectName));
+}
+
+// Return true, if given string contains Upper-case character
+const bool KPGUtil::containsUpperCase(const QString &strName)
+{
+	for(unsigned int i = 0; i < strName.length(); i++)
+	{
+		if(strName[i].category() == QChar::Letter_Uppercase)
+		{
+			return true;
+		}
+	}
+	return false;
+}
+
+int KPGUtil::fillPropertiesTable(const pqxx::result &pqxxResult, QTable *pTable, bool bAllowOidOnlyIn1stCol, int nMaxColumn)
+{
+	// Fill output area with query result
+	int nRows = pqxxResult.size();
+	int nCols = pqxxResult.columns();
+	
+	// Compute table columns. OIDs, that aren't 1.st in tuple are NOT displaied
+	int nTableCols = 0;
+	int nCol;
+  	for(nCol = 0; nCol < nCols; nCol++)
+  	{
+  		if(pqxxResult.column_type(nCol) == 26) // OID ?
+	  	{ ; /* do not count OIDs */ }
+		else
+		{
+			nTableCols++;
+		}
+		
+		if((nMaxColumn > 0) && (nTableCols >= nMaxColumn))
+			break;
+  	}
+	
+	// Set table size
+	pTable->setNumRows(nRows);
+  	pTable->setNumCols(nTableCols);
+
+	// fill table with result data
+	for(int nRow = 0; nRow < nRows; nRow++)
+  	{
+    	int nCol = 0;
+		for(int nTableCol = 0; nTableCol < nTableCols; nTableCol++)
+		{
+			if((!bAllowOidOnlyIn1stCol || (nCol == 0)) && (pqxxResult.column_type(nCol) == 26)) // OID ?
+			{
+				pqxx::oid oid = 0;
+				pqxxResult[nRow][nCol].to(oid);
+				nCol++;
+					
+				KPGLinkLabel *pLabel = new KPGLinkLabel( pTable/*, QString("%1").arg(oid) */);
+				pLabel->setValues(oid, pqxxResult[nRow][nCol].c_str());
+				pTable->setCellWidget(nRow, nTableCol, pLabel);
+			}
+			else
+			{
+				if(pqxxResult.column_type(nCol) != 26)
+				{
+					if(pqxxResult.column_type(nCol) == 16) // boolean
+					{
+					   bool bValue;
+					   pqxxResult[nRow][nCol].to(bValue);
+					   
+					   pTable->setPixmap(nRow, nTableCol, bValue ? *m_pIconTrue : *m_pIconFalse);
+					}
+					else
+					{
+					   QString strValue(pqxxResult[nRow][nCol].c_str());
+					   pTable->setText(nRow, nTableCol, strValue);
+					}
+					//kdDebug() << strValue << QString(" %1 ").arg(pqxxResult.column_type(nCol)) << endl;
+				}
+				else
+				{
+				    nCol++; // skip OID
+				    
+				    QString strValue(pqxxResult[nRow][nCol].c_str());
+					pTable->setText(nRow, nTableCol, strValue);
+				}
+			}
+			nCol++;
+		}
+  	}
+  	
+  	//--- Adjust DataTable columns size
+    for(int nCol = 0; nCol < nTableCols; nCol++)
+    {
+        pTable->adjustColumn(nCol);
+    }
+
+	return nTableCols;
+}
+
+void KPGUtil::fillComboBoxWithDatabaseSchemas(KPGDatabase *pDatabase, KComboBox *m_pComboBox, bool bOnlyUserSchemas)
+{
+	QListViewItem * pItem = pDatabase->firstChild();
+	while(pItem)
+	{
+		KPGTreeItem *pTreeItem = static_cast <KPGTreeItem *> (pItem);
+		
+		if(pTreeItem->type() == KPGTreeItem::nodeSchema)
+		{
+		  KPGSchema *pSchema = static_cast <KPGSchema *> (pTreeItem);
+		
+		  if(!bOnlyUserSchemas || !pSchema->isSystemObject())
+			m_pComboBox->insertItem(* pTreeItem->pixmap(0), pTreeItem->text(0));
+		}
+		
+		pItem = pItem->nextSibling();
+	}
+}
+
+void KPGUtil::copyCell(QTable *pTable)
+{
+	if(pTable)
+	{
+		int currentRow = pTable->currentRow();
+		int currentCol = pTable->currentColumn();
+		
+		if((currentRow >= 0) && (currentCol >= 0))
+		{	
+			QWidget *w = pTable->cellWidget(currentRow, currentCol);
+			if((w != 0) && (w->className() == QString("KPGLinkLabel")))
+			{
+				KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+				QApplication::clipboard()->setText(pLabel->text());
+			}
+			else
+			{
+				QApplication::clipboard()->setText(pTable->text(currentRow, currentCol));
+			}
+		}
+	}
+}
+
+void KPGUtil::copyRow(QTable *pTable)
+{
+	if(pTable)
+	{
+		int currentRow = pTable->currentRow();
+		if(currentRow >= 0)
+		{
+			QStringList strListSeparators;
+			strListSeparators << "," << ";" << "|" << " ";
+			QString strSeparator = QInputDialog::getItem( i18n("Field Separator ?"), i18n("Please choose a field separator !"), strListSeparators);
+					
+			QString strRow;
+			
+			for(int currentCol = 0; currentCol < pTable->numCols(); currentCol++)
+			{
+				if(currentCol > 0)
+				{
+					strRow.append(strSeparator);
+				}
+				strRow.append("\"");
+				
+				QWidget *w = pTable->cellWidget(currentRow, currentCol);
+				if((w != 0) && (w->className() == QString("KPGLinkLabel")))
+				{
+					KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+					strRow.append(pLabel->text());
+				}
+				else
+				{
+					strRow.append(pTable->text(currentRow, currentCol));
+				}
+								
+				strRow.append("\"");
+			}
+		
+			QApplication::clipboard()->setText(strRow);
+		}
+	}
+}
+
+void KPGUtil::copyTableCsv(QTable *pTable)
+{
+    if(pTable)
+	{
+		QStringList strListSeparators;
+		strListSeparators << "," << ";" << "|" << " ";
+		QString strSeparator = QInputDialog::getItem( i18n("Field Separator ?"), i18n("Please choose a field separator !"), strListSeparators);
+				
+		int cols = pTable->numCols();
+		int rows = pTable->numRows();
+		QString strTable;
+		
+		for(int currentRow = 0 ; currentRow < rows ; currentRow++)
+		{
+			for(int currentCol=0 ; currentCol < cols ; currentCol++)
+			{
+				if(currentCol > 0)
+				{
+					strTable.append(strSeparator);
+				}
+				strTable.append("\"");
+				
+				QWidget *w = pTable->cellWidget(currentRow, currentCol);
+				if((w != 0) && (w->className() == QString("KPGLinkLabel")))
+				{
+					KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+					strTable.append(pLabel->text());
+				}
+				else
+				{
+					strTable.append(pTable->text(currentRow, currentCol).stripWhiteSpace());
+				}
+				
+				strTable.append("\"");
+			}
+			strTable.append("\n");
+    	}
+    
+    	QApplication::clipboard()->setText(strTable);
+	}
+}
+
+void KPGUtil::copyTableXml(QTable *pTable)
+{
+	if(pTable)
+	{
+		int cols = pTable->numCols();
+		int rows = pTable->numRows();
+		
+		// field names
+		QHeader* hHeader = pTable->horizontalHeader();
+		
+		QString strTable("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+		
+		strTable.append("<table>\n");
+		
+		for(int currentRow = 0 ; currentRow < rows ; currentRow++)
+		{
+			strTable.append("<row");
+			
+			for(int currentCol=0 ; currentCol < cols ; currentCol++)
+			{
+				strTable.append(" ");
+				
+				QString strAttributeName(hHeader->label(currentCol));
+				strAttributeName = strAttributeName.replace(' ', '_');
+				
+				strTable.append(strAttributeName);
+				strTable.append("=\"");
+					
+				QString strValue;
+				
+				QWidget *w = pTable->cellWidget(currentRow, currentCol);
+				if((w != 0) && (w->className() == QString("KPGLinkLabel")))
+				{
+					KPGLinkLabel *pLabel = static_cast <KPGLinkLabel *> (w);
+					strValue =  pLabel->text();
+				}
+				else
+				{
+					strValue = pTable->text(currentRow, currentCol).stripWhiteSpace();
+				}
+				
+				strValue = strValue.replace("<", "&lt;");
+				strValue = strValue.replace(">", "&gt;");
+				strValue = strValue.replace("\"", "");
+				
+				strTable.append(strValue);
+				strTable.append("\"");
+			}
+			
+			strTable.append(" />\n");
+		}
+		strTable.append("</table>\n");
+		
+		QApplication::clipboard()->setText(strTable);
+	}
+}

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpgutil.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,59 @@
+//
+// C++ Interface: kpgutil
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPGUTIL_H
+#define KPGUTIL_H
+
+// include files for Qt
+#include <qstring.h>
+#include <qpixmap.h>
+
+// include files for libpgxx 
+#include <pqxx/result> 
+
+// Forward references
+class QTable;
+class KComboBox;
+class KPGDatabase;
+
+/**
+  * Utility class with some helpful static functions
+  *
+  * @author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPGUtil
+{
+private:
+    KPGUtil(); // Don't instantiate me
+    ~KPGUtil();
+
+public:
+	static const QString quotedName(const QString &);
+	static const QString unquotedName(const QString &);
+	static const QString unspacedName(const QString &);
+	static const QString fullyQualifiedName(const QString &, const QString &);
+	static const bool containsUpperCase(const QString &);
+	
+	static int fillPropertiesTable(const pqxx::result &, QTable *, bool = true, int = -1);
+	static void fillComboBoxWithDatabaseSchemas(KPGDatabase *, KComboBox *, bool = false);
+
+	//--- Common clibpoard action handling
+    static void copyCell(QTable *);
+    static void copyRow(QTable *);
+    static void copyTableCsv(QTable *);
+    static void copyTableXml(QTable *);
+
+public:
+    static QPixmap *m_pIconTrue;
+	static QPixmap *m_pIconFalse;
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogre.desktop
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogre.desktop	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogre.desktop	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,12 @@
+# KDE Config File  
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Exec=kpogre -caption "%c" %i %m  
+Icon=kpogre.png
+DocPath=kpogre/index.html
+Comment=
+Comment[de]=
+Terminal=0
+Name=KPoGre
+Name[de]=KPoGre

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,217 @@
+//
+// C++ Implementation: kpogrecomboaction
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpogrecomboaction.h"
+
+// include files for QT
+#include <qwhatsthis.h>
+#include <qdragobject.h>
+#include <qcombobox.h>
+#include <qapplication.h>
+
+// include files for KDE
+#include <ktoolbar.h>
+#include <kiconloader.h>
+#include <kmimetype.h>
+#include <kdebug.h>
+
+KPoGreComboAction::KPoGreComboAction(const QString& text,
+                                             int accel,
+                                             const QObject *receiver,
+                                             const char *member,
+                                             QObject* parent,
+                                             const char* name)
+ : KAction(text, accel, parent, name),
+      m_pCombo(0)
+{
+	m_receiver = receiver;
+  m_member = member;
+}
+
+
+KPoGreComboAction::~KPoGreComboAction()
+{
+}
+
+QComboBox* KPoGreComboAction::comboBox()
+{
+ 	return m_pCombo;
+}
+
+int KPoGreComboAction::plug(QWidget *w, int index)
+{
+  //  if ( !w->inherits( "KToolBar" ) );
+  //    return -1;
+
+  KToolBar *toolBar = (KToolBar *) w;
+
+  int id = KAction::getToolButtonID();
+  //kdDebug() << "KPoGreComboAction::plug id=" << id << endl;
+
+  m_pCombo = new QComboBox( toolBar, "Path Combo" );
+  m_pCombo->setEditable(true);
+  m_pCombo->setInsertionPolicy(QComboBox::NoInsertion);
+  toolBar->insertWidget( id, 70, m_pCombo, index );
+  connect( m_pCombo, SIGNAL(activated(const QString&)), m_receiver, m_member );
+
+  addContainer( toolBar, id );
+
+  connect(toolBar, SIGNAL(destroyed()), this, SLOT(slotDestroyed()));
+
+  toolBar->setItemAutoSized(id, true);
+
+  QWhatsThis::add( m_pCombo, whatsThis() );
+
+  return containerCount() - 1;
+}
+
+void KPoGreComboAction::unplug(QWidget *w)
+{
+//  if ( !w->inherits( "KToolBar" ) )
+//    return;
+
+  KToolBar *toolBar = (KToolBar *)w;
+
+  int idx = findContainer( w );
+  //kdDebug() << "KPoGreComboAction::unplug idx=" << idx << " menuId=" << menuId(idx) << endl;
+
+  toolBar->removeItem( menuId( idx ) );
+
+  removeContainer( idx );
+  m_pCombo = 0;
+}
+
+void KPoGreComboAction::slotClear()
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::slotClear action not plugged" << endl;
+    return;
+  }
+
+  m_pCombo->clear();
+}
+
+void KPoGreComboAction::slotClearEdit()
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::slotClearEdit action not plugged" << endl;
+    return;
+  }
+
+  m_pCombo->clearEdit();
+}
+
+void KPoGreComboAction::slotFocusEdit()
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::slotFocusEdit action not plugged" << endl;
+    return;
+  }
+
+  m_pCombo->setFocus();
+}
+
+QString KPoGreComboAction::currentText() const
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::currentText action not plugged" << endl;
+    return QString::null;
+  }
+
+  return m_pCombo->currentText();
+}
+
+const QPixmap * KPoGreComboAction::currentPixmap() const
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::currentPixmap action not plugged" << endl;
+    return 0;
+  }
+
+  return m_pCombo->pixmap( m_pCombo->currentItem() );
+}
+
+void KPoGreComboAction::insertItem( const QPixmap & pixmap, const QString & text )
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::insertItem action not plugged" << endl;
+    return;
+  }
+
+	if ( text.isEmpty() )
+    kdWarning() << "KPoGreComboAction::insertItem empty string as parameter" << endl;
+
+  int nIndex = findItem(text);
+  if ( nIndex != -1 )
+    m_pCombo->removeItem(nIndex);
+
+  m_pCombo->insertItem( pixmap, text, 0 );
+  m_pCombo->setCurrentItem(0);
+
+  if ( m_pCombo->count() > 15 ) // max 15 item in path combo
+    m_pCombo->removeItem(15);
+}
+
+void KPoGreComboAction::removeItem( const QString & text )
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "KPoGreComboAction::removeItem action not plugged" << endl;
+    return;
+  }
+
+  int nIndex = findItem(text);
+  if ( nIndex == -1 )
+  {
+    kdDebug() << "KPoGreComboAction::removeItem item not found" << endl;
+    return;
+  }
+
+  m_pCombo->removeItem(nIndex);
+}
+
+int KPoGreComboAction::findItem( const QString & text )
+{
+  if ( containerCount() == 0 )
+  {
+    kdWarning() << "[KPoGreComboAction::findItem] action not plugged" << endl;
+    return -1;
+  }
+
+  int nIndex = -1;
+  int i=0;
+  while ( ( i < m_pCombo->count() ) && ( nIndex == -1 ) )
+  {
+    if ( m_pCombo->text(i) == text )
+      nIndex = i;
+    i++;
+  }
+
+  return nIndex;
+}
+
+ToolbarLabel::ToolbarLabel(  const QString& text )
+  : QLabel( text, 0L, "kde toolbar widget" )	// Use this name for it to be styled!
+{
+  setBackgroundMode( Qt::PaletteButton );
+  setAlignment( (QApplication::reverseLayout() ? Qt::AlignRight : Qt::AlignLeft) |
+                 Qt::AlignVCenter | Qt::ShowPrefix );
+  adjustSize();
+}
+
+
+#include "kpogrecomboaction.moc"

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecomboaction.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,87 @@
+//
+// C++ Interface: kpogrecomboaction
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2004
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPOGRECOMBOACTION_H
+#define KPOGRECOMBOACTION_H
+
+#include <kaction.h>
+#include <qlabel.h>
+
+class QComboBox;
+
+/**
+A Path bar
+
+ at author Lumir Vanek
+*/
+
+class KPoGreComboAction : public KAction
+{
+Q_OBJECT
+public:
+    KPoGreComboAction(const QString& text, int accel, const QObject *receiver, const char *member, QObject* parent, const char* name);
+    ~KPoGreComboAction();
+
+		virtual int plug(QWidget *w, int index = -1);
+
+    virtual void unplug(QWidget *w);
+
+    /** Returns the text from the combobox' editline (@ref QComboBox::currentText). */
+    QString currentText() const;
+
+    /** Returns the current pixmap or 0, if there isn't any (see @ref QComboBox::pixmap). */
+    const QPixmap * currentPixmap() const;
+
+    /**
+     * Inserts the given item as the first.
+     * Deletes the old entry, if the item was already in the list.
+     */
+    void insertItem( const QPixmap & pixmap, const QString & text );
+
+    /** Tries to remove the item with the given text. */
+    void removeItem( const QString & text );
+
+    /** returns combo box */
+    QComboBox *comboBox();
+
+public slots:
+    /** Clears the whole combobox using @ref QComboBox::clear. */
+    void slotClear();
+    
+    /** Clears the combobox' editline. */
+    void slotClearEdit();
+    
+    /** Gives focus to the combobox' editline. */
+    void slotFocusEdit();
+
+protected:
+    /**
+     * Tries to find an item with the given text. If it finds it,
+     * the items id is returned, otherwise -1.
+     */
+    virtual int findItem( const QString & text );
+
+private:
+    const QObject *m_receiver;
+    const char *m_member;
+    QComboBox * m_pCombo;
+};
+
+
+class ToolbarLabel : public QLabel
+{
+    Q_OBJECT
+public:
+    ToolbarLabel( const QString & text );
+};
+
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1865 @@
+//
+// C++ Implementation: kpogrecontroller
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#include "kpogrecontroller.h"
+
+// include files for Qt
+#include <qtextcodec.h>
+#include <qprinter.h>
+#include <qinputdialog.h>
+#include <qapplication.h>
+#include <qclipboard.h>
+
+// include files for KDE
+#include <kactioncollection.h>
+#include <kiconloader.h>
+#include <kfiledialog.h>
+#include <kcursor.h>
+#include <kdebug.h>
+#include <kstatusbar.h>
+#include <ktextedit.h>
+#include <kencodingfiledialog.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+
+// application specific includes
+#include "kpogrecomboaction.h"
+#include "kpgsearchdialog.h"
+#include "kpgbookmarksbutton.h"
+#include "kpglinklabel.h"
+
+// Property page includes
+#include "PropertyPages/kpgabstractpropertypage.h"
+#include "PropertyPages/kpgpropertypagechildview.h"
+
+// Query result includes
+#include "QueryResult/kpgqueryresultchildview.h"
+#include "QueryResult/kpgqueryresultwindow.h"
+
+// Data table includes 
+#include "DataTable/kpgdatatablechildview.h"
+#include "DataTable/kpgdatatable.h"
+#include "DataTable/kpgdatatabledialog.h"
+
+// Function executor includes 
+#include "Executor/kpgexecutorchildview.h"
+#include "Executor/kpgexecutor.h"
+
+// PL/pgSQL debugger includes 
+#include "Debugger/kpgdebuggerchildview.h"
+#include "Debugger/kpgdebugger.h"
+
+#include "QueryResult/kpgsqledit.h"
+
+
+// Database objects includes
+#include "DbObjects/kpgserver.h"
+#include "DbObjects/kpgfunction.h"
+#include "DbObjects/kpgtablespace.h"
+#include "DbObjects/kpgdatabase.h"
+#include "DbObjects/kpgschema.h"
+#include "DbObjects/kpgtrigger.h"
+#include "DbObjects/kpgdomain.h"
+#include "DbObjects/kpgtable.h"
+#include "DbObjects/kpgtablecolumn.h"
+#include "DbObjects/kpgtableindex.h"
+
+KPoGreController::KPoGreController(KPoGreView *pOwnerView)
+ : QObject()
+{
+	m_pView = pOwnerView;
+	m_pDlgSearch = 0;
+}
+
+
+KPoGreController::~KPoGreController()
+{
+	if(m_pDlgSearch)
+		delete m_pDlgSearch; 
+}
+
+void KPoGreController::initActions(KActionCollection * pActionCollection)
+{
+	//-----------------------------------------------------------------
+	// File menu
+	
+	m_pActFileNewWindow = new KAction(i18n("New &Window"), 0, 0, this, SLOT(slotFileNewWindow()), pActionCollection,"file_new_window");
+	
+	m_pActFileNew = KStdAction::openNew(this, SLOT(slotFileNew()), pActionCollection);
+	
+	m_pActFileOpen = KStdAction::open(this, SLOT(slotFileOpen()), pActionCollection);
+	
+	m_pActFileOpenRecent = KStdAction::openRecent(this, SLOT(slotFileOpenRecent(const KURL&)), pActionCollection);
+	
+	m_pActFileExportResult = new KAction(i18n("&Export Result..."), "fileexport", 0, this, SLOT(slotExportResult()), pActionCollection, "export_result");
+		
+	m_pActFileClose = KStdAction::close(this, SLOT(slotFileClose()), pActionCollection);
+		
+	m_pActFileQuit = KStdAction::quit(this, SLOT(slotFileQuit()), pActionCollection);
+	
+	m_pActFileNewWindow->setStatusText(i18n("Opens a new application window"));
+	m_pActFileNew->setStatusText(i18n("Creates a new document"));
+	m_pActFileOpen->setStatusText(i18n("Opens an existing document"));
+	m_pActFileOpenRecent->setStatusText(i18n("Opens a recently used file"));
+	//m_pActFileSave->setStatusText(i18n("Saves the actual document"));
+	//m_pActFileSaveAs->setStatusText(i18n("Saves the actual document as..."));
+	m_pActFileClose->setStatusText(i18n("Closes the actual document"));
+	//m_pActFilePrint ->setStatusText(i18n("Prints out the actual document"));
+	m_pActFileQuit->setStatusText(i18n("Quits the application"));
+	
+	//-----------------------------------------------------------------
+	// Edit menu
+		
+	m_pActEditFindInTree = new KAction(i18n("Find in tree..."), "find", 0,  this, SLOT(slotEditFindInTree()), pActionCollection, "edit_find_in_tree" );
+	
+	m_pActEditFindNextInTree = new KAction(i18n("Find next in tree"), "next", 0,  this, SLOT(slotEditFindNextInTree()), pActionCollection, "edit_find_next_in_tree" );
+	
+
+  	//-----------------------------------------------------------------
+	// View menu
+  																		
+	m_pActViewToolBar = KStdAction::showToolbar(this, SLOT(slotViewToolBar()), pActionCollection, "showtoolbar");
+  	m_pActViewStatusBar = KStdAction::showStatusbar(this, SLOT(slotViewStatusBar()), pActionCollection, "settings_show_statusbar");
+ 
+    //-----------------------------------------------------------------
+	// Database menu       
+	m_pActDatabaseConnect = new KAction(i18n("&Connect..."), "connect_established", 0, this, SLOT(slotDatabaseConnect()), pActionCollection, "connect");
+	
+	m_pActDatabaseDisconnect = new KAction(i18n("&Disconnect"), "connect_no", 0, this, SLOT(slotDatabaseDisconnect()), pActionCollection, "disconnect");
+	
+	m_pActDatabaseWizard = new KAction(i18n("&Wizard..."), "wizard", Key_F9, this, SLOT(slotDatabaseWizard()), pActionCollection, "wizard");
+			
+  	//-----------------------------------------------------------------
+	// Settings menu
+	KStdAction::keyBindings(m_pView, SLOT(slotConfigureKeys()), pActionCollection, "options_configure_keys");
+	
+  	KStdAction::configureToolbars(m_pView, SLOT(slotConfigToolbars()), pActionCollection, "options_configure_toolbars");
+	
+	KStdAction::preferences(m_pView, SLOT(slotConfigure()), pActionCollection, "settings_configure");
+	
+  	//-----------------------------------------------------------------
+	//-----------------------------------------------------------------
+	// Popup menus
+  	//-----------------------------------------------------------------
+  	//-----------------------------------------------------------------
+  
+	m_pActFolderRefresh = new KAction( i18n("&Refresh"), "reload", SHIFT+Key_F5, this, SLOT(slotRefresh()), pActionCollection, "refresh" );
+	
+	//--- Server related menu actions
+	(void) new KAction( i18n("&Reload configuration..."), 0, 0, this, SLOT(slotReloadServerConfig()), pActionCollection, "server_reload_config" );
+	
+	(void) new KAction( i18n("Rotate &log file..."), 0, 0, this, SLOT(slotRotateServerLogFile()), pActionCollection, "server_rotate_log_file" );
+	
+	//--- Database related menu actions
+	
+	(void) new KAction( i18n("&Create database..."), "wizard", 0, this, SLOT(slotCreateDatabase()), pActionCollection, "create_database" );
+	
+	(void) new KAction( i18n("&Drop database..."), "editdelete", 0, this, SLOT(slotDropDatabase()), pActionCollection, "drop_database" );
+ 
+    (void) new KAction( i18n("&Analyze..."), 0, 0, this, SLOT(slotAnalyseDatabase()), pActionCollection, "analyse_database" );
+    
+    (void) new KAction( i18n("Re&index..."), 0, 0, this, SLOT(slotReindexDatabase()), pActionCollection, "reindex_database" );
+        
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerDatabase()), pActionCollection, "set_owner_database" );
+    
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesDatabase()), pActionCollection, "grant_privileges_database" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesDatabase()), pActionCollection, "revoke_privileges_database" );
+    
+    (void) new KAction( i18n("Dump..."), 0, 0, this, SLOT(slotDumpDatabase()), pActionCollection, "dump_database" );
+    
+    (void) new KAction( i18n("Restore..."), 0, 0, this, SLOT(slotRestoreDatabase()), pActionCollection, "restore_database" );
+        
+    (void) new KAction( i18n("Disconnect from database"), "connect_no", 0, this, SLOT(slotDisconnectDatabase()), pActionCollection, "disconnect_database" );
+    
+	
+	//--- Schema related menu actions
+	
+	(void) new KAction( i18n("&Create schema..."), "wizard", 0, this, SLOT(slotCreateSchema()), pActionCollection, "create_schema" );
+	
+	(void) new KAction( i18n("&Drop schema..."), "editdelete", 0, this, SLOT(slotDropSchema()), pActionCollection, "drop_schema" );
+	
+	(void) new KAction( i18n("R&ename schema..."), "edittool", 0, this, SLOT(slotModifySchema()), pActionCollection, "rename_schema" );
+  
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerSchema()), pActionCollection, "set_owner_schema" );
+        
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesSchema()), pActionCollection, "grant_privileges_schema" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesSchema()), pActionCollection, "revoke_privileges_schema" );
+    
+	//--- Table related menu actions
+	
+	(void) new KAction( i18n("&Create table..."), "wizard", 0, this, SLOT(slotCreateTable()), pActionCollection, "create_table" );
+	
+	(void) new KAction( i18n("&Drop table..."), "editdelete", 0, this, SLOT(slotDropTable()), pActionCollection, "drop_table" );
+	
+    (void) new KAction( i18n("R&ename table..."), "edittool", 0, this, SLOT(slotRenameTable()), pActionCollection, "rename_table" );
+        
+    (void) new KAction( i18n("&Analyze table..."), 0, 0, this, SLOT(slotAnalyseTable()), pActionCollection, "analyse_table" );
+    
+    (void) new KAction( i18n("&Vacuum table..."), 0, 0, this, SLOT(slotVacuumTable()), pActionCollection, "vacuum_table" );
+    
+    (void) new KAction( i18n("Re&index table..."), 0, 0, this, SLOT(slotReindexTable()), pActionCollection, "reindex_table" );
+    
+    (void) new KAction( i18n("Set c&luster on..."), 0, 0, this, SLOT(slotSetClusterOnTable()), pActionCollection, "set_cluster_on_table" );
+    
+    (void) new KAction( i18n("Set &without cluster..."), 0, 0, this, SLOT(slotSetWithoutClusterTable()), pActionCollection, "set_wo_cluster_table" );
+    
+    (void) new KAction( i18n("&Cluster table..."), 0, 0, this, SLOT(slotClusterTable()), pActionCollection, "cluster_table" );
+    
+    (void) new KAction( i18n("Copy to &file..."), 0, 0, this, SLOT(slotCopyFromTable()), pActionCollection, "copy_from_table" );
+    
+    (void) new KAction( i18n("Cop&y from file..."), 0, 0, this, SLOT(slotCopyToTable()), pActionCollection, "copy_to_table" );
+    
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerTable()), pActionCollection, "set_owner_table" );
+    
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesTable()), pActionCollection, "grant_privileges_table" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesTable()), pActionCollection, "revoke_privileges_table" );
+  
+    (void) new KAction( i18n("Set tables&pace..."), 0, 0, this, SLOT(slotSetTablespaceTable()), pActionCollection, "set_tblspace_table" );
+  
+    (void) new KAction( i18n("Set without OIDs..."), 0, 0, this, SLOT(slotSetWithoutOIDsTable()), pActionCollection, "set_wo_oids_table" );
+    
+    (void) new KAction(i18n("Edit table content..."), "data", 0, this, SLOT(slotEditTableContent()), pActionCollection, "edit_table_content");
+    
+    (void) new KAction(i18n("Query table"), "exec", 0, this, SLOT(slotQueryTable()), pActionCollection, "query_table");
+    
+	//--- View related menu actions
+	
+	(void) new KAction( i18n("&Create view..."), "wizard", 0, this, SLOT(slotCreateView()), pActionCollection, "create_view" );
+	
+	(void) new KAction( i18n("&Drop view..."), "editdelete", 0, this, SLOT(slotDropView()), pActionCollection, "drop_view" );
+	
+	(void) new KAction( i18n("&Modify view..."), "edit", 0, this, SLOT(slotModifyView()), pActionCollection, "modify_view" );
+	
+	(void) new KAction( i18n("&Query view"), "exec", 0, this, SLOT(slotQueryView()), pActionCollection, "query_view" );
+  
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesView()), pActionCollection, "grant_privileges_view" );
+  
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesView()), pActionCollection, "revoke_privileges_view" );
+
+    //--- Tablespaces related menu actions
+    
+    (void) new KAction( i18n("&Create tablespace..."), "wizard", 0, this, SLOT(slotCreateTablespace()), pActionCollection, "create_tablespace" );
+    
+    (void) new KAction( i18n("&Drop tablespace..."), "editdelete", 0, this, SLOT(slotDropTablespace()), pActionCollection, "drop_tablespace" );
+    
+    (void) new KAction( i18n("&Rename tablespace..."), "edittool", 0, this, SLOT(slotRenameTablespace()), pActionCollection, "rename_tablespace" );
+    
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerTablespace()), pActionCollection, "set_owner_tablespace" );
+    
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesTablespace()), pActionCollection, "grant_privileges_tablespace" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesTablespace()), pActionCollection, "revoke_privileges_tablespace" );
+  
+	//--- User related menu actions
+	
+	(void) new KAction( i18n("&Create user..."), "wizard", 0, this, SLOT(slotCreateUser()), pActionCollection, "create_user" );
+	
+	(void) new KAction( i18n("&Drop user..."), "editdelete", 0, this, SLOT(slotDropUser()), pActionCollection, "drop_user" );
+	
+	(void) new KAction( i18n("&Modify user..."), "edit", 0, this, SLOT(slotModifyUser()), pActionCollection, "modify_user" );
+	
+	//--- Group related menu actions
+	
+	(void) new KAction( i18n("&Create group..."), "wizard", 0, this, SLOT(slotCreateGroup()), pActionCollection, "create_group" );
+	
+	(void) new KAction( i18n("&Drop group..."), "editdelete", 0, this, SLOT(slotDropGroup()), pActionCollection, "drop_group" );
+	
+	(void) new KAction( i18n("&Modify group..."), "edit", 0, this, SLOT(slotModifyGroup()), pActionCollection, "modify_group" );
+  
+    //--- Language related menu actions
+    
+    (void) new KAction( i18n("&Create language..."), "wizard", 0, this, SLOT(slotCreateLanguage()), pActionCollection, "create_language" );
+    
+    (void) new KAction( i18n("&Drop language..."), "editdelete", 0, this, SLOT(slotDropLanguage()), pActionCollection, "drop_language" );
+    
+    (void) new KAction( i18n("&Rename language..."), "edittool", 0, this, SLOT(slotModifyLanguage()), pActionCollection, "rename_language" );
+    
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesLanguage()), pActionCollection, "grant_privileges_language" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesLanguage()), pActionCollection, "revoke_privileges_language" );
+    
+    //--- Domain related menu actions
+    
+    (void) new KAction( i18n("&Create domain..."), "wizard", 0, this, SLOT(slotCreateDomain()), pActionCollection, "create_domain" );
+    
+    (void) new KAction( i18n("&Drop domain..."), "editdelete", 0, this, SLOT(slotDropDomain()), pActionCollection, "drop_domain" );
+    
+    (void) new KAction( i18n("Set &NOT NULL..."), 0, 0, this, SLOT(slotSetDomainNull()), pActionCollection, "set_domain_null" );
+    (void) new KAction( i18n("Set d&efault..."), 0, 0, this, SLOT(slotSetDomainDefault()), pActionCollection, "set_domain_default" );
+    (void) new KAction( i18n("Dr&op default..."), 0, 0, this, SLOT(slotDropDomainDefault()), pActionCollection, "drop_domain_default" );
+    
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerDomain()), pActionCollection, "set_owner_domain" );
+    
+    //--- Domain constraint related menu actions
+    
+    (void) new KAction( i18n("&Create constraint(s)..."), "wizard", 0, this, SLOT(slotCreateDomainConstraint()), pActionCollection, "create_domain_constraint" );
+    
+    (void) new KAction( i18n("&Drop constraint..."), "editdelete", 0, this, SLOT(slotDropDomainConstraint()), pActionCollection, "drop_domain_constraint" );
+        
+    //--- Function related menu actions
+    
+    (void) new KAction( i18n("&Create function..."), "wizard", 0, this, SLOT(slotCreateFunction()), pActionCollection, "create_function" );
+    
+    (void) new KAction( i18n("&Drop function..."), "editdelete", 0, this, SLOT(slotDropFunction()), pActionCollection, "drop_function" );
+    
+    (void) new KAction( i18n("&Rename function..."), "edittool", 0, this, SLOT(slotRenameFunction()), pActionCollection, "rename_function" );
+    
+    (void) new KAction( i18n("&Modify function..."), "edit", 0, this, SLOT(slotModifyFunction()), pActionCollection, "modify_function" );
+        
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesFunction()), pActionCollection, "grant_privileges_function" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesFunction()), pActionCollection, "revoke_privileges_function" );
+    
+    (void) new KAction( i18n("Execute function"), "exec", 0, this, SLOT(slotExecuteFunction()), pActionCollection, "execute_function" );
+    
+    (void) new KAction( i18n("Debug function"), "kpg_debugger", 0, this, SLOT(slotDebugFunction()), pActionCollection, "debug_function" );
+        
+    //--- Sequence related menu actions
+    
+    (void) new KAction( i18n("&Create sequence..."), "wizard", 0, this, SLOT(slotCreateSequence()), pActionCollection, "create_sequence" );
+    
+    (void) new KAction( i18n("&Drop sequence..."), "editdelete", 0, this, SLOT(slotDropSequence()), pActionCollection, "drop_sequence" );
+    
+    (void) new KAction( i18n("&Modify sequence..."), "edit", 0, this, SLOT(slotModifySequence()), pActionCollection, "modify_sequence" );
+    
+    (void) new KAction( i18n("Grant privileges..."), 0, 0, this, SLOT(slotGrantPrivilegesSequence()), pActionCollection, "grant_privileges_sequence" );
+    
+    (void) new KAction( i18n("Revoke privileges..."), 0, 0, this, SLOT(slotRevokePrivilegesSequence()), pActionCollection, "revoke_privileges_sequence" );
+    
+    //--- Column related menu actions
+    
+    (void) new KAction( i18n("&Create column(s)..."), "wizard", 0, this, SLOT(slotCreateColumn()), pActionCollection, "create_columns" );
+    
+    (void) new KAction( i18n("&Drop column..."), "editdelete", 0, this, SLOT(slotDropColumn()), pActionCollection, "drop_column" );
+    
+    (void) new KAction( i18n("&Rename column..."), "edittool", 0, this, SLOT(slotRenameColumn()), pActionCollection, "rename_column" );
+    
+    (void) new KAction( i18n("Set &NOT NULL..."), 0, 0, this, SLOT(slotSetColumnNull()), pActionCollection, "set_column_null" );
+    (void) new KAction( i18n("Set d&efault..."), 0, 0, this, SLOT(slotSetColumnDefault()), pActionCollection, "set_column_default" );
+    (void) new KAction( i18n("Dr&op default..."), 0, 0, this, SLOT(slotDropColumnDefault()), pActionCollection, "drop_column_default" );
+    (void) new KAction( i18n("Change &type..."), 0, 0, this, SLOT(slotChangeColumnType()), pActionCollection, "change_column_type" );
+    (void) new KAction( i18n("Set &storage..."), 0, 0, this, SLOT(slotSetColumnStorage()), pActionCollection, "set_column_storage" );
+    (void) new KAction( i18n("Set st&atistics..."), 0, 0, this, SLOT(slotSetColumnStatistisc()), pActionCollection, "set_column_stat" );
+        
+    //--- Constraint related menu actions
+    
+    (void) new KAction( i18n("&Create constraint(s)..."), "wizard", 0, this, SLOT(slotCreateConstraint()), pActionCollection, "create_constraints" );
+    
+    (void) new KAction( i18n("&Drop constraint..."), "editdelete", 0, this, SLOT(slotDropConstraint()), pActionCollection, "drop_constraint" );
+    
+    //--- Index related menu actions
+    
+    (void) new KAction( i18n("&Create index(es)..."), "wizard", 0, this, SLOT(slotCreateIndex()), pActionCollection, "create_indexes" );
+    
+    (void) new KAction( i18n("&Drop index..."), "editdelete", 0, this, SLOT(slotDropIndex()), pActionCollection, "drop_index" );
+    
+    (void) new KAction( i18n("&Rename index..."), "edittool", 0, this, SLOT(slotRenameIndex()), pActionCollection, "rename_index" );
+    
+    (void) new KAction( i18n("Re&index..."), 0, 0, this, SLOT(slotReindexIndex()), pActionCollection, "reindex_index" );
+    
+    (void) new KAction( i18n("Set &owner..."), 0, 0, this, SLOT(slotSetOwnerIndex()), pActionCollection, "set_owner_index" );
+    
+    (void) new KAction( i18n("Set tables&pace..."), 0, 0, this, SLOT(slotSetTablespaceIndex()), pActionCollection, "set_tblspace_index" );
+    
+    //--- Rule related menu actions
+    
+    (void) new KAction( i18n("&Create rule..."), "wizard", 0, this, SLOT(slotCreateRule()), pActionCollection, "create_rule" );
+    
+    (void) new KAction( i18n("&Drop rule..."), "editdelete", 0, this, SLOT(slotDropRule()), pActionCollection, "drop_rule" );
+    
+    //--- Trigger related menu actions
+    
+    (void) new KAction( i18n("&Create trigger..."), "wizard", 0, this, SLOT(slotCreateTrigger()), pActionCollection, "create_trigger" );
+    
+    (void) new KAction( i18n("&Drop trigger..."), "editdelete", 0, this, SLOT(slotDropTrigger()), pActionCollection, "drop_trigger" );
+    
+    (void) new KAction( i18n("&Enable trigger..."), 0, 0, this, SLOT(slotEnableTrigger()), pActionCollection, "enable_trigger" );
+    
+    (void) new KAction( i18n("&Rename trigger..."), "edittool", 0, this, SLOT(slotRenameTrigger()), pActionCollection, "rename_trigger" );
+    
+  	//--- Type related menu actions
+  
+  	(void) new KAction( i18n("&Create base type..."), "wizard", 0, this, SLOT(slotCreateBaseType()), pActionCollection, "create_base_type" );
+  
+  	(void) new KAction( i18n("&Create composite type..."), "wizard", 0, this, SLOT(slotCreateCompositeType()), pActionCollection, "create_composite_type" );
+  
+  	(void) new KAction( i18n("&Drop type..."), "editdelete", 0, this, SLOT(slotDropType()), pActionCollection, "drop_type" );
+  
+  	(void) new KAction( i18n("Set &owner"), 0, 0, this, SLOT(slotSetOwnerType()), pActionCollection, "set_owner_type" );
+  
+	//--- Common menu actions
+	(void) new KAction( i18n("Set description..."), "comment", 0, this, SLOT(slotSetDescription()), pActionCollection, "set_description" ); 
+  
+	//-----------------------------------------------------------------
+	// path toolbar
+  	//-----------------------------------------------------------------
+	m_pActPathCombo = new KPoGreComboAction( i18n("Path Bar"), 0, this,                                    SLOT(slotPathSelected(const QString &)), pActionCollection, "path_combo" );
+	
+	new KAction( i18n("Clear Path Bar"), BarIcon("locationbar_erase", 16), 0, this, SLOT(slotPathClear()), pActionCollection, "path_clear" );
+	
+	QLabel *locationLabel = new ToolbarLabel( i18n("Path: ") );
+	
+	new KWidgetAction( locationLabel, i18n("Path: "), 0, this, 0, pActionCollection, "path_label" );
+	
+	locationLabel->setBuddy( m_pActPathCombo->comboBox());
+	
+  
+    //----------------------------------------------------------------------------
+  	connect( m_pView, SIGNAL(sigSelectionChanged(const KPGTreeItem::eNodeType, KPGTreeItem *)), this, SLOT(slotSelectionChanged(const KPGTreeItem::eNodeType, KPGTreeItem *)) );
+		
+	m_pActDatabaseDisconnect->setEnabled(false);
+	m_pActDatabaseWizard->setEnabled(false);
+			
+	m_pActEditFindNextInTree->setEnabled(false);
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//                     ACTION SLOTS
+/////////////////////////////////////////////////////////////////////
+
+void KPoGreController::slotFileNewWindow()
+{
+	slotStatusMsg(i18n("Opening a new application window..."));
+		
+	KPoGreView *new_window = new KPoGreView(KMdi::IDEAlMode);
+	new_window->show();
+	
+	slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotFileNew()
+{
+  	slotStatusMsg(i18n("Creating new document..."));
+  	m_pView->createQueryResultChildView(QString::null, QString::null);
+  	slotStatusMsg(i18n("Ready.")); 
+}
+
+void KPoGreController::slotFileOpen()
+{
+	slotStatusMsg(i18n("Opening file..."));
+		
+	KPGQueryResultChildView* pChildView = m_pView->getActiveQueryResultChildView();
+  	if(pChildView == 0)
+  	{
+  		slotFileNew();
+  		slotFileOpen();
+  	}
+  	else
+  	{
+  		QString strEncoding(pChildView->encoding());
+  		if(strEncoding != QString::null)
+  		{
+  			KURL url = pChildView->url();
+  			
+  			KEncodingFileDialog::Result r = KEncodingFileDialog::getOpenURLAndEncoding(
+				strEncoding,
+				url.isEmpty() ? QString::null : url.url(),
+				i18n("*.sql|SQL files"),
+				m_pView,
+				i18n("Open File")
+				);
+				
+			for (KURL::List::Iterator i=r.URLs.begin(); i != r.URLs.end(); ++i)
+			{
+				pChildView->setEncoding(r.encoding);
+				if(pChildView->openDocument(*i))
+					m_pActFileOpenRecent->addURL( *i );
+					
+				break;
+			}
+  		}
+  		else
+  		{
+			KURL url = KFileDialog::getOpenURL(QString::null, 
+				i18n("*.sql|SQL files"), 
+				m_pView, 
+				i18n("Open File...")
+				);
+				
+			if(!url.isEmpty())
+			{
+				if(pChildView->openDocument(url))
+					m_pActFileOpenRecent->addURL( url );
+			}
+		}
+	}
+		
+	slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotFileOpenRecent(const KURL& url)
+{
+  	slotStatusMsg(i18n("Opening file..."));
+	
+  	KPGQueryResultChildView* pChildView = m_pView->getActiveQueryResultChildView();
+  	if(pChildView == 0)
+  	{
+  		slotFileNew();
+  		slotFileOpenRecent(url);
+  	}
+  	else
+  	{
+  		pChildView->openDocument(url);
+	}
+
+  	slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotFileClose()
+{
+	slotStatusMsg(i18n("Closing file..."));
+	m_pView->requestClose();
+	slotStatusMsg(i18n("Ready."));  
+}
+
+void KPoGreController::slotFileQuit()
+{
+	slotStatusMsg(i18n("Exiting..."));
+	m_pView->saveOptions();
+	m_pView->close();
+}
+
+void KPoGreController::slotEditFindInTree()
+{
+	slotStatusMsg( i18n("Find first occurence of text ...") );
+
+	if ( ! m_pDlgSearch )
+	{
+		m_pDlgSearch = new KPGSearchDialog( m_pView, "search dialog", true );
+	}
+	
+	if( m_pDlgSearch->exec() == KPGSearchDialog::Accepted )	
+	{	
+		slotEditFindNextInTree();
+		m_pActEditFindNextInTree->setEnabled(true);
+	}
+	
+	slotStatusMsg( i18n("Ready.") );
+}
+
+void KPoGreController::slotEditFindNextInTree()
+{
+	slotStatusMsg( i18n("Find next occurence of text ...") );
+
+    if(! m_pDlgSearch)
+    {
+         kdError() << k_funcinfo << " Implementation error - no search dialog" << endl;
+    }
+	else
+    {
+        m_pView->editFind(m_pDlgSearch->getSearchString(), m_pDlgSearch->getOIDs(), m_pDlgSearch->getInNames());
+    }
+    	
+	slotStatusMsg( i18n("Ready.") );
+}
+
+void KPoGreController::slotViewToolBar()
+{
+    slotStatusMsg(i18n("Toggling toolbar..."));
+    ///////////////////////////////////////////////////////////////////
+    // turn Toolbar on or off
+    if(!m_pActViewToolBar->isChecked())
+    {
+        m_pView->toolBar("mainToolBar")->hide();
+    }
+    else
+    {
+        m_pView->toolBar("mainToolBar")->show();
+    }		
+    
+    slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotViewStatusBar()
+{
+    slotStatusMsg(i18n("Toggle the statusbar..."));
+    
+    //turn Statusbar on or off
+    if(!m_pActViewStatusBar->isChecked())
+    {
+        m_pView->statusBar()->hide();
+    }
+    else
+    {
+        m_pView->statusBar()->show();
+    }
+    
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Connect to Database Server
+void KPoGreController::slotDatabaseConnect()
+{
+	slotStatusMsg(i18n("Connect to server ..."));
+	m_pView->setCursor(KCursor::waitCursor());
+	
+	m_pView->databaseConnect();
+	
+	m_pView->setCursor(KCursor::arrowCursor());
+	slotStatusMsg(i18n("Ready."));
+}
+
+// Disconnect Database 
+void KPoGreController::slotDatabaseDisconnect()
+{
+	slotStatusMsg(i18n("Disconnect from server"));
+	m_pView->databaseDisconnect();
+	slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotDatabaseWizard()
+{
+    slotStatusMsg(i18n("Run wizard"));
+    m_pView->databaseWizard();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Save query result to file 
+void KPoGreController::slotExportResult()
+{
+	QTable* outputArea = m_pView->getCurrentlySelectedTableResult();
+    if(!outputArea)
+    {
+    	KMessageBox::sorry(m_pView, i18n("No result for export")); 
+    	return;        
+    }
+                    
+    int cols = outputArea->numCols();
+    int rows = outputArea->numRows();
+    if((cols == 0) || (rows == 0))
+    {
+    	KMessageBox::sorry(m_pView, i18n("Result is empty")); 
+    	return;        
+    }
+            
+	QString fileName = KFileDialog::getSaveFileName( QString(getenv("HOME") ), QString("*.csv"), m_pView, QString("Export query-result as ...") );
+	if( fileName != QString::null ) 
+	{			// OK, User made or selected a filename
+		QFile* file = new QFile( fileName );
+  		if( file->exists() )
+		{ 
+			// Is it already existing ?
+  			QString error(fileName); 	
+				error.append(i18n(" already exists!\n Do you wish to overwrite it ?"));
+            if (KMessageBox::questionYesNo(m_pView, error, i18n("Overwrite File ?")) == KMessageBox::No) 
+            {
+                slotExportResult();	//user does not want to overwrite ! -> jump out and recall
+                return;
+            }
+  	  }
+		
+        if ( ! file->open(IO_WriteOnly) ) 
+        {  
+            // Is he able to write to it ?
+            QString error(i18n("Error writing to "));
+            error.append(fileName);
+            error.append(" !");
+            KMessageBox::error( m_pView, error, i18n("Error"));
+            return;
+        }
+        else 
+        {   //Yes, he is able to write !
+            QStringList list;
+            list << "," << ";" << "|" << " ";
+            QString sep = QInputDialog::getItem( i18n("Field Separator ?"), i18n("Please choose a field separator !"), list  );
+            QTextStream out( file );
+                        
+            for( int currentRow=0 ; currentRow<rows ; currentRow++ )
+            {
+                for (int currentCol=0 ; currentCol<cols ; currentCol++ )
+                {
+                    out << "\"" << (outputArea->text( currentRow, currentCol )).stripWhiteSpace() << "\"" << sep;
+                }
+                out << "\n";
+            }
+            file->flush();
+            file->close();
+        }
+	}
+}
+
+// Called when user press Bookmarks Button
+void KPoGreController::slotBookmarksButtonPressed()
+{
+    m_pView->getBookmarksButton()->openPopup();
+}
+
+
+// Refresh selected item
+void KPoGreController::slotRefresh()
+{
+	m_pView->setCursor(KCursor::waitCursor());
+	m_pView->refresh();
+	m_pView->setCursor(KCursor::arrowCursor());
+}
+
+// Force PostgreSQL server to reload configuration
+void KPoGreController::slotReloadServerConfig()
+{
+	slotStatusMsg(i18n("Force PostgreSQL server to reload configuration ..."));
+	
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pView->getTreeView()->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeServer)
+	{
+		kdDebug() << k_funcinfo << " Ttem types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem);
+	
+	try
+    {
+		bool bResult = pServer->reloadConfig();
+		if(bResult)
+			KMessageBox::information(m_pView, i18n("Operation successfull"));
+		else
+			KMessageBox::error(m_pView, i18n("Operation failed"));	
+	}
+	catch (const std::exception &e)
+    {
+        QTextCodec *pTextCodec = QTextCodec::codecForLocale(); 
+		KMessageBox::sorry(m_pView, pTextCodec->toUnicode(e.what()));
+    } 
+	
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Force PostgreSQL server to rotate log file
+void KPoGreController::slotRotateServerLogFile()
+{
+	slotStatusMsg(i18n("Force PostgreSQL server to rotate log file ..."));
+	
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pView->getTreeView()->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeServer)
+	{
+		kdDebug() << k_funcinfo << " Ttem types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem);
+	
+	try
+    {
+		bool bResult = pServer->rotateLogFile();
+		if(bResult)
+			KMessageBox::information(m_pView, "Operation successfull");
+		else
+			KMessageBox::error(m_pView, "Operation failed");	
+	}
+	catch (const std::exception &e)
+    {
+        QTextCodec *pTextCodec = QTextCodec::codecForLocale(); 
+		KMessageBox::sorry(m_pView, pTextCodec->toUnicode(e.what()));
+    } 
+	
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Database Wizard 
+void KPoGreController::slotCreateDatabase()
+{
+    slotStatusMsg(i18n("Create new database ..."));
+	m_pView->createDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drop Database Wizard 
+void KPoGreController::slotDropDatabase()
+{
+  	slotStatusMsg(i18n("Drop database ..."));
+	m_pView->dropDatabase();
+  	slotStatusMsg(i18n("Ready."));
+}
+
+// Run ANALYSE Wizard
+void KPoGreController::slotAnalyseDatabase()
+{
+    slotStatusMsg(i18n("Analyse database ..."));
+    m_pView->analyseDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run REINDEX DATABASE Wizard
+void KPoGreController::slotReindexDatabase()
+{
+    slotStatusMsg(i18n("Reindex database ..."));
+    m_pView->reindexDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DATABASE name OWNER TO new_owner Wizard
+void KPoGreController::slotSetOwnerDatabase()
+{
+  slotStatusMsg(i18n("Set new database owner ..."));
+  m_pView->setOwnerDatabase();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for database
+void KPoGreController::slotGrantPrivilegesDatabase()
+{
+    slotStatusMsg(i18n("Grant database privileges ..."));
+    m_pView->grantPrivilegesDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for database
+void KPoGreController::slotRevokePrivilegesDatabase()
+{
+    slotStatusMsg(i18n("Revoke database provileges ..."));
+    m_pView->revokePrivilegesDatabase();
+    slotStatusMsg(i18n("Ready."));
+}    
+
+// Run DUMP DATABASE Wizard
+void KPoGreController::slotDumpDatabase()
+{
+    slotStatusMsg(i18n("Dump database ..."));
+    m_pView->dumpDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run RESTORE DATABASE Wizard
+void KPoGreController::slotRestoreDatabase()
+{
+    slotStatusMsg(i18n("Restore database ..."));
+    m_pView->restoreDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Close connection to database
+void KPoGreController::slotDisconnectDatabase()
+{
+    slotStatusMsg(i18n("Disconnect from database ..."));
+    m_pView->disconnectDatabase();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Schema Wizard 
+void KPoGreController::slotCreateSchema()
+{
+    slotStatusMsg(i18n("Create new schema ..."));
+	m_pView->createSchema();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drop Schema Wizard 
+void KPoGreController::slotDropSchema()
+{
+    slotStatusMsg(i18n("Drop schema ..."));
+	m_pView->dropSchema();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create or Replace Schema Wizard 
+void KPoGreController::slotModifySchema()
+{
+    slotStatusMsg(i18n("Modify schema ..."));
+	m_pView->modifySchema();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Schema OWNER TO new_owner Wizard 
+void KPoGreController::slotSetOwnerSchema()
+{
+    slotStatusMsg(i18n("Set schema owner ..."));
+    m_pView->setOwnerSchema();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for schema
+void KPoGreController::slotGrantPrivilegesSchema()
+{
+    slotStatusMsg(i18n("Grant schema privileges ..."));
+    m_pView->grantPrivilegesSchema();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for schema
+void KPoGreController::slotRevokePrivilegesSchema()
+{
+    slotStatusMsg(i18n("Revoke schema privileges ..."));
+    m_pView->revokePrivilegesSchema();
+    slotStatusMsg(i18n("Ready."));
+}    
+
+// Run Create Table Wizard 
+void KPoGreController::slotCreateTable()
+{
+    slotStatusMsg(i18n("Create table ..."));
+	m_pView->createTable();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drop Table Wizard 
+void KPoGreController::slotDropTable()
+{
+  slotStatusMsg(i18n("Drop table ..."));
+	m_pView->dropTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Alter Table Rename Wizard 
+void KPoGreController::slotRenameTable()
+{
+  slotStatusMsg(i18n("Rename table ..."));
+  m_pView->renameTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotAnalyseTable()
+{
+  slotStatusMsg(i18n("Analyse table ..."));
+  m_pView->analyseTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotVacuumTable()
+{
+  slotStatusMsg(i18n("Vacuum table ..."));
+  m_pView->vacuumTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotReindexTable()
+{
+  slotStatusMsg(i18n("Reindex table ..."));
+  m_pView->reindexTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetClusterOnTable()
+{
+  slotStatusMsg(i18n("Set cluster on table ..."));
+  m_pView->setClusterOnTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetWithoutClusterTable()
+{
+  slotStatusMsg(i18n("Set table without cluster ..."));
+  m_pView->setWithoutClusterTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotClusterTable()
+{
+  slotStatusMsg(i18n("Cluster table ..."));
+  m_pView->clusterTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotCopyFromTable()
+{
+  slotStatusMsg(i18n("Copy from table ..."));
+  m_pView->copyFromTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotCopyToTable()
+{
+  slotStatusMsg(i18n("Copy to table ..."));
+  m_pView->copyToTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetOwnerTable()
+{
+  slotStatusMsg(i18n("Set table owner ..."));
+  m_pView->setOwnerTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for table
+void KPoGreController::slotGrantPrivilegesTable()
+{
+  slotStatusMsg(i18n("Grant table privileges ..."));
+  m_pView->grantPrivilegesTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for table
+void KPoGreController::slotRevokePrivilegesTable()
+{
+  slotStatusMsg(i18n("Revoke table privileges..."));
+  m_pView->revokePrivilegesTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetTablespaceTable()
+{
+  slotStatusMsg(i18n("Choose tablespace for table ..."));
+  m_pView->setTablespaceTable();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetWithoutOIDsTable()
+{
+    slotStatusMsg(i18n("Set table to without OIDs ..."));
+    m_pView->setWithoutOIDsTable();
+    slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotEditTableContent()
+{
+    slotStatusMsg(i18n("Edit table content ..."));
+    m_pView->editTableContent();
+    slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotQueryTable()
+{
+    slotStatusMsg(i18n("Query table ..."));
+    m_pView->queryTable();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create View Wizard 
+void KPoGreController::slotCreateView()
+{
+  slotStatusMsg(i18n("Create view ..."));
+	m_pView->createView();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drop View Wizard 
+void KPoGreController::slotDropView()
+{
+  slotStatusMsg(i18n("Drop view ..."));
+	m_pView->dropView();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create or Replace View Wizard 
+void KPoGreController::slotModifyView()
+{
+  	slotStatusMsg(i18n("Modify view ..."));
+	m_pView->modifyView();
+  	slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotQueryView()
+{
+    slotStatusMsg(i18n("Query table ..."));
+    m_pView->queryView();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for view
+void KPoGreController::slotGrantPrivilegesView()
+{
+  slotStatusMsg(i18n("Grant view privileges..."));
+  m_pView->grantPrivilegesView();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for view
+void KPoGreController::slotRevokePrivilegesView()
+{
+  slotStatusMsg(i18n("Revoke view privileges..."));
+  m_pView->revokePrivilegesView();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Tablespace Wizard 
+void KPoGreController::slotCreateTablespace()
+{
+  slotStatusMsg(i18n("Create tablespace ..."));
+  m_pView->createTablespace();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drpp Tablespace Wizard 
+void KPoGreController::slotDropTablespace()
+{
+  slotStatusMsg(i18n("Drop tablespace ..."));
+  m_pView->dropTablespace();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// ALTER TABLESPACE name RENAME TO newname Wizard 
+void KPoGreController::slotRenameTablespace()
+{
+  slotStatusMsg(i18n("Rename tablespace ..."));
+  m_pView->renameTablespace();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER TABLESPACE name OWNER TO newowner Wizard 
+void KPoGreController::slotSetOwnerTablespace()
+{
+  slotStatusMsg(i18n("Modify tablespace ..."));
+  m_pView->setOwnerTablespace();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for tablespace
+void KPoGreController::slotGrantPrivilegesTablespace()
+{
+  slotStatusMsg(i18n("Grant tablespace privileges..."));
+  m_pView->grantPrivilegesTablespace();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for tablespace
+void KPoGreController::slotRevokePrivilegesTablespace()
+{
+  slotStatusMsg(i18n("Revoke tablespace privileges..."));
+  m_pView->revokePrivilegesTablespace();
+  slotStatusMsg(i18n("Ready."));
+}   
+
+// Run Create User Wizard 
+void KPoGreController::slotCreateUser()
+{
+  slotStatusMsg(i18n("Create user ..."));
+	m_pView->createUser();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drpp User Wizard 
+void KPoGreController::slotDropUser()
+{
+  slotStatusMsg(i18n("Drop user ..."));
+	m_pView->dropUser();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Alter User Wizard 
+void KPoGreController::slotModifyUser()
+{
+  slotStatusMsg(i18n("Modify user ..."));
+	m_pView->modifyUser();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create View Group 
+void KPoGreController::slotCreateGroup()
+{
+  slotStatusMsg(i18n("Create group ..."));
+	m_pView->createGroup();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Drpp Group Wizard 
+void KPoGreController::slotDropGroup()
+{
+  slotStatusMsg(i18n("Drop group ..."));
+	m_pView->dropGroup();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Alter Group Wizard 
+void KPoGreController::slotModifyGroup()
+{
+  	slotStatusMsg(i18n("Modify group ..."));
+	m_pView->modifyGroup();
+  	slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Language Wizard 
+void KPoGreController::slotCreateLanguage()
+{
+	slotStatusMsg(i18n("Create language ..."));
+	m_pView->createLanguage();
+	slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Language Wizard 
+void KPoGreController::slotDropLanguage()
+{
+	slotStatusMsg(i18n("Drop language ..."));
+	m_pView->dropLanguage();
+	slotStatusMsg(i18n("Ready."));
+}
+    
+// Run Alter Language Wizard 
+void KPoGreController::slotModifyLanguage()
+{
+	slotStatusMsg(i18n("Modify language ..."));
+	m_pView->modifyLanguage();
+	slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for language
+void KPoGreController::slotGrantPrivilegesLanguage()
+{
+	slotStatusMsg(i18n("Grant language privileges..."));
+	m_pView->grantPrivilegesLanguage();
+	slotStatusMsg(i18n("Ready."));
+}
+
+// Run REVOKE privileges Wizard for language
+void KPoGreController::slotRevokePrivilegesLanguage()
+{
+  slotStatusMsg(i18n("Revoke language privileges..."));
+  m_pView->revokePrivilegesLanguage();
+  slotStatusMsg(i18n("Ready."));
+}    
+
+// Run CREATE DOMAIN Wizard 
+void KPoGreController::slotCreateDomain()
+{
+  slotStatusMsg(i18n("Create domain ..."));
+  m_pView->createDomain();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run DROP DOMAIN Wizard 
+void KPoGreController::slotDropDomain()
+{
+  slotStatusMsg(i18n("Drop domain ..."));
+  m_pView->dropDomain();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN SET | DROP NOT NULL Wizard 
+void KPoGreController::slotSetDomainNull()
+{
+  slotStatusMsg(i18n("Set domain NULL..."));
+  m_pView->setDomainNull();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN SET DEFAULT expression Wizard 
+void KPoGreController::slotSetDomainDefault()
+{
+  slotStatusMsg(i18n("Set domain default ..."));
+  m_pView->setDomainDefault();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN DROP DEFAULT Wizard 
+void KPoGreController::slotDropDomainDefault()
+{
+  slotStatusMsg(i18n("Drop domain default..."));
+  m_pView->dropDomainDefault();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN name OWNER TO new_owner  Wizard 
+void KPoGreController::slotSetOwnerDomain()
+{
+  slotStatusMsg(i18n("Set owner..."));
+  m_pView->setOwnerDomain();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN name ADD domain_constraint Wizard 
+void KPoGreController::slotCreateDomainConstraint()
+{
+  slotStatusMsg(i18n("Create domain constraint..."));
+  m_pView->createDomainConstraint();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER DOMAIN name DROP CONSTRAINT constraint_name Wizard 
+void KPoGreController::slotDropDomainConstraint()
+{
+  slotStatusMsg(i18n("Drop domain constraint..."));
+  m_pView->dropDomainConstraint();
+  slotStatusMsg(i18n("Ready."));
+}    
+    
+// Run Create Function Wizard 
+void KPoGreController::slotCreateFunction()
+{
+  slotStatusMsg(i18n("Create function ..."));
+  m_pView->createFunction();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Function Wizard 
+void KPoGreController::slotDropFunction()
+{
+  slotStatusMsg(i18n("Drop function ..."));
+  m_pView->dropFunction();
+  slotStatusMsg(i18n("Ready."));
+}
+   
+// Run Alter Function Wizard 
+void KPoGreController::slotRenameFunction()
+{
+  slotStatusMsg(i18n("Rename function ..."));
+  m_pView->renameFunction();
+  slotStatusMsg(i18n("Ready."));
+}
+ 
+// Run Alter Function Wizard 
+void KPoGreController::slotModifyFunction()
+{
+  slotStatusMsg(i18n("Modify function ..."));
+  m_pView->modifyFunction();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for function
+void KPoGreController::slotGrantPrivilegesFunction()
+{
+  slotStatusMsg(i18n("Grant function privileges..."));
+  m_pView->grantPrivilegesFunction();
+  slotStatusMsg(i18n("Ready."));
+}    
+    
+// Run REVOKE privileges Wizard for function
+void KPoGreController::slotRevokePrivilegesFunction()
+{
+  slotStatusMsg(i18n("Revoke function privileges..."));
+  m_pView->revokePrivilegesFunction();
+  slotStatusMsg(i18n("Ready."));
+}    
+
+// Run Function executor
+void KPoGreController::slotExecuteFunction()
+{
+	slotStatusMsg(i18n("Execute function ..."));
+    m_pView->executeFunction();
+    slotStatusMsg(i18n("Ready."));
+}
+
+// Run Function debugger
+void KPoGreController::slotDebugFunction()
+{
+	slotStatusMsg(i18n("Debug function ..."));
+	
+	KMessageBox::sorry( m_pView, "Not implemented yet ...", "KPoGre");
+    return;
+	
+    m_pView->debugFunction();
+    slotStatusMsg(i18n("Ready."));
+}
+   
+
+// Run Create Sequence Wizard 
+void KPoGreController::slotCreateSequence()
+{
+  slotStatusMsg(i18n("Create sequence ..."));
+  m_pView->createSequence();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Sequence Wizard 
+void KPoGreController::slotDropSequence()
+{
+  slotStatusMsg(i18n("Drop sequence ..."));
+  m_pView->dropSequence();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Sequence Wizard 
+void KPoGreController::slotModifySequence()
+{
+  slotStatusMsg(i18n("Modify sequence ..."));
+  m_pView->modifySequence();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run GRANT privileges Wizard for sequence
+void KPoGreController::slotGrantPrivilegesSequence()
+{
+  slotStatusMsg(i18n("Grant sequence privileges..."));
+  m_pView->grantPrivilegesSequence();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run REVOKE privileges Wizard for sequence
+void KPoGreController::slotRevokePrivilegesSequence()
+{
+  slotStatusMsg(i18n("Revoke sequence privileges..."));
+  m_pView->revokePrivilegesSequence();
+  slotStatusMsg(i18n("Ready."));
+}    
+
+// Run ALTER table ADD Column Wizard
+void KPoGreController::slotCreateColumn()
+{
+  slotStatusMsg(i18n("Create column ..."));
+  m_pView->createColumn();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table DROP Column Wizard
+void KPoGreController::slotDropColumn()
+{
+  slotStatusMsg(i18n("Drop column ..."));
+  m_pView->dropColumn();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table Rename Column Wizard
+void KPoGreController::slotRenameColumn()
+{
+  slotStatusMsg(i18n("Rename column ..."));
+  m_pView->renameColumn();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table SET/DROP Column NULL Wizard
+void KPoGreController::slotSetColumnNull()
+{
+  slotStatusMsg(i18n("Set column NULL ..."));
+  m_pView->setColumnNull();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table ALTER Column SET DEFAULT Wizard
+void KPoGreController::slotSetColumnDefault()
+{
+  slotStatusMsg(i18n("Set column default ..."));
+  m_pView->setColumnDefault();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER table ALTER Column DROP DEFAULT Wizard
+void KPoGreController::slotDropColumnDefault()
+{
+  slotStatusMsg(i18n("Drop clumn default ..."));
+  m_pView->dropColumnDefault();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table ALTER Column TYPE Wizard
+void KPoGreController::slotChangeColumnType()
+{
+  slotStatusMsg(i18n("Change column type ..."));
+  m_pView->changeColumnType();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table ALTER Column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } Wizard
+void KPoGreController::slotSetColumnStorage()
+{
+  slotStatusMsg(i18n("Set column storage ..."));
+  m_pView->setColumnStorage();
+  slotStatusMsg(i18n("Ready."));
+}
+    
+// Run ALTER table ALTER Column SET STATISTICS Wizard
+void KPoGreController::slotSetColumnStatistisc()
+{
+  slotStatusMsg(i18n("Set column statistics ..."));
+  m_pView->setColumnStatistisc();
+  slotStatusMsg(i18n("Ready."));
+}    
+
+    
+// Run Create Constraint Wizard 
+void KPoGreController::slotCreateConstraint()
+{
+  slotStatusMsg(i18n("Create constraint ..."));
+  m_pView->createConstraint();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Constraint Wizard 
+void KPoGreController::slotDropConstraint()
+{
+  slotStatusMsg(i18n("Drop constraint ..."));
+  m_pView->dropConstraint();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Index Wizard 
+void KPoGreController::slotCreateIndex()
+{
+  slotStatusMsg(i18n("Create index ..."));
+  m_pView->createIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Index Wizard 
+void KPoGreController::slotDropIndex()
+{
+  slotStatusMsg(i18n("Drop index ..."));
+  m_pView->dropIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Index RENAME Wizard 
+void KPoGreController::slotRenameIndex()
+{
+  slotStatusMsg(i18n("Rename index ..."));
+  m_pView->renameIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run REINDEX INDEX Wizard 
+void KPoGreController::slotReindexIndex()
+{
+  slotStatusMsg(i18n("Reindex index ..."));
+  m_pView->reindexIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Index OWNER TO new_owner Wizard 
+void KPoGreController::slotSetOwnerIndex()
+{
+  slotStatusMsg(i18n("Set index owner ..."));
+  m_pView->setOwnerIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Index SET TABLESPACE indexspace_name Wizard 
+void KPoGreController::slotSetTablespaceIndex()
+{
+  slotStatusMsg(i18n("Rename tablespace for index ..."));
+  m_pView->setTablespaceIndex();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Rule Wizard 
+void KPoGreController::slotCreateRule()
+{
+  slotStatusMsg(i18n("Create rule ..."));
+  m_pView->createRule();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Rule Wizard 
+void KPoGreController::slotDropRule()
+{
+  slotStatusMsg(i18n("Drop rule ..."));
+  m_pView->dropRule();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run Create Trigger Wizard 
+void KPoGreController::slotCreateTrigger()
+{
+  slotStatusMsg(i18n("Create trigger ..."));
+  m_pView->createTrigger();
+  slotStatusMsg(i18n("Ready."));
+}
+  
+// Run Drop Trigger Wizard 
+void KPoGreController::slotDropTrigger()
+{
+  slotStatusMsg(i18n("Drop trigger ..."));
+  m_pView->dropTrigger();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER table ENABLE/DISABLE trigger Wizard 
+void KPoGreController::slotEnableTrigger()
+{
+  slotStatusMsg(i18n("Enable/disable trigger ..."));
+  m_pView->enableTrigger();
+  slotStatusMsg(i18n("Ready."));
+}
+
+// Run ALTER Trigger RENAME Wizard 
+void KPoGreController::slotRenameTrigger()
+{
+  slotStatusMsg(i18n("Rename trigger ..."));
+  m_pView->renameTrigger();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotCreateBaseType()
+{
+  slotStatusMsg(i18n("Create base type ..."));
+  m_pView->createBaseType();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotCreateCompositeType()
+{
+  slotStatusMsg(i18n("Create composite type ..."));
+  m_pView->createCompositeType();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotDropType()
+{
+  slotStatusMsg(i18n("Drop type ..."));
+  m_pView->dropType();
+  slotStatusMsg(i18n("Ready."));
+}
+
+void KPoGreController::slotSetOwnerType()
+{
+  slotStatusMsg(i18n("Set type owner ..."));
+  m_pView->setOwnerType();
+  slotStatusMsg(i18n("Ready."));
+}  
+
+void KPoGreController::slotSetDescription()
+{
+	slotStatusMsg("Set Description...");
+	m_pView->setDescription();
+	slotStatusMsg("Ready.");
+}
+
+/////////////////////////////////////////////////////////////////////
+//                           OTHER SLOTS
+/////////////////////////////////////////////////////////////////////
+
+
+void KPoGreController::slotPathSelected( const QString & strPath )
+{
+	if(!m_pView->selectItemByPath(strPath))
+	{ // node not found, remove item from combo
+		m_pActPathCombo->removeItem(strPath);
+		m_pActPathCombo->slotClearEdit();
+	}
+}
+
+void KPoGreController::slotPathClear()
+{
+	m_pView->slotEditDeselect();
+	m_pActPathCombo->slotFocusEdit();
+}
+
+
+void KPoGreController::slotSelectionChanged( const KPGTreeItem::eNodeType nodeType, KPGTreeItem * pItem)
+{
+	bool bActDatabaseWizard = false;
+	bool bActDatabaseDisconnect = false;
+	bool bAddBookmarkMenu = false;
+		
+	
+	KActionCollection *pActionCollection = m_pView->actionCollection();
+	
+	switch(nodeType)
+  	{
+    	case KPGTreeItem::nodeUnselected:
+        	m_pActDatabaseDisconnect->setEnabled(false);
+        	break;
+
+    	case KPGTreeItem::nodeServer:
+      	{
+        	bActDatabaseDisconnect = true;
+        	bAddBookmarkMenu = true;
+			bActDatabaseWizard = true;
+				
+        	KPGServer *pServer = static_cast <KPGServer *> (pItem);            
+        	m_pView->getBookmarksButton()->bookmarkHandler()->setNewBookmarkName(pServer->text(0));
+        	m_pView->getBookmarksButton()->bookmarkHandler()->setNewBookmarkUrl(pServer->url());
+        
+      	}
+      	break;
+				
+		case KPGTreeItem::nodeFunction:
+      	{
+        	KPGFunction *pFunction = static_cast <KPGFunction *> (pItem);            
+        
+			KAction *pAct = pActionCollection->action("modify_function");
+			if(pAct)
+			{
+				pAct->setEnabled(pFunction->langName() != "c"); // Don't allow modify C function
+			}
+      	}
+      	break;
+      
+    	case KPGTreeItem::nodeTablespace:
+      	{
+			KPGTablespace *pTablespace = static_cast <KPGTablespace *> (pItem);            
+			
+			KAction *pActModify = pActionCollection->action("modify_tablespace");
+			if(pActModify)
+			{
+			pActModify->setEnabled(!pTablespace->isSystemObject()); // Don't allow modify system tablespaces
+			}
+			
+			KAction *pActDrop = pActionCollection->action("drop_tablespace");
+			if(pActDrop)
+			{
+			pActDrop->setEnabled(!pTablespace->isSystemObject()); // Don't allow drop system tablespaces
+			}
+      	}
+      	break;
+		      
+		case KPGTreeItem::nodeDatabase:
+      	{
+			bActDatabaseWizard = true;
+			
+			KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem);            
+			
+			KAction *pActModify = pActionCollection->action("modify_database");
+			if(pActModify)
+			{
+				pActModify->setEnabled(!pDatabase->isSystemObject() && !pDatabase->isTemplate()); // Don't allow modify system databases
+			}
+			
+			KAction *pActDrop = pActionCollection->action("drop_database");
+			if(pActDrop)
+			{
+				pActDrop->setEnabled(!pDatabase->isSystemObject() && !pDatabase->isTemplate()); // Don't allow drop system databases
+			}
+      	}
+     	break;  
+    
+    	case KPGTreeItem::nodeSchema:
+      	{
+			bActDatabaseWizard = true;
+			
+			KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);            
+			
+			KAction *pActModify = pActionCollection->action("rename_schema");
+			if(pActModify)
+			{
+			pActModify->setEnabled(!pSchema->isSystemObject()); // Don't allow rename system schema
+			}
+			
+			KAction *pActDrop = pActionCollection->action("drop_schema");
+			if(pActDrop)
+			{
+			pActDrop->setEnabled(!pSchema->isSystemObject()); // Don't allow drop system schema
+			}
+			
+			KAction *pActSetOwner = pActionCollection->action("set_owner_schema");
+			if(pActSetOwner)
+			{
+			pActSetOwner->setEnabled(!pSchema->isSystemObject()); // Don't allow reowner system schema
+			}
+      	}
+        break;
+    
+    	case KPGTreeItem::nodeTable:
+      	{
+			bActDatabaseWizard = true;
+			
+			KPGTable *pTable = static_cast <KPGTable *> (pItem);
+			KPGServer *pServer = static_cast <KPGServer *> (pTable->getParentByType(KPGTreeItem::nodeServer));
+			
+			bool bVersion8 = false;
+			if(pServer) bVersion8 = (pServer->versionMajor() >= 8);
+			
+			pActionCollection->action("set_tblspace_table")->setEnabled(bVersion8);
+      	}
+      	break;     
+            	
+      
+    	case KPGTreeItem::nodeTableColumn:
+      	{
+			KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pItem);
+			KPGServer *pServer = static_cast <KPGServer *> (pColumn->getParentByType(KPGTreeItem::nodeServer));
+			
+			bool bEnableModifyAct = (pColumn->attNum() > 0); // don't allow modify system columns
+			bool bVersion8 = false;
+			
+			if(pServer) bVersion8 = (pServer->versionMajor() >= 8);
+			
+			pActionCollection->action("drop_column")->setEnabled(bEnableModifyAct);
+			pActionCollection->action("rename_column")->setEnabled(bEnableModifyAct);
+			KAction *pActSetNull = pActionCollection->action("set_column_null");
+			pActSetNull->setEnabled(bEnableModifyAct);
+			pActionCollection->action("set_column_default")->setEnabled(bEnableModifyAct);
+			pActionCollection->action("drop_column_default")->setEnabled(bEnableModifyAct && pColumn->hasDefault());
+			pActionCollection->action("change_column_type")->setEnabled(bEnableModifyAct && bVersion8);
+			pActionCollection->action("set_column_storage")->setEnabled(bEnableModifyAct);
+			pActionCollection->action("set_column_stat")->setEnabled(bEnableModifyAct);
+			
+			if(!pColumn->isNotNull())
+			pActSetNull->setText(i18n("Set &NOT NULL..."));
+			else
+			pActSetNull->setText(i18n("Drop &NOT NULL..."));
+      	}
+      	break;
+      
+		case KPGTreeItem::nodePrimaryKey:
+		case KPGTreeItem::nodeIndex:
+      	{
+			KPGTableIndex *pTableIndex = static_cast <KPGTableIndex *> (pItem);
+			KPGServer *pServer = static_cast <KPGServer *> (pTableIndex->getParentByType(KPGTreeItem::nodeServer));
+			
+			bool bVersion8 = false;
+			if(pServer) bVersion8 = (pServer->versionMajor() >= 8);
+			
+			pActionCollection->action("set_owner_index")->setEnabled(bVersion8);
+			pActionCollection->action("set_tblspace_index")->setEnabled(bVersion8);
+      	}
+      	break;  
+    
+    	case KPGTreeItem::nodeDomain:
+      	{
+			KPGDomain *pDomain = static_cast <KPGDomain *> (pItem);
+			
+			KAction *pActSetNull = pActionCollection->action("set_domain_null");
+			pActionCollection->action("drop_domain_default")->setEnabled(pDomain->hasDefault());
+			
+			if(!pDomain->isNotNull())
+				pActSetNull->setText(i18n("Set &NOT NULL..."));
+			else
+				pActSetNull->setText(i18n("Drop &NOT NULL..."));
+      	}
+      	break;
+               
+        case KPGTreeItem::nodeTrigger:
+      	{
+			KPGTrigger *pTrigger = static_cast <KPGTrigger *> (pItem);
+			
+			KAction *pActEnableTrigger = pActionCollection->action("enable_trigger");
+			
+			if(!pTrigger->isEnabled())
+				pActEnableTrigger->setText(i18n("&Enable trigger..."));
+			else
+				pActEnableTrigger->setText(i18n("&Disable trigger..."));
+      	}
+      	break;
+               
+      
+		default:	
+				break;
+  }
+	
+	m_pActDatabaseDisconnect->setEnabled(bActDatabaseDisconnect);
+	m_pActDatabaseWizard->setEnabled(bActDatabaseWizard);
+	m_pView->getBookmarksButton()->enableAddBookmarkMenu(bAddBookmarkMenu);
+	
+	// change path combo text
+	if(pItem)
+		{ 
+			QString strPath(pItem->path());
+			
+			if((pItem->hasOid()))
+			{
+				KPGObject *pObject = static_cast <KPGObject *> (pItem);
+				
+				strPath.append(QString("[%1]").arg(pObject->oid()));
+			}
+		  m_pActPathCombo->insertItem(* pItem->pixmap(0), strPath);
+		}
+	else
+		m_pActPathCombo->slotClear();
+	
+}
+
+// Called, when document is modified. Enable Save button. */
+void KPoGreController::slotDocumentModified()
+{
+	//m_pActFileSave->setEnabled(true);
+	//setCaption(doc->URL().fileName(), true);
+}
+
+void KPoGreController::slotStatusMsg(const QString &text)
+{
+	// change status message permanently
+  	m_pView->statusBar()->clear();
+  	m_pView->statusBar()->changeItem(text, ID_STATUS_MSG);
+}
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogrecontroller.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,309 @@
+//
+// C++ Interface: kpogrecontroller
+//
+// Description: 
+//
+//
+// Author: Lumir Vanek <lvanek at users.sourceforge.net>, (C) 2006
+//
+// Copyright: See COPYING file that comes with this distribution
+//
+//
+#ifndef KPOGRECONTROLLER_H
+#define KPOGRECONTROLLER_H
+
+#include <qobject.h>
+
+// application specific includes
+#include "kpogreview.h"
+#include "kpgactionsstates.h"
+
+// Forward references
+class KActionCollection;
+class KPoGreView;
+class KPoGreComboAction;
+class KPGSearchDialog;
+
+
+/**
+  *  Respond to user KActions
+  *
+  *	@author Lumir Vanek <lvanek at users.sourceforge.net>
+  */
+class KPoGreController : public QObject
+{
+	Q_OBJECT
+public:
+    KPoGreController(KPoGreView *);
+    ~KPoGreController();
+
+	// Initializes the KActions of the application
+	void initActions(KActionCollection *);
+	
+protected:
+	KPoGreView * m_pView;
+	
+	// For searching in m_pView->m_pViewTree
+	KPGSearchDialog* m_pDlgSearch;
+	
+	// For searching in SQL Query editor
+	QStringList m_listOfQuerySearchHistory;
+
+	// For replacing in data tables and result tables
+	//QStringList m_listOfQueryReplacementHistory;
+	
+	// For searching in data tables and result tables
+	//QStringList m_listOfResultQuerySearchHistory;
+	
+	//-------------------------------------------------------------------------
+    //
+    // KAction pointers to enable/disable actions
+    //
+    //-------------------------------------------------------------------------
+    
+    // File actions
+    KAction *m_pActFileExportResult;
+    KAction* m_pActFileNewWindow;
+    KAction* m_pActFileNew;
+    KAction* m_pActFileOpen;
+    KRecentFilesAction* m_pActFileOpenRecent;
+    KAction* m_pActFileClose;
+    KAction* m_pActFileQuit;
+    
+    // Edit actions
+	KAction* m_pActEditFindInTree;
+	KAction* m_pActEditFindNextInTree;
+					
+	// View actions
+	KToggleAction* m_pActViewToolBar;
+    KToggleAction* m_pActViewStatusBar;
+    KAction* m_pActFolderRefresh;
+       
+    // Database actions
+    KAction* m_pActServerRegister;
+    KAction* m_pActDatabaseConnect;
+    KAction* m_pActDatabaseDisconnect;
+    KAction* m_pActDatabaseWizard;
+    
+	KPoGreComboAction* m_pActPathCombo;
+	
+public slots:
+    //-------------------------------------------------------------------------
+    //
+    // Main menu actions
+    //
+    //-------------------------------------------------------------------------
+    
+    //--- File main menu actions
+    void slotFileNewWindow();
+    void slotFileNew();
+    void slotFileOpen();
+    void slotFileOpenRecent(const KURL& url);
+    void slotExportResult();
+    void slotFileClose();
+    void slotFileQuit();
+    
+	//--- Edit main menu actions
+	void slotEditFindInTree();
+    void slotEditFindNextInTree();
+        		
+    //--- Settings main menu actions
+	void slotViewToolBar();
+    void slotViewStatusBar();
+    
+	//--- Database main menu actions
+    void slotDatabaseConnect();
+	void slotDatabaseDisconnect();
+    void slotDatabaseWizard();
+    
+    //-------------------------------------------------------------------------
+    //
+    // Object menu actions fired from left tree view, when user right-click on object 
+    //
+    //-------------------------------------------------------------------------
+		
+	//--- Server related menu actions	
+	void slotReloadServerConfig();
+	void slotRotateServerLogFile();
+		
+	//--- Database related menu actions
+	void slotCreateDatabase();
+	void slotDropDatabase();
+    void slotAnalyseDatabase();
+    void slotReindexDatabase();
+    void slotSetOwnerDatabase();
+    void slotGrantPrivilegesDatabase();
+    void slotRevokePrivilegesDatabase();
+    void slotDumpDatabase();
+    void slotRestoreDatabase();
+    void slotDisconnectDatabase();
+		
+    //--- Schema related menu actions
+	void slotCreateSchema();
+	void slotDropSchema();
+	void slotModifySchema();
+    void slotSetOwnerSchema();
+    void slotGrantPrivilegesSchema();
+    void slotRevokePrivilegesSchema();
+		
+    //--- Table related menu actions
+    void slotCreateTable();
+	void slotDropTable();
+    void slotRenameTable();
+    void slotAnalyseTable();
+    void slotVacuumTable();
+    void slotReindexTable();
+    void slotSetClusterOnTable();
+    void slotSetWithoutClusterTable();
+    void slotClusterTable();
+    void slotCopyFromTable();
+    void slotCopyToTable();
+    void slotSetOwnerTable();
+    void slotGrantPrivilegesTable();
+    void slotRevokePrivilegesTable();
+    void slotSetTablespaceTable();
+    void slotSetWithoutOIDsTable();
+    void slotEditTableContent();
+    void slotQueryTable();
+    
+	//--- View related menu actions
+    void slotCreateView();
+	void slotDropView();
+	void slotModifyView();
+	void slotQueryView();
+    void slotGrantPrivilegesView();
+    void slotRevokePrivilegesView();
+		    
+    //--- Tablespaces related menu actions
+    void slotCreateTablespace();
+    void slotDropTablespace();
+    void slotRenameTablespace();
+    void slotSetOwnerTablespace();
+    void slotGrantPrivilegesTablespace();
+    void slotRevokePrivilegesTablespace();
+    
+    //--- User related menu actions
+    void slotCreateUser();
+	void slotDropUser();
+	void slotModifyUser();
+				
+	//--- Group related menu actions
+	void slotCreateGroup();
+	void slotDropGroup();
+	void slotModifyGroup();
+        
+    //--- Language related menu actions
+    void slotCreateLanguage();
+    void slotDropLanguage();
+    void slotModifyLanguage();
+    void slotGrantPrivilegesLanguage();
+    void slotRevokePrivilegesLanguage();
+    
+    //--- Domain related menu actions 
+    void slotCreateDomain();
+    void slotDropDomain();
+    void slotSetDomainNull();
+    void slotSetDomainDefault();
+    void slotDropDomainDefault();
+    void slotSetOwnerDomain();
+    
+    //--- Domain constraint related menu actions
+    void slotCreateDomainConstraint();
+    void slotDropDomainConstraint();
+    
+    //--- Function related menu actions
+    void slotCreateFunction();
+    void slotDropFunction();
+    void slotRenameFunction();
+    void slotModifyFunction();
+    void slotGrantPrivilegesFunction();
+    void slotRevokePrivilegesFunction();
+    void slotExecuteFunction();
+    void slotDebugFunction();
+    
+    //--- Sequence related menu actions
+    void slotCreateSequence();
+    void slotDropSequence();
+    void slotModifySequence();
+    void slotGrantPrivilegesSequence();
+    void slotRevokePrivilegesSequence();
+        
+    //--- Column related menu actions
+    void slotCreateColumn();
+    void slotDropColumn();
+    void slotRenameColumn();
+    void slotSetColumnNull();
+    void slotSetColumnDefault();
+    void slotDropColumnDefault();
+    void slotChangeColumnType();
+    void slotSetColumnStorage();
+    void slotSetColumnStatistisc();
+    
+    //--- Constraint related menu actions
+    void slotCreateConstraint();
+    void slotDropConstraint();
+    
+    //--- Index related menu actions
+    void slotCreateIndex();
+    void slotDropIndex();
+    void slotRenameIndex();
+    void slotReindexIndex();
+    void slotSetOwnerIndex();
+    void slotSetTablespaceIndex();
+        
+    //--- Rule related menu actions
+    void slotCreateRule();
+    void slotDropRule();
+    
+    //--- Trigger related menu actions
+    void slotCreateTrigger();
+    void slotDropTrigger();
+    void slotEnableTrigger();
+    void slotRenameTrigger();
+    
+    //--- Type related menu actions
+    void slotCreateBaseType();
+    void slotCreateCompositeType();
+    void slotDropType();
+    void slotSetOwnerType();
+    
+    //--- Common menu actions
+	void slotSetDescription();
+	
+    //-------------------------------------------------------------------------
+    //
+    // Other slots
+    //
+    //-------------------------------------------------------------------------
+public slots:
+    
+    // Refresh selected item - F5
+	void slotRefresh();
+	
+	// Fired, when user select path i Path bar
+	void slotPathSelected( const QString & szPath );
+	
+	// Request to clear Path bar
+	void slotPathClear();
+	
+    // Called when user press Bookmarks Button
+	void slotBookmarksButtonPressed();
+	
+	// Called, when user change selection in tree view
+	void slotSelectionChanged( const KPGTreeItem::eNodeType, KPGTreeItem *);
+				
+	// Display status line message
+	void slotStatusMsg(const QString &);
+	
+	// Called, when document is modified. Enable Save button. */
+	void slotDocumentModified();
+	
+public:
+	bool isActViewToolBarChecked() const { return m_pActViewToolBar->isChecked(); }
+	bool isActViewStatusBarChecked() const { return m_pActViewStatusBar->isChecked(); }
+	KRecentFilesAction* getRecentFilesAction() const { return m_pActFileOpenRecent; }
+	void setActViewToolBarChecked(bool c) const { m_pActViewToolBar->setChecked(c); }
+	void setActViewStatusBarChecked(bool c) const { m_pActViewStatusBar->setChecked(c); }
+};
+
+#endif

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogreui.rc
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogreui.rc	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogreui.rc	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,491 @@
+<!DOCTYPE kpartgui>
+<kpartgui name="kpogre" version="1.5.7">
+
+<MenuBar noMerge="1">
+	<Menu name="file"><text>&amp;File</text>
+		<Action name="file_new" />
+		<DefineGroup name="new_merge" />
+		<Separator />
+		
+		<Action name="file_open"/>
+		<Action name="file_open_recent"/>
+		<DefineGroup name="open_merge" />
+		<Separator />
+		
+		<DefineGroup name="save_merge" append="save_merge" />
+		<Action name="export_result" />
+		<Separator/>
+		
+		<DefineGroup name="revert_merge" append="revert_merge"/>
+		<DefineGroup name="print_merge" append="print_merge"/>
+		<Separator/>
+		
+		<Action name="file_close"/>
+		<DefineGroup name="close_merge" append="close_merge"/>
+    	<Separator/>
+		
+    	<Action name="file_quit"/>
+	</Menu>
+	
+	<Menu name="database"><text>&amp;Database</text>
+		<Action name="connect"/>
+		<Action name="disconnect"/>
+		<Separator/>
+		<Action name="wizard"/>
+		<Separator/>
+		<ActionList name="mdi_child_view"/>
+	</Menu>
+	
+	<Menu name="edit"><text>&amp;Edit</text>
+		<Action name="edit_find_in_tree"/>
+		<Action name="edit_find_next_in_tree"/>
+		<Separator/>
+		<DefineGroup name="edit_undo_merge"/>
+		<DefineGroup name="edit_paste_merge"/>
+		<DefineGroup name="edit_select_merge"/>
+		<DefineGroup name="edit_find_merge"/>
+	</Menu>
+	
+  	<Menu name="view"><text>&amp;View</text>
+		<Action name="treeitem_up"/>
+		<Action name="treeitem_back"/>
+		<Action name="treeitem_forward"/>
+		<Separator/>
+		<Action name="edit_deselect"/>
+		<Separator />
+    	<DefineGroup name="view_operations" />
+  	</Menu>
+	
+	<Merge/>
+		  		
+	<Menu name="settings"><text>&amp;Settings</text>
+		<Action name="settings_show_statusbar" />
+		<Separator />
+		<Action name="options_configure_keys" />
+		<Action name="options_configure_toolbars" />
+		<Action name="settings_configure" />
+	</Menu>
+  
+	<Menu name="help" noMerge="1"><text>&amp;Help</text>
+		<Action name="help_contents"/>
+		<Action name="help_whats_this"/>
+		<Separator/>
+		<Action name="help_report_bug"/>
+		<Separator/>
+		<Action name="help_about_app"/>
+		<Action name="help_about_kde"/>
+  </Menu>
+</MenuBar>
+
+<!-- *********** Popup menus ************************ -->
+
+
+<Menu name="popupFolderOperators">
+	<Title>Operators</Title>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderOperatorClasses">
+	<Title>Operator Classes</Title>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderAggregates">
+	<Title>Aggregates</Title>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderCasts">
+	<Title>Casts</Title>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderConversions">
+	<Title>Conversions</Title>
+	<Action name="refresh"/>
+</Menu>
+
+<!-- ************************************************************************ -->
+
+<Menu name="popupServer">
+	<Title>Server</Title>
+	<Action name="server_reload_config"/>
+	<Action name="server_rotate_log_file"/>
+	<Separator/>
+	<Action name="create_database"/>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTablespaces">
+  <Title>Tablespaces</Title>
+  <Action name="create_tablespace"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTablespace">
+  <Title>Tablespace</Title>
+  <Action name="drop_tablespace"/>
+  <Separator/>
+  <Action name="rename_tablespace"/>
+  <Separator/>
+  <Action name="set_owner_tablespace"/>
+  <Action name="grant_privileges_tablespace"/>
+  <Action name="revoke_privileges_tablespace"/>
+</Menu>
+
+<Menu name="popupFolderGroups">
+  <Title>Groups</Title>
+  <Action name="create_group"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupGroup">
+  <Title>Group</Title>
+  <Action name="drop_group"/>
+  <Separator/>
+  <Action name="modify_group"/>
+</Menu>
+
+<Menu name="popupFolderUsers">
+  <Title>Users</Title>
+  <Action name="create_user"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupUser">
+  <Title>User</Title>
+  <Action name="drop_user"/>
+  <Separator/>
+  <Action name="modify_user"/>
+</Menu>
+
+<Menu name="popupDatabase">
+	<Title>Database</Title>
+	<Action name="disconnect_database"/>
+	<Action name="drop_database"/>
+	<Separator/>
+	<Action name="analyse_database"/>
+	<Action name="reindex_database"/>
+	<Separator/>
+	<Action name="set_owner_database"/>
+	<Action name="grant_privileges_database"/>
+	<Action name="revoke_privileges_database"/>
+	<Separator/>
+	<Action name="dump_database"/>
+	<Action name="restore_database"/>
+	<Separator/>
+	<Action name="create_schema"/>
+	<Separator/>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderLanguages">
+  <Title>Languages</Title>
+  <Action name="create_language"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupLanguage">
+  <Title>Language</Title>
+  <Action name="drop_language"/>
+  <Action name="rename_language"/>
+  <Separator/>
+  <Action name="grant_privileges_language"/>
+  <Action name="revoke_privileges_language"/>
+</Menu>
+
+<Menu name="popupSchema">
+	<Title>Schema</Title>
+	<Action name="drop_schema"/>
+  <Separator/>
+	<Action name="rename_schema"/>
+	<Action name="set_description"/>
+  <Separator/>
+  <Action name="set_owner_schema"/>
+	<Action name="grant_privileges_schema"/>
+  <Action name="revoke_privileges_schema"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderDomains">
+  <Title>Domains</Title>
+  <Action name="create_domain"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupDomain">
+  <Title>Domain</Title>
+  <Action name="drop_domain"/>
+  <Separator/>
+  <Action name="set_domain_null"/>
+  <Action name="set_domain_default"/>
+  <Action name="drop_domain_default"/>
+  <Separator/>
+  <Action name="set_owner_domain"/>
+</Menu>
+
+<Menu name="popupFolderDomainConstraints">
+  <Title>Domain constraints</Title>
+  <Action name="create_domain_constraint"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupDomainConstraint">
+  <Title>Domain constraint</Title>
+  <Action name="drop_domain_constraint"/>
+</Menu>
+
+<Menu name="popupFolderFunctions">
+  <Title>Functions</Title>
+  <Action name="create_function"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFunction">
+	<Title>Function</Title>
+	<Action name="drop_function"/>
+	<Separator/>
+	<Action name="rename_function"/>
+	<Action name="set_description"/>
+	<Action name="modify_function"/>
+	<Separator/>
+	<Action name="grant_privileges_function"/>
+	<Action name="revoke_privileges_function"/>
+	<Separator/>
+	<Action name="execute_function"/>
+    <Action name="debug_function"/>
+	<Separator/>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTables">
+  <Title>Tables</Title>
+  <Action name="create_table"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTable">
+  <Title>Table</Title>
+  <Action name="drop_table"/>
+  <Separator/>
+  <Action name="rename_table"/>
+  <Action name="set_description"/>
+  <Action name="analyse_table"/>
+  <Action name="vacuum_table"/>
+  <Action name="reindex_table"/>
+  <Separator/>
+  <Action name="set_cluster_on_table"/>
+  <Action name="set_wo_cluster_table"/>
+  <Action name="cluster_table"/>
+  <Separator/>
+  <Action name="copy_from_table"/>
+  <Action name="copy_to_table"/>
+  <Separator/>
+  <Action name="set_owner_table"/>
+  <Action name="grant_privileges_table"/>
+  <Action name="revoke_privileges_table"/>
+  <Separator/>
+  <Action name="set_tblspace_table"/>
+  <Action name="set_wo_oids_table"/>
+  <Separator/>
+  <Action name="edit_table_content"/>
+  <Action name="query_table"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTableColumns">
+  <Title>Columns</Title>
+  <Action name="create_columns"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTableColumn">
+  <Title>Column</Title>
+  <Action name="drop_column"/>
+  <Separator/>
+  <Action name="rename_column"/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="set_column_null"/>
+  <Action name="set_column_default"/>
+  <Action name="drop_column_default"/>
+  <Action name="change_column_type"/>
+  <Action name="set_column_storage"/>
+  <Action name="set_column_stat"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTableConstraints">
+  <Title>Constraints</Title>
+  <Action name="create_constraints"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTableConstraint">
+  <Title>Constraints</Title>
+  <Action name="drop_constraint"/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTableIndexes">
+	<Title>Indexes</Title>
+	<Action name="create_indexes"/>
+	<Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTableIndex">
+  <Title>Index</Title>
+  <Action name="drop_index"/>
+  <Separator/>
+  <Action name="rename_index"/>
+  <Action name="set_description"/>
+  <Action name="reindex_index"/>
+  <Separator/>
+  <Action name="set_owner_index"/>
+  <Action name="set_tblspace_index"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderRules">
+  <Title>Rules</Title>
+  <Action name="create_rule"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupRule">
+  <Title>Rule</Title>
+  <Action name="drop_rule"/>
+  <Separator/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderTriggers">
+  <Title>Triggers</Title>
+  <Action name="create_trigger"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupTrigger">
+  <Title>Trigger</Title>
+  <Action name="drop_trigger"/>
+  <Separator/>
+  <Action name="enable_trigger"/>
+  <Action name="rename_trigger"/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupFolderViews">
+  <Title>Views</Title>
+  <Action name="create_view"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupView">
+  <Title>View</Title>
+  <Action name="drop_view"/>
+  <Separator/>
+  <Action name="modify_view"/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="grant_privileges_view"/>
+  <Action name="revoke_privileges_view"/>
+  <Separator/>
+  <Action name="query_view"/>
+</Menu>
+
+<Menu name="popupFolderSequences">
+  <Title>Sequences</Title>
+  <Action name="create_sequence"/>
+  <Action name="refresh"/>
+</Menu>
+
+<Menu name="popupSequence">
+  <Title>Sequence</Title>
+  <Action name="drop_sequence"/>
+  <Separator/>
+  <Action name="modify_sequence"/>
+  <Action name="set_description"/>
+  <Separator/>
+  <Action name="grant_privileges_sequence"/>
+  <Action name="revoke_privileges_sequence"/>
+</Menu>
+
+<Menu name="popupFolderTypes">
+  <Title>Types</Title>
+  <Action name="refresh"/>
+  <Action name="create_base_type"/>
+  <Action name="create_composite_type"/>
+</Menu>
+
+<Menu name="popupType">
+  <Title>Type</Title>
+  <Action name="drop_type"/>
+  <Separator/>
+  <Action name="set_description"/>
+  <Action name="set_owner_type"/>
+</Menu>
+
+<!-- *** Popup menu for Kate *** -->
+
+<Menu name="ktexteditor_popup" noMerge="1">
+	<DefineGroup name="popup_operations" />
+</Menu>
+
+<!-- ************************************************************************ -->
+
+<ToolBar fullWidth="false" name="mainToolBar" newline="true" position="top" noMerge="1"><text>Main Toolbar</text>
+	<DefineGroup name="file_open" />
+	<Action name="file_new" group="file_open" />
+	<Action name="file_open" group="file_open" />
+		
+	<!-- Merge name="mainToolBar_kate_actions"/> zbytecne, cpe si to tam jakchce -->
+	<Merge />
+	<Separator />
+	
+	<Action name="treeitem_up"/>
+	<Action name="treeitem_back"/>
+	<Action name="treeitem_forward"/>
+	
+</ToolBar>
+
+<ToolBar fullWidth="false" name="queryResultToolBar" position="top"><text>Query - Result Toolbar</text>
+	<Merge />
+</ToolBar>
+
+<ToolBar fullWidth="false" name="dataTableToolBar" position="top"><text>Datatable Toolbar</text>
+	<Merge />
+</ToolBar>
+
+<ToolBar fullWidth="false" name="executorToolBar" position="top"><text>Executor Toolbar</text>
+	<Merge />
+</ToolBar>
+
+<ToolBar fullWidth="false" name="debuggerToolBar" position="top"><text>Debugger Toolbar</text>
+	<Merge />
+</ToolBar>
+
+<ToolBar fullWidth="true" name="pathToolBar" newline="true" position="top"><text>Path Toolbar</text>
+	<Action name="path_clear"/>
+	<Action name="path_label"/>
+	<Action name="path_combo"/>
+</ToolBar>
+
+<ToolBar fullWidth="false" name="dbToolBar" position="left"><text>Database Toolbar</text>
+	<Action name="connect"/>
+	<Action name="disconnect"/>
+	<Separator lineSeparator="true"/>
+	<Action name="wizard"/>
+	<Separator lineSeparator="true"/>
+</ToolBar>
+
+</kpartgui>

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,7860 @@
+/***************************************************************************
+                          kpogreview.cpp  -  description
+                          -------------------
+    begin                : Fre Sep  7 16:06:25 CEST 2001
+    copyright            : (C) 2004-2006 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+// include files for Qt
+#include <qtextcodec.h>
+#include <qprinter.h>
+#include <qpainter.h>
+#include <qregexp.h>
+#include <qptrlist.h> 
+#include <qtoolbutton.h>
+
+// include files for KDE
+#include <kiconloader.h>
+#include <kdebug.h>
+#include <kmessagebox.h>
+#include <klocale.h>
+#include <kcursor.h>
+#include <kpopupmenu.h>
+#include <dcopclient.h>
+#include <kstatusbar.h>
+#include <kconfig.h>
+#include <kkeydialog.h>
+#include <kedittoolbar.h>
+#include <ktabwidget.h>
+#include <kapplication.h>
+
+// application specific includes
+#include "kpogreview.h"
+#include "kpgconnectdialog.h"
+
+#include "kpogrecontroller.h"
+#include "kpgbookmarksbutton.h"
+#include "kpgconfiguration.h"
+#include "kpgutil.h"
+#include "kpgsqldialog.h"
+
+// Database objects includes
+#include "DbObjects/kpgconnection.h"
+#include "DbObjects/kpgserver.h"
+
+#include "DbObjects/kpgtablespacesfolder.h"
+#include "DbObjects/kpgtablespace.h"
+#include "DbObjects/kpguser.h"
+#include "DbObjects/kpgusersfolder.h"
+#include "DbObjects/kpggroupsfolder.h"
+#include "DbObjects/kpggroup.h"
+#include "DbObjects/kpgdatabase.h"
+
+#include "DbObjects/kpgschema.h"
+#include "DbObjects/kpgtablesfolder.h"
+#include "DbObjects/kpgviewsfolder.h"
+#include "DbObjects/kpgtypesfolder.h"
+#include "DbObjects/kpgview.h"
+#include "DbObjects/kpgtable.h"
+#include "DbObjects/kpgtype.h"
+#include "DbObjects/kpgsequencesfolder.h"
+#include "DbObjects/kpgsequence.h"
+#include "DbObjects/kpgdomainsfolder.h"
+#include "DbObjects/kpgdomain.h"
+#include "DbObjects/kpgdomainconstraint.h"
+#include "DbObjects/kpgdomainconstraintsfolder.h"
+#include "DbObjects/kpgfunctionsfolder.h"
+#include "DbObjects/kpgfunction.h"
+#include "DbObjects/kpgoperatorsfolder.h"
+#include "DbObjects/kpgoperator.h"
+#include "DbObjects/kpgaggregate.h"
+#include "DbObjects/kpglanguage.h"
+#include "DbObjects/kpglanguagesfolder.h"
+
+#include "DbObjects/kpgtablecolumnsfolder.h"
+#include "DbObjects/kpgtablecolumn.h"
+#include "DbObjects/kpgtableconstraintsfolder.h"
+#include "DbObjects/kpgprimarykeyconstr.h"
+#include "DbObjects/kpgforeignkeyconstr.h"
+#include "DbObjects/kpgcheckconstr.h"
+#include "DbObjects/kpguniqueconstr.h"
+#include "DbObjects/kpgtableindexesfolder.h"
+#include "DbObjects/kpgprimarykey.h"
+#include "DbObjects/kpgindex.h"
+#include "DbObjects/kpgrulesfolder.h"
+#include "DbObjects/kpgrule.h"
+#include "DbObjects/kpgtriggersfolder.h"
+#include "DbObjects/kpgtrigger.h"
+
+// Wizards includes
+#include "Wizards/kpgnewobjectdialog.h"
+#include "Wizards/kpgdropobjectwizard.h"
+#include "Wizards/kpgdroptableobjectwizard.h"
+#include "Wizards/kpg2stepswizard.h"
+#include "Wizards/kpgrenameobjectwizard.h"
+#include "Wizards/kpgcreatetablespacewizard.h"
+#include "Wizards/kpgcreatedatabasewizard.h"
+#include "Wizards/kpgcreateschemawizard.h"
+#include "Wizards/kpgcreatetablewizard.h"
+#include "Wizards/kpgcreateviewwizard.h"
+#include "Wizards/kpgmodifyviewwizard.h"
+#include "Wizards/kpgcreateuserwizard.h"
+#include "Wizards/kpgmodifyuserwizard.h"
+#include "Wizards/kpgcreategroupwizard.h"
+#include "Wizards/kpgmodifygroupwizard.h"
+#include "Wizards/kpgcreatelanguagewizard.h"
+#include "Wizards/kpgcreatedomainwizard.h"
+#include "Wizards/kpgcreatefunctionwizard.h"
+#include "Wizards/kpgmodifyfunctionwizard.h"
+#include "Wizards/kpgcreatesequencewizard.h"
+#include "Wizards/kpgmodifysequencewizard.h"
+#include "Wizards/kpgcreatetableconstraintwizard.h"
+#include "Wizards/kpgcreatetableindexwizard.h"
+#include "Wizards/kpgcreatetablecolumnwizard.h"
+#include "Wizards/kpgmodifytablecolumnwizard.h"
+#include "Wizards/kpgcreaterulewizard.h"
+#include "Wizards/kpgcreatetriggerwizard.h"
+#include "Wizards/kpganalysetablewizard.h"
+#include "Wizards/kpgvacuumtablewizard.h"
+#include "Wizards/kpgcopyfromtablewizard.h"
+#include "Wizards/kpgcopytotablewizard.h"
+#include "Wizards/kpgsetclustertablewizard.h"
+#include "Wizards/kpgsetownerwizard.h"
+#include "Wizards/kpgsettablespacewizard.h"
+#include "Wizards/kpgsetdomaindefaultwizard.h"
+#include "Wizards/kpgcreatedomainconstraintwizard.h"
+#include "Wizards/kpgcreatebasetypewizard.h"
+#include "Wizards/kpgcreatecompositetypewizard.h"
+#include "Wizards/kpgdumpdatabasewizard.h"
+#include "Wizards/kpgrestoredatabasewizard.h"
+#include "Wizards/kpgprivilegeswizard.h"
+#include "Wizards/kpgsetdescriptionwizard.h"
+
+// Wizard pages includes
+#include "Wizards/kpgmodifyviewwidget1.h"
+
+// Property page includes
+#include "PropertyPages/kpgabstractpropertypage.h"
+#include "PropertyPages/kpgpropertypagechildview.h"
+
+// Query result includes
+#include "QueryResult/kpgqueryresultchildview.h"
+#include "QueryResult/kpgqueryresultwindow.h"
+
+// Data table includes 
+#include "DataTable/kpgdatatablechildview.h"
+#include "DataTable/kpgdatatabledialog.h"
+
+// Function executor includes 
+#include "Executor/kpgexecutorchildview.h"
+#include "Executor/kpgexecutor.h"
+
+// PL/pgSQL debugger includes 
+#include "Debugger/kpgdebuggerchildview.h"
+#include "Debugger/kpgdebugger.h"
+
+// XML support includes 
+#include "XmlSupport/kxetexteditordialog.h"
+#include "DataTable/kpgkatexmleditordialog.h"
+
+KPGConfiguration * KPoGreView::s_pKPGConfig = 0L;
+
+
+KPoGreView::KPoGreView(KMdi::MdiMode mode) 
+	: KMdiMainFrm(0, "KPoGre", mode)
+{
+    //kdDebug() << "short int has size: " << QString::number(sizeof(short int)) << endl;
+  	//kdDebug() << "int has size: " << QString::number(sizeof(int)) << endl;
+    //kdDebug() << "long has size: " << QString::number(sizeof(long)) << endl;
+    //kdDebug() << "long long has size: " << QString::number(sizeof(long long)) << endl;
+    //kdDebug() << "pqxx::oid has size: " << QString::number(sizeof(pqxx::oid)) << endl;
+    
+  	resize( 800, 600 ); // start at 800x600 the first time
+
+	setManagedDockPositionModeEnabled(true);
+	setStandardMDIMenuEnabled(false);
+	 
+	// Initialize GUI
+	config=kapp->config();
+	
+	initStatusBar();
+	m_pController = new KPoGreController(this);
+	m_pController->initActions(actionCollection());
+	
+	//-----------------------------------------------------------------
+	// View menu
+  	m_pActEditDeselect = new KAction( i18n("D&eselect Node"), CTRL+Key_E, this,
+										SLOT(slotEditDeselect()), actionCollection(), "edit_deselect" );
+	
+	m_pActViewNodeUp = new KAction( i18n("To &Parent Item"), "up", 0, this,
+	                                SLOT(slotViewNodeUp()), actionCollection(), "treeitem_up" );
+																	
+	m_pActViewNodeBack = new KAction( i18n("To &Back Item"), "back", 0, this,
+	                                SLOT(slotViewNodeBack()), actionCollection(), "treeitem_back" );
+																	
+	m_pActViewNodeForward = new KAction( i18n("To &Forward Item"), "forward", 0, this,
+	                                SLOT(slotViewNodeForward()), actionCollection(), "treeitem_forward" );
+	m_pActViewNodeUp->setEnabled(false);
+	m_pActViewNodeBack->setEnabled(false);
+	m_pActViewNodeForward->setEnabled(false);
+	m_pActEditDeselect->setEnabled(false);
+		
+	//-----------------------------------------------------------------
+	setXMLFile("kpogreui.rc");
+  	createGUI(0);
+
+	// ... create the bookmark list
+	KToolBar * pDatabaseToolBar = toolBar("dbToolBar");
+	
+	m_pBookmarksButton = new KPGBookmarksButton( pDatabaseToolBar );
+	connect( m_pBookmarksButton, SIGNAL( pressed() ), m_pController, SLOT( slotBookmarksButtonPressed() ) );
+	m_pBookmarksButton->enableAddBookmarkMenu(false);
+	connect( m_pBookmarksButton, SIGNAL( openUrl( const QString& ) ), this, SLOT( slotOpenUrl( const QString& ) ) );
+			
+	readOptions();
+	
+	///////////////////////////////////////////////////////////////////
+			 
+	// Initialize global pixmaps
+	KPGTreeItem::m_pIconServer = new QPixmap(UserIcon("server.png"));
+	
+	KPGTreeItem::m_pIconTablespaceSys = new QPixmap(UserIcon("tblspace_sys.png"));
+	KPGTreeItem::m_pIconTablespaceUsr = new QPixmap(UserIcon("tblspace_usr.png"));
+	
+	KPGTreeItem::m_pIconDatabase = new QPixmap(UserIcon("database.png"));
+	KPGTreeItem::m_pIconDatabaseSys = new QPixmap(UserIcon("database_sys.png"));
+	KPGTreeItem::m_pIconDatabaseUsr = new QPixmap(UserIcon("database_usr.png"));
+		
+	KPGTreeItem::m_pIconSchema = new QPixmap(UserIcon("schema.png"));
+  	KPGTreeItem::m_pIconSchemaUnl = new QPixmap(UserIcon("schema_unl.png"));
+	KPGTreeItem::m_pIconSchemaSys = new QPixmap(UserIcon("schema_sys.png"));
+	KPGTreeItem::m_pIconSchemaUsr = new QPixmap(UserIcon("schema_usr.png"));
+		
+  	KPGTreeItem::m_pIconTable = new QPixmap(UserIcon("table.png"));
+  	KPGTreeItem::m_pIconToastTable = new QPixmap(UserIcon("toast_table.png"));
+	KPGTreeItem::m_pIconFunction = new QPixmap(UserIcon("function.png"));
+	KPGTreeItem::m_pIconFunctionC = new QPixmap(UserIcon("function_c.png"));
+	KPGTreeItem::m_pIconFunctionSql = new QPixmap(UserIcon("function_sql.png"));
+	KPGTreeItem::m_pIconFunctionPl = new QPixmap(UserIcon("function_pl.png"));
+	KPGTreeItem::m_pIconView = new QPixmap(UserIcon("view.png"));
+	KPGTreeItem::m_pIconSequence = new QPixmap(UserIcon("sequence.png"));
+	KPGTreeItem::m_pIconOperator = new QPixmap(UserIcon("operator.png"));
+	KPGTreeItem::m_pIconOperatorClass = new QPixmap(UserIcon("operator_class.png"));
+	KPGTreeItem::m_pIconAggregate = new QPixmap(UserIcon("aggregate.png"));
+	KPGTreeItem::m_pIconUser = new QPixmap(UserIcon("user.png"));
+	KPGTreeItem::m_pIconUserSuper = new QPixmap(UserIcon("user_super.png"));
+	KPGTreeItem::m_pIconUserCanCreateDb = new QPixmap(UserIcon("user_crt_db.png"));
+	KPGTreeItem::m_pIconGroup = new QPixmap(UserIcon("group.png"));
+	KPGTreeItem::m_pIconType = new QPixmap(UserIcon("type.png"));
+	KPGTreeItem::m_pIconTypeBase = new QPixmap(UserIcon("type_base.png"));
+	KPGTreeItem::m_pIconTypeComposite = new QPixmap(UserIcon("type_composite.png"));
+	KPGTreeItem::m_pIconTypeStandalone = new QPixmap(UserIcon("type_standalone.png"));
+	KPGTreeItem::m_pIconLanguage = new QPixmap(UserIcon("language.png"));
+	KPGTreeItem::m_pIconDomain = new QPixmap(UserIcon("domain.png"));
+	KPGTreeItem::m_pIconConversion = new QPixmap(UserIcon("conversion.png"));
+	KPGTreeItem::m_pIconCast = new QPixmap(UserIcon("cast.png"));
+	
+	KPGTreeItem::m_pIconColumnOther = new QPixmap(UserIcon("column.png"));
+	KPGTreeItem::m_pIconColumnBool = new QPixmap(UserIcon("column_bool.png"));
+	KPGTreeItem::m_pIconColumnGeo = new QPixmap(UserIcon("column_geo.png"));   	
+	KPGTreeItem::m_pIconColumnNet = new QPixmap(UserIcon("column_net.png"));
+	KPGTreeItem::m_pIconColumnOid = new QPixmap(UserIcon("column_oid.png")); 
+	KPGTreeItem::m_pIconColumnXid = new QPixmap(UserIcon("column_xid.png"));
+	KPGTreeItem::m_pIconColumnTid = new QPixmap(UserIcon("column_tid.png"));
+	KPGTreeItem::m_pIconColumnCid = new QPixmap(UserIcon("column_cid.png"));
+	KPGTreeItem::m_pIconColumnDate = new QPixmap(UserIcon("column_date.png"));
+	KPGTreeItem::m_pIconColumnChar = new QPixmap(UserIcon("column_char.png"));  
+	KPGTreeItem::m_pIconColumnNum = new QPixmap(UserIcon("column_num.png"));
+	KPGTreeItem::m_pIconColumnTime = new QPixmap(UserIcon("column_time.png"));
+	KPGTreeItem::m_pIconColumnBit = new QPixmap(UserIcon("column_bit.png"));
+	KPGTreeItem::m_pIconColumnBin = new QPixmap(UserIcon("column_bin.png"));
+	KPGTreeItem::m_pIconColumnXml = new QPixmap(UserIcon("column_xml.png"));
+	KPGTreeItem::m_pIconColumnUuid = new QPixmap(UserIcon("column_uuid.png"));
+		 
+	KPGTreeItem::m_pIconPrimaryKeyConstr = new QPixmap(UserIcon("primary_key.png"));
+	KPGTreeItem::m_pIconForeignKeyConstr = new QPixmap(UserIcon("foreign_key.png"));
+	KPGTreeItem::m_pIconUniqueConstr = new QPixmap(UserIcon("index.png"));
+	KPGTreeItem::m_pIconCheckConstr = new QPixmap(UserIcon("check.png"));
+	KPGTreeItem::m_pIconPrimaryKey = new QPixmap(UserIcon("primary_key.png"));
+	KPGTreeItem::m_pIconIndex = new QPixmap(UserIcon("index.png"));
+	KPGTreeItem::m_pIconRule = new QPixmap(UserIcon("rule.png"));
+	KPGTreeItem::m_pIconTrigger = new QPixmap(UserIcon("trigger.png"));
+	 
+	KPGTreeItem::m_pIconFolderBlue = new QPixmap(SmallIcon("folder_blue.png"));
+	KPGTreeItem::m_pIconFolderRed = new QPixmap(SmallIcon("folder_red.png"));
+	KPGTreeItem::m_pIconFolderCyan = new QPixmap(SmallIcon("folder_cyan.png"));
+	KPGTreeItem::m_pIconFolderGreen = new QPixmap(SmallIcon("folder_green.png"));
+	KPGTreeItem::m_pIconFolderYellow = new QPixmap(SmallIcon("folder_yellow.png"));
+	KPGTreeItem::m_pIconFolderViolet = new QPixmap(SmallIcon("folder_violet.png"));
+	KPGTreeItem::m_pIconFolderGrey = new QPixmap(SmallIcon("folder_grey.png"));
+	
+	KPGTreeItem::m_pIconNull = new QPixmap(SmallIcon("null.png"));
+	
+	KPGTreeItem::m_pIconLock = new QPixmap(UserIcon("lock.png"));
+	
+	KPGUtil::m_pIconTrue = new QPixmap(UserIcon("true.png"));
+    KPGUtil::m_pIconFalse = new QPixmap(UserIcon("false.png"));
+	
+	// MDI close button
+#if KDE_IS_VERSION(3, 3, 0)
+	setToolviewStyle( KMdi::TextAndIcon );
+	tabWidget()->setHoverCloseButton( false );
+	
+//	if (Settings::showCloseTabsButton())
+//	{
+		QToolButton *but = new QToolButton(tabWidget());
+		but->setIconSet(SmallIcon("tab_remove"));
+		but->adjustSize();
+		but->hide();
+		connect(but, SIGNAL(clicked()), actionCollection()->action( "file_close" ), SIGNAL(activated()));
+		tabWidget()->setCornerWidget(but, TopRight);
+//	}
+#endif
+	
+		
+	// Left tree view
+	m_pViewTree = new QListView(this);
+	m_pViewTree->setIcon( SmallIcon("view_tree") );
+	m_pViewTree->setCaption( i18n("Servers") );
+	m_pViewTree->addColumn(i18n("Tree"));
+	m_pViewTree->setRootIsDecorated(true);
+	m_pViewTree->setAllColumnsShowFocus(true);
+	m_pViewTree->setSortColumn(-1);
+	addToolWindow( m_pViewTree, KDockWidget::DockLeft, getMainDockWidget(), 20 );
+
+	connect(m_pViewTree, SIGNAL(rightButtonPressed(QListViewItem*, const QPoint&, int)), this, SLOT  (slotTreeViewRightButtonPressed(QListViewItem*, const QPoint&, int)) );
+	
+	connect( m_pViewTree, SIGNAL(selectionChanged()), this, SLOT(slotSelectionChanged()));
+			
+	connect( this, SIGNAL(sigContextMenuRequested(const QString&, const QPoint&)), this, SLOT(slotContextMenuRequested(const QString&,const QPoint&)) );
+	
+	connect( this, SIGNAL( viewActivated( KMdiChildView * ) ), this, SLOT( slotCurrentChildViewChanged( KMdiChildView * ) ) );
+	
+	createPropertyPageChildView(0);
+	
+	setAutoSaveSettings();
+	
+	// Read the dock config only if the app was started at least only once - kmdi is tricky
+    KConfig *cfg = new KConfig("KPoGre_dockposrc");
+    if (cfg->readNumEntry("KPoGre_main_dock_settings", 0) == 1) manager()->readConfig(cfg);
+    cfg->writeEntry("KPoGre_main_dock_settings", 1);
+    delete cfg;
+    
+    // Hide tollbars for MDI child views on startup
+    KToolBar * pToolBar = toolBar("dataTableToolBar");
+	if(pToolBar != 0) pToolBar->hide();
+	
+	pToolBar = toolBar("queryResultToolBar");
+	if(pToolBar != 0) pToolBar->hide();
+	
+	pToolBar = toolBar("executorToolBar");
+	if(pToolBar != 0) pToolBar->hide();
+	
+	pToolBar = toolBar("debuggerToolBar");
+	if(pToolBar != 0) pToolBar->hide();
+	
+	m_eActiveView = KPoGreView::eMdiChildNone;
+	
+	KXETextEditorDialog xx(this); // does nothing, only solve fcking linker error
+	
+	m_pKateXmlEditorDialog = new KPGKateXmlEditorDialog(this, createKatePartFactory());
+}
+
+KPoGreView::~KPoGreView()
+{
+	KConfig *cfg = new KConfig("KPoGre_dockposrc");
+    manager()->writeConfig(cfg);
+    delete cfg;
+        
+	delete m_pViewTree;
+	
+	if ( s_pKPGConfig )
+		delete s_pKPGConfig;
+
+	s_pKPGConfig = 0L;
+
+  	if(m_pBookmarksButton)
+    	delete m_pBookmarksButton;
+		
+	delete m_pController;
+	delete m_pKateXmlEditorDialog;
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     PUBLIC FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+
+KPGConfiguration * KPoGreView::configuration()
+{
+	if ( ! s_pKPGConfig )
+		s_pKPGConfig = new KPGConfiguration();
+
+	return s_pKPGConfig;
+}
+
+void KPoGreView::setWaitCursor()
+{
+  setCursor(KCursor::waitCursor());
+  m_pViewTree->setCursor(KCursor::waitCursor());
+}
+
+void KPoGreView::setNormalCursor()
+{
+  setCursor(KCursor::arrowCursor());
+  m_pViewTree->setCursor(KCursor::arrowCursor());
+}
+
+KPGPropertyPageChildView * KPoGreView::createPropertyPageChildView(KPGTreeItem * pItem)
+{
+ 	KMdiIterator<KMdiChildView*>* it = createIterator();
+    for ( it->first(); !it->isDone(); it->next() )
+    {
+    	KMdiChildView * pMdiChildView = it->currentItem();
+         
+        if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+		{
+			// already exists
+			KPGPropertyPageChildView *pChildView = static_cast <KPGPropertyPageChildView*> (pMdiChildView);
+			/*m_pWidgetProperties = */pChildView->createPropertiesWidget(pItem);
+			delete it;
+			return pChildView;
+		}
+                      
+    }
+    delete it;
+	 	
+	KPGPropertyPageChildView *pChildView = new KPGPropertyPageChildView(this, factory());
+	/*m_pWidgetProperties = */pChildView->createPropertiesWidget(pItem);
+	
+	addWindow( pChildView );
+	
+	return pChildView;
+}
+
+
+// Open query result window, try search selected schema to pass it as argument
+KPGQueryResultChildView * KPoGreView::createQueryResultChildView(const QString & strSelectedName, const QString & strDatabase)
+{
+	QString strNamespaceName = QString::null;
+	
+	// Try find schema, for selected item or it's parent tree
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(pSelectedItem)
+	{
+		KPGSchema *pSchema = 0;
+		
+		if((static_cast <KPGTreeItem *> (pSelectedItem))->type() == KPGTreeItem::nodeSchema)
+		{
+			pSchema = static_cast <KPGSchema *> (pSelectedItem);
+		}
+		else
+		{
+			pSchema = static_cast <KPGSchema *> (pSelectedItem->getParentByType(KPGTreeItem::nodeSchema));
+		}
+		
+		if((pSchema) && (pSchema->text(0) != "public"))
+		{
+			strNamespaceName = pSchema->text(0);
+		}
+	}
+		
+	return createQueryResultChildView(strSelectedName, strNamespaceName, strDatabase);
+}
+
+// Open query result window
+KPGQueryResultChildView * KPoGreView::createQueryResultChildView(const QString & strSelectedName, const QString & strNamespaceName, const QString & strDatabase)
+{
+	KPGQueryResultChildView *pChildView = new KPGQueryResultChildView(this, createKatePartFactory(), factory(), strNamespaceName, strSelectedName);
+
+	addWindow( pChildView );
+	
+	// connect signals to slots
+	KPGQueryResultWindow *pQueryResultWindow = pChildView->getQueryResultWindow();
+	
+	connect(pQueryResultWindow, SIGNAL(sigRequestDatabasesList(KPGQueryResultWindow *, const QString&)), 
+	this, SLOT(slotRequestDatabasesList(KPGQueryResultWindow *, const QString&)));
+		
+	connect(pQueryResultWindow, SIGNAL(sigRequestListOfDatabaseObjectsForCodeCompletion(KPGQueryResultWindow *, const QString&)), 
+	this, SLOT(slotRequestListOfDatabaseObjectsForCodeCompletion(KPGQueryResultWindow *, const QString&)));
+		
+	connect(pQueryResultWindow, SIGNAL(sigRequestTableColumnsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)), 
+	this, SLOT(slotRequestTableColumnsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)));
+
+    connect(pQueryResultWindow, SIGNAL(sigRequestSchemaChildsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)), this,
+SLOT(slotRequestSchemaChildsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)));
+
+    connect(pQueryResultWindow, SIGNAL(sigRequestFunctionReturnTypeAttributesListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)), 
+	this, SLOT(slotRequestFunctionReturnTypeAttributesListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid)));
+	
+	connect(pQueryResultWindow, SIGNAL(sigSetTerminalIcon(KPGQueryResultWindow *, int)), this, SLOT(slotSetTerminalIcon(KPGQueryResultWindow *, int)));
+	
+	connect(pChildView, SIGNAL(sigUpdateTabTooltip(KMdiChildView *, const QString &)),
+	this, SLOT(slotUpdateTabTooltip(KMdiChildView *, const QString &)));
+	
+	if(strDatabase != QString::null)
+	{
+		pQueryResultWindow->m_pComboBoxDatabase->insertItem(strDatabase);	
+	}
+		
+	return pChildView;
+}
+
+KPGDataTableChildView * KPoGreView::createDataTableChildView(KPGConnection * pConnection, 
+	const QString & strNamespace, 
+	const QString & strTableName,
+	const ListTableColumns & listTableColumns,
+	const MapIndexKey & mapIndexKey, 
+	const QString &strWherePredicate, 
+	const QString &strOrderByPredicate)
+{
+	KPGDataTableChildView *pChildView = new KPGDataTableChildView(this, 
+		factory(), 
+		pConnection, 
+		strNamespace, 
+		strTableName, 
+		listTableColumns,
+		mapIndexKey, 
+		strWherePredicate, 
+		strOrderByPredicate, 
+		m_pKateXmlEditorDialog);
+	
+	addWindow( pChildView );
+	
+	tabWidget()->setTabToolTip(pChildView, strNamespace + "." + strTableName);
+	
+	// connect signals to slots
+	//KPGDataTable *pDataTable = pChildView->getDataTable();
+	
+	return pChildView;
+}
+
+KPGExecutorChildView * KPoGreView::createExecutorChildView(KPGConnection * pConnection, 
+	const QString & strNamespace, 
+	KPGFunction *pFunction)
+{
+	KPGExecutorChildView *pChildView = new KPGExecutorChildView(this, 
+		factory(),
+		pConnection, 
+		strNamespace, 
+		pFunction);
+
+	addWindow( pChildView );
+	
+	tabWidget()->setTabToolTip(pChildView, strNamespace + "." + pFunction->text(0));
+	
+	// connect signals to slots
+	KPGExecutor *pExecutor = pChildView->getExecutor();
+	
+	pExecutor->updateActions();
+	
+	return pChildView;
+}
+
+KPGDebuggerChildView * KPoGreView::createDebuggerChildView(KPGConnection * pConnection, 
+	const QString & strNamespace, 
+	KPGFunction *pFunction)
+{
+	KPGDebuggerChildView *pChildView = new KPGDebuggerChildView(this, 
+		createKatePartFactory(),
+		factory(),
+		pConnection, 
+		strNamespace, 
+		pFunction);
+	addWindow( pChildView );
+	
+	tabWidget()->setTabToolTip(pChildView, strNamespace + "." + pFunction->text(0));
+	
+	// connect signals to slots
+	//KPGDebugger *pDebugger = pChildView->getDebugger();
+	
+	return pChildView;
+}
+
+// Get type of active MDI child view
+KPoGreView::EMdiChildView KPoGreView::getActiveChildViewType()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return eMdiChildNone;
+	
+	if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+	{
+		return eMdiChildProperties;
+	}
+	if(pMdiChildView->className() == QString("KPGQueryResultChildView"))
+	{
+		return eMdiChildQueryResult;
+	}
+	if(pMdiChildView->className() == QString("KPGDataTableChildView"))
+	{
+		return eMdiChildDataTable;
+	}
+	if(pMdiChildView->className() == QString("KPGExecutorChildView"))
+	{
+		return eMdiChildExecutor;
+	}
+	if(pMdiChildView->className() == QString("KPGDebuggerChildView"))
+	{
+		return eMdiChildDebugger;
+	}
+	
+	kdError() << "KPoGreView::getActiveChildViewType Unknown MDI child type " << endl;
+	return eMdiChildNone;
+}
+
+// Return active Properties MDI child view
+KPGPropertyPageChildView * KPoGreView::getActivePropertyPageChildView()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+	{
+		KPGPropertyPageChildView *pChildView = static_cast <KPGPropertyPageChildView*> (pMdiChildView);
+		return pChildView;
+	}
+	return 0;
+}
+
+// Display properties of underlying database object
+void KPoGreView::displayProperties()
+{
+	KPGPropertyPageChildView *pChildView = getActivePropertyPageChildView();
+	if(pChildView)
+	{
+		return pChildView->displayProperties();
+	}
+}
+
+// Return active property window
+KPGAbstractPropertyPage * KPoGreView::getActivePropertyPage()
+{
+	KPGPropertyPageChildView *pChildView = getActivePropertyPageChildView();
+	if(pChildView)
+	{
+		return pChildView->getPropertyPage();
+	}
+	return 0;
+}
+
+// Return active Query/result MDI child view
+KPGQueryResultChildView * KPoGreView::getActiveQueryResultChildView()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	if(pMdiChildView->className() == QString("KPGQueryResultChildView"))
+	{
+		KPGQueryResultChildView *pChildView = static_cast <KPGQueryResultChildView*> (pMdiChildView);
+		return pChildView;
+	}
+	return 0;
+}
+
+// Return active Query/result window
+KPGQueryResultWindow * KPoGreView::getActiveQueryResultWindow()
+{
+	KPGQueryResultChildView *pChildView = getActiveQueryResultChildView();
+	if(pChildView)
+	{
+		return pChildView->getQueryResultWindow();
+	}
+	return 0;
+}
+
+
+// Return active Datatable MDI child view
+KPGDataTableChildView * KPoGreView::getActiveDataTableChildView()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	if(pMdiChildView->className() == QString("KPGDataTableChildView"))
+	{
+		KPGDataTableChildView *pChildView = static_cast <KPGDataTableChildView*> (pMdiChildView);
+		return pChildView;
+	}
+	return 0;
+}
+
+// Return active Datatable window
+KPGDataTable * KPoGreView::getActiveDataTable()
+{
+	KPGDataTableChildView *pChildView = getActiveDataTableChildView();
+	if(pChildView)
+	{
+		return pChildView->getDataTable();
+	}
+	return 0;	
+}
+
+// Return active Executor MDI child view
+KPGExecutorChildView * KPoGreView::getActiveExecutorChildView()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	if(pMdiChildView->className() == QString("KPGExecutorChildView"))
+	{
+		KPGExecutorChildView *pChildView = static_cast <KPGExecutorChildView*> (pMdiChildView);
+		return pChildView;
+	}
+	return 0;
+}
+	
+// Return active Executor window
+KPGExecutor * KPoGreView::getActiveExecutor()
+{
+	KPGExecutorChildView *pChildView = getActiveExecutorChildView();
+	if(pChildView)
+	{
+		return pChildView->getExecutor();
+	}
+	return 0;
+}
+
+// Return active Debugger MDI child view
+KPGDebuggerChildView * KPoGreView::getActiveDebuggerChildView()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	if(pMdiChildView->className() == QString("KPGDebuggerChildView"))
+	{
+		KPGDebuggerChildView *pChildView = static_cast <KPGDebuggerChildView*> (pMdiChildView);
+		return pChildView;
+	}
+	return 0;
+}
+	
+// Return active Debugger window
+KPGDebugger * KPoGreView::getActiveDebugger()
+{
+	KPGDebuggerChildView *pChildView = getActiveDebuggerChildView();
+	if(pChildView)
+	{
+		return pChildView->getDebugger();
+	}
+	return 0;
+}
+
+// Return the currently selected result table (e.g. for saving the content to a file
+QTable* KPoGreView::getCurrentlySelectedTableResult()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if(pMdiChildView == 0) return 0;
+	
+	if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+	{
+		KPGPropertyPageChildView *pChildView = static_cast <KPGPropertyPageChildView*> (pMdiChildView);
+		return pChildView->getPropertyPage()->tableResult();
+	}
+	else if(pMdiChildView->className() == QString("KPGQueryResultChildView"))
+	{
+		KPGQueryResultChildView *pChildView = static_cast <KPGQueryResultChildView*> (pMdiChildView);
+		return pChildView->getQueryResultWindow()->tableResult();
+		
+	}
+	else if(pMdiChildView->className() == QString("KPGDataTableChildView"))
+	{
+		KPGDataTableChildView *pChildView = static_cast <KPGDataTableChildView*> (pMdiChildView);
+		return pChildView->getDataTable();
+		
+	}
+	else if(pMdiChildView->className() == QString("KPGExecutorChildView"))
+	{
+		KPGExecutorChildView *pChildView = static_cast <KPGExecutorChildView*> (pMdiChildView);
+		return pChildView->getExecutor()->tableResult();
+	}
+	else
+	{
+		kdError() <<  k_funcinfo << "Unhandled MDI view: " << pMdiChildView->className() << endl;
+	}
+	
+	return 0;
+}
+
+bool KPoGreView::requestClose()
+{
+	KMdiChildView* pMdiChildView = activeWindow();
+	if (pMdiChildView == 0) return false;
+	
+	QString strMdiChildViewClassName(pMdiChildView->className());
+	
+	if(strMdiChildViewClassName == QString("KPGPropertyPageChildView"))
+	{
+		KPGPropertyPageChildView *pPropertyPageChildView = static_cast <KPGPropertyPageChildView *> (pMdiChildView);
+		if(pPropertyPageChildView->requestClose() == false)
+			return false;
+	}
+	else if(strMdiChildViewClassName == QString("KPGQueryResultChildView"))
+	{
+		KPGQueryResultChildView *pQueryResultChildView = static_cast <KPGQueryResultChildView *> (pMdiChildView);
+		if(pQueryResultChildView->requestClose() == false)
+			return false;
+	}
+	else if(strMdiChildViewClassName == QString("KPGDataTableChildView"))
+	{
+		KPGDataTableChildView *pDataTableChildView = static_cast <KPGDataTableChildView *> (pMdiChildView);
+		if(pDataTableChildView->requestClose() == false)
+			return false;
+	}
+	else if(strMdiChildViewClassName == QString("KPGDebuggerChildView"))
+	{
+		KPGDebuggerChildView *pDebuggerChildView = static_cast <KPGDebuggerChildView *> (pMdiChildView);
+		if(pDebuggerChildView->requestClose() == false)
+			return false;
+	}
+	else if(strMdiChildViewClassName == QString("KPGExecutorChildView"))
+	{
+		KPGExecutorChildView *pExecutorChildView = static_cast <KPGExecutorChildView *> (pMdiChildView);
+		if(pExecutorChildView->requestClose() == false)
+			return false;
+	}
+			
+	closeWindow(pMdiChildView);
+	return true;
+}
+
+// Close application
+void KPoGreView::close()
+{
+	// Look if connected server
+	bool bServerFound = false;
+	
+	// search server
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			bServerFound = true;
+			break;
+		}
+	}
+
+	// Count child MDI windows
+	int iMdiCount = 0;
+	KMdiIterator<KMdiChildView*>* it = createIterator();
+    for ( it->first(); !it->isDone(); it->next() )
+    {
+    	KMdiChildView * pMdiChildView = it->currentItem();
+         
+        if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+		{
+			;
+		}
+		else
+			iMdiCount++;
+                      
+    }
+    delete it;
+
+
+	if(bServerFound || (iMdiCount > 0))
+	{
+		if (KMessageBox::questionYesNo(this, i18n("Exit KPoGre ?")) == KMessageBox::Yes) 
+		{
+			KMdiMainFrm::close();
+			kdDebug() << "Closing application" << endl;
+		}
+	}
+	else
+	{
+		// Close without question
+		KMdiMainFrm::close();
+		kdDebug() << "Closing application" << endl;
+	}
+}
+
+// Create Kate part view
+KParts::Factory* KPoGreView::createKatePartFactory()
+{
+    // Get KPart factory for the katepart library.
+    // This returns 0, if the library can not be found
+    KParts::Factory* factory = (KParts::Factory *) KLibLoader::self()->factory ("libkatepart");
+
+    if (factory)
+    {
+        return factory;
+    }
+    else
+    {
+        KMessageBox::error(this, i18n("A KDE text-editor component could not be found;\n"
+        "please check your KDE installation."));
+      	exit(1); 
+    }
+}
+
+/////////////////////////////////////////////////////////////////////
+//                     PROTECTED FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+
+
+void KPoGreView::initStatusBar()
+{
+  statusBar()->insertItem(i18n("Ready."), ID_STATUS_MSG);
+}
+
+void KPoGreView::saveOptions()
+{	
+	config->setGroup("General Options");
+	config->writeEntry("Geometry", size());
+	config->writeEntry("Show Toolbar", m_pController->isActViewToolBarChecked());
+	config->writeEntry("Show Statusbar",m_pController->isActViewStatusBarChecked());
+	config->writeEntry("mainToolBarPos", (int) toolBar("mainToolBar")->barPos());
+	config->writeEntry("pathToolBarPos", (int) toolBar("pathToolBar")->barPos());
+	config->writeEntry("dbToolBarPos", (int) toolBar("dbToolBar")->barPos());
+  	m_pController->getRecentFilesAction()->saveEntries(config,"Recent Files");
+}
+
+void KPoGreView::readOptions()
+{
+	config->setGroup("General Options");
+	
+	// bar status settings
+	bool bViewToolbar = config->readBoolEntry("Show Toolbar", true);
+	m_pController->setActViewToolBarChecked(bViewToolbar);
+	m_pController->slotViewToolBar();
+	
+	bool bViewStatusbar = config->readBoolEntry("Show Statusbar", true);
+	m_pController->setActViewStatusBarChecked(bViewStatusbar);
+	m_pController->slotViewStatusBar();
+	
+	// bar position settings
+	KToolBar::BarPosition toolBarPos;
+	toolBarPos=(KToolBar::BarPosition) config->readNumEntry("mainToolBarPos", KToolBar::Top);
+	toolBar("mainToolBar")->setBarPos(toolBarPos);
+		
+	toolBarPos=(KToolBar::BarPosition) config->readNumEntry("pathToolBarPos", KToolBar::Top);
+	toolBar("pathToolBar")->setBarPos(toolBarPos);
+		
+	toolBarPos=(KToolBar::BarPosition) config->readNumEntry("dbToolBarPos", KToolBar::Left);
+	toolBar("dbToolBar")->setBarPos(toolBarPos);
+		
+	// initialize the recent file list
+	m_pController->getRecentFilesAction()->loadEntries(config,"Recent Files");
+	
+	QSize size=config->readSizeEntry("Geometry");
+	if(!size.isEmpty())
+	{
+		resize(size);
+	}
+}
+
+
+// Select given tree item
+void KPoGreView::selectItem(KPGTreeItem * const pItem)
+{
+	if ( ! pItem  )
+	{
+		kdDebug() << k_funcinfo << "The given pointer is a null pointer" << endl;
+		return;
+	}
+
+	m_pViewTree->setSelected( pItem, true );
+	m_pViewTree->setCurrentItem( pItem );
+	m_pViewTree->ensureItemVisible( pItem );
+}
+
+// Select item defined by OID and path
+KPGTreeItem* KPoGreView::findItem(const KPGOidLink & oidLink)
+{
+	QString strPath = oidLink.path();
+	
+	int iPos = strPath.find('/');
+	if(iPos <= 0) return 0;
+
+	QString strServer = strPath.mid(0, iPos);
+	
+	// search server
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{ 
+				pItem = pItem->nextSibling(); continue; 
+			}
+			// remove server name from path
+			QString strPath2 = strPath.mid(iPos + 1, strPath.length() - iPos - 1);
+									
+			//--- traverse list of databases
+			KPGTreeItem * pItem2 = static_cast <KPGTreeItem *> (pServer->firstChild());
+					
+			while(pItem2)
+			{
+				KPGTreeItem * pFoundItem = 0;
+					
+				if((pFoundItem = pItem2->searchObject(strPath2, oidLink.oid())) != 0)
+				{
+					return pFoundItem;
+				}
+				pItem2 = static_cast <KPGTreeItem *> (pItem2->nextSibling());
+			}
+			pItem = pItem->nextSibling();
+		}
+	}
+
+	return 0;
+}
+
+KPGDatabase * KPoGreView::lookUpParentDatabaseAndListOfSchemas(KPGTreeItem * pItem, QPtrList<QListViewItem> & listOfSchemas)
+{
+	KPGDatabase * pDatabase = 0;
+	 
+	if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeSchema)
+		{
+			pDatabase = static_cast <KPGDatabase *> (pItem->parent());
+			listOfSchemas.append(static_cast <KPGSchema *> (pItem));
+		}
+		else
+		{
+			if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+			{
+				pDatabase = static_cast <KPGDatabase *> (pItem);
+				
+				// Traverse Database childs and add schemas to combobox
+				QListViewItem * pChildItem = pItem->firstChild();
+				while(pChildItem)
+				{			
+					if((static_cast <KPGTreeItem *> (pChildItem))->type() == KPGTreeItem::nodeSchema)
+					{
+						listOfSchemas.append(static_cast <KPGSchema *> (pChildItem));
+					}
+		
+					pChildItem = pChildItem->nextSibling();
+				}
+			}
+		}
+		
+	return pDatabase;
+}
+
+void KPoGreView::refreshItemsFolder(KPGTreeItem * pItem, const QString & strFolderName)
+{
+	if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeSchema)
+	{
+		KPGItemsFolder *pItemsFolder = static_cast <KPGItemsFolder *> (pItem->getChildByName(strFolderName));
+		try
+		{
+			pItemsFolder->refresh(); // refresh folder
+		}
+		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+		{
+			//KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem);
+					
+			// Traverse Database childs refresh schemas table folders
+			try
+			{
+				QListViewItem * pChildItem = pItem->firstChild();
+				while(pChildItem)
+				{			
+					if((static_cast <KPGTreeItem *> (pChildItem))->type() == KPGTreeItem::nodeSchema)
+					{
+						KPGSchema *pSchema = static_cast <KPGSchema *> (pChildItem);	
+				
+						KPGItemsFolder *pItemsFolder = static_cast <KPGItemsFolder *> (pSchema->getChildByName(strFolderName));
+						if(!pItemsFolder)
+						{
+							kdDebug() << k_funcinfo << "Return null pointer for " << strFolderName << endl;
+							return;
+						}
+						pItemsFolder->refresh(); // refresh all schemas tables folder under database
+					}
+				
+					pChildItem = pChildItem->nextSibling();
+				}
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+		}
+	}
+}
+
+// Walk through m_pViewTree items
+KPGTreeItem * KPoGreView::nextTreeItem(const KPGTreeItem *pItem)
+{
+	if(pItem == 0)
+	{
+		kdDebug() << k_funcinfo << "The given item is null" << endl;
+		return 0;
+	}
+	
+	// checking for a child
+	if ( ! pItem->firstChild() == 0 )
+		return static_cast <KPGTreeItem *> (pItem->firstChild());
+
+	// there is no child -> checking for the next sibling
+	if ( ! pItem->nextSibling() == 0 )
+		return static_cast <KPGTreeItem *> (pItem->nextSibling());
+
+	// there is no next sibling -> checking for parents' next sibling(s)
+	KPGTreeItem *pItemParent = static_cast <KPGTreeItem *> (pItem->parent());
+	while ( ! pItemParent == 0 )
+	{
+		if ( ! pItemParent->nextSibling() == 0 )
+			return static_cast <KPGTreeItem *> (pItemParent->nextSibling());
+
+		pItemParent = static_cast <KPGTreeItem *> (pItemParent->parent()); // parent has no sibling - try its parent
+	}
+
+	// parent has no parents anymore
+	return 0;
+}
+
+
+/////////////////////////////////////////////////////////////////////
+//                     ACTION FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+
+// Called when user choose bookmark
+void KPoGreView::openUrl(const QString& strUrl)
+{
+    
+	QString strHost;
+	QString strPort;
+	QString strUser;
+	QString strDatabase;
+	
+	int pos = 0;        
+	
+	// find host name in URL
+	QRegExp patternHost("host=\\S*[\\s,]", false); // search keyword
+				
+	pos=patternHost.search(strUrl, 0);
+	if(pos >= 0)
+	{
+		int l = patternHost.matchedLength();
+		strHost = strUrl.mid(pos + 5, l - 6);
+	} 
+	else
+		KMessageBox::sorry(this, "Cannot parse URL");
+	
+	// find port number in URL
+	QRegExp patternPort("port=\\S*[\\s,]", false); // search keyword
+				
+	pos=patternPort.search(strUrl, 0);
+	if(pos >= 0)
+	{
+		int l = patternPort.matchedLength();
+		strPort = strUrl.mid(pos + 5, l - 6);
+	} 
+	else
+		KMessageBox::sorry(this, "Cannot parse URL");
+	
+	// find user name in URL
+	QRegExp patternUser("user=\\S*", false); // search keyword
+				
+	pos=patternUser.search(strUrl, 0);
+	if(pos >= 0)
+	{
+		int l = patternUser.matchedLength();
+		strUser = strUrl.mid(pos + 5, l - 5);
+	}
+	else
+		KMessageBox::sorry(this, "Cannot parse URL");
+		
+	// find database name in URL
+	QRegExp patternDatabase("dbname=\\S*", false); // search keyword
+				
+	pos=patternDatabase.search(strUrl, 0);
+	if(pos >= 0)
+	{
+		int l = patternDatabase.matchedLength();
+		strDatabase = strUrl.mid(pos + 7, l - 7);
+	}
+	else
+		KMessageBox::sorry(this, "Cannot parse URL");
+		
+	
+	// display connect dialog
+	KPGConnectDialog dlg( this, "connect dialog" );
+	dlg.setHostName(strHost);
+	dlg.setUserName(strUser);
+	dlg.setPortNumber(strPort);
+	dlg.setDatabaseName(strDatabase);
+	dlg.setGui();
+				
+	KPGServer *pServer = 0;
+		
+	do
+	{
+		if( dlg.exec() != QDialog::Accepted )
+		{
+			return;
+		}
+			
+		//--- check if server is already connected
+		QListViewItem * pItem = m_pViewTree->firstChild();
+		while(pItem)
+		{
+			if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+			{
+				KPGServer *pServer = static_cast <KPGServer *> (pItem);
+				if(pServer->text(0) == dlg.hostName())
+				{ 
+					KMessageBox::sorry(this, i18n("Server is already connected"));
+					return;
+				}	
+				pItem = pItem->nextSibling();
+			}
+		}	
+	
+		pServer = new KPGServer(m_pViewTree);
+					
+		try
+		{
+			setWaitCursor();
+			
+			pServer->connectToServer(dlg.hostName(), dlg.portNumber(), dlg.databaseName(), dlg.userName(), dlg.password());
+			
+			// Inform active MDI child about change of available servers
+			KMdiChildView *activeMdiView = activeWindow();
+			if(activeMdiView)
+			{
+				slotCurrentChildViewChanged(activeMdiView);
+			}
+		}
+		catch(const std::exception &e)
+		{
+			setNormalCursor();
+			delete pServer; // delete unsucessfull connection
+			pServer = 0;
+			QTextCodec *pTextCodec = QTextCodec::codecForLocale(); 
+			KMessageBox::sorry(this, pTextCodec->toUnicode(e.what()));
+		}
+
+	} while(pServer == 0);
+	
+	if(pServer)
+	{
+		try
+		{
+			pServer->refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			delete pServer; // delete unsucessfull connection
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+			return;
+		}
+	}
+	
+	setNormalCursor();
+}
+
+// Connect to PostgreSQL server
+void KPoGreView::databaseConnect()
+{
+  	KPGConnectDialog dlg( this, "connect dialog" );
+	KPGServer *pServer = 0;
+	
+	do
+	{
+		if( dlg.exec() != QDialog::Accepted )
+		{
+			return;
+		}
+			
+		//--- check if server is already connected
+		QListViewItem * pItem = m_pViewTree->firstChild();
+		while(pItem)
+		{
+			if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+			{
+				KPGServer *pServer = static_cast <KPGServer *> (pItem);
+				
+				if(pServer->text(0) == dlg.hostName())
+				{ 
+					KMessageBox::sorry(this, i18n("Server is already connected"));
+					return;		
+				}	
+			pItem = pItem->nextSibling();
+			}
+		}
+		
+		
+		pServer = new KPGServer(m_pViewTree);
+		setWaitCursor();
+	
+		try
+		{
+			pServer->connectToServer(dlg.hostName(), dlg.portNumber(), dlg.databaseName(), dlg.userName(), dlg.password());
+			
+			// Inform active MDI child about change of available servers, databases
+			KMdiChildView *activeMdiView = activeWindow();
+			if(activeMdiView)
+			{
+				slotCurrentChildViewChanged(activeMdiView);
+			}
+		}
+		catch(const std::exception &e)
+		{
+			delete pServer; // delete unsucessfull connection
+			pServer = 0;
+			setNormalCursor();
+			QTextCodec *pTextCodec = QTextCodec::codecForLocale(); 
+			KMessageBox::sorry(this, pTextCodec->toUnicode(e.what()));
+		}
+	} while(pServer == 0);
+	
+	if(pServer)
+	{
+		try
+		{
+			pServer->refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			delete pServer; // delete unsucessfull connection
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+			return;
+		}
+	}
+	
+	setNormalCursor();
+}
+
+// Disconnect from selected server
+void KPoGreView::databaseDisconnect()
+{
+
+	KPGTreeItem * pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+		if(pItem )
+	{
+		if(pItem->type() != KPGTreeItem::nodeServer)
+		return;
+			
+		QString question = "Disconnect from ";
+			question.append(pItem->text(0));
+			question.append(" ?");
+		if( KMessageBox::questionYesNo(this, question, "Question") == KMessageBox::Yes )
+		{
+			delete pItem;
+			
+			// Inform active MDI child about change of available servers, databases
+			KMdiChildView *activeMdiView = activeWindow();
+			if(activeMdiView)
+			{
+				slotCurrentChildViewChanged(activeMdiView);
+			}
+		}
+	}  
+}
+
+void KPoGreView::databaseWizard()
+{
+	KPGTreeItem * pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(!pItem) return;
+	
+	//---------------------------------------------------------------------------------
+	KPGNewObjectDialog::eNewObjectIconSet eIconSet; // icon set for dialog
+	QString strCaption;
+	bool bTablespces = false;
+   
+	if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+	{ 
+    	if((static_cast <KPGServer *> (pItem))->versionMajor() >= 8) 
+        	bTablespces = true;
+        
+      	eIconSet = KPGNewObjectDialog::iconSetServer;
+		strCaption = i18n("New server object");
+	}
+	else if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeDatabase)
+	{
+		eIconSet = KPGNewObjectDialog::iconSetDatabase; 
+		strCaption = i18n("New database object");
+	}
+	else
+	{
+        if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeSchema)
+        {
+          eIconSet = KPGNewObjectDialog::iconSetSchema; 
+          strCaption = i18n("New schema object");
+        } 
+        else
+        {
+            if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeTable)
+            {
+              eIconSet = KPGNewObjectDialog::iconSetTable; 
+              strCaption = i18n("New table object");
+        	}         
+            else 
+              return;
+    	}
+	}
+     
+	KPGNewObjectDialog dlg(this, "KPGNewObjectDialog", eIconSet, strCaption, bTablespces);
+	if(dlg.exec() != QDialog::Accepted)
+  	return;
+	
+	//******************************************************************************************
+	//
+	// Main objects
+	//
+	//******************************************************************************************
+          
+	if(dlg.objectType() == "database")
+	{
+		if(createDatabaseWizard(static_cast <KPGServer *> (pItem)))
+		{	
+			try
+			{
+				pItem->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+		}
+		return;
+	}
+		
+	if(dlg.objectType() == "tablespace")
+	{
+		if(createTablespaceWizard(static_cast <KPGServer *> (pItem)))
+		{
+			setWaitCursor();
+			KPGItemsFolder *pFolder = (static_cast <KPGServer *> (pItem))->getTablespacesFolder();
+			
+			try
+			{
+				pFolder->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+		return;
+	}
+  
+	if(dlg.objectType() == "group")
+	{
+		if(createGroupWizard(static_cast <KPGServer *> (pItem)))
+		{
+			setWaitCursor();
+			KPGItemsFolder *pFolder = (static_cast <KPGServer *> (pItem))->getGroupsFolder();
+			try
+			{
+				pFolder->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+		return;
+	}
+	
+	if(dlg.objectType() == "user")
+	{
+		if(createUserWizard(static_cast <KPGServer *> (pItem)))
+		{
+			setWaitCursor();
+			KPGItemsFolder *pFolder = (static_cast <KPGServer *> (pItem))->getUsersFolder();
+			try
+			{
+				pFolder->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+		return;
+	}
+
+  //******************************************************************************************
+  //
+  // Database objects
+  //
+  //******************************************************************************************
+        
+	if(dlg.objectType() == "schema")
+	{
+		if(createSchemaWizard(static_cast <KPGDatabase *> (pItem)))
+		{
+			setWaitCursor();
+			try
+			{
+				pItem->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+		return;
+	}
+  
+	if(dlg.objectType() == "language")
+	{
+		if(createLanguageWizard(static_cast <KPGDatabase *> (pItem)))
+		{
+			setWaitCursor();
+			KPGItemsFolder *pFolder = (static_cast <KPGDatabase *> (pItem))->getLanguagesFolder();
+			try
+			{
+				pFolder->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+		return;
+  	}
+		
+	if(dlg.objectType() == "table")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+					
+		if(createTableWizard(pDatabase, listOfSchemas))
+			refreshItemsFolder(pItem, i18n("Tables"));
+			
+		return;
+	}
+  
+	if(dlg.objectType() == "base type")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+			
+		if(createBaseTypeWizard(pDatabase, listOfSchemas))
+		refreshItemsFolder(pItem, i18n("Types"));
+		
+		return;
+	}
+  
+	if(dlg.objectType() == "composite type")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+			
+		if(createCompositeTypeWizard(pDatabase, listOfSchemas))
+		refreshItemsFolder(pItem, i18n("Types"));
+		
+		return;
+	}
+	
+	if(dlg.objectType() == "view")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+					
+		if(createViewWizard(pDatabase, listOfSchemas))
+			refreshItemsFolder(pItem, i18n("Views"));
+			
+		return;
+	}
+	
+	if(dlg.objectType() == "function")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+			
+		if(createFunctionWizard(pDatabase, listOfSchemas))
+		refreshItemsFolder(pItem, i18n("Functions"));
+		
+		return;
+	}
+  
+	if(dlg.objectType() == "domain")
+	{
+		// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+			
+		if(createDomainWizard(pDatabase, listOfSchemas))
+		refreshItemsFolder(pItem, i18n("Domains"));
+		
+		return;
+	}
+	
+	if(dlg.objectType() == "sequence")
+  	{
+    	// Setup namespace(s) and find connection
+		QPtrList<QListViewItem> listOfSchemas;
+		KPGDatabase *pDatabase = lookUpParentDatabaseAndListOfSchemas(pItem, listOfSchemas);
+			
+		if(createSequenceWizard(pDatabase, listOfSchemas))
+		refreshItemsFolder(pItem, i18n("Sequences"));
+		
+		return;
+	}
+  
+	//******************************************************************************************
+	//
+	// Table objects
+	//
+	//******************************************************************************************
+
+	if(dlg.objectType() == "column")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createColumnWizard(pDatabase, pSchema, pTable))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}     
+  
+	if(dlg.objectType() == "primary key")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(pTable->primaryKeyName().isEmpty() == false)
+		{
+		KMessageBox::sorry(this, i18n("Primary key already exists !"));
+		return;   
+		}
+			
+		if(createConstraintWizard(pDatabase, pSchema, pTable, 0))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	} 
+  
+	if(dlg.objectType() == "foreign key")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createConstraintWizard(pDatabase, pSchema, pTable, 1))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}
+  
+	if(dlg.objectType() == "unique")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createConstraintWizard(pDatabase, pSchema, pTable, 2))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}
+  
+	if(dlg.objectType() == "check")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createConstraintWizard(pDatabase, pSchema, pTable, 3))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}
+  
+	if(dlg.objectType() == "index")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createIndexWizard(pDatabase, pSchema, pTable))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}
+	
+	if(dlg.objectType() == "rule")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createRuleWizard(pDatabase, pSchema, pTable))
+		{
+			setWaitCursor();
+			try
+			{	
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}
+	
+	if(dlg.objectType() == "trigger")
+	{
+		KPGTable *pTable = static_cast <KPGTable *> (pItem);
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		if(createTriggerWizard(pDatabase, pSchema, pTable))
+		{
+			setWaitCursor();
+			try
+			{
+				static_cast <KPGTableItemsFolder *> (pTable->getTableConstraintsFolder())->refresh();
+			
+			}
+			catch (const KPGSqlException &e)
+			{
+				setNormalCursor();
+				KPGSqlDialog dlg(this, e.getSql(), e.what());
+				dlg.exec();
+			}
+			setNormalCursor();
+		}
+	}       
+}
+
+// Called when user launch Find or Find Next menu item 
+void KPoGreView::editFind(const QString &strSearchString, bool bInOIDs, bool bInNames)
+{
+	// Start find from current item or from first item - if no selected
+	KPGTreeItem *pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pItem)
+	{
+	  pItem = static_cast <KPGTreeItem *> (m_pViewTree->firstChild());
+			
+		if(!pItem)
+		{ 
+			KMessageBox::sorry(this, i18n("No server is connected"));
+			kdError() << k_funcinfo << "Item is not selected " << endl;
+			return;    
+		}
+	}
+	else
+		pItem = nextTreeItem(pItem);
+	
+			
+	//--- Search item ---------------------------------
+	while(pItem)
+	{
+		if(bInNames && (pItem->text(0) == strSearchString)) 
+		{
+			selectItem(pItem);
+			return;
+		}
+		
+		if(bInOIDs && (pItem->hasOid()))
+		{
+			KPGObject *pObject = static_cast <KPGObject *> (pItem);
+			QString strOid(QString("%1").arg(pObject->oid()));
+			
+			if(strOid == strSearchString)
+			{
+				selectItem(pItem);
+				return;
+			}
+		}
+		
+		pItem = nextTreeItem(pItem);
+	}
+	
+	KMessageBox::sorry(this, i18n("Searched item not found"));
+}
+
+// Deselects currently selected item
+void KPoGreView::slotEditDeselect()
+{
+	m_pViewTree->clearSelection();
+}
+
+
+void KPoGreView::slotViewNodeUp()
+{
+	// Start find from current item or from first item - if no selected
+	KPGTreeItem *pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pItem)
+	{
+	  kdError() << k_funcinfo << "Not current item " << endl;
+		return; 
+	}
+		
+	KPGTreeItem *pParentItem = static_cast <KPGTreeItem *> (pItem->parent());
+	if(pParentItem)
+		selectItem(pParentItem);
+}
+
+void KPoGreView::slotViewNodeBack()
+{
+	// Start find from current items parent server
+	KPGTreeItem *pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pSelectedItem)
+	{
+	  KMessageBox::sorry(this, i18n("No item selected "));
+			kdError() << k_funcinfo << "Item is not selected " << endl;
+			return;    
+	}
+	
+	KPGOidLink oidLink = m_stackBackNodes.pop();	
+	KPGTreeItem *pItem = findItem(oidLink);
+	if(!pItem) return;
+	
+			
+	// store info about previously selected item to stack
+	if((pSelectedItem->hasOid()))
+	{
+		KPGObject *pOldObject = static_cast <KPGObject *> (pSelectedItem);
+			
+		m_stackForwardNodes.push(KPGOidLink(pOldObject->oid(), pOldObject->path()));
+	}
+	else
+		m_stackForwardNodes.push(KPGOidLink(0, pSelectedItem->path()));
+		
+	selectItem(pItem);
+}
+	
+void KPoGreView::slotViewNodeForward()
+{
+	// Start find from current items parent server
+	KPGTreeItem *pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pSelectedItem)
+	{
+	  KMessageBox::sorry(this, i18n("No item selected "));
+			kdError() << k_funcinfo << "Item is not selected " << endl;
+			return;    
+	}
+	
+	KPGOidLink oidLink = m_stackForwardNodes.pop();
+	KPGTreeItem *pItem = findItem(oidLink);
+	if(!pItem) return;
+		
+	// store info about previously selected item to stack
+	if((pSelectedItem->hasOid()))
+	{
+		KPGObject *pOldObject = static_cast <KPGObject *> (pSelectedItem);
+				
+		m_stackBackNodes.push(KPGOidLink(pOldObject->oid(), pOldObject->path()));
+	}
+	else
+		m_stackBackNodes.push(KPGOidLink(0, pSelectedItem->path()));
+		
+	selectItem(pItem);
+}
+
+// Refresh actually selected tree item
+void KPoGreView::refresh()
+{
+	KPGTreeItem * pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pItem)
+	{ 
+		kdError() << k_funcinfo << "Item is not selected " << endl;
+		return;    
+    }
+	
+	setWaitCursor();	
+	
+	try
+	{
+	   pItem->smartRefresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+	   setNormalCursor();
+       KPGSqlDialog dlg(this, e.getSql(), e.what());
+	   dlg.exec();
+	} 
+	
+	displayProperties();
+	
+	setNormalCursor();
+}
+
+// Select item in tree view by given path 
+bool KPoGreView::selectItemByPath(const QString &strPath)
+{
+	// find host name in URL
+  	QRegExp patternOid("[[]\\d+[]]$", false); // search OID in path - server/namespace/database/.../object[nnnn]
+ 
+	QString strPathWithoutOid(strPath);
+	pqxx::oid _oid = 0;
+	              
+	int pos = patternOid.search(strPath, 0);
+	if(pos > 0)
+	{
+		int l = patternOid.matchedLength();
+		QString strOid(strPath.mid(pos + 1, l - 2));
+		_oid = strOid.toInt();
+			
+		strPathWithoutOid = strPath.left(strPath.length() - l);
+	}
+		
+	KPGTreeItem *pItem = findItem(KPGOidLink(_oid, strPathWithoutOid));
+	if(!pItem) return false;
+		
+	selectItem(pItem);
+	return true;
+}	
+
+/////////////////////////////////////////////////////////////////////
+//                   WIZARD ACTION FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+
+// Run Create Database Wizard 
+void KPoGreView::createDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeServer)
+	{
+		kdDebug() << k_funcinfo << " Ttem types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem);
+	
+	if(createDatabaseWizard(pServer))
+	{	
+	   setWaitCursor();	
+	
+       	try
+       	{
+         	pServer->smartRefresh();
+       	}
+       	catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}		 
+       	setNormalCursor();
+	}
+}
+
+// Run Drop Database Wizard 
+void KPoGreView::dropDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	// Disconnect deleted database
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	pDatabase->disconnectFromDB();
+	
+	// Run Wizard
+	QString strSQL("DROP DATABASE ");
+	strSQL.append(KPGUtil::quotedName(pSelectedItem->text(0)));
+	strSQL.append(";");
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem->parent());
+	KPG2StepsWizard wzd(this, i18n("Drop database"), strSQL, false);
+  	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return;
+  
+	// Refresh parent item
+	setWaitCursor();
+	
+	try
+	{
+       pServer->smartRefresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run ANALYSE Wizard
+void KPoGreView::analyseDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	
+	KPG2StepsWizard wzd(this, i18n("Analyse database"), "ANALYZE VERBOSE;", true);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run REINDEX DATABASE
+void KPoGreView::reindexDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	
+	KPG2StepsWizard wzd(this, i18n("Reindex database"), "REINDEX DATABASE " + KPGUtil::quotedName(pDatabase->text(0)) + ";", false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run ALTER DATABASE name OWNER TO new_owner Wizard
+void KPoGreView::setOwnerDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << "KPoGreView::setOwnerDatabase: no item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+		
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"DATABASE", 
+		KPGUtil::quotedName(pDatabase->text(0)), 
+		pDatabase->owner()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pDatabase->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run GRANT privileges Wizard for database
+void KPoGreView::grantPrivilegesDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSelectedItem);
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeDatabase, 
+		true, 
+		pServer, 
+		"", 
+		pDatabase->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pDatabase->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run REVOKE privileges Wizard for database
+void KPoGreView::revokePrivilegesDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSelectedItem);
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeDatabase, 
+		false, 
+		pServer, 
+		"", 
+		pDatabase->text(0));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pDatabase->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}  
+
+// Run DUMP DATABASE Wizard
+void KPoGreView::dumpDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	
+	KPGDumpDatabaseWizard wzd(
+		this, 
+		"KPGDumpDatabaseWizard", 
+		KApplication::dcopClient(), 
+		pDatabase->text(0),
+		pDatabase->connection()->hostname(),
+		pDatabase->connection()->port(),
+		pDatabase->connection()->username()
+	);
+			
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run RESTORE DATABASE Wizard
+void KPoGreView::restoreDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	
+	KPGRestoreDatabaseWizard wzd(
+		this, 
+		"KPGDumpDatabaseWizard", 
+		KApplication::dcopClient(),
+		pDatabase->text(0),
+		pDatabase->connection()->hostname(),
+		pDatabase->connection()->port(),
+		pDatabase->connection()->username()
+	);
+			
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pDatabase->refresh();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+  
+// Close connection to database
+void KPoGreView::disconnectDatabase()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	// Disconnect deleted database
+	KPGDatabase *pDatabase  = static_cast <KPGDatabase *> (pSelectedItem);
+	pDatabase->disconnectFromDB();
+	
+	// Inform active MDI child about change of available servers, databases
+	KMdiChildView *activeMdiView = activeWindow();
+	if(activeMdiView)
+	{
+		slotCurrentChildViewChanged(activeMdiView);
+	}
+}
+
+// Run Create Schema Wizard 
+void KPoGreView::createSchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDatabase)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSelectedItem);
+		
+	if(createSchemaWizard(pDatabase))
+		refresh();
+}
+
+// Run Drop Schema Wizard 
+void KPoGreView::dropSchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeSchema, "SCHEMA", pDatabase->connection(), "");
+}
+
+// Run Create Schema Wizard 
+void KPoGreView::modifySchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSchema)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGRenameObjectWizard wzd(this, "KPGRenameObjectWizard",
+		KPGUtil::quotedName(pSchema->text(0)), 
+		"SCHEMA", 
+		i18n("schema")
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{	
+		pDatabase->refresh();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run ALTER Schema OWNER TO new_owner Wizard 
+void KPoGreView::setOwnerSchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSchema)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"SCHEMA", 
+		KPGUtil::quotedName(pSchema->text(0)), 
+		pSchema->owner()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{	
+		pSchema->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run GRANT privileges Wizard for schema
+void KPoGreView::grantPrivilegesSchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSchema)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeSchema, 
+		true, 
+		pServer, 
+		"", 
+		pSchema->text(0));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pSchema->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run REVOKE privileges Wizard for schema
+void KPoGreView::revokePrivilegesSchema()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSchema)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeSchema, 
+		false, 
+		pServer, 
+		"", 
+		pSchema->text(0));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{	
+		pSchema->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Create Table Wizard 
+void KPoGreView::createTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTables)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createTableWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+
+// Run Drop Table Wizard 
+void KPoGreView::dropTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pTablesFolder = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTablesFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+	if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeTable, "TABLE", pDatabase->connection(), pSchema->text(0));
+}
+
+// Run ALTER Table RENAME Wizard 
+void KPoGreView::renameTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really rename ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)), 
+		"TABLE", 
+		i18n("table")
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;    
+		
+	setWaitCursor();
+	try
+	{	
+		pFolderTables->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+
+// Run ANALYSE Table Wizard
+void KPoGreView::analyseTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	KPGAnalyseTableWizard wzd(this, "KPGAnalyseTableWizard", pSchema->text(0), pTable);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run VACUUM Table Wizard
+void KPoGreView::vacuumTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really vacuum ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	KPGVacuumTableWizard wzd(this, "KPGVacuumTableWizard", pSchema->text(0), pTable);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run REINDEX Table Wizard
+void KPoGreView::reindexTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("REINDEX TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(";");
+	
+	KPG2StepsWizard wzd(this, i18n("Reindex table"), strSQL, false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run ALTER Table CLUSTER ON Wizard
+void KPoGreView::setClusterOnTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pTable->getTableIndexesFolder()->childCount() == 0)
+	{
+		KMessageBox::sorry(this, i18n("Table has no index"));
+		return;
+	}
+	
+	KPGSetClusterTableWizard wzd(this, "KPGSetClusterTableWizard", pSchema->text(0),  pTable);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run ALTER Table SET WITHOUT CLUSTER Wizard
+void KPoGreView::setWithoutClusterTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(" SET WITHOUT CLUSTER;");
+	
+	KPG2StepsWizard wzd(this, i18n("Set without cluster"), strSQL, false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run CLUSTER Table Wizard
+void KPoGreView::clusterTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("CLUSTER ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(";");
+	
+	KPG2StepsWizard wzd(this, i18n("Cluster table"), strSQL, false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run COPY Table FROM Wizard
+void KPoGreView::copyFromTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGCopyFromTableWizard wzd(this, "KPGCopyFromTableWizard", pSchema->text(0),  pTable);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run COPY Table TO Wizard
+void KPoGreView::copyToTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGCopyToTableWizard wzd(this, "KPGCopyToTableWizard", pSchema->text(0),  pTable);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run ALTER Table OWNER TO new_owner Wizard
+void KPoGreView::setOwnerTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"TABLE", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)), 
+		pTable->owner()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pTable->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run GRANT privileges Wizard for table
+void KPoGreView::grantPrivilegesTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeTable, 
+		true, 
+		pServer, 
+		pSchema->text(0), 
+		pTable->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pTable->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run REVOKE privileges Wizard for table
+void KPoGreView::revokePrivilegesTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeTable, 
+		false, 
+		pServer, 
+		pSchema->text(0), 
+		pTable->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pTable->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run ALTER Table SET TABLESPACE tablespace_name Wizard
+void KPoGreView::setTablespaceTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGSetTablespaceWizard wzd(this, 
+		"KPGSetTablespaceWizard", 
+		pServer->getTablespacesFolder(), 
+		"TABLE",
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)), 
+		pTable->tablespace());
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pTable->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run ALTER Table SET WITHOUT OIDS Wizard
+void KPoGreView::setWithoutOIDsTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(" SET WITHOUT OIDS;");
+	
+	KPG2StepsWizard wzd(this, i18n("Set table without OIDs"), strSQL, false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;  
+}
+
+// Run editable datatable for edit table content
+void KPoGreView::editTableContent()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	
+	if(pTable->primaryKeyName().length() == 0)
+	{
+		KMessageBox::sorry(this, i18n("Can't edit table without primary key"));
+		return;
+	}
+	
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really edit ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	//--- Obtain info about table primary key index
+	QString strPrimaryKeyName(pTable->primaryKeyName());
+	KPGTableIndexesFolder *pTableIndexesFolder =  pTable->getTableIndexesFolder();
+	
+	KPGTreeItem *pTreeItem = pTableIndexesFolder->getChildByName(strPrimaryKeyName);
+	if(pTreeItem == 0)
+	{
+		KMessageBox::sorry(this, i18n("Can't find primary key index: " + strPrimaryKeyName));
+		return;
+	}
+	
+	KPGTableIndex *pTableIndex = static_cast <KPGTableIndex *> (pTreeItem);
+	if(pTableIndex->isPrimary() == false)
+	{
+		KMessageBox::sorry(this, i18n("Index is not primary key: " + strPrimaryKeyName));
+		return;
+	}
+	
+	//--- Dialog for WHERE and ORDER BY predicate 
+	KPGDataTableDialog dlg(this);
+	if(dlg.exec() != QDialog::Accepted)
+	{
+		return;
+	}
+	
+	//--- Copy info about table user columns
+	ListTableColumns listTableColumns;
+	KPGTableColumnsFolder *pTableColumnsFolder = pTable->getTableColumnsFolder();
+	QListViewItem * pItem = pTableColumnsFolder->firstChild();
+	while(pItem)
+	{
+		KPGTableColumn *pTableColumn = static_cast <KPGTableColumn *> (pItem);
+		
+		if(pTableColumn->attNum() > 0) // skip system columns
+		{
+		  listTableColumns.append(KPGDataTableColumn(pTableColumn->text(0), pTableColumn->typName(), 
+		  pTableColumn->isNotNull(), 
+		  pTableColumn->hasDefault(), 
+		  pTableColumn->defaultValue(),
+		  pTableColumn->description(),
+		  pTableColumn->createdAs()
+		  ));  
+		}
+		pItem = pItem->nextSibling();
+	}
+	
+	KPGDataTableChildView *pChildView = createDataTableChildView(pDatabase->connection(),
+		pSchema->text(0), 
+		pTable->text(0),
+		listTableColumns,
+		pTableIndex->getMapIndexKey(),
+		dlg.wherePredicate(),
+		dlg.orderByPredicate());
+	
+	pChildView->getDataTable()->reloadData();
+}
+
+// Run query/result window for table
+void KPoGreView::queryTable()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTable)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem);
+	KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+			
+	createQueryResultChildView(pTable->text(0),
+		 (pSchema->text(0) == "public") ? QString::null : pSchema->text(0), 
+		 pDatabase->text(0));
+}
+
+// Run Create View Wizard 
+void KPoGreView::createView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderViews)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createViewWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+
+// Run Drop View Wizard 
+void KPoGreView::dropView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeView)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+    
+    KPGView *pView = static_cast <KPGView *> (pSelectedItem);
+	KPGViewsFolder *pViewsFolder = static_cast <KPGViewsFolder *> (pView->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pViewsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pSchema->isSystemObject() || pView->isSystemObject())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system view ! Really drop ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeView, "VIEW", pDatabase->connection(), pSchema->text(0));
+}
+
+// Run Create View Wizard 
+void KPoGreView::modifyView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeView)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+
+	KPGView *pView = static_cast <KPGView *> (pSelectedItem);
+	KPGViewsFolder *pViewsFolder = static_cast <KPGViewsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pViewsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyViewWizard wzd(this, "KPGModifyViewWizard", pDatabase, pSchema->text(0), pView);	
+	wzd.setConnection(pDatabase->connection());
+				
+	if(wzd.exec() != QDialog::Accepted)
+     return;
+  		
+	setWaitCursor();
+	try
+	{
+		pView->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run query/result for view
+void KPoGreView::queryView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeView)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+
+	KPGView *pView = static_cast <KPGView *> (pSelectedItem);
+	KPGViewsFolder *pViewsFolder = static_cast <KPGViewsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pViewsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	createQueryResultChildView(pView->text(0),
+		 (pSchema->text(0) == "public") ? QString::null : pSchema->text(0), 
+		 pDatabase->text(0));
+}
+
+// Run GRANT privileges Wizard for view
+void KPoGreView::grantPrivilegesView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeView)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGView *pView = static_cast <KPGView *> (pSelectedItem);
+	KPGViewsFolder *pViewsFolder = static_cast <KPGViewsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pViewsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeView, 
+		true, 
+		pServer, 
+		pSchema->text(0), 
+		pView->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pView->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run REVOKE privileges Wizard for view
+void KPoGreView::revokePrivilegesView()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeView)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGView *pView = static_cast <KPGView *> (pSelectedItem);
+	KPGViewsFolder *pViewsFolder = static_cast <KPGViewsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pViewsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+		
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeView, 
+		false, 
+		pServer, 
+		pSchema->text(0), 
+		pView->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pView->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Create Tablespace Wizard 
+void KPoGreView::createTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTablespaces)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem->parent());
+	
+	createTablespaceWizard(pServer);
+	
+	refresh();
+}
+  
+// Run Drop Tablespace Wizard 
+void KPoGreView::dropTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTablespace)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTablespacesFolder *pTablespacesFolder = static_cast <KPGTablespacesFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pTablespacesFolder->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeTablespace, "TABLESPACE", pServer->connection(), "", false);
+}
+    
+// ALTER TABLESPACE name RENAME TO newname Wizard 
+void KPoGreView::renameTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTablespace)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTablespace *pTablespace = static_cast <KPGTablespace *> (pSelectedItem);
+	KPGTablespacesFolder *pTablespacesFolder = static_cast <KPGTablespacesFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pTablespacesFolder->parent());
+	
+	KPGRenameObjectWizard wzd(this, "KPGRenameObjectWizard", 
+		KPGUtil::quotedName(pTablespace->text(0)), 
+		"TABLESPACE", 
+		i18n("tablespace")
+		);    
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	pTablespacesFolder->refresh();
+	setNormalCursor();
+	
+	pTablespace = static_cast <KPGTablespace *> (pTablespacesFolder->getChildByName(wzd.newObjectName()));
+	if(pTablespace)
+	{
+		m_pViewTree->ensureItemVisible(pTablespace);
+		m_pViewTree->setSelected(pTablespace, true);
+	}
+}
+
+// Run ALTER TABLESPACE name OWNER TO newowner Wizard 
+void KPoGreView::setOwnerTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTablespace)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTablespace *pTablespace = static_cast <KPGTablespace *> (pSelectedItem);
+	KPGTablespacesFolder *pTablespacesFolder = static_cast <KPGTablespacesFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pTablespacesFolder->parent());
+	
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"TABLESPACE", 
+		KPGUtil::quotedName(pTablespace->text(0)), 
+		pTablespace->owner()
+		);
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	// save tablespace name for look-up after refresh tablespaces folder 
+	QString strTablespaceName(pTablespace->text(0));  
+				
+	setWaitCursor();
+	try
+	{
+		pTablespacesFolder->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pTablespace = static_cast <KPGTablespace *> (pTablespacesFolder->getChildByName(strTablespaceName));
+	if(pTablespace)
+	{
+		m_pViewTree->ensureItemVisible(pTablespace);
+		m_pViewTree->setSelected(pTablespace, true);
+	}
+}
+
+// Run GRANT privileges Wizard for tablespace
+void KPoGreView::grantPrivilegesTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTablespace)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTablespace *pTablespace = static_cast <KPGTablespace *> (pSelectedItem);
+	KPGTablespacesFolder *pTablespacesFolder = static_cast <KPGTablespacesFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pTablespacesFolder->parent());
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeTablespace, 
+		true, 
+		pServer, 
+		"", 
+		pTablespace->text(0));
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pTablespace->refresh();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+  
+// Run REVOKE privileges Wizard for tablespace
+void KPoGreView::revokePrivilegesTablespace()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTablespace)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+  
+	KPGTablespace *pTablespace = static_cast <KPGTablespace *> (pSelectedItem);
+	KPGTablespacesFolder *pTablespacesFolder = static_cast <KPGTablespacesFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pTablespacesFolder->parent());
+
+    KPGPrivilegesWizard wzd(this, 
+    	"KPGPrivilegesWizard", 
+    	KPGPrivilegesWizard::typeTablespace, 
+    	false, 
+    	pServer, 
+    	"", 
+    	pTablespace->text(0));
+  	wzd.setConnection(pServer->connection());
+      
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pTablespacesFolder->refresh();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+  
+// Run Create User Wizard 
+void KPoGreView::createUser()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderUsers)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem->parent());
+	
+	createUserWizard(pServer);
+	
+	refresh();
+}
+	
+// Run Drop User Wizard 
+void KPoGreView::dropUser()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeUser)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGUsersFolder *pUsersFolder = static_cast <KPGUsersFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pUsersFolder->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeUser, "USER", pServer->connection(), "");
+}
+		
+// Run Alter User Wizard 
+void KPoGreView::modifyUser()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeUser)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGUser *pUser = static_cast <KPGUser *> (pSelectedItem);
+	KPGUsersFolder *pUsersFolder = static_cast <KPGUsersFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pUsersFolder->parent());
+	
+	KPGModifyUserWizard wzd(this, "KPGModifyUserWizard", pUser);
+  		
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return;
+  		
+	setWaitCursor();
+	try
+	{
+		pUsersFolder->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+	
+// Run Create Group Wizard 
+void KPoGreView::createGroup()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderGroups)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGServer *pServer = static_cast <KPGServer *> (pSelectedItem->parent());
+	
+	createGroupWizard(pServer);
+	
+	refresh();
+}
+	
+// Run Drop Group Wizard 
+void KPoGreView::dropGroup()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << "KPoGreView::dropGroup: no item selected" << endl;
+		return;
+	}
+		
+	KPGGroupsFolder *pGroupsFolder = static_cast <KPGGroupsFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pGroupsFolder->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeGroup, "GROUP", pServer->connection(), "");
+}
+		
+// Run Alter Group Wizard 
+void KPoGreView::modifyGroup()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeGroup)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGGroup *pGroup = static_cast <KPGGroup *> (pSelectedItem);
+	KPGGroupsFolder *pGroupsFolder = static_cast <KPGGroupsFolder *> (pSelectedItem->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pGroupsFolder->parent());
+	
+	KPGModifyGroupWizard wzd(this, "KPGModifyGroupWizard", pGroup, pServer->getUsersFolder());
+  		
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return;
+  		
+	setWaitCursor();
+	try
+	{
+		pGroupsFolder->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Create Language Wizard 
+void KPoGreView::createLanguage()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderLanguages)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSelectedItem->parent());
+		
+	if(createLanguageWizard(pDatabase))
+		refresh();
+}
+  
+// Run Drop Language Wizard 
+void KPoGreView::dropLanguage()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeLanguage)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGLanguagesFolder *pLanguagesFolder = static_cast <KPGLanguagesFolder *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pLanguagesFolder->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeLanguage, "LANGUAGE", pDatabase->connection(), "");
+}
+  
+// Run Alter Language Wizard 
+void KPoGreView::modifyLanguage()
+{
+  KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeLanguage)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGLanguage *pLanguage = static_cast <KPGLanguage *> (pSelectedItem);
+	KPGLanguagesFolder *pLanguagesFolder = static_cast <KPGLanguagesFolder *> (pLanguage->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pLanguagesFolder->parent());
+	
+	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		KPGUtil::quotedName(pLanguage->text(0)), 
+		"LANGUAGE", 
+		i18n("language")
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pLanguagesFolder->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+    
+// Run GRANT privileges Wizard for language
+void KPoGreView::grantPrivilegesLanguage()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeLanguage)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGLanguage *pLanguage = static_cast <KPGLanguage *> (pSelectedItem);
+	KPGLanguagesFolder *pLanguagesFolder = static_cast <KPGLanguagesFolder *> (pLanguage->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pLanguagesFolder->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeLanguage, 
+		true, 
+		pServer, 
+		"", 
+		pLanguage->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pLanguage->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+ 
+// Run REVOKE privileges Wizard for language
+void KPoGreView::revokePrivilegesLanguage()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeLanguage)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGLanguage *pLanguage = static_cast <KPGLanguage *> (pSelectedItem);
+	KPGLanguagesFolder *pLanguagesFolder = static_cast <KPGLanguagesFolder *> (pLanguage->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pLanguagesFolder->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeLanguage, 
+		false, 
+		pServer, 
+		"", 
+		pLanguage->text(0));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pLanguage->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}  
+  
+// Run Create Domain Wizard 
+void KPoGreView::createDomain()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderDomains)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createDomainWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+
+// Run DROP DOMAIN Wizard 
+void KPoGreView::dropDomain()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << "No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomain)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomainsFolder *pDomainsFolder = static_cast <KPGDomainsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pDomainsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	dropObjectWizard(pSelectedItem, KPGTreeItem::nodeDomain, "DOMAIN", pDatabase->connection(), pSchema->text(0));
+}
+
+// Run ALTER DOMAIN SET | DROP NOT NULL Wizard 
+void KPoGreView::setDomainNull()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomain)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pSelectedItem);
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER DOMAIN ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pDomain->text(0)));
+		
+	if(!pDomain->isNotNull())
+		strSQL.append(" SET NOT NULL;");
+	else
+		strSQL.append(" DROP NOT NULL;");
+		
+	KPG2StepsWizard wzd(this, i18n("Set domain NULL"), strSQL, true);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save domain name for look-up after refresh columns folder 
+	QString strDomainName(pDomain->text(0));   
+	
+	setWaitCursor();
+	try
+	{
+		pFolderDomains->refresh();
+		setNormalCursor();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	
+	pDomain = static_cast <KPGDomain *> (pFolderDomains->getChildByName(strDomainName));
+	if(pDomain)
+	{
+		m_pViewTree->ensureItemVisible(pDomain);
+		m_pViewTree->setSelected(pDomain, true);
+	}
+}
+
+// Run ALTER DOMAIN SET DEFAULT expression Wizard 
+void KPoGreView::setDomainDefault()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomain)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pSelectedItem);
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGSetDomainDefaultWizard wzd(this, "KPGSetDomainDefaultWizard", pSchema->text(0), pDomain->text(0));
+	wzd.setConnection(pDatabase->connection());
+	wzd.setDefaultExpression(pDomain->defaultValue());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save domain name for look-up after refresh columns folder 
+	QString strDomainName(pDomain->text(0));   
+	
+	setWaitCursor();
+	try
+	{
+		pFolderDomains->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pDomain = static_cast <KPGDomain *> (pFolderDomains->getChildByName(strDomainName));
+	if(pDomain)
+	{
+		m_pViewTree->ensureItemVisible(pDomain);
+		m_pViewTree->setSelected(pDomain, true);
+	}
+}
+
+// Run ALTER DOMAIN DROP DEFAULT Wizard 
+void KPoGreView::dropDomainDefault()
+{
+  KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomain)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pSelectedItem);
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());  
+	
+	QString strSQL("ALTER DOMAIN ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pDomain->text(0)));
+	strSQL.append(" DROP DEFAULT;");
+		
+	KPG2StepsWizard wzd(this, i18n("Drop domain default"), strSQL, true);
+		
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+	
+	// save domain name for look-up after refresh columns folder 
+	QString strDomainName(pDomain->text(0));   
+	
+	setWaitCursor();
+	try
+	{
+		pFolderDomains->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pDomain = static_cast <KPGDomain *> (pFolderDomains->getChildByName(strDomainName));
+	if(pDomain)
+	{
+		m_pViewTree->ensureItemVisible(pDomain);
+		m_pViewTree->setSelected(pDomain, true);
+	}
+}
+
+// Run ALTER DOMAIN name OWNER TO new_owner  Wizard 
+void KPoGreView::setOwnerDomain()
+{
+  KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+  if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomain)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pSelectedItem);
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());  
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent());
+	
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"DOMAIN", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pDomain->text(0)),
+		pDomain->owner()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	// save domain name for look-up after refresh domain folder 
+	QString strDomainName(pDomain->text(0)); 
+				
+	setWaitCursor();
+	try
+	{
+		pFolderDomains->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pDomain = static_cast <KPGDomain *> (pFolderDomains->getChildByName(strDomainName));
+	if(pDomain)
+	{
+		m_pViewTree->ensureItemVisible(pDomain);
+		m_pViewTree->setSelected(pDomain, true);
+	}
+}
+
+// Run ALTER DOMAIN name ADD domain_constraint Wizard 
+void KPoGreView::createDomainConstraint()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderDomainConstraints)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pSelectedItem->parent());
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGCreateDomainConstraintWizard wzd(this, "KPGCreateDomainConstraintWizard", pSchema->text(0), pDomain->text(0));
+	wzd.setConnection(pDatabase->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+	
+	refresh();   
+}
+
+// Run ALTER DOMAIN name DROP CONSTRAINT constraint_name Wizard 
+void KPoGreView::dropDomainConstraint()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeDomainConstr)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGDomainConstraint *pDomainConstraint = static_cast <KPGDomainConstraint *> (pSelectedItem);
+	KPGDomainConstraintsFolder *pDomainConstraintsFolder = static_cast <KPGDomainConstraintsFolder *> (pDomainConstraint->parent());
+	KPGDomain *pDomain = static_cast <KPGDomain *> (pDomainConstraintsFolder->parent());
+	KPGDomainsFolder *pFolderDomains = static_cast <KPGDomainsFolder *> (pDomain->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderDomains->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER DOMAIN ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pDomain->text(0)));
+	strSQL.append(" DROP CONSTRAINT ");
+	strSQL.append(KPGUtil::quotedName(pDomainConstraint->text(0)));
+	strSQL.append(";");
+	
+	KPG2StepsWizard wzd(this, i18n("Drop domain constraint"), strSQL, true);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+	return;
+	
+	// Refresh parent item
+	setWaitCursor();
+	try
+	{
+		pDomainConstraintsFolder->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Create Function Wizard 
+void KPoGreView::createFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderFunctions)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createFunctionWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+  
+// Run Drop Function Wizard 
+void KPoGreView::dropFunction()
+{
+    KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+    if(! pSelectedItem)
+    {
+        kdDebug() << k_funcinfo  << " No item selected" << endl;
+        return;
+    }
+        
+        if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+    {
+        kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+        return;
+    }
+    
+    KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);  
+    KPGFunctionsFolder *pFunctionsFolder = static_cast <KPGFunctionsFolder *> (pFunction->parent());
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pFunctionsFolder->parent());
+    KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    
+    if(pSchema->isSystemObject())
+    {
+        if(KMessageBox::questionYesNo(this, i18n("This is system function ! Really drop ?")) != KMessageBox::Yes) 
+        {
+            return;
+        }
+    }
+    
+    KPGDropObjectWizard wzd(
+            this, 
+            "KPGDropObjectWizard", 
+            "FUNCTION",
+            pSchema->text(0),
+            pFunction->text(0),
+            QString::null,
+            pFunction->argumentTypes()
+            );
+    
+	wzd.setConnection(pDatabase->connection());
+            
+    if(wzd.exec() != QDialog::Accepted)
+        return;
+        
+    // Refresh parent item
+    setWaitCursor();
+    try
+    {
+    	pFunctionsFolder->refresh();
+    }
+    catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+    setNormalCursor();	 	 
+}
+    
+// Run Alter Function Wizard 
+void KPoGreView::renameFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	KPGFunctionsFolder *pFolderFunctions = static_cast <KPGFunctionsFolder *> (pFunction->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderFunctions->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	// append arguments to function name
+	QString strName(KPGUtil::fullyQualifiedName(pSchema->text(0), pFunction->text(0)));
+	strName.append(pFunction->argumentTypes()); 
+		
+	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		strName, 
+		"FUNCTION", 
+		i18n("function")
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pFolderFunctions->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Alter Function Wizard 
+void KPoGreView::modifyFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	KPGFunctionsFolder *pFunctionsFolder = static_cast <KPGFunctionsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFunctionsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyFunctionWizard wzd(this, "KPGModifyFunctionWizard", pSchema->text(0), pFunction);   
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pFunction->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+    
+// Run GRANT privileges Wizard for function
+void KPoGreView::grantPrivilegesFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	KPGFunctionsFolder *pFunctionsFolder = static_cast <KPGFunctionsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFunctionsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeFunction, 
+		true, 
+		pServer, 
+		pSchema->text(0), 
+		pFunction->text(0),
+		pFunction->argumentTypes());
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pFunction->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+  
+// Run REVOKE privileges Wizard for function
+void KPoGreView::revokePrivilegesFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	KPGFunctionsFolder *pFunctionsFolder = static_cast <KPGFunctionsFolder *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFunctionsFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeFunction, 
+		false, 
+		pServer, 
+		pSchema->text(0), 
+		pFunction->text(0),
+		pFunction->argumentTypes()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pFunction->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run Function executor
+void KPoGreView::executeFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	
+	if(pFunction->returnTypName() == QString("trigger"))
+	{
+		KMessageBox::sorry(this, i18n("Can't execute trigger function"));
+		return;
+	}
+	
+	KPGFunctionsFolder *pFolderFunctions= static_cast <KPGFunctionsFolder *> (pFunction->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderFunctions->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	createExecutorChildView(pDatabase->connection(),
+		pSchema->text(0), 
+		pFunction);
+}
+
+// Run Function debugger
+void KPoGreView::debugFunction()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFunction)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGFunction *pFunction = static_cast <KPGFunction *> (pSelectedItem);
+	
+	if(pFunction->returnTypName() == QString("trigger"))
+	{
+		KMessageBox::sorry(this, i18n("Can't debug trigger function"));
+		return;
+	}
+	
+	KPGFunctionsFolder *pFolderFunctions= static_cast <KPGFunctionsFolder *> (pFunction->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderFunctions->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	createDebuggerChildView(pDatabase->connection(),
+		pSchema->text(0), 
+		pFunction);
+}
+  
+// Run Create Sequence Wizard 
+void KPoGreView::createSequence()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderSequences)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createSequenceWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+  
+// Run Drop Sequence Wizard 
+void KPoGreView::dropSequence()
+{
+    KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+    if(! pSelectedItem)
+    {
+        kdDebug() << k_funcinfo  << " No item selected" << endl;
+        return;
+    }
+    
+    if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSequence)
+    {
+        kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+        return;
+    }
+        
+    KPGSequence *pSequence = static_cast <KPGSequence *> (pSelectedItem);
+    KPGSequencesFolder *pSequencesFolder = static_cast <KPGSequencesFolder *> (pSequence->parent());
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pSequencesFolder->parent());
+    KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    
+    if(pSchema->isSystemObject() || pSequence->isSystemObject())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system sequence ! Really drop ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+  
+    dropObjectWizard(pSelectedItem, KPGTreeItem::nodeSequence, "SEQUENCE", pDatabase->connection(), pSchema->text(0));
+}
+
+// Run ALTER Sequence Wizard 
+void KPoGreView::modifySequence()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSequence)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSequence *pSequence = static_cast <KPGSequence *> (pSelectedItem);
+	KPGSequencesFolder *pSequencesFolder = static_cast <KPGSequencesFolder *> (pSequence->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSequencesFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifySequenceWizard wzd(this, "KPGModifySequenceWizard", pSchema->text(0), pSequence);
+	wzd.setConnection(pDatabase->connection());
+			
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pSequence->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+
+// Run GRANT privileges Wizard for sequence
+void KPoGreView::grantPrivilegesSequence()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSequence)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSequence *pSequence = static_cast <KPGSequence *> (pSelectedItem);
+	KPGSequencesFolder *pSequencesFolder = static_cast <KPGSequencesFolder *> (pSequence->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSequencesFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeSequence, 
+		true, pServer, 
+		pSchema->text(0), 
+		pSequence->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pSequence->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}  
+  
+// Run REVOKE privileges Wizard for sequence
+void KPoGreView::revokePrivilegesSequence()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeSequence)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSequence *pSequence = static_cast <KPGSequence *> (pSelectedItem);
+	KPGSequencesFolder *pSequencesFolder = static_cast <KPGSequencesFolder *> (pSequence->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSequencesFolder->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGPrivilegesWizard wzd(this, 
+		"KPGPrivilegesWizard", 
+		KPGPrivilegesWizard::typeSequence, 
+		false, pServer, 
+		pSchema->text(0), 
+		pSequence->text(0));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+		
+	setWaitCursor();
+	try
+	{
+		pSequence->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+}
+  
+// Run ALTER table ADD Column Wizard
+void KPoGreView::createColumn()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTableColumns)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(createColumnWizard(pDatabase, pSchema, pTable))
+	{
+		refresh();
+	}
+}
+    
+// Run ALTER table DROP Column Wizard
+void KPoGreView::dropColumn()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+		
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumnsFolder *pColumnsFolder = static_cast <KPGTableColumnsFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pColumnsFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop column ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	dropTableObjectWizard(pSelectedItem, "COLUMN", pDatabase->connection(), pSchema->text(0), pTable->text(0)); 
+}
+       
+// Run ALTER table Rename Column Wizard
+void KPoGreView::renameColumn()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo  << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo  << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)), 
+		KPGUtil::quotedName(pColumn->text(0)), 
+		"COLUMN", 
+		i18n("column"));
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(wzd.newObjectName()));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+       
+// Run ALTER table SET/DROP Column NULL Wizard
+void KPoGreView::setColumnNull()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(" ALTER COLUMN ");
+	strSQL.append(KPGUtil::quotedName(pColumn->text(0)));
+	
+	if(!pColumn->isNotNull())
+		strSQL.append(" SET NOT NULL;");
+	else
+		strSQL.append(" DROP NOT NULL;");
+		
+	KPG2StepsWizard wzd(this, i18n("Set column NULL"), strSQL, true);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0));   
+	
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+       
+// Run ALTER table ALTER Column SET DEFAULT Wizard
+void KPoGreView::setColumnDefault()
+{
+  KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyTableColumnWizard wzd(this, "KPGModifyTableColumnWizard", pSchema, pTable, pColumn, KPGModifyTableColumnWizard::modeDefault);
+	wzd.setConnection(pDatabase->connection());
+	wzd.setDefaultExpression(pColumn->defaultValue());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0));  
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+
+// Run ALTER table ALTER Column DROP DEFAULT Wizard
+void KPoGreView::dropColumnDefault()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QString strSQL("ALTER TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	strSQL.append(" ALTER COLUMN ");
+	strSQL.append(KPGUtil::quotedName(pColumn->text(0)));
+	strSQL.append(" DROP DEFAULT;");
+		
+	KPG2StepsWizard wzd(this, i18n("Drop column default"), strSQL, true);
+		
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+	
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0)); 
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+		
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+       
+// Run ALTER table ALTER Column TYPE Wizard
+void KPoGreView::changeColumnType()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyTableColumnWizard wzd(this, "KPGModifyTableColumnWizard", pSchema, pTable, pColumn, KPGModifyTableColumnWizard::modeType);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0));  
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+       
+// Run ALTER table ALTER Column SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN } Wizard
+void KPoGreView::setColumnStorage()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << "KPoGreView::setColumnStorage: no item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << "KPoGreView::setColumnStorage: item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyTableColumnWizard wzd(this, "KPGModifyTableColumnWizard", pSchema, pTable, pColumn, KPGModifyTableColumnWizard::modeStorage);
+	wzd.setConnection(pDatabase->connection());
+	wzd.setStorage(pColumn->storage());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0));  
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+       
+// Run ALTER table ALTER Column SET STATISTICS Wizard
+void KPoGreView::setColumnStatistisc()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTableColumn)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+	KPGTableColumnsFolder *pFolderColumns = static_cast <KPGTableColumnsFolder *> (pColumn->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pFolderColumns->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGModifyTableColumnWizard wzd(this, "KPGModifyTableColumnWizard", pSchema, pTable, pColumn, KPGModifyTableColumnWizard::modeStats);
+	wzd.setConnection(pDatabase->connection());
+	wzd.setStatTarget(pColumn->statTarget());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strColumnName(pColumn->text(0));  
+		
+	setWaitCursor();
+	try
+	{
+		pFolderColumns->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pColumn = static_cast <KPGTableColumn *> (pFolderColumns->getChildByName(strColumnName));
+	if(pColumn)
+	{
+		m_pViewTree->ensureItemVisible(pColumn);
+		m_pViewTree->setSelected(pColumn, true);
+	}
+}
+
+// Run Create Constraint Wizard 
+void KPoGreView::createConstraint()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTableConstraints)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(createConstraintWizard(pDatabase, pSchema, pTable))
+	{
+		refresh();
+	}
+}
+
+// Run Drop Constraint Wizard 
+void KPoGreView::dropConstraint()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+    
+	KPGTableConstraintsFolder *pConstraintsFolder = static_cast <KPGTableConstraintsFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pConstraintsFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    
+    if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop constraint ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+  
+	dropTableObjectWizard(pSelectedItem, "CONSTRAINT", pDatabase->connection(), pSchema->text(0), pTable->text(0));  
+}
+
+// Run Create Index Wizard 
+void KPoGreView::createIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTableIndexes)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(createIndexWizard(pDatabase, pSchema, pTable))
+	{
+		refresh();
+		displayProperties();
+	}
+}
+
+// Run Drop Index Wizard 
+void KPoGreView::dropIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if(((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeIndex) &&
+     ((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodePrimaryKey)
+    )
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+    
+  	KPGTableIndexesFolder *pIndexesFolder = static_cast <KPGTableIndexesFolder *> (pSelectedItem->parent());
+  	KPGTable *pTable = static_cast <KPGTable *> (pIndexesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+  	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  	  
+  	if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop index ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}  
+  	  
+  	KPGDropObjectWizard wzd(
+		this, 
+		"KPGDropObjectWizard", 
+		"INDEX",
+		pSchema->text(0),
+		pSelectedItem->text(0)
+		);
+  
+		wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+     	return;
+	
+	// Refresh parent item
+	setWaitCursor();
+	try
+	{
+		pIndexesFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();	 
+}
+
+// Run ALTER Index RENAME Wizard 
+void KPoGreView::renameIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if(((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeIndex) &&
+		((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodePrimaryKey)
+		)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+  
+	KPGTableIndexesFolder *pIndexesFolder = static_cast <KPGTableIndexesFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pIndexesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    
+  	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pSelectedItem->text(0)),
+		"INDEX", 
+		i18n("index"));
+  	wzd.setConnection(pDatabase->connection());
+      
+	if(wzd.exec() != QDialog::Accepted)
+		return;    
+	
+	setWaitCursor();
+	try
+	{
+		pIndexesFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pSelectedItem = pIndexesFolder->getChildByName(wzd.newObjectName());
+	if(pSelectedItem)
+	{
+		m_pViewTree->ensureItemVisible(pSelectedItem);
+		m_pViewTree->setSelected(pSelectedItem, true);
+	}   
+}
+
+// Run REINDX INDEX Wizard 
+void KPoGreView::reindexIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if(((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeIndex) &&
+		((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodePrimaryKey)
+		)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableIndexesFolder *pIndexesFolder = static_cast <KPGTableIndexesFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pIndexesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+	QString strSQL("REINDEX INDEX ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pSelectedItem->text(0)));
+	strSQL.append(";");
+	
+	KPG2StepsWizard wzd(this, i18n("Reindex index"), strSQL, false);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+}
+
+// Run ALTER Index OWNER TO new_owner Wizard
+void KPoGreView::setOwnerIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if(((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeIndex) &&
+		((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodePrimaryKey)
+		)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTableIndex *pIndex = static_cast <KPGTableIndex *> (pSelectedItem);
+	KPGTableIndexesFolder *pIndexesFolder = static_cast <KPGTableIndexesFolder *> (pIndex->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pIndexesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+		
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"INDEX", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pSelectedItem->text(0)),
+		""
+	);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run ALTER Index SET TABLESPACE indexspace_name Wizard 
+void KPoGreView::setTablespaceIndex()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if(((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeIndex) &&
+		((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodePrimaryKey)
+		)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+  
+	KPGTableIndex *pIndex = static_cast <KPGTableIndex *> (pSelectedItem);
+	KPGTableIndexesFolder *pIndexesFolder = static_cast <KPGTableIndexesFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pIndexesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+		
+	KPGSetTablespaceWizard wzd(this, 
+		"KPGSetTablespaceWizard", 
+		pServer->getTablespacesFolder(), 
+		"INDEX", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pSelectedItem->text(0)), 
+		pIndex->tablespace()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return; 
+}
+
+// Run Create Rule Wizard 
+void KPoGreView::createRule()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderRules)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(createRuleWizard(pDatabase, pSchema, pTable))
+	{
+		refresh();
+	}
+}
+  
+// Run Drop Rule Wizard 
+void  KPoGreView::dropRule()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+  	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+		if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeRule)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+    
+  	KPGRulesFolder *pRulesFolder = static_cast <KPGRulesFolder *> (pSelectedItem->parent());
+  	KPGTable *pTable = static_cast <KPGTable *> (pRulesFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+  	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  
+    if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop rule ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+  
+	KPGDropObjectWizard wzd(
+			this, 
+			"KPGDropObjectWizard", 
+			"RULE",
+			pSchema->text(0),
+			pSelectedItem->text(0),
+			pTable->text(0)
+			);
+  
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return;
+	
+	// Refresh parent item
+	setWaitCursor();
+	try
+	{
+		pRulesFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();	 
+}
+    
+// Run Create Trigger Wizard 
+void  KPoGreView::createTrigger()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTriggers)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTable *pTable = static_cast <KPGTable *> (pSelectedItem->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	if(createTriggerWizard(pDatabase, pSchema, pTable))
+	{
+		refresh();
+		displayProperties();
+	}
+}
+  
+// Run Drop Trigger Wizard 
+void  KPoGreView::dropTrigger()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+		
+		if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTrigger)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+    
+  	KPGTriggersFolder *pTriggersFolder = static_cast <KPGTriggersFolder *> (pSelectedItem->parent());
+  	KPGTable *pTable = static_cast <KPGTable *> (pTriggersFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+  	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  
+    if(pSchema->isSystemObject() || pTable->isSystemObject() || pTable->isToastTable())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system table ! Really drop trigger ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+	
+	KPGDropObjectWizard wzd(
+			this, 
+			"KPGDropObjectWizard", 
+			"TRIGGER",
+			pSchema->text(0),
+			pSelectedItem->text(0),
+			pTable->text(0)
+			);
+	
+		wzd.setConnection(pDatabase->connection());
+			
+		if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// Refresh parent item
+	setWaitCursor();
+	try
+	{
+		pTriggersFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();	 
+}
+
+// Run ALTER table ENABLE/DISABLE trigger Wizard 
+void  KPoGreView::enableTrigger()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTrigger)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+  
+	KPGTrigger *pTrigger = static_cast <KPGTrigger *> (pSelectedItem);	
+	KPGTriggersFolder *pTriggersFolder = static_cast <KPGTriggersFolder *> (pSelectedItem->parent());
+  	KPGTable *pTable = static_cast <KPGTable *> (pTriggersFolder->parent());
+  	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+  	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  
+  	QString strSQL("ALTER TABLE ");
+	strSQL.append(KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)));
+	if(pTrigger->isEnabled())
+		strSQL.append(" DISABLE");
+	else
+		strSQL.append(" ENABLE");
+	
+	strSQL.append(" TRIGGER ");
+	strSQL.append(KPGUtil::quotedName(pTrigger->text(0)));
+		
+	KPG2StepsWizard wzd(this, i18n("Enable or disable triger"), strSQL, true);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save column name for look-up after refresh columns folder 
+	QString strTriggerName(pTrigger->text(0));   
+	
+	setWaitCursor();
+	try
+	{
+		pTriggersFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pTrigger = static_cast <KPGTrigger *> (pTriggersFolder->getChildByName(strTriggerName));
+	if(pTrigger)
+	{
+		m_pViewTree->ensureItemVisible(pTrigger);
+		m_pViewTree->setSelected(pTrigger, true);
+	}  
+}
+
+// Run ALTER Trigger RENAME Wizard 
+void  KPoGreView::renameTrigger()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeTrigger)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGTriggersFolder *pTriggersFolder = static_cast <KPGTriggersFolder *> (pSelectedItem->parent());
+	KPGTable *pTable = static_cast <KPGTable *> (pTriggersFolder->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	KPGRenameObjectWizard wzd(this, 
+		"KPGRenameObjectWizard", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pTable->text(0)), 
+		KPGUtil::quotedName(pSelectedItem->text(0)), 
+		"TRIGGER", 
+		i18n("trigger")
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+	
+	setWaitCursor();
+	try
+	{
+		pTriggersFolder->refresh(pTable->oid());
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pSelectedItem = pTriggersFolder->getChildByName(wzd.newObjectName());
+	if(pSelectedItem)
+	{
+		m_pViewTree->ensureItemVisible(pSelectedItem);
+		m_pViewTree->setSelected(pSelectedItem, true);
+	}    
+}
+
+void KPoGreView::createBaseType()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTypes)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createBaseTypeWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+
+void KPoGreView::createCompositeType()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeFolderTypes)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	
+	QPtrList<QListViewItem> listOfSchemas;
+	listOfSchemas.append(pSchema);
+	
+	if(createCompositeTypeWizard(pDatabase, listOfSchemas))
+		refresh();
+}
+
+void KPoGreView::dropType()
+{
+    KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+    if(! pSelectedItem)
+    {
+        kdDebug() << "KPoGreView::dropTable: no item selected" << endl;
+        return;
+    }
+    
+    KPGType *pType = static_cast <KPGType *> (pSelectedItem);
+    KPGTypesFolder *pTypesFolder = static_cast <KPGTypesFolder *> (pType->parent());
+    KPGSchema *pSchema = static_cast <KPGSchema *> (pTypesFolder->parent());
+    KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+    
+    if(pSchema->isSystemObject() || pType->isSystemObject())
+	{
+	   if(KMessageBox::questionYesNo(this, i18n("This is system type ! Really drop ?")) != KMessageBox::Yes) 
+	   {
+		  return;
+	   }
+	}
+    
+    KPGDropObjectWizard wzd(
+        this, 
+        "KPGDropObjectWizard", 
+        "TYPE",
+        pSchema->text(0),
+        pSelectedItem->text(0)
+        );
+    
+    wzd.setConnection(pDatabase->connection());
+        
+    if(wzd.exec() != QDialog::Accepted)
+        return;
+    
+    // Refresh parent item
+    setWaitCursor();
+    try
+    {
+    	pTypesFolder->refresh();
+    }
+    catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+    setNormalCursor();
+}
+
+void KPoGreView::setOwnerType()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+	
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != KPGTreeItem::nodeType)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return;
+	}
+	
+	KPGType *pType = static_cast <KPGType *> (pSelectedItem);
+	KPGTypesFolder *pFolderTypes = static_cast <KPGTypesFolder *> (pType->parent());
+	KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTypes->parent());
+	KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+	KPGServer *pServer = static_cast <KPGServer *> (pDatabase->parent()); 
+	
+	KPGSetOwnerWizard wzd(this, 
+		"KPGSetOwnerWizard", 
+		pServer->getUsersFolder(), 
+		"TYPE", 
+		KPGUtil::fullyQualifiedName(pSchema->text(0), pType->text(0)), 
+		pType->owner()
+		);
+	wzd.setConnection(pDatabase->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// save domain name for look-up after refresh types folder 
+	QString strTypName(pType->text(0)); 
+				
+	setWaitCursor();
+	try
+	{
+		pFolderTypes->refresh();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+	setNormalCursor();
+	
+	pType = static_cast <KPGType *> (pFolderTypes->getChildByName(strTypName));
+	if(pType)
+	{
+		m_pViewTree->ensureItemVisible(pType);
+		m_pViewTree->setSelected(pType, true);
+	}
+}
+
+void KPoGreView::setDescription()
+{
+	KPGTreeItem * pSelectedItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	if(! pSelectedItem)
+	{
+		kdDebug() << k_funcinfo << " No item selected" << endl;
+		return;
+	}
+  
+  	QString strOldDescription;
+  	  	
+  	if((pSelectedItem->type() == KPGTreeItem::nodeTable) ||
+  	   (pSelectedItem->type() == KPGTreeItem::nodeView) ||
+  	   (pSelectedItem->type() == KPGTreeItem::nodeType) ||
+  	   (pSelectedItem->type() == KPGTreeItem::nodeFunction) ||
+  	   (pSelectedItem->type() == KPGTreeItem::nodeSequence)
+  	   )
+	{
+		KPGObject *pPgObject = static_cast <KPGObject *> (pSelectedItem);
+		strOldDescription = pPgObject->description();
+		KPGItemsFolder *pFolder = static_cast <KPGItemsFolder *> (pPgObject->parent());
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pFolder->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		QString strObjectParameters = QString::null;
+		
+		if(pSelectedItem->type() == KPGTreeItem::nodeFunction)
+		{
+			// Function requires full name with arguments
+			strObjectParameters = (static_cast <KPGFunction *> (pPgObject))->argumentTypes();
+		}
+		
+		// Run wizard
+		KPGSetDescriptionWizard wzd(this, 
+			strOldDescription, 
+			pPgObject->getObjectType(),
+			pSchema->text(0),
+			pPgObject->text(0),
+			QString::null,
+			strObjectParameters
+			);
+		wzd.setConnection(pDatabase->connection());
+	
+		if(wzd.exec() != QDialog::Accepted)
+			return;
+	
+		try
+		{
+			pPgObject->refreshItem();
+  			displayProperties();
+  		}
+  		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else if(pSelectedItem->type() == KPGTreeItem::nodeTableColumn)
+  	{
+		KPGTableColumn *pColumn = static_cast <KPGTableColumn *> (pSelectedItem);
+		KPGTable *pTable = static_cast <KPGTable *> (pColumn->getParentByType(KPGTreeItem::nodeTable));	
+		strOldDescription = pColumn->description();	
+		
+		KPGTablesFolder *pFolderTables = static_cast <KPGTablesFolder *> (pTable->parent());
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pFolderTables->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		// Run wizard
+		KPGSetDescriptionWizard wzd(this, 
+			strOldDescription,
+			"COLUMN",
+			pSchema->text(0),
+			pColumn->text(0),
+			pTable->text(0)
+			);
+		wzd.setConnection(pDatabase->connection());
+	
+		if(wzd.exec() != QDialog::Accepted)
+			return;
+	
+		try
+		{
+			pColumn->refreshItem();
+  			displayProperties();
+  		}
+  		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else if((pSelectedItem->type() == KPGTreeItem::nodeIndex) || 
+			(pSelectedItem->type() == KPGTreeItem::nodePrimaryKey)
+		   )
+	{
+		KPGObject *pPgObject = static_cast <KPGObject *> (pSelectedItem);
+		KPGItemsFolder *pFolder = static_cast <KPGItemsFolder *> (pPgObject->parent());
+		KPGTable *pTable = static_cast <KPGTable *> (pFolder->parent());
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  	
+  		strOldDescription = pPgObject->description();
+  		
+  		// Run wizard
+		KPGSetDescriptionWizard wzd(this, 
+			strOldDescription,
+			pPgObject->getObjectType(),
+			pSchema->text(0),
+			pPgObject->text(0)
+			);
+		wzd.setConnection(pDatabase->connection());
+	
+		if(wzd.exec() != QDialog::Accepted)
+			return;
+	
+		try
+		{
+			pPgObject->refreshItem();
+  			displayProperties();
+  		}
+  		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else if((pSelectedItem->type() == KPGTreeItem::nodePrimaryKeyConstr) || 
+			(pSelectedItem->type() == KPGTreeItem::nodeCheckConstr) || 
+			(pSelectedItem->type() == KPGTreeItem::nodeRule) || 
+			(pSelectedItem->type() == KPGTreeItem::nodeTrigger) || 
+			(pSelectedItem->type() == KPGTreeItem::nodeForeignKeyConstr)
+		   )
+	{
+		KPGObject *pPgObject = static_cast <KPGObject *> (pSelectedItem);
+		KPGItemsFolder *pFolder = static_cast <KPGItemsFolder *> (pPgObject->parent());
+		KPGTable *pTable = static_cast <KPGTable *> (pFolder->parent());
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pTable->parent()->parent());
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+  	
+  		strOldDescription = pPgObject->description();
+  		
+  		// Run wizard
+		KPGSetDescriptionWizard wzd(this, 
+			strOldDescription,
+			pPgObject->getObjectType(),
+			pSchema->text(0),
+			pPgObject->text(0),
+			pTable->text(0)
+			);
+		wzd.setConnection(pDatabase->connection());
+	
+		if(wzd.exec() != QDialog::Accepted)
+			return;
+	
+		try
+		{
+			pPgObject->refreshItem();
+			displayProperties();
+		}
+		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else if((pSelectedItem->type() == KPGTreeItem::nodeSchema))
+	{
+		KPGSchema *pSchema = static_cast <KPGSchema *> (pSelectedItem);
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSchema->parent());
+		
+		strOldDescription = pSchema->description();
+		
+		// Run wizard
+		KPGSetDescriptionWizard wzd(this, 
+			strOldDescription,
+			pSchema->getObjectType(),
+			pSchema->text(0),
+			pSchema->text(0)
+			);
+		wzd.setConnection(pDatabase->connection());
+	
+		if(wzd.exec() != QDialog::Accepted)
+			return;
+	
+		try
+		{
+			pSchema->refreshItem();
+  			displayProperties();
+  		}
+  		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else
+	{
+		kdDebug() << k_funcinfo << " Unsupported type" << endl;
+	}
+}
+  
+/////////////////////////////////////////////////////////////////////
+//                           OTHER SLOTS
+/////////////////////////////////////////////////////////////////////
+
+void KPoGreView::slotCurrentChildViewChanged(KMdiChildView * pNewCurrentView)
+{
+	if(pNewCurrentView == 0) return;
+	
+	// Deactivate MDI childs, instead of new current one
+	KMdiIterator<KMdiChildView*>* it = createIterator();
+    for ( it->first(); !it->isDone(); it->next() )
+    {
+    	KMdiChildView * pMdiChildView = it->currentItem();
+        if(pMdiChildView == pNewCurrentView) continue;
+        
+        if(pMdiChildView->className() == QString("KPGPropertyPageChildView"))
+		{
+			KPGPropertyPageChildView *pChildView = static_cast <KPGPropertyPageChildView*> (pMdiChildView);
+			
+			pChildView->slotDeactivated();
+		}
+		else if(pMdiChildView->className() == QString("KPGQueryResultChildView"))
+		{
+			KPGQueryResultChildView *pChildView = static_cast <KPGQueryResultChildView*> (pMdiChildView);
+			pChildView->slotDeactivated();
+		}
+		else if(pMdiChildView->className() == QString("KPGDataTableChildView"))
+		{
+			KPGDataTableChildView *pChildView = static_cast <KPGDataTableChildView*> (pMdiChildView);
+			pChildView->slotDeactivated();
+		}
+		else if(pMdiChildView->className() == QString("KPGExecutorChildView"))
+		{
+			KPGExecutorChildView *pChildView = static_cast <KPGExecutorChildView*> (pMdiChildView);
+			pChildView->slotDeactivated();
+		}
+		else if(pMdiChildView->className() == QString("KPGDebuggerChildView"))
+		{
+			KPGDebuggerChildView *pChildView = static_cast <KPGDebuggerChildView*> (pMdiChildView);
+			pChildView->slotDeactivated();
+		}           
+    }
+    delete it;
+	
+	
+	if(pNewCurrentView->className() == QString("KPGPropertyPageChildView"))
+	{
+	   	KPGPropertyPageChildView *pChildView = static_cast <KPGPropertyPageChildView*> (pNewCurrentView);
+		
+		mdiChildViewActivated(eMdiChildProperties);
+		pChildView->slotActivated();
+	}
+	else if(pNewCurrentView->className() == QString("KPGQueryResultChildView"))
+	{
+		// Refresh comboboxes that contains available servers and their databases
+		
+		KPGQueryResultChildView *pChildView = static_cast <KPGQueryResultChildView*> (pNewCurrentView);
+		
+		// user selected SQL query/result window - update their connections list
+		KPGQueryResultWindow* pQueryResultWindow = pChildView->getQueryResultWindow();
+		
+		// store selected server and database
+		QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+		QString strDatabase(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+		
+		// If stored selected server or database is not found don't try reselect it  
+		bool bCurrentServerIsFound = false;
+		bool bCurrentDatabaseIsFound = false;
+		
+		pQueryResultWindow->m_pComboBoxServer->clear();
+		pQueryResultWindow->m_pComboBoxDatabase->clear();
+		
+		QStringList strLisOfActiveDbConnections;
+		
+		// Traverse through servers, check if current server is stil found
+		QListViewItem * pItem = m_pViewTree->firstChild();
+		while(pItem)
+		{
+			if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+			{
+				if(pItem->text(0) == strServer)
+				{
+					bCurrentServerIsFound = true;
+					break;
+				}
+			}
+			
+			pItem = pItem->nextSibling();
+		}
+		
+		// Traverse through servers
+		pItem = m_pViewTree->firstChild();
+		while(pItem)
+		{
+			if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+			{
+				KPGServer *pServer = static_cast <KPGServer *> (pItem);
+								
+				//--- traverse list of connected databases
+				QListViewItem * pItem2 = pServer->firstChild();
+				
+				if(pItem2)
+					pQueryResultWindow->m_pComboBoxServer->insertItem(*pServer->pixmap(0), pServer->text(0));
+					
+				if(strServer == pServer->text(0)) // add databases for selected server
+				{					
+					while(pItem2)
+					{
+						if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+						{
+							KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+							if(pDatabase->connection())
+							{ 
+		                        if(pDatabase->text(0) == strDatabase)
+                                    bCurrentDatabaseIsFound = true;      
+                                        
+                                pQueryResultWindow->m_pComboBoxDatabase->insertItem(*pDatabase->pixmap(0), pDatabase->text(0));
+							}
+						}
+						pItem2 = pItem2->nextSibling();
+					}	
+				}
+								 
+			}
+			pItem = pItem->nextSibling();
+		}
+		
+		// restore selected values
+		if(bCurrentServerIsFound && (strServer.length() > 0))
+		{	
+			pQueryResultWindow->m_pComboBoxServer->setCurrentText(strServer);
+			
+			if(bCurrentDatabaseIsFound && bCurrentServerIsFound && (strDatabase.length() > 0))
+			{
+				pQueryResultWindow->m_pComboBoxDatabase->setCurrentText(strDatabase);
+			}
+		}
+		else
+		{
+			if(strServer.length() > 0)
+			{
+				slotRequestDatabasesList(pQueryResultWindow, strServer); 
+			}
+		}
+		
+		// Update 'Run Query' action and reload DB objects for code completition
+		pQueryResultWindow->slotDatabaseChanged(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+		
+		mdiChildViewActivated(eMdiChildQueryResult);
+		pChildView->slotActivated();
+	}
+	else if(pNewCurrentView->className() == QString("KPGDataTableChildView"))
+	{
+	   KPGDataTableChildView *pChildView = static_cast <KPGDataTableChildView*> (pNewCurrentView);
+	
+	   mdiChildViewActivated(eMdiChildDataTable);
+	   pChildView->slotActivated();
+	}
+	else if(pNewCurrentView->className() == QString("KPGExecutorChildView"))
+	{
+	   KPGExecutorChildView *pChildView = static_cast <KPGExecutorChildView*> (pNewCurrentView);
+	
+	   mdiChildViewActivated(eMdiChildExecutor);
+	   pChildView->slotActivated();
+	}
+	else if(pNewCurrentView->className() == QString("KPGDebuggerChildView"))
+	{
+	   KPGDebuggerChildView *pChildView = static_cast <KPGDebuggerChildView*> (pNewCurrentView);
+	
+	   mdiChildViewActivated(eMdiChildDebugger);
+	   pChildView->slotActivated();
+	}
+	else
+	{
+		kdError() <<  k_funcinfo << "Unhandled MDI view: " << pNewCurrentView->className() << endl;
+	} 
+	
+	m_pActEditDeselect->setEnabled(m_pViewTree->selectedItem() != 0);
+}
+
+// Show popup menu for item in tree, whem mouse  right button is pressed
+void KPoGreView::slotTreeViewRightButtonPressed(QListViewItem* pressedItem, const QPoint& point, int column)
+{
+	if(column >= 0)
+    {
+    	KPGTreeItem * pItem = static_cast <KPGTreeItem *> (pressedItem);
+			
+      	switch(pItem->type())
+      	{
+        //******************************************************************************************
+		//
+		// Main objects
+		//
+		//******************************************************************************************
+				
+			case KPGTreeItem::nodeServer:
+				emit sigContextMenuRequested("popupServer", point);
+				break;
+				
+			case KPGTreeItem::nodeDatabase:
+				emit sigContextMenuRequested("popupDatabase", point);
+				break; 
+				
+			case KPGTreeItem::nodeSchema:
+				emit sigContextMenuRequested("popupSchema", point);
+				break; 
+					
+			case KPGTreeItem::nodeFolderUsers:
+				emit sigContextMenuRequested("popupFolderUsers", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderGroups:
+				emit sigContextMenuRequested("popupFolderGroups", point);
+				break;
+
+			case KPGTreeItem::nodeFolderTablespaces:
+				emit sigContextMenuRequested("popupFolderTablespaces", point);
+				break;
+					
+			case KPGTreeItem::nodeTablespace:
+				emit sigContextMenuRequested("popupTablespace", point);
+				break; 
+												
+			//******************************************************************************************
+			//
+			// Database objects folders
+			//
+			//******************************************************************************************
+				
+			case KPGTreeItem::nodeFolderTables:
+				emit sigContextMenuRequested("popupFolderTables", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderViews:
+				emit sigContextMenuRequested("popupFolderViews", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderSequences:
+				emit sigContextMenuRequested("popupFolderSequences", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderFunctions:
+				emit sigContextMenuRequested("popupFolderFunctions", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderOperators:
+				emit sigContextMenuRequested("popupFolderOperators", point);
+				break; 
+					
+			case KPGTreeItem::nodeFolderOperatorClasses:
+				emit sigContextMenuRequested("popupFolderOperatorClasses", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderAggregates:
+				emit sigContextMenuRequested("popupFolderAggregates", point);
+				break;
+					
+			case KPGTreeItem::nodeFolderDomains:
+				emit sigContextMenuRequested("popupFolderDomains", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderTypes:
+				emit sigContextMenuRequested("popupFolderTypes", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderLanguages:
+				emit sigContextMenuRequested("popupFolderLanguages", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderConversions:
+				emit sigContextMenuRequested("popupFolderConversions", point);
+				break;
+					
+			case KPGTreeItem::nodeFolderCasts:
+				emit sigContextMenuRequested("popupFolderCasts", point);
+				break;		
+				
+			//******************************************************************************************
+			//
+			// Database objects
+			//
+			//******************************************************************************************
+				
+			case KPGTreeItem::nodeTable:
+				emit sigContextMenuRequested("popupTable", point);
+				break; 
+				
+			case KPGTreeItem::nodeView:
+				emit sigContextMenuRequested("popupView", point);
+				break; 
+				
+			case KPGTreeItem::nodeFunction:
+          		emit sigContextMenuRequested("popupFunction", point);
+				break; 
+				
+			case KPGTreeItem::nodeSequence:
+          		emit sigContextMenuRequested("popupSequence", point);
+				break;
+									 
+			case KPGTreeItem::nodeOperator:
+				break; 
+					
+			case KPGTreeItem::nodeOperatorClass:
+				break; 
+					
+			case KPGTreeItem::nodeAggregate:
+				break;
+					
+			case KPGTreeItem::nodeDomain:
+          		emit sigContextMenuRequested("popupDomain", point);
+				break;
+					
+			case KPGTreeItem::nodeType:
+          		emit sigContextMenuRequested("popupType", point);
+				break;
+					
+			case KPGTreeItem::nodeLanguage:
+          		emit sigContextMenuRequested("popupLanguage", point);
+				break;
+					
+			case KPGTreeItem::nodeConversion:
+				break;
+					
+			case KPGTreeItem::nodeCast:
+				break;	
+				 
+		    case KPGTreeItem::nodeTypeAttribute:
+				break;  
+				
+			case KPGTreeItem::nodeUser:
+				emit sigContextMenuRequested("popupUser", point);
+				break; 
+				
+			case KPGTreeItem::nodeGroup:
+				emit sigContextMenuRequested("popupGroup", point);
+				break;	 
+				
+			//******************************************************************************************
+			//
+			// Table objects folders
+			//
+			//******************************************************************************************
+				
+			case KPGTreeItem::nodeFolderTableColumns:
+				emit sigContextMenuRequested("popupFolderTableColumns", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderTableIndexes:
+				emit sigContextMenuRequested("popupFolderTableIndexes", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderTableConstraints:
+				emit sigContextMenuRequested("popupFolderTableConstraints", point);
+				break;
+				
+			case KPGTreeItem::nodeFolderRules:
+				emit sigContextMenuRequested("popupFolderRules", point);
+				break; 
+				
+			case KPGTreeItem::nodeFolderTriggers:
+				emit sigContextMenuRequested("popupFolderTriggers", point);
+				break;
+				
+        	//******************************************************************************************
+        	//
+        	// Domain objects folders
+        	//
+			//******************************************************************************************
+				
+        
+	        case KPGTreeItem::nodeFolderDomainConstraints:
+				emit sigContextMenuRequested("popupFolderDomainConstraints", point);
+				break;
+			
+			case KPGTreeItem::nodeDomainConstr:
+				emit sigContextMenuRequested("popupDomainConstraint", point);
+				break;
+			
+			//******************************************************************************************
+			//
+			// Table objects
+			//
+			//******************************************************************************************
+												
+			case KPGTreeItem::nodeTableColumn:
+				emit sigContextMenuRequested("popupTableColumn", point);
+				break;
+					
+			case KPGTreeItem::nodePrimaryKeyConstr:
+			case KPGTreeItem::nodeForeignKeyConstr:
+			case KPGTreeItem::nodeUniqueConstr:
+			case KPGTreeItem::nodeCheckConstr:
+				emit sigContextMenuRequested("popupTableConstraint", point);
+				break;
+										
+			case KPGTreeItem::nodePrimaryKey:
+			case KPGTreeItem::nodeIndex:
+				emit sigContextMenuRequested("popupTableIndex", point);
+				break; 
+					
+			case KPGTreeItem::nodeRule:
+				emit sigContextMenuRequested("popupRule", point);
+				break; 
+					
+			case KPGTreeItem::nodeTrigger:
+				emit sigContextMenuRequested("popupTrigger", point);
+				break; 
+			
+			//******************************************************************************************
+					
+			case KPGTreeItem::nodeUnselected:
+				break; 
+			
+			default:
+			kdDebug() << k_funcinfo << " Unhandled object type ! " << pItem->text(0) << endl;
+			break;
+    	}
+	}
+}
+
+// Checks, which type of item was selected
+void KPoGreView::slotSelectionChanged()
+{
+	setWaitCursor();
+		
+	KPGTreeItem * pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if ( ! pItem )
+	{ 
+		m_pActEditDeselect->setEnabled(false);
+		m_pActViewNodeUp->setEnabled(false);
+		
+		emit sigSelectionChanged(KPGTreeItem::nodeUnselected, 0);
+      	createPropertyPageChildView(0);
+      	setNormalCursor();
+		return;
+    }
+	else
+    {
+    	m_pActEditDeselect->setEnabled(true);
+    	m_pActViewNodeUp->setEnabled(true);
+    	
+		emit sigSelectionChanged(pItem->type(), pItem);
+		createPropertyPageChildView(pItem);
+    }
+    
+    m_pActViewNodeBack->setEnabled(m_stackBackNodes.count() > 0);
+	m_pActViewNodeForward->setEnabled(m_stackForwardNodes.count() > 0);
+		
+	if(pItem->type() != KPGTreeItem::nodeUnselected)
+	{
+		displayProperties();
+		
+		// For database, check if connection state is changed
+		if(pItem->type() == KPGTreeItem::nodeDatabase)
+		{
+			KPGDatabase *pDatabase = static_cast <KPGDatabase *>	(pItem);
+			if(pDatabase->isConnectionStateChanged())
+			{
+				pDatabase->clearConnectionStateChanged();
+				
+				// Inform active MDI child about change of available servers, databases
+				KMdiChildView *activeMdiView = activeWindow();
+				if(activeMdiView)
+				{
+					slotCurrentChildViewChanged(activeMdiView);
+				}
+			}
+		}
+	}
+	
+	setNormalCursor();
+}
+
+// Caled when user change selected server in SQL query / result window
+// Set server's databases to combobox in SQL query / result window
+void KPoGreView::slotRequestDatabasesList(KPGQueryResultWindow *pQueryResultWindow, const QString& strServer)
+{
+	pQueryResultWindow->clearListOfObjectsForCodeCompletion();
+	pQueryResultWindow->m_pComboBoxDatabase->clear();
+		
+	if(strServer.length() == 0)
+	{
+		pQueryResultWindow->slotDatabaseChanged(QString::null);
+		return;	
+	}
+		
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{
+				pItem = pItem->nextSibling(); continue;
+			}
+								
+			//--- traverse list of connected databases
+			QListViewItem * pItem2 = pServer->firstChild();
+			bool bFirstDatabase = false;
+			
+			while(pItem2)
+			{
+				if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+				{
+					KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+					if(pDatabase->connection())
+					{
+						bFirstDatabase = false;
+						
+						pQueryResultWindow->m_pComboBoxDatabase->insertItem(*pDatabase->pixmap(0), pDatabase->text(0));
+					
+					    pQueryResultWindow->setEnableRunQuery(true);
+					   
+					   	if(bFirstDatabase)
+					    {
+					    	KPGOidNameList listOfCodeCompletionObjects;
+                        	pDatabase->fillListOfObjectsForCodeCompletion(listOfCodeCompletionObjects);
+                        	pQueryResultWindow->setListOfObjectsForCodeCompletion(listOfCodeCompletionObjects);
+                        }
+					}
+				}
+					
+				pItem2 = pItem2->nextSibling();
+			}	 
+		}
+		pItem = pItem->nextSibling();
+	}
+	
+	pQueryResultWindow->slotDatabaseChanged(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+}
+
+// Called, when database is selected in SQL query / result window and list of object for code completion is needed
+void KPoGreView::slotRequestListOfDatabaseObjectsForCodeCompletion(KPGQueryResultWindow *pQueryResultWindow, const QString& strDatabase)
+{
+    pQueryResultWindow->clearListOfObjectsForCodeCompletion();
+        
+    QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{
+				pItem = pItem->nextSibling(); continue;
+			}
+								
+			//--- traverse list of connected databases
+			QListViewItem * pItem2 = pServer->firstChild();
+			
+			while(pItem2)
+			{
+				if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+				{
+					KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+					if(pDatabase->text(0) != strDatabase)
+                    {
+                        pItem2 = pItem2->nextSibling(); continue;
+                    }
+                    
+                    kdDebug() << k_funcinfo << "Database found !: " << pDatabase->text(0) << endl;
+                    
+                    KPGOidNameList listOfCodeCompletionObjects;
+                    pDatabase->fillListOfObjectsForCodeCompletion(listOfCodeCompletionObjects);
+                    pQueryResultWindow->setListOfObjectsForCodeCompletion(listOfCodeCompletionObjects);
+                    return;
+				}
+					
+				pItem2 = pItem2->nextSibling();
+			}	 
+		}
+		pItem = pItem->nextSibling();
+	}
+}
+
+// Called, when is needed schema childs list, for code completion 
+void KPoGreView::slotRequestSchemaChildsListsForCodeCompletion(KPGQueryResultWindow *pQueryResultWindow, pqxx::oid oidSchema)
+{
+    kdDebug() << k_funcinfo << "oid: " << oidSchema << endl;
+
+    QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+	QString strDatabase(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+    
+    if((strServer.length() == 0) || (strDatabase.length() == 0))
+		return;
+		
+	// Find server
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{
+				pItem = pItem->nextSibling(); continue;
+			}
+		
+			//--- traverse list of connected databases
+			QListViewItem * pItem2 = pServer->firstChild();
+			
+			while(pItem2)
+			{
+				if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+				{
+					KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+					if(pDatabase->text(0) != strDatabase)
+                    {
+                        pItem2 = pItem2->nextSibling(); continue;
+                    }
+                    
+                    kdDebug() << k_funcinfo << "Database found !: " << pDatabase->text(0) << endl;
+                    
+                    KPGTreeItem *pItem = pDatabase->getChildByOid(oidSchema);
+					if(!pItem)
+					{
+						kdDebug() << k_funcinfo << " no schema found" << endl;
+						return;
+					}
+					
+					KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+					
+					KPGOidNameList listOfCodeCompletionObjects;
+					pSchema->fillListOfObjectsForCodeCompletion(listOfCodeCompletionObjects);
+                    pQueryResultWindow->setListOfSchemaChildsForCodeCompletion(listOfCodeCompletionObjects);
+                    return;
+				}
+					
+				pItem2 = pItem2->nextSibling();
+			}	 
+		}
+		pItem = pItem->nextSibling();
+	}
+}
+	
+// Called, when is needed table columns list, for code completion 
+void KPoGreView::slotRequestTableColumnsListsForCodeCompletion(KPGQueryResultWindow *pQueryResultWindow, pqxx::oid oidTable)
+{
+	kdDebug() << k_funcinfo << "oid: " << oidTable << endl;
+	
+	QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+	QString strDatabase(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+    
+    if((strServer.length() == 0) || (strDatabase.length() == 0))
+		return;
+	
+	// Find server
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{
+				pItem = pItem->nextSibling(); continue;
+			}
+		
+			//--- traverse list of connected databases
+			QListViewItem * pItem2 = pServer->firstChild();
+			
+			while(pItem2)
+			{
+				if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+				{
+					KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+					if(pDatabase->text(0) != strDatabase)
+                    {
+                        pItem2 = pItem2->nextSibling(); continue;
+                    }
+                    
+                    kdDebug() << k_funcinfo << "Database found !: " << pDatabase->text(0) << endl;
+                    
+                    KPGTreeItem *pItem = pDatabase->getChildByName("public");
+					if(!pItem)
+					{
+						kdDebug() << k_funcinfo << " no item found: public" << endl;
+						return;
+					}
+					
+					KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+					KPGTablesFolder *pTablesFolder = pSchema->getTablesFolder();
+					
+					KPGObject *pObject = pTablesFolder->getChildItemByOid(oidTable);
+					if(pObject)
+					{
+						KPGTable *pTable = static_cast <KPGTable *> (pObject);
+						kdDebug() << k_funcinfo << "Table found !: " << pTable->text(0) << endl;
+						
+						KPGTableColumnsFolder *pFolderColumns = pTable->getTableColumnsFolder();
+						
+						KPGListTableColumns listColumns;
+						pFolderColumns->fillListColumns(listColumns); 
+						
+						pQueryResultWindow->setListOfColumnsForCodeCompletion(listColumns); 
+                    }
+
+                    return;
+				}
+					
+				pItem2 = pItem2->nextSibling();
+			}	 
+		}
+		pItem = pItem->nextSibling();
+	}
+}
+
+// Called, when is needed function return type attributes list, for code completion 
+void KPoGreView::slotRequestFunctionReturnTypeAttributesListsForCodeCompletion(KPGQueryResultWindow *pQueryResultWindow, pqxx::oid oidFunction)
+{
+	kdDebug() << k_funcinfo << "oid: " << oidFunction << endl;
+	
+	QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+	QString strDatabase(pQueryResultWindow->m_pComboBoxDatabase->currentText());
+    
+    if((strServer.length() == 0) || (strDatabase.length() == 0))
+		return;
+	
+	// Find server
+	QListViewItem * pItem = m_pViewTree->firstChild();
+	while(pItem)
+	{
+		if((static_cast <KPGTreeItem *> (pItem))->type() == KPGTreeItem::nodeServer)
+		{
+			QString strServer(pQueryResultWindow->m_pComboBoxServer->currentText());
+			KPGServer *pServer = static_cast <KPGServer *> (pItem);
+			if(pServer->text(0) != strServer)
+			{
+				pItem = pItem->nextSibling(); continue;
+			}
+		
+			//--- traverse list of connected databases
+			QListViewItem * pItem2 = pServer->firstChild();
+			
+			while(pItem2)
+			{
+				if((static_cast <KPGTreeItem *> (pItem2))->type() == KPGTreeItem::nodeDatabase)
+				{
+					KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pItem2);
+					if(pDatabase->text(0) != strDatabase)
+                    {
+                        pItem2 = pItem2->nextSibling(); continue;
+                    }
+                    
+                    kdDebug() << k_funcinfo << "Database found !: " << pDatabase->text(0) << endl;
+                    
+                    KPGTreeItem *pItem = pDatabase->getChildByName("public");
+					if(!pItem)
+					{
+						kdDebug() << k_funcinfo << " no item found: public" << endl;
+						return;
+					}
+					
+					KPGSchema *pSchema = static_cast <KPGSchema *> (pItem);
+					KPGFunctionsFolder *pFunctionsFolder = pSchema->getFunctionsFolder();
+					
+					KPGObject *pObject = pFunctionsFolder->getChildItemByOid(oidFunction);
+					if(pObject)
+					{
+						KPGFunction *pFunction = static_cast <KPGFunction *> (pObject);
+						kdDebug() << k_funcinfo << "Function found !: " << pFunction->nameWithArguments() << endl;
+						
+						pqxx::oid oidReturnType = pFunction->oidReturnType();
+						if(oidReturnType == 0)
+						{
+						  kdError() << k_funcinfo << "Function has no return type: " << pFunction->nameWithArguments() << endl;
+						  return;
+						}
+						
+						KPGTypesFolder *pTypesFolder = pSchema->getTypesFolder();
+						pObject = pTypesFolder->getChildItemByOid(oidReturnType);
+						if(pObject)
+					    {
+						    KPGType *pType = static_cast <KPGType *> (pObject);
+						                                                            
+						    KPGListTableColumns listAttributes;
+                            pType->fillListAttributes(listAttributes); 
+                            
+                            pQueryResultWindow->setListOfColumnsForCodeCompletion(listAttributes);
+                        }
+                    }
+
+                    return;
+				}
+					
+				pItem2 = pItem2->nextSibling();
+			}	 
+		}
+		pItem = pItem->nextSibling();
+	}
+}
+
+
+// Called from property pages when user double-clicks on KPGLinkLabel
+void KPoGreView::slotSearchObject(const pqxx::oid _oid)
+{
+	// Start find from current items parent server
+	KPGTreeItem *pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+
+	if(!pItem)
+	{
+	  	KMessageBox::sorry(this, i18n("No item selected "));
+		kdError() << k_funcinfo << " Item is not selected " << endl;
+		return;    
+	}
+		
+	// Store pointer to old item
+	KPGTreeItem *pOldItem = pItem;
+
+	// Go up to parent server
+	while(pItem->type() != KPGTreeItem::nodeServer)
+	{
+		pItem = static_cast <KPGTreeItem *> (pItem->parent());
+		if(!pItem)
+		{
+		  	kdError() << k_funcinfo << " Internal error !!!" << endl;
+			return;    
+		}
+	}
+
+	//--- Search item ---------------------------------
+	while(pItem)
+	{
+		if((pItem->hasOid()))
+		{
+			KPGObject *pObject = static_cast <KPGObject *> (pItem);
+			
+			if(pObject->oid() == _oid)
+			{
+				// store info about previously selected item to stack
+				if((pOldItem->hasOid()))
+				{
+					KPGObject *pOldObject = static_cast <KPGObject *> (pOldItem);
+					m_stackBackNodes.push(KPGOidLink(pOldObject->oid(), pOldObject->path()));
+				}
+				else
+					m_stackBackNodes.push(KPGOidLink(0, pOldItem->path()));
+				
+				m_stackForwardNodes.clear();
+					
+				// select new item
+				selectItem(pItem);
+				
+				return;
+			}
+		}
+		
+		pItem = nextTreeItem(pItem);
+	}
+	
+	KMessageBox::sorry(this, i18n("Searched item not found"));
+}
+
+// Called when property page need run Wizard
+void KPoGreView::slotRunWizard(const QString &strSQL)
+{
+	KPGTreeItem *pItem = static_cast <KPGTreeItem *> (m_pViewTree->selectedItem());
+	
+	if(!pItem)
+	{
+		KMessageBox::sorry(this, i18n("No item selected "));
+		kdError() << k_funcinfo << " Item is not selected " << endl;
+		return;    
+	}
+	
+	KPG2StepsWizard wzd(this, i18n("Change privileges"), strSQL, false);
+	wzd.setConnection(pItem->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+		return;
+		
+	// refresh only item info, not child items if possible
+	try
+	{
+		pItem->refreshItem();
+		displayProperties();
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}
+}
+
+// Called when requested change terminal icon in this QTabWidget 
+void KPoGreView::slotSetTerminalIcon(KPGQueryResultWindow *pWidget, int iColor)
+{
+	switch(iColor)
+	{
+		case 0: ((KMdiChildView *) pWidget->parent())->setIcon(SmallIcon("openterm"));   
+				break;
+		
+		case 1: ((KMdiChildView *) pWidget->parent())->setIcon(UserIcon("opentermred.png"));
+				break;
+		
+		case 2: ((KMdiChildView *) pWidget->parent())->setIcon(UserIcon("opentermblue.png"));
+				break;
+	}
+}
+
+/////////////////////////////////////////////////////////////////////
+//                       WIZARDS FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+
+
+// Run Create Database Wizard 
+bool KPoGreView::createDatabaseWizard(KPGServer *pServer)
+{
+	KPGCreateDatabaseWizard wzd(this, "Create new database", pServer);
+			
+	wzd.setConnection(pServer->connection());
+		
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+  
+	return true;
+}
+
+// Run Create Tablespace Wizard 
+bool KPoGreView::createTablespaceWizard(KPGServer *pServer)
+{
+    KPGCreateTablespaceWizard wzd(this, "KPGCreateTablespaceWizard", pServer);
+    wzd.setConnection(pServer->connection());
+    
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+        
+    return true;
+}
+
+// Run Create Group Wizard 
+bool KPoGreView::createGroupWizard(KPGServer *pServer)
+{
+	KPGCreateGroupWizard wzd(this, "KPGCreateGroupWizard", pServer->getUsersFolder());
+	wzd.setConnection(pServer->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+		 
+	return true;
+}
+
+// Run Create User Wizard 
+bool KPoGreView::createUserWizard(KPGServer *pServer)
+{
+	KPGCreateUserWizard wzd(this, "KPGCreateUserWizard", pServer);
+	wzd.setConnection(pServer->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+		 
+	return true;
+}
+
+// Run Create Schema Wizard 
+bool KPoGreView::createSchemaWizard(KPGDatabase *pDatabase)
+{
+	KPGCreateSchemaWizard wzd(this, "KPGCreateSchemaWizard", pDatabase);
+	wzd.setConnection(pDatabase->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+		 
+	return true;
+}
+
+// Run Create Language Wizard 
+bool KPoGreView::createLanguageWizard(KPGDatabase *pDatabase)
+{
+    KPGCreateLanguageWizard wzd(this, "KPGCreateLanguageWizard", pDatabase);
+    wzd.setConnection(pDatabase->connection());
+    
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+        
+    return true;
+}
+
+// Run Create Table Wizard 
+bool KPoGreView::createTableWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+	KPGCreateTableWizard wzd(this, "KPGCreateTableWizard", pDatabase, listOfSchemas);
+  	wzd.setConnection(pDatabase->connection());
+	
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+  
+	return true;
+}
+
+// Run Create Type Wizard 
+bool KPoGreView::createBaseTypeWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+    KPGCreateBaseTypeWizard wzd(this, "KPGCreateBaseTypeWizard", pDatabase, listOfSchemas);
+    wzd.setConnection(pDatabase->connection());
+            
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+    
+    return true;
+}
+
+// Run Create Type Wizard 
+bool KPoGreView::createCompositeTypeWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+    KPGCreateCompositeTypeWizard wzd(this, "KPGCreateCompositeTypeWizard", pDatabase, listOfSchemas);
+    wzd.setConnection(pDatabase->connection());
+            
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+    
+    return true;
+}
+
+// Run Create View Wizard 
+bool KPoGreView::createViewWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+	KPGCreateViewWizard wzd(this, "KPGCreateViewWizard", pDatabase, listOfSchemas);
+	wzd.setConnection(pDatabase->connection());
+  
+	if(wzd.exec() != QDialog::Accepted)
+        return false;
+  
+	return true;
+}
+
+// Run Create Domain Wizard 
+bool KPoGreView::createDomainWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+    KPGCreateDomainWizard wzd(this, "KPGCreateDomainWizard", pDatabase, listOfSchemas);
+    wzd.setConnection(pDatabase->connection());
+    
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+    
+    return true;
+}
+
+// Run Create Function Wizard 
+bool KPoGreView::createFunctionWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+    KPGCreateFunctionWizard wzd(this, "KPGCreateFunctionWizard", pDatabase, listOfSchemas);
+    wzd.setConnection(pDatabase->connection());
+    
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+    
+    return true;
+}
+
+// Run Create Sequence Wizard 
+bool KPoGreView::createSequenceWizard(KPGDatabase *pDatabase, QPtrList<QListViewItem> & listOfSchemas)
+{
+    KPGCreateSequenceWizard wzd(this, "KPGCreateSequenceWizard", listOfSchemas);
+    wzd.setConnection(pDatabase->connection());
+        
+    if(wzd.exec() != QDialog::Accepted)
+        return false;
+    
+    return true;
+}
+
+// Run simple 2-steps for dropping DB object
+bool KPoGreView::dropObjectWizard(
+	KPGTreeItem * pSelectedItem, 		// item to DROP
+	KPGTreeItem::eNodeType nodeType, 	// object type
+	const char *szObjectTypeName, 		// user for  SQL statement - DROP OBJECTYPE
+	KPGConnection *pConnection, 		// connection for SQL operation
+	const QString &strSchemaName,		// optional schema name
+  	bool bWithTransaction              	// run SQL with transaction
+	)
+{
+	if((static_cast <KPGTreeItem *> (pSelectedItem))->type() != nodeType)
+	{
+		kdDebug() << k_funcinfo << " Item types mismatch" << endl;
+		return false;
+	}
+		
+	QString strSQL("DROP ");
+	strSQL.append(szObjectTypeName);
+	strSQL.append(" ");
+	
+	if(strSchemaName.length() > 0)
+	{
+    	strSQL.append(KPGUtil::quotedName(strSchemaName));
+			strSQL.append(".");
+	}
+	
+	// object name
+	strSQL.append(KPGUtil::quotedName(pSelectedItem->text(0)));
+	strSQL.append(";");
+	
+	KPG2StepsWizard wzd(this, i18n("Drop object"), strSQL, bWithTransaction);
+	wzd.setConnection(pConnection);
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return false;
+  
+	// Refresh parent item
+	setWaitCursor();
+	
+	if(nodeType == KPGTreeItem::nodeSchema)
+	{
+		KPGDatabase *pDatabase = static_cast <KPGDatabase *> (pSelectedItem->parent());
+		setWaitCursor();
+		try
+		{
+			pDatabase->refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	else
+	{		
+		KPGItemsFolder *pParentFolder = static_cast <KPGItemsFolder *> (pSelectedItem->parent());
+		setWaitCursor();
+		try
+		{
+			pParentFolder->refresh();
+		}
+		catch (const KPGSqlException &e)
+		{
+			setNormalCursor();
+			KPGSqlDialog dlg(this, e.getSql(), e.what());
+			dlg.exec();
+		}
+	}
+	
+	setNormalCursor();
+
+	return true;
+}
+
+// Run simple 2-steps for dropping Table child object, using ALTER table DROP ...
+bool KPoGreView::dropTableObjectWizard(
+	KPGTreeItem * pSelectedItem, 			// item to DROP
+	const char *szObjectTypeName, 			// user for SQL statement - DROP OBJECTYPE
+	KPGConnection *pConnection, 			// connection for SQL operation
+	const QString &strNamespace,			// schema name
+  	const QString &strTableName				// table name
+	)
+{
+	
+	
+	KPGDropTableObjectWizard wzd(this, 
+        "KPGDropTableObjectWizard", 
+        szObjectTypeName, 
+        strNamespace,
+        pSelectedItem->text(0),
+        strTableName
+        );
+	
+	wzd.setConnection(pConnection);
+		
+	if(wzd.exec() != QDialog::Accepted)
+     return false;
+  
+	// Refresh parent item
+	setWaitCursor();
+	
+	KPGTableItemsFolder *pParentFolder = static_cast <KPGTableItemsFolder *> (pSelectedItem->parent());
+	try
+	{
+		pParentFolder->refresh(); // TODO: When drop constraint, refresh also indexes !
+	}
+	catch (const KPGSqlException &e)
+	{
+		setNormalCursor();
+		KPGSqlDialog dlg(this, e.getSql(), e.what());
+		dlg.exec();
+	}	
+	setNormalCursor();
+
+	return true;
+}
+
+// Run ALTER table ADD Column Wizard
+bool KPoGreView::createColumnWizard(KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable)
+{
+	KPGCreateTableColumnWizard wzd(this, 
+		"KPGCreateTableColumnWizard", 
+		pDatabase, 
+		pSchema->text(0), 
+		pTable->text(0)
+		);
+	wzd.setConnection(pDatabase->connection());
+	if(wzd.exec() != QDialog::Accepted)
+		return false;
+	
+	return true;
+}
+
+// Run Create Constraint Wizard 
+bool KPoGreView::createConstraintWizard(KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable, int iRaisedWidget)
+{
+	KPGCreateTableConstraintWizard wzd(this, "KPGCreateTableConstraintWizard", pDatabase, pSchema, pTable, pTable->primaryKeyName().isEmpty(), iRaisedWidget);
+	wzd.setConnection(pDatabase->connection());
+	if(wzd.exec() != QDialog::Accepted)
+		return false;
+	
+	return true;
+}
+
+// Run Create Index Wizard 
+bool KPoGreView::createIndexWizard(KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable)
+{
+	KPGCreateTableIndexWizard wzd(this, "KPGCreateTableIndexWizard", pDatabase, pSchema, pTable);
+	wzd.setConnection(pDatabase->connection());
+	if(wzd.exec() != QDialog::Accepted)
+		return false;
+	
+	return true;
+}
+
+// Run Create Rule Wizard 
+bool KPoGreView::createRuleWizard(KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable)
+{
+	KPGCreateRuleWizard wzd(this, "KPGCreateRuleWizard", pSchema->text(0), pTable->text(0));
+	wzd.setConnection(pDatabase->connection());
+	if(wzd.exec() != QDialog::Accepted)
+		return false;
+	
+	return true;
+}
+
+// Run Create Trigger Wizard 
+bool KPoGreView::createTriggerWizard(KPGDatabase *pDatabase, KPGSchema *pSchema, KPGTable *pTable)
+{
+	KPGCreateTriggerWizard wzd(this, 
+		"KPGCreateTriggerWizard", 
+		pDatabase, 
+		pSchema->text(0), 
+		pTable->text(0));
+	wzd.setConnection(pDatabase->connection());
+	if(wzd.exec() != QDialog::Accepted)
+		return false;
+	
+	return true;
+}
+
+//-------------------------------------------------------------------------
+//
+// Other slots, that aren't dedicated to KPoGreController
+//
+//-------------------------------------------------------------------------
+    
+// Dialog for key binding configuration
+void KPoGreView::slotConfigureKeys()
+{
+  	KKeyDialog::configure(actionCollection(), xmlFile());
+}
+
+// Configure toolbars dialog 
+void KPoGreView::slotConfigToolbars()
+{
+  	saveMainWindowSettings(KGlobal::config(), "KPogreMainWindow");
+  	KEditToolbar dlg(actionCollection());
+
+	if (dlg.exec())
+	{ 
+		createGUI(0);
+	}
+}
+
+// Configure application
+void KPoGreView::slotConfigure()
+{
+	m_pController->slotStatusMsg( i18n("Configure KPoGre ...") );
+	configuration()->showDialog();
+	m_pController->slotStatusMsg( i18n("Ready.") );
+}
+
+// Called when user choose bookmark
+void KPoGreView::slotOpenUrl( const QString& strUrl)
+{
+  	openUrl(strUrl);
+}
+
+// Display popup menu
+void KPoGreView::slotContextMenuRequested(const QString & strMenuName, const QPoint & pos)
+{
+	QWidget * pContainer = guiFactory()->container(strMenuName, this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name (" << strMenuName << ")" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}
+
+// Called, when user make right click over property table. Display popup menu
+/*void KPoGreView::slotPropertyPageContextMenuRequested(int, int, const QPoint & pos)
+{
+	KPGAbstractPropertyPage *pPropertyPage = getActivePropertyPage();
+	if(pPropertyPage == 0) return;
+	
+	if(pPropertyPage->tableResult()->numRows() < 1)
+		return;
+	
+	QWidget * pContainer = guiFactory()->container("popupPropertyTable", this);
+
+	if ( ! pContainer )
+	{
+		kdError() << k_funcinfo << " Couldn't get a container widget for the given menu name (popupResultTable)" << endl;
+		return;
+	}
+
+	if ( ! pContainer->inherits("KPopupMenu") )
+	{
+		kdError() << k_funcinfo << " Wrong container widget" << endl;
+		return;
+	}
+
+	KPopupMenu * pMenu = static_cast <KPopupMenu*> (pContainer);
+	pMenu->popup( pos );
+}*/
+
+// Updates tooltip text for specific MDI child View
+void KPoGreView::slotUpdateTabTooltip(KMdiChildView *pChildView, const QString &strText)
+{
+	tabWidget()->setTabToolTip(pChildView, strText);
+}
+
+// Inform about activate specific MDI child view
+void KPoGreView::mdiChildViewActivated(KPoGreView::EMdiChildView eMdiChildView)
+{
+	if(m_eActiveView == eMdiChildView) return;
+	KToolBar * pToolBar;
+	
+	switch(m_eActiveView)
+	{
+		case KPoGreView::eMdiChildNone:
+		case KPoGreView::eMdiChildProperties:
+			break;
+			
+		case KPoGreView::eMdiChildQueryResult:
+			pToolBar = toolBar("queryResultToolBar");
+			pToolBar->hide();	
+	
+			break;
+			
+		case KPoGreView::eMdiChildDataTable:
+			pToolBar = toolBar("dataTableToolBar");
+			pToolBar->hide();
+	
+			break;
+			
+		case KPoGreView::eMdiChildExecutor:
+			pToolBar = toolBar("executorToolBar");
+			pToolBar->hide();
+			
+			break;
+			
+		case KPoGreView::eMdiChildDebugger:
+			pToolBar = toolBar("debuggerToolBar");
+			pToolBar->hide();
+			break;
+			
+		default:
+			kdError() << k_funcinfo << "Unhandled case" << endl;
+	}
+	
+	switch(eMdiChildView)
+	{
+		case KPoGreView::eMdiChildProperties:
+			break;
+			
+		case KPoGreView::eMdiChildQueryResult:
+			pToolBar = toolBar("queryResultToolBar");
+			pToolBar->show();	
+	
+			break;
+			
+		case KPoGreView::eMdiChildDataTable:
+			pToolBar = toolBar("dataTableToolBar");
+			pToolBar->show();
+	
+			break;
+			
+		case KPoGreView::eMdiChildExecutor:
+			pToolBar = toolBar("executorToolBar");
+			pToolBar->show();
+			
+			break;
+			
+		case KPoGreView::eMdiChildDebugger:
+		    pToolBar = toolBar("debuggerToolBar");
+			pToolBar->show();  
+			break;
+			
+		default:
+			kdError() << k_funcinfo << "Unhandled case" << endl;
+	}
+	
+	m_eActiveView = eMdiChildView;
+}
+
+
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.h
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.h	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/kpogreview.h	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,610 @@
+/***************************************************************************
+                          kpogreview.h  -  description
+                             -------------------
+    begin                : Fre Sep  7 16:06:25 CEST 2001
+    copyright            : (C) 2002 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifndef KPOGREVIEW_H
+#define KPOGREVIEW_H
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+// include files for libpgxx 
+#include <pqxx/util> 
+
+#include <qvaluelist.h>
+#include <qvaluestack.h>
+
+//includes files for KDE
+#include <kmdimainfrm.h>
+#include <kparts/factory.h> // KPart Factory
+#include <kate/view.h>      // Katepart view
+
+// application specific includes
+#include "DbObjects/kpgtableindex.h"
+#include "kpgactionsstates.h"
+#include "DataTable/kpgdatatable.h"
+
+// forward declaration of the KPoGre classes
+class KPoGreController;
+class KPGConfiguration;
+class KPGBookmarksButton;
+class KPGPropertyPageChildView;
+class KPGAbstractPropertyPage;
+class KPGQueryResultChildView;
+class KPGQueryResultWindow;
+class KPGDataTableChildView;
+class KPGDataTable;
+class KPGExecutorChildView;
+class KPGDebuggerChildView;
+class KPGExecutor;
+class KPGDebugger;
+class KPGSchemaPropPage;
+class KPGServer;
+class KPGDatabase;
+class KPGSchema;
+class KPGTable;
+class KPGFunction;
+class KPGConnection;
+class KPGKateXmlEditorDialog;
+
+#define ID_STATUS_MSG 1
+
+/**
+  * Storage class for OID and their object path. 
+  * Used for navigating through OIDs.
+  * 
+  * @author Lumir Vanek
+  */
+class KPGOidLink
+{
+public:
+	KPGOidLink() {;} 
+    KPGOidLink(pqxx::oid _oid, const QString & strPath)
+	{
+		m_oid = _oid;
+		m_strPath = strPath;
+	}
+					
+	~KPGOidLink() {;}
+
+	// Return PostgreSQL row identifier
+	const pqxx::oid oid() const { return m_oid; }
+		
+	// Return path
+	const QString & path() const { return m_strPath; }
+	
+protected:
+
+	QString m_strPath;
+
+	// PostgreSQL row identifier
+	pqxx::oid m_oid;		
+};
+
+
+/**
+ * This class serves as the main window for KPoGre. 
+ *
+ * @short Main window class
+ * @author Lumir Vanek
+ */
+class KPoGreView : public KMdiMainFrm
+{
+	Q_OBJECT
+public:
+    KPoGreView(KMdi::MdiMode mode);
+    ~KPoGreView();
+	
+	static KPGConfiguration * configuration();
+	
+	// Enumerates all MDI childs view
+	enum EMdiChildView { eMdiChildNone = 0, eMdiChildProperties, eMdiChildQueryResult, eMdiChildDataTable, eMdiChildExecutor, eMdiChildDebugger };
+	
+	// Save general Options like all bar positions and status as well as the geometry and the recent file list to the configuration file
+    void saveOptions();
+    
+    // Read general Options again and initialize all variables like the recent file list
+    void readOptions();
+    
+    // Get the bookmarks button
+    KPGBookmarksButton * getBookmarksButton() const { return m_pBookmarksButton; }  	
+    
+    // Create new KPGQueryResultChildView
+    KPGQueryResultChildView * createQueryResultChildView(const QString &, const QString &, const QString &);
+    
+    // Create new KPGQueryResultChildView
+    KPGQueryResultChildView * createQueryResultChildView(const QString &, const QString &);
+    
+    // Create new KPGPropertyPageChildView
+    KPGPropertyPageChildView * createPropertyPageChildView(KPGTreeItem *);
+    
+    // Create new KPGDataTableChildView
+    KPGDataTableChildView * createDataTableChildView(KPGConnection *, 
+    	const QString &, 
+    	const QString &, 
+    	const ListTableColumns &,
+    	const MapIndexKey &, 
+    	const QString &, 
+    	const QString &);
+    
+    // Create new KPGExecutorChildView
+    KPGExecutorChildView * createExecutorChildView(KPGConnection *, const QString &, 
+	KPGFunction *);
+	
+	// Create new KPGDebuggerChildView
+    KPGDebuggerChildView * createDebuggerChildView(KPGConnection *, const QString &, 
+	KPGFunction *);
+    
+    // Request to close active MDI child window
+    bool requestClose();
+    
+    // Close application
+    void close();
+
+	// Create Kate part factory
+	KParts::Factory* createKatePartFactory();
+    
+/////////////////////////////////////////////////////////////////////
+//                     PROTECTED ATTRIBUTES
+/////////////////////////////////////////////////////////////////////
+protected:
+	
+	// Type of active MDI child view
+	KPoGreView::EMdiChildView m_eActiveView;
+
+	// KPoGreController is respond to handle most of user KAction's
+	KPoGreController *m_pController;
+	
+	// View actions
+	KAction* m_pActEditDeselect;
+	KAction* m_pActViewNodeUp;
+	KAction* m_pActViewNodeBack;
+	KAction* m_pActViewNodeForward;
+		
+	// Left tree view that displays DB objects tree	
+	QListView*  m_pViewTree;
+	
+	// Dialog for editing XMLs in Kate editor
+	KPGKateXmlEditorDialog *m_pKateXmlEditorDialog;
+
+	// Two stask for storing navigation history through OID links
+	QValueStack<KPGOidLink> m_stackBackNodes;
+	QValueStack<KPGOidLink> m_stackForwardNodes;	
+  		
+    // Our configuration 
+	static KPGConfiguration* s_pKPGConfig;
+
+    KPGBookmarksButton *m_pBookmarksButton;  	
+  
+  	// the configuration object of the application
+    KConfig *config;
+    
+protected:  
+   
+    // Sets up the statusbar for the main window by initialzing a status label.
+    void initStatusBar();
+    
+	// Change cursor look
+	void setWaitCursor();
+	void setNormalCursor();
+	
+	// Update menu and tollbars regards to active MDI child view
+	void mdiChildViewActivated(KPoGreView::EMdiChildView);
+	
+	// Display properties of underlying database object
+	void displayProperties();
+	
+/////////////////////////////////////////////////////////////////////
+//                     PUBLIC FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+public:
+
+	// Return tree view
+	QListView * getTreeView() const { return m_pViewTree; }
+
+	// Get type of active MDI child view
+	KPoGreView::EMdiChildView getActiveChildViewType();
+
+  	// Return the currently selected result table (e.g. for saving the content to a file
+	QTable* getCurrentlySelectedTableResult();
+ 
+ 	// Return active Properties MDI child view
+ 	KPGPropertyPageChildView * getActivePropertyPageChildView();
+ 	
+ 	// Return active property window
+ 	KPGAbstractPropertyPage * getActivePropertyPage();
+ 	
+ 	// Return active Query/result MDI child view
+	KPGQueryResultChildView * getActiveQueryResultChildView();
+	
+	// Return active Query/result window
+	KPGQueryResultWindow * getActiveQueryResultWindow();
+		
+	// Return active Datatable MDI child view
+	KPGDataTableChildView * getActiveDataTableChildView();
+	
+	// Return active Datatable window
+	KPGDataTable * getActiveDataTable();
+	
+	// Return active Executor MDI child view
+	KPGExecutorChildView * getActiveExecutorChildView();
+	
+	// Return active Executor window
+	KPGExecutor * getActiveExecutor();
+	
+	// Return active Debugger MDI child view
+	KPGDebuggerChildView * getActiveDebuggerChildView();
+	
+	// Return active Debugger window
+	KPGDebugger * getActiveDebugger();
+	
+/////////////////////////////////////////////////////////////////////
+//                     PROTECTED FUNCTIONS
+/////////////////////////////////////////////////////////////////////	
+protected:
+
+	// Select given tree item
+	void selectItem(KPGTreeItem * const);
+	
+	// Select item defined by OID and path
+	KPGTreeItem* findItem(const KPGOidLink & oidLink);
+	
+	// Walk through listView items
+	KPGTreeItem * nextTreeItem(const KPGTreeItem *);
+	
+	// Find parent database and schemas list for item
+	KPGDatabase * lookUpParentDatabaseAndListOfSchemas(KPGTreeItem *, QPtrList<QListViewItem> &);
+	
+	// Refesh items child folders with given name
+	void refreshItemsFolder(KPGTreeItem *, const QString &);
+	
+public:	
+/////////////////////////////////////////////////////////////////////
+//                     ACTION FUNCTIONS
+/////////////////////////////////////////////////////////////////////
+	
+	// Called when user choose bookmark
+  	void openUrl( const QString& );
+	
+	// Run Wizard
+	void databaseWizard();
+	
+	// Called when user launch Find or Find Next menu item 
+	void editFind(const QString &, bool, bool);
+		
+		
+	// Refresh current item
+	void refresh();
+	
+	// Select item in tree view by given path 
+	bool selectItemByPath(const QString &);
+	
+	// Connect to PostgreSQL server
+	void databaseConnect();
+	
+	// Disconnect from selected server
+	void databaseDisconnect();
+	
+    //--- Database related menu actions
+  	void createDatabase();
+	void dropDatabase();
+	void analyseDatabase();
+	void reindexDatabase();
+	void setOwnerDatabase();
+	void grantPrivilegesDatabase();
+	void revokePrivilegesDatabase();
+	void dumpDatabase();
+	void restoreDatabase();
+	void disconnectDatabase();
+	
+	//--- Schema related menu actions
+  	void createSchema();
+	void dropSchema();
+	void modifySchema();
+	void setOwnerSchema();
+	void grantPrivilegesSchema();
+	void revokePrivilegesSchema();
+	
+	//--- Table related menu actions
+  	void createTable();
+	void dropTable();
+	void renameTable();
+	void analyseTable();
+	void vacuumTable();
+	void reindexTable();
+	void setClusterOnTable();
+	void setWithoutClusterTable();
+	void clusterTable();
+	void copyFromTable();
+	void copyToTable();
+	void setOwnerTable();
+	void grantPrivilegesTable();
+	void revokePrivilegesTable();
+	void setTablespaceTable();
+	void setWithoutOIDsTable();
+	void editTableContent();
+	void queryTable();
+  
+	//--- View related menu actions
+	void createView();
+	void dropView();
+	void modifyView();
+	void queryView();
+	void grantPrivilegesView();
+	void revokePrivilegesView();
+	  
+	//--- Tablespaces related menu actions
+	void createTablespace();
+	void dropTablespace();
+	void renameTablespace();
+	void setOwnerTablespace();
+	void grantPrivilegesTablespace();
+	void revokePrivilegesTablespace();
+	
+	//--- User related menu actions
+	void createUser();
+	void dropUser();
+	void modifyUser();
+				
+	//--- Group related menu actions
+	void createGroup();
+	void dropGroup();
+	void modifyGroup();
+    
+	//--- Language related menu actions
+	void createLanguage();
+	void dropLanguage();
+	void modifyLanguage();
+	void grantPrivilegesLanguage();
+	void revokePrivilegesLanguage();
+	
+	//--- Domain related menu actions
+	void createDomain();
+	void dropDomain();
+	void setDomainNull();
+	void setDomainDefault();
+	void dropDomainDefault();
+	void setOwnerDomain();
+	
+	//--- Domain constraint related menu actions
+	void createDomainConstraint();
+	void dropDomainConstraint();
+    
+	//--- Function related menu actions
+	void createFunction();
+	void dropFunction();
+	void renameFunction();
+	void modifyFunction();
+	void grantPrivilegesFunction();
+	void revokePrivilegesFunction();
+	void executeFunction();
+	void debugFunction();
+		
+	//--- Sequence related menu actions
+	void createSequence();
+	void dropSequence();
+	void modifySequence();
+	void grantPrivilegesSequence();
+	void revokePrivilegesSequence();
+	
+	//--- Column related menu actions
+	void createColumn();
+	void dropColumn();
+	void renameColumn();
+	void setColumnNull();
+	void setColumnDefault();
+	void dropColumnDefault();
+	void changeColumnType();
+	void setColumnStorage();
+	void setColumnStatistisc();
+	
+	//--- Constraint related menu actions
+	void createConstraint();
+	void dropConstraint();
+  
+	//--- Index related menu actions
+	void createIndex();
+	void dropIndex();
+	void renameIndex();
+	void reindexIndex();
+	void setOwnerIndex();
+	void setTablespaceIndex();
+	
+	//--- Rule related menu actions 
+	void createRule();
+	void dropRule();
+		
+	//--- Trigger related menu actions
+	void createTrigger();
+	void dropTrigger();
+	void enableTrigger();
+	void renameTrigger();
+	
+	//--- Type related menu actions
+	void createBaseType();
+	void createCompositeType();
+	void dropType();
+	void setOwnerType();
+	
+	//--- Common menu actions
+	void setDescription();
+  	
+	//-------------------------------------------------------------------------
+    //
+    // Other slots, that aren't dedicated to KPoGreController
+    //
+    //-------------------------------------------------------------------------
+	
+public slots:
+
+	// Deselects currently selected item in trewe viw
+	void slotEditDeselect();
+	
+protected slots:
+    
+	// Navigate to parent item
+	void slotViewNodeUp();
+	
+	// Navigate back
+	void slotViewNodeBack();
+	
+	// Navigate forward
+	void slotViewNodeForward();	        
+            
+    void slotConfigureKeys();
+    void slotConfigToolbars();
+    void slotConfigure();
+    		
+    // Called when user choose bookmark
+	void slotOpenUrl( const QString& );
+		
+	// Display popup menu
+	void slotContextMenuRequested(const QString &, const QPoint &);
+	
+	// Called, when user make right click over property table. Display popup menu
+	//void slotPropertyPageContextMenuRequested(int, int, const QPoint &);
+			
+	// Updates tooltip text for specefic MDI child View
+	void slotUpdateTabTooltip(KMdiChildView *, const QString &);
+	
+	// Show popup for item in tree rightpressed
+	void slotTreeViewRightButtonPressed(QListViewItem*, const QPoint&, int);
+	
+	// Called when user change MDI tab
+	void slotCurrentChildViewChanged( KMdiChildView * );
+	
+	// Checks, which type of item was selected
+	void slotSelectionChanged();
+	
+	// Caled when user change selected server in SQL query / result window
+	void slotRequestDatabasesList(KPGQueryResultWindow *, const QString&);
+	
+	// Called, when database is selected in SQL query / result window and list of object for code completion is needed
+	void slotRequestListOfDatabaseObjectsForCodeCompletion(KPGQueryResultWindow *, const QString&);
+	
+	// Called, when is needed table columns list, for code completion 
+	void slotRequestTableColumnsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+	
+	// Called, when is needed schema childs list, for code completion 
+	void slotRequestSchemaChildsListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+		
+	// Called, when is needed function return type attributes list, for code completion 
+	void slotRequestFunctionReturnTypeAttributesListsForCodeCompletion(KPGQueryResultWindow *, pqxx::oid);
+		
+	// Called from property pages when user double-clicks on KPGLinkLabel
+	void slotSearchObject(const pqxx::oid);
+  
+  	// Callen when property page need run Wizard
+  	void slotRunWizard(const QString &);
+	
+	// Called when requested change terminal icon in this QTabWidget 
+	void slotSetTerminalIcon(KPGQueryResultWindow *, int);
+	
+	// Called when SQL query started or finished
+	//void slotQueryResultStateChanged(KPGQueryResultWindow *);
+	
+	// Called when SQL query started or finished, or actions need enable/desable
+	//void slotDataTableStateChanged(KPGDataTable* pDataTable);
+		
+	// Called when SQL query started or finished, or actions need enable/desable
+	//void slotExecutorStateChanged(KPGExecutor *);
+	
+	// Called when Debugger actions need enable/disable
+	//void slotDebuggerStateChanged(KPGDebugger *);
+		
+	//-------------------------------------------------------------------------
+    //
+    // Wizards functions
+    //
+    //-------------------------------------------------------------------------
+ 
+  	bool createTablespaceWizard(KPGServer *);
+  
+	bool createDatabaseWizard(KPGServer *);
+	
+	bool createSchemaWizard(KPGDatabase *);
+
+	bool createGroupWizard(KPGServer *);
+	
+	bool createUserWizard(KPGServer *);
+		
+	bool createTableWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+
+  	bool createBaseTypeWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+  
+  	bool createCompositeTypeWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+  
+	bool createViewWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+  
+	bool createDomainWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+	
+	bool createFunctionWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+	
+	bool createSequenceWizard(KPGDatabase *, QPtrList<QListViewItem> &);
+	
+	bool createLanguageWizard(KPGDatabase *);
+	
+	bool createColumnWizard(KPGDatabase *, KPGSchema *, KPGTable *);
+	
+	bool createConstraintWizard(KPGDatabase *, KPGSchema *, KPGTable *, int = 0);
+
+	bool createIndexWizard(KPGDatabase *, KPGSchema *, KPGTable *);
+  
+	bool createRuleWizard(KPGDatabase *, KPGSchema *, KPGTable *);
+	
+	bool createTriggerWizard(KPGDatabase *, KPGSchema *, KPGTable *);
+		
+	// Run simple 2-steps for dropping DB object
+	bool dropObjectWizard(KPGTreeItem *, KPGTreeItem::eNodeType, const char *, KPGConnection *,	const QString &, bool = true);
+	
+	// Run simple 2-steps for dropping Table child object
+	bool dropTableObjectWizard(KPGTreeItem *, const char *, KPGConnection *, const QString &, const QString &);
+
+    //-------------------------------------------------------------------------
+    //
+    // Signals
+    //
+    //-------------------------------------------------------------------------
+
+signals:
+
+	// Emitted, when an tree item is selected
+	void sigSelectionChanged( const KPGTreeItem::eNodeType, KPGTreeItem *);
+
+    // Request for enable/disable edit actions, related to KPoGreView
+    //void sigEnableEditActions(const EditActions &);
+
+	// Enables/disables Property page actions
+	//void sigEnablePropertyPageActions(const PropertyPageActions &);		
+	
+	// Request for enable/disable Query/result actions
+	//void sigEnableQueryResultActions(const QueryResultActions &);
+	
+    // Request to enable/disable Datable actions
+    //void sigEnableDatatableActions(const DatatableActions &);	
+	
+	// Request to enable/disable Executor actions
+    //void sigEnableExecutorActions(const ExecutorActions &);	
+    
+    // Request to enable/disable Debugger actions
+    //void sigEnableDebuggerActions(const DebuggerActions &);
+	
+	// Emitted, when a context menu is requested 
+	void sigContextMenuRequested(const QString & szMenuName, const QPoint & pos );
+};
+
+#endif // KPOGREVIEW_H

Added: kde-extras/kpogre/branches/upstream/current/kpogre/main.cpp
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/main.cpp	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/main.cpp	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,76 @@
+/***************************************************************************
+                          main.cpp  -  description
+                             -------------------
+    begin                : � �n  6 16:08:39 CEST 2002
+    copyright            : (C) 2004-2006 by Lumir Vanek
+    email                : lvanek at users.sourceforge.net
+ ***************************************************************************/
+
+/***************************************************************************
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ ***************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <kcmdlineargs.h>
+#include <kaboutdata.h>
+#include <klocale.h>
+#include <kapplication.h>
+
+// application specific includes
+#include "kpogreview.h"
+
+static const char *description =
+	I18N_NOOP("KPoGre");
+// INSERT A DESCRIPTION FOR YOUR APPLICATION HERE
+	
+	
+static KCmdLineOptions options[] =
+{
+  { "+[File]", I18N_NOOP("file to open"), 0 },
+  { 0, 0, 0 }
+  // INSERT YOUR COMMANDLINE OPTIONS HERE
+};
+
+int main(int argc, char *argv[])
+{
+
+	KAboutData aboutData( "kpogre", I18N_NOOP("KPoGre"), VERSION, description, KAboutData::License_GPL,
+		"(c) 2002-2008, KPoGre Developers", "PostgreSQL administration tool", "http://kpogre.sourceforge.net", "lvanek at users.sourceforge.net");
+	
+	aboutData.addAuthor("Lumir Vanek", "Current developer", "lvanek at users.sourceforge.net", "http://www.valachnet.cz/lvanek");
+	
+	aboutData.addAuthor("Dominik Sacher", "Former developer", "dsacher at users.sourceforge.net");
+  		
+  	// Thanks to
+    aboutData.addCredit("Jeroen T. Vermeulen", I18N_NOOP("The libpqxx maintainer"), "jtv at xs4all.nl", "http://pqxx.org");
+    
+    aboutData.addCredit("The KWrite authors", I18N_NOOP("Kate editor component"), "kwrite-devel at kde.org");
+  		
+	KCmdLineArgs::init( argc, argv, &aboutData );
+	KCmdLineArgs::addCmdLineOptions( options ); // Add our own options.
+
+  	KApplication app;
+  	KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+ 
+  	KPoGreView *widget = new KPoGreView(KMdi::IDEAlMode);
+
+	/*if (args->count() != 0)
+	{
+		for (int i=0; i < args->count(); i++)
+		{
+			 widget->openURL( args->url( i ) );
+		}
+	}*/
+	widget->show();
+	args->clear();
+
+  	return app.exec();
+}  

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,222 @@
+EXTRA_DIST = lo16-app-kpogre.png lo32-app-kpogre.png server.png tblspace_sys.png \
+	tblspace_usr.png database.png database_sys.png database_usr.png schema.png \
+	schema_sys.png schema_usr.png schema_unl.png table.png column.png primary_key.png \
+	foreign_key.png index.png check.png rule.png trigger.png function.png function_c.png \
+	function_sql.png function_pl.png view.png sequence.png operator.png operator_class.png \
+	aggregate.png user.png user_super.png user_crt_db.png group.png column.png column_bool.png \
+	column_date.png column_geo.png column_char.png column_net.png column_num.png column_oid.png \
+	column_time.png column_xid.png column_tid.png column_cid.png column_bin.png \
+	column_bit.png type.png type_base.png type_composite.png type_standalone.png domain.png \
+	column_xml.png column_uuid.png \
+	language.png conversion.png cast.png opentermblue.png opentermred.png box_checked.png \
+	box_clear.png argument.png disk_usage.png toast_table.png lock.png true.png false.png \
+	breakpoint_disabled.png breakpoint_enabled.png
+
+install-data-local:
+	$(mkinstalldirs) $(kde_icondir)/hicolor/16x16/apps/
+	$(INSTALL_DATA) $(srcdir)/lo16-app-kpogre.png $(kde_icondir)/hicolor/16x16/apps/kpogre.png
+	$(mkinstalldirs) $(kde_icondir)/hicolor/32x32/apps/
+	$(INSTALL_DATA) $(srcdir)/lo32-app-kpogre.png $(kde_icondir)/hicolor/32x32/apps/kpogre.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/server.png $(kde_datadir)/kpogre/pics/server.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/tblspace_sys.png $(kde_datadir)/kpogre/pics/tblspace_sys.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/argument.png $(kde_datadir)/kpogre/pics/argument.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/tblspace_usr.png $(kde_datadir)/kpogre/pics/tblspace_usr.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/database.png $(kde_datadir)/kpogre/pics/database.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/database_sys.png $(kde_datadir)/kpogre/pics/database_sys.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/database_usr.png $(kde_datadir)/kpogre/pics/database_usr.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/schema.png $(kde_datadir)/kpogre/pics/schema.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/schema_sys.png $(kde_datadir)/kpogre/pics/schema_sys.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/schema_usr.png $(kde_datadir)/kpogre/pics/schema_usr.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/schema_unl.png $(kde_datadir)/kpogre/pics/schema_unl.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/table.png $(kde_datadir)/kpogre/pics/table.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column.png $(kde_datadir)/kpogre/pics/column.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/primary_key.png $(kde_datadir)/kpogre/pics/primary_key.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/foreign_key.png $(kde_datadir)/kpogre/pics/foreign_key.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/index.png $(kde_datadir)/kpogre/pics/index.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/check.png $(kde_datadir)/kpogre/pics/check.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/rule.png $(kde_datadir)/kpogre/pics/rule.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/trigger.png $(kde_datadir)/kpogre/pics/trigger.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/function.png $(kde_datadir)/kpogre/pics/function.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/function_c.png $(kde_datadir)/kpogre/pics/function_c.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/function_sql.png $(kde_datadir)/kpogre/pics/function_sql.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/function_pl.png $(kde_datadir)/kpogre/pics/function_pl.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/view.png $(kde_datadir)/kpogre/pics/view.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/sequence.png $(kde_datadir)/kpogre/pics/sequence.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/operator.png $(kde_datadir)/kpogre/pics/operator.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/operator_class.png $(kde_datadir)/kpogre/pics/operator_class.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/aggregate.png $(kde_datadir)/kpogre/pics/aggregate.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/user.png $(kde_datadir)/kpogre/pics/user.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/user_super.png $(kde_datadir)/kpogre/pics/user_super.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/user_crt_db.png $(kde_datadir)/kpogre/pics/user_crt_db.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/group.png $(kde_datadir)/kpogre/pics/group.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column.png $(kde_datadir)/kpogre/pics/column.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_bool.png $(kde_datadir)/kpogre/pics/column_bool.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_date.png $(kde_datadir)/kpogre/pics/column_date.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_geo.png $(kde_datadir)/kpogre/pics/column_geo.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_char.png $(kde_datadir)/kpogre/pics/column_char.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_net.png $(kde_datadir)/kpogre/pics/column_net.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_num.png $(kde_datadir)/kpogre/pics/column_num.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_oid.png $(kde_datadir)/kpogre/pics/column_oid.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_time.png $(kde_datadir)/kpogre/pics/column_time.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_xid.png $(kde_datadir)/kpogre/pics/column_xid.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_tid.png $(kde_datadir)/kpogre/pics/column_tid.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_cid.png $(kde_datadir)/kpogre/pics/column_cid.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_bin.png $(kde_datadir)/kpogre/pics/column_bin.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_bit.png $(kde_datadir)/kpogre/pics/column_bit.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_xml.png $(kde_datadir)/kpogre/pics/column_xml.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/column_uuid.png $(kde_datadir)/kpogre/pics/column_uuid.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/type.png $(kde_datadir)/kpogre/pics/type.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/type_base.png $(kde_datadir)/kpogre/pics/type_base.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/type_composite.png $(kde_datadir)/kpogre/pics/type_composite.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/type_standalone.png $(kde_datadir)/kpogre/pics/type_standalone.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/domain.png $(kde_datadir)/kpogre/pics/domain.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/language.png $(kde_datadir)/kpogre/pics/language.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/conversion.png $(kde_datadir)/kpogre/pics/conversion.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/cast.png $(kde_datadir)/kpogre/pics/cast.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/opentermblue.png $(kde_datadir)/kpogre/pics/opentermblue.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/opentermred.png $(kde_datadir)/kpogre/pics/opentermred.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/box_checked.png $(kde_datadir)/kpogre/pics/box_checked.png 
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/box_clear.png $(kde_datadir)/kpogre/pics/box_clear.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/disk_usage.png $(kde_datadir)/kpogre/pics/disk_usage.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/toast_table.png $(kde_datadir)/kpogre/pics/toast_table.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/lock.png $(kde_datadir)/kpogre/pics/lock.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/true.png $(kde_datadir)/kpogre/pics/true.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/false.png $(kde_datadir)/kpogre/pics/false.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/breakpoint_disabled.png $(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+	$(INSTALL_DATA) $(srcdir)/breakpoint_enabled.png $(kde_datadir)/kpogre/pics/breakpoint_enabled.png
+				
+uninstall-local:
+	-rm -f $(kde_icondir)/hicolor/16x16/apps/kpogre.png
+	-rm -f $(kde_icondir)/hicolor/32x32/apps/kpogre.png
+	-rm -f $(kde_datadir)/kpogre/pics/server.png
+	-rm -f $(kde_datadir)/kpogre/pics/tblspace_usr.png
+	-rm -f $(kde_datadir)/kpogre/pics/tblspace_sys.png
+	-rm -f $(kde_datadir)/kpogre/pics/argument.png
+	-rm -f $(kde_datadir)/kpogre/pics/database.png
+	-rm -f $(kde_datadir)/kpogre/pics/database_sys.png
+	-rm -f $(kde_datadir)/kpogre/pics/database_usr.png
+	-rm -f $(kde_datadir)/kpogre/pics/schema.png
+	-rm -f $(kde_datadir)/kpogre/pics/schema_usr.png
+	-rm -f $(kde_datadir)/kpogre/pics/schema_sys.png
+	-rm -f $(kde_datadir)/kpogre/pics/schema_unl.png
+	-rm -f $(kde_datadir)/kpogre/pics/table.png
+	-rm -f $(kde_datadir)/kpogre/pics/column.png
+	-rm -f $(kde_datadir)/kpogre/pics/primary_key.png
+	-rm -f $(kde_datadir)/kpogre/pics/foreign_key.png
+	-rm -f $(kde_datadir)/kpogre/pics/index.png
+	-rm -f $(kde_datadir)/kpogre/pics/check.png
+	-rm -f $(kde_datadir)/kpogre/pics/rule.png
+	-rm -f $(kde_datadir)/kpogre/pics/trigger.png
+	-rm -f $(kde_datadir)/kpogre/pics/function.png
+	-rm -f $(kde_datadir)/kpogre/pics/function_c.png
+	-rm -f $(kde_datadir)/kpogre/pics/function_sql.png
+	-rm -f $(kde_datadir)/kpogre/pics/function_pl.png
+	-rm -f $(kde_datadir)/kpogre/pics/view.png
+	-rm -f $(kde_datadir)/kpogre/pics/sequence.png
+	-rm -f $(kde_datadir)/kpogre/pics/operator.png
+	-rm -f $(kde_datadir)/kpogre/pics/operator_class.png
+	-rm -f $(kde_datadir)/kpogre/pics/aggregate.png
+	-rm -f $(kde_datadir)/kpogre/pics/user.png
+	-rm -f $(kde_datadir)/kpogre/pics/user_super.png
+	-rm -f $(kde_datadir)/kpogre/pics/user_crt_db.png
+	-rm -f $(kde_datadir)/kpogre/pics/group.png
+	-rm -f $(kde_datadir)/kpogre/pics/column.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_bool.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_date.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_geo.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_char.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_net.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_num.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_oid.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_time.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_xid.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_tid.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_cid.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_bit.png
+	-rm -f $(kde_datadir)/kpogre/pics/column_bin.png
+	-rm -f $(kde_datadir)/kpogre/pics/type.png
+	-rm -f $(kde_datadir)/kpogre/pics/type_base.png
+	-rm -f $(kde_datadir)/kpogre/pics/type_composite.png
+	-rm -f $(kde_datadir)/kpogre/pics/type_standalone.png
+	-rm -f $(kde_datadir)/kpogre/pics/domain.png 
+	-rm -f $(kde_datadir)/kpogre/pics/language.png 
+	-rm -f $(kde_datadir)/kpogre/pics/conversion.png 
+	-rm -f $(kde_datadir)/kpogre/pics/cast.png
+	-rm -f $(kde_datadir)/kpogre/pics/opentermblue.png 
+	-rm -f $(kde_datadir)/kpogre/pics/opentermred.png
+	-rm -f $(kde_datadir)/kpogre/pics/box_checked.png 
+	-rm -f $(kde_datadir)/kpogre/pics/box_clear.png
+	-rm -f $(kde_datadir)/kpogre/pics/disk_usage.png
+	-rm -f $(kde_datadir)/kpogre/pics/toast_table.png
+	-rm -f $(kde_datadir)/kpogre/pics/lock.png
+	-rm -f $(kde_datadir)/kpogre/pics/true.png
+	-rm -f $(kde_datadir)/kpogre/pics/false.png
+	-rm -f $(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+	-rm -f $(kde_datadir)/kpogre/pics/breakpoint_enabled.png

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre/pics/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,1179 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = kpogre/pics
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+EXTRA_DIST = lo16-app-kpogre.png lo32-app-kpogre.png server.png tblspace_sys.png \
+	tblspace_usr.png database.png database_sys.png database_usr.png schema.png \
+	schema_sys.png schema_usr.png schema_unl.png table.png column.png primary_key.png \
+	foreign_key.png index.png check.png rule.png trigger.png function.png function_c.png \
+	function_sql.png function_pl.png view.png sequence.png operator.png operator_class.png \
+	aggregate.png user.png user_super.png user_crt_db.png group.png column.png column_bool.png \
+	column_date.png column_geo.png column_char.png column_net.png column_num.png column_oid.png \
+	column_time.png column_xid.png column_tid.png column_cid.png column_bin.png \
+	column_bit.png type.png type_base.png type_composite.png type_standalone.png domain.png \
+	column_xml.png column_uuid.png \
+	language.png conversion.png cast.png opentermblue.png opentermred.png box_checked.png \
+	box_clear.png argument.png disk_usage.png toast_table.png lock.png true.png false.png \
+	breakpoint_disabled.png breakpoint_enabled.png
+
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/pics/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  kpogre/pics/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/pics/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/pics/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/pics/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-local
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-data-local install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am uninstall-local
+
+
+install-data-local:
+#>- 	$(mkinstalldirs) $(kde_icondir)/hicolor/16x16/apps/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps/
+#>- 	$(INSTALL_DATA) $(srcdir)/lo16-app-kpogre.png $(kde_icondir)/hicolor/16x16/apps/kpogre.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/lo16-app-kpogre.png $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps/kpogre.png
+#>- 	$(mkinstalldirs) $(kde_icondir)/hicolor/32x32/apps/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps/
+#>- 	$(INSTALL_DATA) $(srcdir)/lo32-app-kpogre.png $(kde_icondir)/hicolor/32x32/apps/kpogre.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/lo32-app-kpogre.png $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps/kpogre.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/server.png $(kde_datadir)/kpogre/pics/server.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/server.png $(DESTDIR)$(kde_datadir)/kpogre/pics/server.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/tblspace_sys.png $(kde_datadir)/kpogre/pics/tblspace_sys.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/tblspace_sys.png $(DESTDIR)$(kde_datadir)/kpogre/pics/tblspace_sys.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/argument.png $(kde_datadir)/kpogre/pics/argument.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/argument.png $(DESTDIR)$(kde_datadir)/kpogre/pics/argument.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/tblspace_usr.png $(kde_datadir)/kpogre/pics/tblspace_usr.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/tblspace_usr.png $(DESTDIR)$(kde_datadir)/kpogre/pics/tblspace_usr.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/database.png $(kde_datadir)/kpogre/pics/database.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/database.png $(DESTDIR)$(kde_datadir)/kpogre/pics/database.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/database_sys.png $(kde_datadir)/kpogre/pics/database_sys.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/database_sys.png $(DESTDIR)$(kde_datadir)/kpogre/pics/database_sys.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/database_usr.png $(kde_datadir)/kpogre/pics/database_usr.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/database_usr.png $(DESTDIR)$(kde_datadir)/kpogre/pics/database_usr.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/schema.png $(kde_datadir)/kpogre/pics/schema.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/schema.png $(DESTDIR)$(kde_datadir)/kpogre/pics/schema.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/schema_sys.png $(kde_datadir)/kpogre/pics/schema_sys.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/schema_sys.png $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_sys.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/schema_usr.png $(kde_datadir)/kpogre/pics/schema_usr.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/schema_usr.png $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_usr.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/schema_unl.png $(kde_datadir)/kpogre/pics/schema_unl.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/schema_unl.png $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_unl.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/table.png $(kde_datadir)/kpogre/pics/table.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/table.png $(DESTDIR)$(kde_datadir)/kpogre/pics/table.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column.png $(kde_datadir)/kpogre/pics/column.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/primary_key.png $(kde_datadir)/kpogre/pics/primary_key.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/primary_key.png $(DESTDIR)$(kde_datadir)/kpogre/pics/primary_key.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/foreign_key.png $(kde_datadir)/kpogre/pics/foreign_key.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/foreign_key.png $(DESTDIR)$(kde_datadir)/kpogre/pics/foreign_key.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/index.png $(kde_datadir)/kpogre/pics/index.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/index.png $(DESTDIR)$(kde_datadir)/kpogre/pics/index.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/check.png $(kde_datadir)/kpogre/pics/check.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/check.png $(DESTDIR)$(kde_datadir)/kpogre/pics/check.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/rule.png $(kde_datadir)/kpogre/pics/rule.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/rule.png $(DESTDIR)$(kde_datadir)/kpogre/pics/rule.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/trigger.png $(kde_datadir)/kpogre/pics/trigger.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/trigger.png $(DESTDIR)$(kde_datadir)/kpogre/pics/trigger.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/function.png $(kde_datadir)/kpogre/pics/function.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/function.png $(DESTDIR)$(kde_datadir)/kpogre/pics/function.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/function_c.png $(kde_datadir)/kpogre/pics/function_c.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/function_c.png $(DESTDIR)$(kde_datadir)/kpogre/pics/function_c.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/function_sql.png $(kde_datadir)/kpogre/pics/function_sql.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/function_sql.png $(DESTDIR)$(kde_datadir)/kpogre/pics/function_sql.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/function_pl.png $(kde_datadir)/kpogre/pics/function_pl.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/function_pl.png $(DESTDIR)$(kde_datadir)/kpogre/pics/function_pl.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/view.png $(kde_datadir)/kpogre/pics/view.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/view.png $(DESTDIR)$(kde_datadir)/kpogre/pics/view.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/sequence.png $(kde_datadir)/kpogre/pics/sequence.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/sequence.png $(DESTDIR)$(kde_datadir)/kpogre/pics/sequence.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/operator.png $(kde_datadir)/kpogre/pics/operator.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/operator.png $(DESTDIR)$(kde_datadir)/kpogre/pics/operator.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/operator_class.png $(kde_datadir)/kpogre/pics/operator_class.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/operator_class.png $(DESTDIR)$(kde_datadir)/kpogre/pics/operator_class.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/aggregate.png $(kde_datadir)/kpogre/pics/aggregate.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/aggregate.png $(DESTDIR)$(kde_datadir)/kpogre/pics/aggregate.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/user.png $(kde_datadir)/kpogre/pics/user.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/user.png $(DESTDIR)$(kde_datadir)/kpogre/pics/user.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/user_super.png $(kde_datadir)/kpogre/pics/user_super.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/user_super.png $(DESTDIR)$(kde_datadir)/kpogre/pics/user_super.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/user_crt_db.png $(kde_datadir)/kpogre/pics/user_crt_db.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/user_crt_db.png $(DESTDIR)$(kde_datadir)/kpogre/pics/user_crt_db.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/group.png $(kde_datadir)/kpogre/pics/group.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/group.png $(DESTDIR)$(kde_datadir)/kpogre/pics/group.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column.png $(kde_datadir)/kpogre/pics/column.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_bool.png $(kde_datadir)/kpogre/pics/column_bool.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_bool.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bool.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_date.png $(kde_datadir)/kpogre/pics/column_date.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_date.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_date.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_geo.png $(kde_datadir)/kpogre/pics/column_geo.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_geo.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_geo.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_char.png $(kde_datadir)/kpogre/pics/column_char.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_char.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_char.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_net.png $(kde_datadir)/kpogre/pics/column_net.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_net.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_net.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_num.png $(kde_datadir)/kpogre/pics/column_num.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_num.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_num.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_oid.png $(kde_datadir)/kpogre/pics/column_oid.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_oid.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_oid.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_time.png $(kde_datadir)/kpogre/pics/column_time.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_time.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_time.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_xid.png $(kde_datadir)/kpogre/pics/column_xid.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_xid.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_xid.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_tid.png $(kde_datadir)/kpogre/pics/column_tid.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_tid.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_tid.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_cid.png $(kde_datadir)/kpogre/pics/column_cid.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_cid.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_cid.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_bin.png $(kde_datadir)/kpogre/pics/column_bin.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_bin.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bin.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_bit.png $(kde_datadir)/kpogre/pics/column_bit.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_bit.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bit.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_xml.png $(kde_datadir)/kpogre/pics/column_xml.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_xml.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_xml.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/column_uuid.png $(kde_datadir)/kpogre/pics/column_uuid.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/column_uuid.png $(DESTDIR)$(kde_datadir)/kpogre/pics/column_uuid.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/type.png $(kde_datadir)/kpogre/pics/type.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/type.png $(DESTDIR)$(kde_datadir)/kpogre/pics/type.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/type_base.png $(kde_datadir)/kpogre/pics/type_base.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/type_base.png $(DESTDIR)$(kde_datadir)/kpogre/pics/type_base.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/type_composite.png $(kde_datadir)/kpogre/pics/type_composite.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/type_composite.png $(DESTDIR)$(kde_datadir)/kpogre/pics/type_composite.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/type_standalone.png $(kde_datadir)/kpogre/pics/type_standalone.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/type_standalone.png $(DESTDIR)$(kde_datadir)/kpogre/pics/type_standalone.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/domain.png $(kde_datadir)/kpogre/pics/domain.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/domain.png $(DESTDIR)$(kde_datadir)/kpogre/pics/domain.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/language.png $(kde_datadir)/kpogre/pics/language.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/language.png $(DESTDIR)$(kde_datadir)/kpogre/pics/language.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/conversion.png $(kde_datadir)/kpogre/pics/conversion.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/conversion.png $(DESTDIR)$(kde_datadir)/kpogre/pics/conversion.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/cast.png $(kde_datadir)/kpogre/pics/cast.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/cast.png $(DESTDIR)$(kde_datadir)/kpogre/pics/cast.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/opentermblue.png $(kde_datadir)/kpogre/pics/opentermblue.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/opentermblue.png $(DESTDIR)$(kde_datadir)/kpogre/pics/opentermblue.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/opentermred.png $(kde_datadir)/kpogre/pics/opentermred.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/opentermred.png $(DESTDIR)$(kde_datadir)/kpogre/pics/opentermred.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/box_checked.png $(kde_datadir)/kpogre/pics/box_checked.png 
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/box_checked.png $(DESTDIR)$(kde_datadir)/kpogre/pics/box_checked.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/box_clear.png $(kde_datadir)/kpogre/pics/box_clear.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/box_clear.png $(DESTDIR)$(kde_datadir)/kpogre/pics/box_clear.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/disk_usage.png $(kde_datadir)/kpogre/pics/disk_usage.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/disk_usage.png $(DESTDIR)$(kde_datadir)/kpogre/pics/disk_usage.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/toast_table.png $(kde_datadir)/kpogre/pics/toast_table.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/toast_table.png $(DESTDIR)$(kde_datadir)/kpogre/pics/toast_table.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/lock.png $(kde_datadir)/kpogre/pics/lock.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/lock.png $(DESTDIR)$(kde_datadir)/kpogre/pics/lock.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/true.png $(kde_datadir)/kpogre/pics/true.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/true.png $(DESTDIR)$(kde_datadir)/kpogre/pics/true.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/false.png $(kde_datadir)/kpogre/pics/false.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/false.png $(DESTDIR)$(kde_datadir)/kpogre/pics/false.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/breakpoint_disabled.png $(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/breakpoint_disabled.png $(DESTDIR)$(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+#>- 	$(mkinstalldirs) $(kde_datadir)/kpogre/pics/
+#>+ 1
+	$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kpogre/pics/
+#>- 	$(INSTALL_DATA) $(srcdir)/breakpoint_enabled.png $(kde_datadir)/kpogre/pics/breakpoint_enabled.png
+#>+ 1
+	$(INSTALL_DATA) $(srcdir)/breakpoint_enabled.png $(DESTDIR)$(kde_datadir)/kpogre/pics/breakpoint_enabled.png
+
+uninstall-local:
+#>- 	-rm -f $(kde_icondir)/hicolor/16x16/apps/kpogre.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_icondir)/hicolor/16x16/apps/kpogre.png
+#>- 	-rm -f $(kde_icondir)/hicolor/32x32/apps/kpogre.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_icondir)/hicolor/32x32/apps/kpogre.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/server.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/server.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/tblspace_usr.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/tblspace_usr.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/tblspace_sys.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/tblspace_sys.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/argument.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/argument.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/database.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/database.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/database_sys.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/database_sys.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/database_usr.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/database_usr.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/schema.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/schema.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/schema_usr.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_usr.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/schema_sys.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_sys.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/schema_unl.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/schema_unl.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/table.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/table.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/primary_key.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/primary_key.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/foreign_key.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/foreign_key.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/index.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/index.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/check.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/check.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/rule.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/rule.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/trigger.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/trigger.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/function.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/function.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/function_c.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/function_c.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/function_sql.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/function_sql.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/function_pl.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/function_pl.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/view.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/view.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/sequence.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/sequence.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/operator.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/operator.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/operator_class.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/operator_class.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/aggregate.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/aggregate.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/user.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/user.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/user_super.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/user_super.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/user_crt_db.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/user_crt_db.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/group.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/group.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_bool.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bool.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_date.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_date.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_geo.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_geo.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_char.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_char.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_net.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_net.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_num.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_num.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_oid.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_oid.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_time.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_time.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_xid.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_xid.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_tid.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_tid.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_cid.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_cid.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_bit.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bit.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/column_bin.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/column_bin.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/type.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/type.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/type_base.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/type_base.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/type_composite.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/type_composite.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/type_standalone.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/type_standalone.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/domain.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/domain.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/language.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/language.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/conversion.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/conversion.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/cast.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/cast.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/opentermblue.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/opentermblue.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/opentermred.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/opentermred.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/box_checked.png 
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/box_checked.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/box_clear.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/box_clear.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/disk_usage.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/disk_usage.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/toast_table.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/toast_table.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/lock.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/lock.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/true.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/true.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/false.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/false.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/breakpoint_disabled.png
+#>- 	-rm -f $(kde_datadir)/kpogre/pics/breakpoint_enabled.png
+#>+ 1
+	-rm -f $(DESTDIR)$(kde_datadir)/kpogre/pics/breakpoint_enabled.png
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=Makefile.in key.png Makefile.am 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  kpogre/pics/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  kpogre/pics/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin kpogre/pics/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/aggregate.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/aggregate.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/argument.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/argument.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_checked.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_checked.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_clear.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/box_clear.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_disabled.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_disabled.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_enabled.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/breakpoint_enabled.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/cast.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/cast.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/check.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/check.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bin.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bin.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bit.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bit.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bool.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_bool.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_char.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_char.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_cid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_cid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_date.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_date.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_geo.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_geo.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_net.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_net.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_num.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_num.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_oid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_oid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_tid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_tid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_time.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_time.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_uuid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_uuid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xid.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xid.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xml.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/column_xml.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/conversion.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/conversion.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/database_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/disk_usage.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/disk_usage.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/domain.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/domain.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/false.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/false.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/foreign_key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/foreign_key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_c.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_c.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_pl.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_pl.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_sql.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/function_sql.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/group.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/group.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/index.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/index.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/language.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/language.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo16-app-kpogre.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo16-app-kpogre.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo32-app-kpogre.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lo32-app-kpogre.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lock.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/lock.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermblue.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermblue.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermred.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/opentermred.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator_class.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/operator_class.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/primary_key.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/primary_key.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/rule.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/rule.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_unl.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_unl.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/schema_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/sequence.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/sequence.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/server.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/server.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/table.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/table.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_sys.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_sys.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_usr.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/tblspace_usr.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/toast_table.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/toast_table.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/trigger.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/trigger.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/true.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/true.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_base.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_base.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_composite.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_composite.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_standalone.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/type_standalone.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_crt_db.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_crt_db.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_super.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/user_super.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre/pics/view.png
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre/pics/view.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,251 @@
+<!DOCTYPE kdevelop>
+<kdevelop>
+  <general>
+    <author>Lumir Vanek</author>
+    <email>lvanek at users.sourceforge.net</email>
+    <projectmanagement>KDevKDEAutoProject</projectmanagement>
+    <primarylanguage>C++</primarylanguage>
+    <keywords>
+      <keyword>KDE</keyword>
+      <keyword>Qt</keyword>
+    </keywords>
+    <projectdirectory>.</projectdirectory>
+    <absoluteprojectpath>false</absoluteprojectpath>
+    <version>1.6.2</version>
+    <description>KPoGre is PostgreSQL administration tool for KDE</description>
+    <ignoreparts/>
+    <secondaryLanguages/>
+    <versioncontrol/>
+    <projectname>kpogre</projectname>
+    <defaultencoding></defaultencoding>
+  </general>
+  <kdevautoproject>
+    <general>
+      <mainprogram>kpogre</mainprogram>
+      <useconfiguration>default</useconfiguration>
+      <activetarget>kpogre/kpogre</activetarget>
+    </general>
+    <configure>
+      <configargs>\s--build=i386-linux --host=i386-linux --target=i386-linux --prefix=/usr --with-extra-includes=&quot;/usr/local/pqxx/include -I /usr/include/pgsql&quot; --with-extra-lib=/usr/local/pqxx/lib</configargs>
+    </configure>
+    <make>
+      <abortonerror>false</abortonerror>
+      <numberofjobs>1</numberofjobs>
+      <dontact>false</dontact>
+      <makebin/>
+      <envvars>
+        <envvar value="1" name="WANT_AUTOCONF_2_5" />
+        <envvar value="1" name="WANT_AUTOMAKE_1_6" />
+      </envvars>
+      <prio>0</prio>
+      <runmultiplejobs>false</runmultiplejobs>
+    </make>
+    <compiler>
+      <cflags/>
+      <cxxflags>\s-O0 -g3 -Wall</cxxflags>
+    </compiler>
+    <run>
+      <directoryradio>executable</directoryradio>
+      <customdirectory>/</customdirectory>
+      <mainprogram>/home/lvanek/Projects/Own/kpogre</mainprogram>
+      <programargs/>
+      <terminal>false</terminal>
+      <autocompile>true</autocompile>
+      <envvars/>
+      <runarguments>
+        <kpogre/>
+      </runarguments>
+      <debugarguments>
+        <kpogre/>
+      </debugarguments>
+      <cwd>
+        <kpogre>/home/lvanek/Projects/Own/kpogre/./kpogre</kpogre>
+      </cwd>
+      <globaldebugarguments/>
+      <globalcwd>/home/lvanek/Projects/Own/kpogre</globalcwd>
+      <useglobalprogram>false</useglobalprogram>
+      <autoinstall>false</autoinstall>
+      <autokdesu>false</autokdesu>
+    </run>
+    <configurations>
+      <default>
+        <configargs>--with-extra-includes=&quot;/usr/include/pqxx -I /usr/include/pgsql&quot; --enable-debug=full --with-extra-lib=/usr/lib64</configargs>
+        <builddir/>
+        <topsourcedir/>
+        <cppflags/>
+        <ldflags>-L/usr/lib64</ldflags>
+        <ccompiler>kdevgccoptions</ccompiler>
+        <cxxcompiler>kdevgppoptions</cxxcompiler>
+        <f77compiler>kdevpgf77options</f77compiler>
+        <ccompilerbinary/>
+        <cxxcompilerbinary/>
+        <f77compilerbinary/>
+        <cflags>-gstabs+</cflags>
+        <cxxflags>-O0 -g3</cxxflags>
+        <f77flags/>
+        <envvars/>
+      </default>
+    </configurations>
+  </kdevautoproject>
+  <kdevfileview>
+    <groups>
+      <group pattern="*.h;*.hh;*.hxx;*.hpp;*.H" name="Headers" />
+      <group pattern="*.cpp;*.c;*.cc;*.C;*.cxx;*.ec;*.ecpp;*.lxx;*.l++;*.ll;*.l" name="Sources" />
+      <group pattern="*.kdevdlg;*.ui;*.rc;*.dlg" name="User Interface" />
+      <group pattern="*.po" name="Translations" />
+      <group pattern="AUTHORS;COPYING;ChangeLog;INSTALL;README;TODO;NEWS" name="GNU" />
+      <group pattern="*" name="Others" />
+      <hidenonprojectfiles>false</hidenonprojectfiles>
+      <hidenonlocation>false</hidenonlocation>
+    </groups>
+    <tree>
+      <hidepatterns>*.o,*.lo,CVS</hidepatterns>
+      <hidenonprojectfiles>false</hidenonprojectfiles>
+      <showvcsfields>true</showvcsfields>
+    </tree>
+  </kdevfileview>
+  <kdevdoctreeview>
+    <ignoretocs>
+      <toc>gtk</toc>
+      <toc>gnustep</toc>
+      <toc>python</toc>
+      <toc>php</toc>
+      <toc>perl</toc>
+    </ignoretocs>
+    <projectdoc>
+      <userdocDir>html/</userdocDir>
+      <apidocDir>html/</apidocDir>
+    </projectdoc>
+    <ignoreqt_xml/>
+    <ignoredoxygen/>
+    <ignorekdocs/>
+    <ignoredevhelp/>
+  </kdevdoctreeview>
+  <kdevdebugger>
+    <general>
+      <dbgshell>libtool</dbgshell>
+      <programargs/>
+      <gdbpath></gdbpath>
+      <configGdbScript></configGdbScript>
+      <runShellScript></runShellScript>
+      <runGdbScript></runGdbScript>
+      <breakonloadinglibs>true</breakonloadinglibs>
+      <separatetty>false</separatetty>
+      <floatingtoolbar>false</floatingtoolbar>
+      <raiseGDBOnStart>false</raiseGDBOnStart>
+    </general>
+    <display>
+      <staticmembers>false</staticmembers>
+      <demanglenames>true</demanglenames>
+      <outputradix>10</outputradix>
+    </display>
+  </kdevdebugger>
+  <kdevfilecreate>
+    <filetypes/>
+    <useglobaltypes/>
+  </kdevfilecreate>
+  <cppsupportpart>
+    <filetemplates>
+      <interfacesuffix>.h</interfacesuffix>
+      <implementationsuffix>.cpp</implementationsuffix>
+    </filetemplates>
+  </cppsupportpart>
+  <kdevcppsupport>
+    <codecompletion>
+      <includeGlobalFunctions>true</includeGlobalFunctions>
+      <includeTypes>true</includeTypes>
+      <includeEnums>true</includeEnums>
+      <includeTypedefs>false</includeTypedefs>
+      <automaticCodeCompletion>true</automaticCodeCompletion>
+      <automaticArgumentsHint>true</automaticArgumentsHint>
+      <automaticHeaderCompletion>true</automaticHeaderCompletion>
+      <codeCompletionDelay>250</codeCompletionDelay>
+      <argumentsHintDelay>400</argumentsHintDelay>
+      <headerCompletionDelay>250</headerCompletionDelay>
+      <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
+      <completionBoxItemOrder>0</completionBoxItemOrder>
+      <howEvaluationContextMenu>true</howEvaluationContextMenu>
+      <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
+      <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
+      <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
+      <processPrimaryTypes>true</processPrimaryTypes>
+      <processFunctionArguments>false</processFunctionArguments>
+      <preProcessAllHeaders>false</preProcessAllHeaders>
+      <parseMissingHeaders>false</parseMissingHeaders>
+      <resolveIncludePaths>true</resolveIncludePaths>
+      <alwaysParseInBackground>true</alwaysParseInBackground>
+      <usePermanentCaching>true</usePermanentCaching>
+      <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
+      <includePaths>.;</includePaths>
+      <parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
+      <resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
+    </codecompletion>
+    <references/>
+    <creategettersetter>
+      <prefixGet></prefixGet>
+      <prefixSet>set</prefixSet>
+      <prefixVariable>m_,_</prefixVariable>
+      <parameterName>theValue</parameterName>
+      <inlineGet>true</inlineGet>
+      <inlineSet>true</inlineSet>
+    </creategettersetter>
+    <qt>
+      <used>false</used>
+      <version>3</version>
+      <root>/usr/lib/qt3</root>
+      <includestyle>3</includestyle>
+      <designerintegration>EmbeddedKDevDesigner</designerintegration>
+      <qmake>/usr/lib/qt3/bin/qmake</qmake>
+      <designer>/usr/lib/qt3/bin/designer</designer>
+      <designerpluginpaths/>
+    </qt>
+    <splitheadersource>
+      <enabled>false</enabled>
+      <synchronize>true</synchronize>
+      <orientation>Vertical</orientation>
+    </splitheadersource>
+  </kdevcppsupport>
+  <dist>
+    <custom>false</custom>
+    <bzip>false</bzip>
+    <archname/>
+    <appname>kPoGre</appname>
+    <version>1.1.0</version>
+    <release>1</release>
+    <vendor>Lumir Vanek</vendor>
+    <licence>GPL</licence>
+    <summary>PostgreSQL admin tool</summary>
+    <group>Tools</group>
+    <packager>Lumir Vanek</packager>
+    <description>PostreSQL tool</description>
+    <changelog/>
+    <devpackage>false</devpackage>
+    <docspackage>false</docspackage>
+    <appicon>false</appicon>
+    <arch>2</arch>
+    <genHTML>false</genHTML>
+    <useRPM>false</useRPM>
+    <ftpkde>false</ftpkde>
+    <appskde>false</appskde>
+    <url/>
+  </dist>
+  <kdevcvsservice>
+    <recursivewhenupdate>true</recursivewhenupdate>
+    <prunedirswhenupdate>true</prunedirswhenupdate>
+    <createdirswhenupdate>true</createdirswhenupdate>
+    <recursivewhencommitremove>true</recursivewhencommitremove>
+    <revertoptions>-C</revertoptions>
+  </kdevcvsservice>
+  <kdevdocumentation>
+    <projectdoc>
+      <docsystem/>
+      <docurl/>
+      <usermanualurl/>
+    </projectdoc>
+  </kdevdocumentation>
+  <ctagspart>
+    <customArguments/>
+    <customTagfilePath>/home/lvanek/Projects/Own/kpogre/tags</customTagfilePath>
+    <activeTagsFiles/>
+  </ctagspart>
+</kdevelop>

Added: kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop.pcs
===================================================================
(Binary files differ)


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre.kdevelop.pcs
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: kde-extras/kpogre/branches/upstream/current/kpogre.lsm
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre.lsm	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre.lsm	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,14 @@
+Begin3
+Title:          KPoGre 
+Version:        1.5.9
+Entered-date:   
+Description:    PostgreSQL fronted for KDE
+Keywords:       PostgreSQL, KDE
+Author:         Lumir Vanek <lvanek at users.sourceforge.net> 
+Maintained-by:  Lumir Vanek <lvanek at users.sourceforge.net>
+Primary-site:   http://sourceforge.net/projects/kpogre	
+Home-page:      http://sourceforge.net/projects/kpogre
+Original-site:  http://sourceforge.net/projects/kpogre
+Platforms:      Linux and other Unices
+Copying-policy: GNU Public License
+End

Added: kde-extras/kpogre/branches/upstream/current/kpogre.spec
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre.spec	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre.spec	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,52 @@
+Summary:   PostgreSQL grafical frontend for KDE 3.x
+Name:	   kpogre
+Version:   1.6.2
+Release:   1.0
+License:   GPL
+Vendor:    Lumir Vanek <lvanek at users.sourceforge.net>
+Url:       http://kpogre.sourceforge.net
+Packager:  Lumir Vanek <lvanek at users.sourceforge.net>
+Group:     Applications
+Source:    %{name}-%{version}.tar.gz
+BuildRoot: %{_tmppath}/%{name}-buildroot
+Requires: libpqxx >= 2.6.9
+
+%description
+KPoGre is grafical administration tool for PostgreSQL DBMS. It uses libpqxx library.
+
+%ifarch ia64 x86_64
+  %define rcopts --with-extra-includes="/usr/include/pqxx -I /usr/include/pgsql" --enable-libsuffix=64 --with-extra-lib=/usr/lib64
+%else
+  %define rcopts --with-extra-includes="/usr/include/pqxx -I /usr/include/pgsql" --with-extra-lib=/usr/lib
+%endif
+
+%prep
+%setup
+CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" ./configure %{rcopts} \
+                 \
+                $LOCALFLAGS
+%build
+# Setup for parallel builds
+numprocs=`egrep -c ^cpu[0-9]+ /proc/stat || :`
+if [ "$numprocs" = "0" ]; then
+  numprocs=1
+fi
+
+make -j$numprocs
+
+%install
+make install-strip DESTDIR=$RPM_BUILD_ROOT
+
+cd $RPM_BUILD_ROOT
+find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > $RPM_BUILD_DIR/file.list.kpogre
+find . -type f | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kpogre
+find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> $RPM_BUILD_DIR/file.list.kpogre
+
+%clean
+rm -rf $RPM_BUILD_ROOT/*
+rm -rf $RPM_BUILD_DIR/kpogre
+rm -rf ../file.list.kpogre
+
+
+%files -f ../file.list.kpogre
+

Added: kde-extras/kpogre/branches/upstream/current/kpogre64_rpm
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre64_rpm	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre64_rpm	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Lumir Vanek
+# Create RPM package
+
+cp kpogre-1.6.2.tar.gz /usr/src/packages/SOURCES/
+rpmbuild -bb kpogre.spec --target x86_64
+
+# Package is created in: /usr/src/packages/RPMS/x86_64
+# Enter into it using MC and check CONTENTS.cpio, if contain proper install directory
+# with all neccesary files.
\ No newline at end of file


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre64_rpm
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/kpogre_rpm
===================================================================
--- kde-extras/kpogre/branches/upstream/current/kpogre_rpm	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/kpogre_rpm	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,11 @@
+#! /bin/sh
+
+# Lumir Vanek
+# Create RPM package
+
+cp kpogre-1.6.2.tar.gz /usr/src/packages/SOURCES/
+rpmbuild -bb kpogre.spec --target i686
+
+# Package is created in: /usr/src/packages/RPMS/i686
+# Enter into it using MC and check CONTENTS.cpio, if contain proper install directory
+# with all neccesary files.
\ No newline at end of file


Property changes on: kde-extras/kpogre/branches/upstream/current/kpogre_rpm
___________________________________________________________________
Name: svn:executable
   + 

Added: kde-extras/kpogre/branches/upstream/current/po/Makefile.am
===================================================================
--- kde-extras/kpogre/branches/upstream/current/po/Makefile.am	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/po/Makefile.am	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,6 @@
+####### kdevelop will overwrite this part!!! (begin)##########
+
+
+####### kdevelop will overwrite this part!!! (end)############
+POFILES = AUTO
+

Added: kde-extras/kpogre/branches/upstream/current/po/Makefile.in
===================================================================
--- kde-extras/kpogre/branches/upstream/current/po/Makefile.in	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/po/Makefile.in	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,551 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# KDE tags expanded automatically by am_edit - $Revision: 1.8 $ 
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+####### kdevelop will overwrite this part!!! (begin)##########
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = po
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+	$(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/admin/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+#>- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+#>+ 1
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) $(KDE_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+ARTSCCONFIG = @ARTSCCONFIG@
+AUTOCONF = @AUTOCONF@
+AUTODIRS = @AUTODIRS@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CONF_FILES = @CONF_FILES@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DCOPIDL = @DCOPIDL@
+DCOPIDL2CPP = @DCOPIDL2CPP@
+DCOPIDLNG = @DCOPIDLNG@
+DCOP_DEPENDENCIES = @DCOP_DEPENDENCIES@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_PERMISSIVE_FLAG = @ENABLE_PERMISSIVE_FLAG@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+FRAMEWORK_COREAUDIO = @FRAMEWORK_COREAUDIO@
+GMSGFMT = @GMSGFMT@
+HAVE_GCC_VISIBILITY = @HAVE_GCC_VISIBILITY@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+KCFG_DEPENDENCIES = @KCFG_DEPENDENCIES@
+KCONFIG_COMPILER = @KCONFIG_COMPILER@
+KDECONFIG = @KDECONFIG@
+KDE_CHECK_PLUGIN = @KDE_CHECK_PLUGIN@
+KDE_EXTRA_RPATH = @KDE_EXTRA_RPATH@
+KDE_INCLUDES = @KDE_INCLUDES@
+KDE_LDFLAGS = @KDE_LDFLAGS@
+KDE_MT_LDFLAGS = @KDE_MT_LDFLAGS@
+KDE_MT_LIBS = @KDE_MT_LIBS@
+KDE_NO_UNDEFINED = @KDE_NO_UNDEFINED@
+KDE_PLUGIN = @KDE_PLUGIN@
+KDE_RPATH = @KDE_RPATH@
+KDE_USE_CLOSURE_FALSE = @KDE_USE_CLOSURE_FALSE@
+KDE_USE_CLOSURE_TRUE = @KDE_USE_CLOSURE_TRUE@
+KDE_USE_FINAL_FALSE = @KDE_USE_FINAL_FALSE@
+KDE_USE_FINAL_TRUE = @KDE_USE_FINAL_TRUE@
+KDE_USE_FPIE = @KDE_USE_FPIE@
+KDE_USE_NMCHECK_FALSE = @KDE_USE_NMCHECK_FALSE@
+KDE_USE_NMCHECK_TRUE = @KDE_USE_NMCHECK_TRUE@
+KDE_USE_PIE = @KDE_USE_PIE@
+KDE_XSL_STYLESHEET = @KDE_XSL_STYLESHEET@
+LDFLAGS = @LDFLAGS@
+LDFLAGS_AS_NEEDED = @LDFLAGS_AS_NEEDED@
+LDFLAGS_NEW_DTAGS = @LDFLAGS_NEW_DTAGS@
+LIBCOMPAT = @LIBCOMPAT@
+LIBCRYPT = @LIBCRYPT@
+LIBDL = @LIBDL@
+LIBJPEG = @LIBJPEG@
+LIBOBJS = @LIBOBJS@
+LIBPNG = @LIBPNG@
+LIBPTHREAD = @LIBPTHREAD@
+LIBRESOLV = @LIBRESOLV@
+LIBS = @LIBS@
+LIBSM = @LIBSM@
+LIBSOCKET = @LIBSOCKET@
+LIBTOOL = @LIBTOOL@
+LIBUCB = @LIBUCB@
+LIBUTIL = @LIBUTIL@
+LIBZ = @LIBZ@
+LIB_KAB = @LIB_KAB@
+LIB_KABC = @LIB_KABC@
+LIB_KDECORE = @LIB_KDECORE@
+LIB_KDED = @LIB_KDED@
+LIB_KDEPIM = @LIB_KDEPIM@
+LIB_KDEPRINT = @LIB_KDEPRINT@
+LIB_KDEUI = @LIB_KDEUI@
+LIB_KDNSSD = @LIB_KDNSSD@
+LIB_KFILE = @LIB_KFILE@
+LIB_KFM = @LIB_KFM@
+LIB_KHTML = @LIB_KHTML@
+LIB_KIMPROXY = @LIB_KIMPROXY@
+LIB_KIO = @LIB_KIO@
+LIB_KJS = @LIB_KJS@
+LIB_KMDI = @LIB_KMDI@
+LIB_KNEWSTUFF = @LIB_KNEWSTUFF@
+LIB_KPARTS = @LIB_KPARTS@
+LIB_KSPELL = @LIB_KSPELL@
+LIB_KSYCOCA = @LIB_KSYCOCA@
+LIB_KUNITTEST = @LIB_KUNITTEST@
+LIB_KUTILS = @LIB_KUTILS@
+LIB_POLL = @LIB_POLL@
+LIB_QPE = @LIB_QPE@
+LIB_QT = @LIB_QT@
+LIB_SMB = @LIB_SMB@
+LIB_X11 = @LIB_X11@
+LIB_XEXT = @LIB_XEXT@
+LIB_XRENDER = @LIB_XRENDER@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MAKEKDEWIDGETS = @MAKEKDEWIDGETS@
+MCOPIDL = @MCOPIDL@
+MEINPROC = @MEINPROC@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+NOOPT_CFLAGS = @NOOPT_CFLAGS@
+NOOPT_CXXFLAGS = @NOOPT_CXXFLAGS@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PQXX_CFLAGS = @PQXX_CFLAGS@
+PQXX_LIBS = @PQXX_LIBS@
+QTE_NORTTI = @QTE_NORTTI@
+QT_INCLUDES = @QT_INCLUDES@
+QT_LDFLAGS = @QT_LDFLAGS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+TOPSUBDIRS = @TOPSUBDIRS@
+UIC = @UIC@
+UIC_TR = @UIC_TR@
+USER_INCLUDES = @USER_INCLUDES@
+USER_LDFLAGS = @USER_LDFLAGS@
+USE_EXCEPTIONS = @USE_EXCEPTIONS@
+USE_RTTI = @USE_RTTI@
+USE_THREADS = @USE_THREADS@
+VERSION = @VERSION@
+WOVERLOADED_VIRTUAL = @WOVERLOADED_VIRTUAL@
+XGETTEXT = @XGETTEXT@
+XMLLINT = @XMLLINT@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_INCLUDES = @X_INCLUDES@
+X_LDFLAGS = @X_LDFLAGS@
+X_PRE_LIBS = @X_PRE_LIBS@
+X_RPATH = @X_RPATH@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+all_includes = @all_includes@
+all_libraries = @all_libraries@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+include_ARTS_FALSE = @include_ARTS_FALSE@
+include_ARTS_TRUE = @include_ARTS_TRUE@
+include_x11_FALSE = @include_x11_FALSE@
+include_x11_TRUE = @include_x11_TRUE@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+kde_appsdir = @kde_appsdir@
+kde_bindir = @kde_bindir@
+kde_confdir = @kde_confdir@
+kde_datadir = @kde_datadir@
+kde_htmldir = @kde_htmldir@
+kde_icondir = @kde_icondir@
+kde_includes = @kde_includes@
+kde_kcfgdir = @kde_kcfgdir@
+kde_libraries = @kde_libraries@
+kde_libs_htmldir = @kde_libs_htmldir@
+kde_libs_prefix = @kde_libs_prefix@
+kde_locale = @kde_locale@
+kde_mimedir = @kde_mimedir@
+kde_moduledir = @kde_moduledir@
+kde_qtver = @kde_qtver@
+kde_servicesdir = @kde_servicesdir@
+kde_servicetypesdir = @kde_servicetypesdir@
+kde_sounddir = @kde_sounddir@
+kde_styledir = @kde_styledir@
+kde_templatesdir = @kde_templatesdir@
+kde_wallpaperdir = @kde_wallpaperdir@
+kde_widgetdir = @kde_widgetdir@
+kdeinitdir = @kdeinitdir@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+qt_includes = @qt_includes@
+qt_libraries = @qt_libraries@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+unsermake_enable_pch_FALSE = @unsermake_enable_pch_FALSE@
+unsermake_enable_pch_TRUE = @unsermake_enable_pch_TRUE@
+x_includes = @x_includes@
+x_libraries = @x_libraries@
+xdg_appsdir = @xdg_appsdir@
+xdg_directorydir = @xdg_directorydir@
+xdg_menudir = @xdg_menudir@
+
+####### kdevelop will overwrite this part!!! (end)############
+POFILES = AUTO
+#>- all: all-am
+#>+ 1
+all: docs-am  all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+#>- 	@for dep in $?; do \
+#>- 	  case '$(am__configure_deps)' in \
+#>- 	    *$$dep*) \
+#>- 	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+#>- 		&& exit 0; \
+#>- 	      exit 1;; \
+#>- 	  esac; \
+#>- 	done; \
+#>- 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  po/Makefile'; \
+#>- 	cd $(top_srcdir) && \
+#>- 	  $(AUTOMAKE) --gnu  po/Makefile
+#>+ 12
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  po/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  po/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin po/Makefile.in
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+#>- clean: clean-am
+#>+ 1
+clean: kde-rpo-clean  clean-am
+
+#>- clean-am: clean-generic clean-libtool mostlyclean-am
+#>+ 1
+clean-am: clean-bcheck  clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-exec install-exec-am \
+	install-info install-info-am install-man install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
+	uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
+
+
+#>+ 2
+KDE_DIST=Makefile.in Makefile.am 
+
+#>+ 2
+docs-am:
+
+#>+ 15
+force-reedit:
+		@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  po/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  po/Makefile
+	cd $(top_srcdir) && perl admin/am_edit -padmin po/Makefile.in
+
+
+#>+ 21
+clean-bcheck: 
+	rm -f *.bchecktest.cc *.bchecktest.cc.class a.out
+
+bcheck: bcheck-am
+
+bcheck-am:
+	@for i in ; do \
+	    if test $(srcdir)/$$i -nt $$i.bchecktest.cc; then \
+	        echo "int main() {return 0;}" > $$i.bchecktest.cc ; \
+	        echo "#include \"$$i\"" >> $$i.bchecktest.cc ; \
+	        echo "$$i"; \
+	        if ! $(CXX) $(DEFS) -I. -I$(srcdir) -I$(top_builddir) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(KDE_CXXFLAGS)  --dump-class-hierarchy -c $$i.bchecktest.cc; then \
+	            rm -f $$i.bchecktest.cc; exit 1; \
+	        fi ; \
+	        echo "" >> $$i.bchecktest.cc.class; \
+	        perl $(top_srcdir)/admin/bcheck.pl $$i.bchecktest.cc.class || { rm -f $$i.bchecktest.cc; exit 1; }; \
+	        rm -f a.out; \
+	    fi ; \
+	done
+
+
+#>+ 3
+final:
+	$(MAKE) all-am
+
+#>+ 3
+final-install:
+	$(MAKE) install-am
+
+#>+ 3
+no-final:
+	$(MAKE) all-am
+
+#>+ 3
+no-final-install:
+	$(MAKE) install-am
+
+#>+ 3
+kde-rpo-clean:
+	-rm -f *.rpo
+
+#>+ 3
+nmcheck: 
+nmcheck-am: nmcheck

Added: kde-extras/kpogre/branches/upstream/current/subdirs
===================================================================
--- kde-extras/kpogre/branches/upstream/current/subdirs	                        (rev 0)
+++ kde-extras/kpogre/branches/upstream/current/subdirs	2008-04-06 10:25:41 UTC (rev 10006)
@@ -0,0 +1,4 @@
+admin
+doc
+kpogre
+po




More information about the pkg-kde-commits mailing list