updates for rpms lots o bug fixes, index stuff

This commit is contained in:
brianb
2003-01-12 22:59:41 +00:00
parent f35c3f05b9
commit 2af5847c6f
63 changed files with 2392 additions and 241 deletions

View File

@@ -1,9 +1,14 @@
SUBDIRS = help gladefiles pixmaps
bin_PROGRAMS = gmdb2
include_HEADERS = gmdb.h debug.xpm forms.xpm macros.xpm pk.xpm \
table.xpm query.xpm code.xpm reports.xpm
gmdb2_SOURCES = main2.c file.c util.c table.c query.c module.c macro.c report.c form.c info.c table_def.c table_data.c table_export.c debug.c sql.c schema.c
include_HEADERS = gmdb.h
gmdb2_SOURCES = main2.c file.c util.c table.c query.c module.c macro.c report.c form.c info.c table_def.c table_data.c table_export.c debug.c sql.c schema.c prefs.c
LIBS = -rdynamic $(GNOME_LIBS) @LEXLIB@
INCLUDES = -I$(top_srcdir)/include $(GNOME_CFLAGS)
INCLUDES = -I$(top_srcdir)/include \
$(GNOME_CFLAGS) \
-DDATADIR=\""$(datadir)"\" \
-DGMDB_ICONDIR=\""$(datadir)/gmdb/pixmaps/"\" \
-DGMDB_GLADEDIR=\""$(datadir)/gmdb/glade/"\"
#LDADD = ../libmdb/libmdb.la
LDADD = ../libmdb/libmdb.la ../sql/libmdbsql.la
#if SQL

View File

@@ -887,7 +887,7 @@ gchar text[20];
GladeXML *debugwin_xml;
/* load the interface */
debugwin_xml = glade_xml_new("gladefiles/gmdb-debug.glade", NULL, NULL);
debugwin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-debug.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(debugwin_xml);
@@ -942,8 +942,8 @@ GladeXML *debugwin_xml;
GTK_SIGNAL_FUNC (gmdb_debug_delete_cb), debugwin_xml);
/* this should be a preference, needs to be fixed width */
textview = glade_xml_get_widget (debugwin_xml, "debug_textview");
gtk_widget_modify_font(textview,
textview = (GtkTextView *) glade_xml_get_widget (debugwin_xml, "debug_textview");
gtk_widget_modify_font(GTK_WIDGET(textview),
pango_font_description_from_string("Courier"));
/* set up treeview, libglade only gives us the empty widget */

View File

@@ -21,6 +21,7 @@
GtkWidget *file_selector;
MdbHandle *mdb;
extern int main_show_debug;
extern GladeXML *mainwin_xml;
void gmdb_file_open_recent_1() { gmdb_file_open_recent("menu_recent1"); }
void gmdb_file_open_recent_2() { gmdb_file_open_recent("menu_recent2"); }
@@ -100,6 +101,11 @@ gmdb_file_add_recent(gchar *file_path)
void
gmdb_file_open(gchar *file_path)
{
GtkWidget *win;
gchar *file_name;
gchar title[100];
int i;
gmdb_reset_widgets();
mdb = mdb_open(file_path);
if (!mdb) {
@@ -118,13 +124,22 @@ gmdb_file_open(gchar *file_path)
gmdb_macro_populate(mdb);
gmdb_module_populate(mdb);
//if (main_show_debug) gmdb_debug_init(mdb);
for (i=strlen(file_path);i>0 && file_path[i-1]!='/';i--);
file_name=&file_path[i];
win = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "gmdb");
g_snprintf(title, 100, "%s - MDB File Viewer",file_name);
gtk_window_set_title(GTK_WINDOW(win), title);
gmdb_set_sensitive(TRUE);
}
void
gmdb_file_open_cb(GtkWidget *selector, gpointer data)
{
gchar *file_path;
file_path = gtk_file_selection_get_filename (GTK_FILE_SELECTION(file_selector));
file_path = (gchar *) gtk_file_selection_get_filename (GTK_FILE_SELECTION(file_selector));
gmdb_file_open(file_path);
gmdb_load_recent_files();
}

View File

@@ -26,8 +26,8 @@ gmdb_form_add_icon(gchar *text)
{
GnomeIconList *gil;
gil = glade_xml_get_widget(mainwin_xml, "form_iconlist");
gnome_icon_list_append(gil, "form_big.xpm", text);
gil = (GnomeIconList *) glade_xml_get_widget(mainwin_xml, "form_iconlist");
gnome_icon_list_append(gil, GMDB_ICONDIR "form_big.xpm", text);
}
void gmdb_form_populate(MdbHandle *mdb)

View File

@@ -0,0 +1,13 @@
gladedir = $(datadir)/gmdb/glade/
glade_DATA = \
gmdb.glade \
gmdb-sql.glade \
gmdb-debug.glade \
gmdb-export.glade \
gmdb-schema.glade \
gmdb-prefs.glade \
gmdb-props.glade
EXTRA_DIST = $(glade_DATA)

View File

@@ -0,0 +1,124 @@
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
<glade-interface>
<widget class="GtkDialog" id="prefs_dialog">
<property name="visible">True</property>
<property name="title" translatable="yes">Preferences</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_NONE</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">0</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="cancel_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="ok_button">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="can_focus">True</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="response_id">-5</property>
</widget>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkTable" id="table1">
<property name="border_width">10</property>
<property name="visible">True</property>
<property name="n_rows">1</property>
<property name="n_columns">2</property>
<property name="homogeneous">False</property>
<property name="row_spacing">0</property>
<property name="column_spacing">0</property>
<child>
<widget class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">&lt;b&gt;Maximum Rows to Display:&lt;/b&gt;</property>
<property name="use_underline">False</property>
<property name="use_markup">True</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
<property name="xalign">0</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="left_attach">0</property>
<property name="right_attach">1</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="y_options"></property>
</packing>
</child>
<child>
<widget class="GtkEntry" id="maxrows_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
<property name="visibility">True</property>
<property name="max_length">0</property>
<property name="text" translatable="yes"></property>
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
</widget>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
<property name="top_attach">0</property>
<property name="bottom_attach">1</property>
<property name="x_options">fill</property>
<property name="y_options"></property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
</child>
</widget>
</glade-interface>

View File

@@ -84,7 +84,7 @@
<property name="label" translatable="yes">_Execute</property>
<property name="use_underline">True</property>
<signal name="activate" handler="on_execute1_activate" last_modification_time="Sat, 21 Dec 2002 15:31:44 GMT"/>
<accelerator key="X" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/>
<child internal-child="image">
<widget class="GtkImage" id="image1">
@@ -127,34 +127,23 @@
<widget class="GtkMenu" id="edit1_menu">
<child>
<widget class="GtkImageMenuItem" id="cut1">
<widget class="GtkImageMenuItem" id="cut_menu">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_CUT_ITEM</property>
<signal name="activate" handler="on_cut1_activate" last_modification_time="Sat, 21 Dec 2002 15:25:07 GMT"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="copy1">
<widget class="GtkImageMenuItem" id="copy_menu">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_COPY_ITEM</property>
<signal name="activate" handler="on_copy1_activate" last_modification_time="Sat, 21 Dec 2002 15:25:07 GMT"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="paste1">
<widget class="GtkImageMenuItem" id="paste_menu">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_PASTE_ITEM</property>
<signal name="activate" handler="on_paste1_activate" last_modification_time="Sat, 21 Dec 2002 15:25:07 GMT"/>
</widget>
</child>
<child>
<widget class="GtkImageMenuItem" id="clear1">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_CLEAR_ITEM</property>
<signal name="activate" handler="on_clear1_activate" last_modification_time="Sat, 21 Dec 2002 15:25:07 GMT"/>
</widget>
</child>
</widget>

View File

@@ -52,7 +52,7 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="information1">
<widget class="GtkImageMenuItem" id="info_menu">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_PROPERTIES_ITEM</property>
<signal name="activate" handler="gmdb_info_cb" last_modification_time="Sat, 21 Dec 2002 16:17:18 GMT"/>
@@ -149,7 +149,7 @@
<widget class="GtkImageMenuItem" id="preferences1">
<property name="visible">True</property>
<property name="stock_item">GNOMEUIINFO_MENU_PREFERENCES_ITEM</property>
<signal name="activate" handler="a_callback" last_modification_time="Fri, 20 Dec 2002 16:38:48 GMT"/>
<signal name="activate" handler="gmdb_prefs_cb" last_modification_time="Fri, 10 Jan 2003 23:14:44 GMT"/>
</widget>
</child>
</widget>
@@ -167,7 +167,7 @@
<widget class="GtkMenu" id="tools1_menu">
<child>
<widget class="GtkMenuItem" id="sql_window1">
<widget class="GtkMenuItem" id="sql_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">S_QL Window</property>
<property name="use_underline">True</property>
@@ -177,14 +177,14 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="debug_window1">
<widget class="GtkImageMenuItem" id="debug_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">_Debug Window</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_debug_new_cb" last_modification_time="Sat, 21 Dec 2002 17:41:42 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image49">
<widget class="GtkImage" id="debug_icon">
<property name="visible">True</property>
<property name="pixbuf">debug.xpm</property>
<property name="xalign">0.5</property>
@@ -197,14 +197,14 @@
</child>
<child>
<widget class="GtkImageMenuItem" id="export_schema1">
<widget class="GtkImageMenuItem" id="schema_menu">
<property name="visible">True</property>
<property name="label" translatable="yes">E_xport Schema</property>
<property name="use_underline">True</property>
<signal name="activate" handler="gmdb_schema_new_cb" last_modification_time="Sun, 29 Dec 2002 20:35:14 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image50">
<widget class="GtkImage" id="image57">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">1</property>
@@ -244,11 +244,23 @@
</child>
<child>
<widget class="GtkMenuItem" id="contents1">
<widget class="GtkImageMenuItem" id="contents1">
<property name="visible">True</property>
<property name="label" translatable="yes">Contents</property>
<property name="use_underline">True</property>
<signal name="activate" handler="a_callback" last_modification_time="Fri, 20 Dec 2002 16:38:48 GMT"/>
<signal name="activate" handler="gmdb_help_cb" last_modification_time="Sat, 11 Jan 2003 14:22:04 GMT"/>
<child internal-child="image">
<widget class="GtkImage" id="image58">
<property name="visible">True</property>
<property name="stock">gtk-help</property>
<property name="icon_size">1</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
</child>
</widget>
</child>
</widget>
@@ -291,7 +303,7 @@
</child>
<child>
<widget class="button" id="button3">
<widget class="button" id="info_button">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">View database file properties</property>
<property name="label">gtk-properties</property>
@@ -324,7 +336,7 @@
</child>
<child>
<widget class="button" id="button5">
<widget class="button" id="schema_button">
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Export schema definition</property>
<property name="label" translatable="yes">Export Schema</property>
@@ -406,6 +418,7 @@
<property name="text_editable">False</property>
<property name="text_static">True</property>
<signal name="select_icon" handler="gmdb_table_select_cb" after="yes" last_modification_time="Fri, 20 Dec 2002 16:45:49 GMT"/>
<signal name="unselect_icon" handler="gmdb_table_unselect_cb" after="yes" last_modification_time="Sat, 11 Jan 2003 18:27:12 GMT"/>
</widget>
</child>
</widget>
@@ -496,7 +509,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="Tables">
<widget class="GtkImage" id="table_icon">
<property name="visible">True</property>
<property name="pixbuf">table.xpm</property>
<property name="xalign">0.5</property>
@@ -617,7 +630,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image2">
<widget class="GtkImage" id="query_icon">
<property name="visible">True</property>
<property name="pixbuf">query.xpm</property>
<property name="xalign">0.5</property>
@@ -738,7 +751,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image3">
<widget class="GtkImage" id="form_icon">
<property name="visible">True</property>
<property name="pixbuf">forms.xpm</property>
<property name="xalign">0.5</property>
@@ -859,7 +872,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image4">
<widget class="GtkImage" id="report_icon">
<property name="visible">True</property>
<property name="pixbuf">reports.xpm</property>
<property name="xalign">0.5</property>
@@ -980,7 +993,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image5">
<widget class="GtkImage" id="macro_icon">
<property name="visible">True</property>
<property name="pixbuf">macros.xpm</property>
<property name="xalign">0.5</property>
@@ -1101,7 +1114,7 @@
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image6">
<widget class="GtkImage" id="module_icon">
<property name="visible">True</property>
<property name="pixbuf">code.xpm</property>
<property name="xalign">0.5</property>

View File

@@ -18,15 +18,18 @@ extern "C" {
void gmdb_info_msg(gchar *message);
GtkWidget *gmdb_info_new();
void gmdb_set_sensitive(gboolean b);
GtkWidget *gmdb_table_data_new(MdbCatalogEntry *entry);
GtkWidget *gmdb_table_def_new(MdbCatalogEntry *entry);
GtkWidget *gmdb_table_export_new(MdbCatalogEntry *entry);
void gmdb_table_export(MdbCatalogEntry *entry) ;
void gmdb_file_select_cb(GtkWidget *w, gpointer data);
void gmdb_file_open_cb(GtkWidget *w, gpointer data);
void gmdb_file_close_cb(GtkWidget *w, gpointer data);
void gmdb_file_open(gchar *file_path);
void gmdb_file_open_recent(gchar *menuname);
void gmdb_sql_new_window_cb(GtkWidget *w, gpointer data);
@@ -39,6 +42,11 @@ void gmdb_module_populate(MdbHandle *mdb);
void gmdb_table_add_tab(GtkWidget *notebook);
void gmdb_debug_tab_new(GtkWidget *notebook);
void gmdb_debug_new_cb(GtkWidget *w, gpointer *data);
unsigned long gmdb_prefs_get_maxrows();
extern GtkWidget *gmdb_prefs_new();
extern GtkWidget *table_list;
extern GtkWidget *form_list;

View File

@@ -0,0 +1,8 @@
figs = \
figures/gmdb2_window.png
docname = gmdb
lang = C
omffile = gmdb-C.omf
entities = legal.xml
include xmldocs.make
dist-hook: app-dist-hook

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" standalone="no"?>
<omf>
<resource>
<creator>
camber@ais.org (Brian Bruns)
</creator>
<maintainer>
camber@ais.org (Brian Bruns)
</maintainer>
<title>
gmdb Manual V1.0
</title>
<date>
2003-01-10
</date>
<version identifier="1.0" date="2003-01-10"
description="Inital revision, program version 0.2"/>
<subject category="GNOME|Applications"/>
<description>
User manual for gmdb2.
</description>
<type>
user's guide
</type>
<format mime="text/xml" dtd="-//OASIS//DTD DocBook XML V4.1.2//EN"/>
<identifier url="gmdb.xml"/>
<language code="C"/>
<relation seriesid="081c7e56-2acd-11d6-819f-e6a1118e62db"/>
<rights type="GNU FDL" license.version="1.1"
holder="Brian Bruns"/>
</resource>
</omf>

310
src/gmdb2/help/C/gmdb.xml Normal file
View File

@@ -0,0 +1,310 @@
<?xml version="1.0"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
[
<!ENTITY legal SYSTEM "legal.xml">
<!ENTITY appversion "0.5">
<!ENTITY manrevision "1.0">
<!ENTITY date "January 2003">
<!ENTITY app "gmdb2">
]>
<!--
<!DOCTYPE Book PUBLIC "-//GNOME//DTD DocBook PNG Variant
V1.1//EN"
-->
<!--
(Do not remove this comment block.)
Maintained by the GNOME Documentation Project
http://developer.GNOME.org/projects/gdp
Template version: 2.0 beta
Template last modified Jan 30, 2002
-->
<!-- =============Document Header ============================= -->
<article id="index" lang="en">
<!-- please do not change the id; for translations, change lang to -->
<!-- appropriate code -->
<articleinfo>
<title>&app; Manual V&manrevision;</title>
<copyright>
<year>2003</year>
<holder>Brian Bruns</holder> </copyright>
<!-- translators: uncomment this:
<copyright>
<year>2002</year>
<holder>ME-THE-TRANSLATOR (Latin translation)</holder>
</copyright>
-->
<publisher>
<publishername> MDB Tools Project </publishername>
</publisher>
&legal;
<authorgroup>
<author>
<firstname>Brian</firstname>
<surname>Bruns</surname>
<affiliation>
<orgname>MDB Tools Project</orgname>
<address> <email>camber@ais.org</email> </address>
</affiliation>
</author>
<!-- This is appropriate place for other contributors: translators,
maintainers, etc. Commented out by default.
<othercredit role="translator">
<firstname>Latin</firstname>
<surname>Translator 1</surname>
<affiliation>
<orgname>Latin Translation Team</orgname>
<address> <email>translator@gnome.org</email> </address>
</affiliation>
<contrib>Latin translation</contrib>
</othercredit>
-->
</authorgroup>
<!-- According to GNU FDL, revision history is mandatory if you are -->
<!-- modifying/reusing someone else's document. If not, you can omit it. -->
<revhistory>
<!-- Remember to remove the &manrevision; entity from the revision entries other
than the current revision. -->
<revision>
<revnumber>gmdb V0.5</revnumber>
<date>2000</date>
<revdescription>
<para role="author">Brian Bruns<email>camber@ais.org</email>
</para>
<para role="publisher">MDB Tools Project</para>
</revdescription>
</revision>
</revhistory>
<releaseinfo> This manual describes version &appversion; of &app;.
</releaseinfo>
<legalnotice>
<title>Feedback</title>
<para> To report a bug or make a suggestion regarding this application or
this manual, follow the directions in this
<ulink url="ghelp:gnome-feedback" type="help">document</ulink>. </para>
<!-- Translators may also add here feedback address for translations -->
</legalnotice>
</articleinfo>
<indexterm><primary>gmdb2</primary></indexterm>
<!-- ============= Document Body ============================= -->
<!-- ============= Introduction ============================== -->
<sect1 id="gmdb-intro">
<title>Introduction</title>
<para>The <application>&app;</application> application is the graphical
interface to MDB Tools. You can use <application>&app;</application>
to view and export data and schema from MDB databases.
</para>
</sect1>
<!-- ============= Getting Started =========================== -->
<sect1 id="gmdb-getting-started">
<title>Getting Started</title>
<!-- ============= To Start gmdb2 ============================ -->
<sect2 id="gmdb-to-start">
<title>To Start &app; from the Command Line</title>
<para>To start <application>&app;</application> from the command line, type the following command, then press <keycap>Return</keycap>:</para>
<para><command>gmdb2 </command></para>
<!-- ==== Figure ==== -->
<figure id="gmdb-window">
<title>&app; Window</title>
<screenshot>
<mediaobject>
<imageobject>
<imagedata fileref="figures/gmdb2_window.png" format="PNG"/>
</imageobject>
<textobject> <phrase>Screenshot of the gmdb2 main window.</phrase>
</textobject> </mediaobject>
</screenshot>
</figure>
<!-- ==== End of Figure ==== -->
<para>The <application>&app;</application> window contains the following
elements: </para>
<variablelist>
<varlistentry> <term>Menubar. </term>
<listitem>
<para>The menus on the menubar contain all of the commands you need
to work with databases in <application>&app;</application>.</para>
</listitem>
</varlistentry>
<varlistentry> <term>Toolbar. </term>
<listitem>
<para> The toolbar contains a subset of the commands that you can
access from the menubar.</para>
</listitem>
</varlistentry>
<varlistentry> <term>Tabbed window. </term>
<listitem>
<para>
The tabbed window contains a tab for each type of object in the database. Within
these, a listing of those objects will be displayed along with buttons along the
left hand side for performing common actions specific to that type of object.
</para>
</listitem>
</varlistentry>
<varlistentry> <term>Statusbar. </term>
<listitem>
<para>The statusbar displays information about current
<application>&app; </application> activity and contextual information about the
menu items. </para>
</listitem>
</varlistentry>
</variablelist>
<para>
When you right-click on any icon in the <application>&app;</application>
icon list, the application displays a popup menu. The popup menu contains the
full list of available actions that may be performed on that object.
</para>
</sect2>
<!-- ============= To Open a File ============================= -->
<sect2 id="gmdb-open-file">
<title>To Open a File</title>
<para>To open a file, choose
<menuchoice> <guimenu>File</guimenu> <guimenuitem>Open</guimenuitem>
</menuchoice>
to display the <guilabel>Open File</guilabel> dialog. Select the file
that you want to open, then click <guibutton>OK</guibutton>. The file is
displayed in the <application>&app;</application> window. </para>
<para>The application also records the paths and file names of the last
four files that you edited and displays them as menu items on the <guimenu>File
</guimenu> menu. To open one of the last four files, choose for example
<menuchoice> <guimenu>File</guimenu> <guimenuitem>1.
<replaceable>/path/filename</replaceable></guimenuitem> </menuchoice>.</para>
</sect2>
<!-- ============= To Open Multiple Files from the Command Line ========= -->
<sect2 id="gmdb-run-from-cmd-line">
<title>To Open Files from a Command Line</title>
<para>You can run <application>&app;</application> from a command line
and open a file. To open a file from a command
line, type the following command, then press <keycap>Return</keycap>:</para>
<para><command>gmdb2 file1.mdb</command></para>
<para>When the application starts, the file that you specified is
displayed in the <application>&app;</application> window.</para>
<para><application>&app;</application> uses the environment variable MDBPATH when looking for the specified file. If set <application>&app;</application>will search each directory component until the file is found.</para>
</sect2>
</sect1>
<!-- ================ Usage ================================ -->
<sect1 id="gmdb-usage">
<title>Usage</title>
<!-- ============= Get the Properties of a File ======================= -->
<sect2 id="gmdb-props">
<title>To Display the Properties of a Database</title>
<para>To display the properties of a database, perform
the following steps:</para>
<orderedlist>
<listitem><para>Choose
<menuchoice> <guimenu>File</guimenu> <guimenuitem>Properties </guimenuitem> </menuchoice></para></listitem>
</orderedlist>
</sect2>
<!-- ============= Exporting Schema ======================= -->
<sect2 id="gmdb-schema">
<title>To Export the Schema of a Database</title>
<para>To export the schema of the current database,
Choose <menuchoice> <guimenu>Tools</guimenu> <guimenuitem>Export Schema </guimenuitem> </menuchoice> and perform the following steps:</para>
<orderedlist>
<listitem><para>Select the filename to save the schema in.</para></listitem>
<listitem><para>If you want to only export one table, select it.</para></listitem>
<listitem><para>Choose the SQL dialect of the target database backend.</para></listitem>
<listitem><para>Check desired schema options.</para></listitem>
<listitem><para>Click <guibutton>Export</guibutton>.</para></listitem>
</orderedlist>
<para>Checking the <guilabel>Include Relationships</guilabel> box will generate foreign key relationships if they are supported by the database.</para>
<para>Checking the <guilabel>Include Drop Table commands</guilabel> will generate the commands to drop the tables before creating new tables.</para>
</sect2>
<!-- ============= Opening SQL Window ======================= -->
<sect2 id="gmdb-sql">
<title>To Open a SQL Query Window</title>
<para>The <guilabel>SQL Query</guilabel> window allows you enter SQL queries and to execute and view the results.</para>
<para>To open the <guilabel>SQL Query</guilabel> window, perform the following steps.</para>
<orderedlist>
<listitem><para>
Choose <menuchoice> <guimenu>Tools</guimenu> <guimenuitem>SQL Window </guimenuitem> </menuchoice>
</para></listitem>
</orderedlist>
</sect2>
<!-- ============= Opening Debug Window ======================= -->
<sect2 id="gmdb-debug">
<title>To Open a File Debugger Window</title>
<para>The <guilabel>File Debugger</guilabel> window allows you enter SQL queries and to execute and view the results.</para>
<orderedlist>
<listitem><para>
Choose <menuchoice> <guimenu>Tools</guimenu> <guimenuitem>Debug Window </guimenuitem> </menuchoice>
</para></listitem>
</orderedlist>
</sect2>
</sect1>
<!-- ============= Tables Window ============================= -->
<sect1 id="gmdb-tables">
<title>Table Actions</title>
<para>To perform actions on a table choose the <guilabel>Tables</guilabel> tab from the main window.</para>
<sect2 id="gmdb-tables-def">
<title>Table Definition</title>
<para>To view the definition of a table, perform the following actions</para>
<orderedlist>
<listitem><para>
Locate the desired table in the tables icon list.
</para></listitem>
<listitem><para>
Select the tables icon.
</para></listitem>
<listitem><para>
Click on the <guibutton>Definition</guibutton> button from the right hand side of the icon list.
</para></listitem>
</orderedlist>
<para>
Columns participating in a Primary Key will have an icon of a gold key and the letters PK at the left side of the column.
</para>
</sect2>
<sect2 id="gmdb-table-data">
<title>Data View</title>
<para>The <guilabel>Data</guilabel> view displays a grid of the data in a table.</para>
<para>To display the table data, perform the following steps</para>
<orderedlist>
<listitem><para>
Locate the desired table in the tables icon list.
</para></listitem>
<listitem><para>
Select the tables icon.
</para></listitem>
<listitem><para>
Click on the <guibutton>Data</guibutton> button from the right hand side of the icon list.
</para></listitem>
</orderedlist>
</sect2>
<sect2 id="gmdb-table-export">
<title>Data Export</title>
<para>The <guilabel>Export</guilabel> button creates a text file containing the data from a single data.</para>
<para>To export the table data, perform the following steps</para>
<orderedlist>
<listitem><para>
Locate the desired table in the tables icon list.
</para></listitem>
<listitem><para>
Select the tables icon.
</para></listitem>
<listitem><para>
Click on the <guibutton>Export</guibutton> button from the right hand side of the icon list to display the <guilabel>Export Table</guilabel> window.
</para></listitem>
<listitem><para>
Select the filename to save the data in.
</para></listitem>
<listitem><para>
Fill in dialog with desired characteristics of the export file.
</para></listitem>
<listitem><para>
Click <guibutton>Export</guibutton>.
</para></listitem>
</orderedlist>
<para>Checking the <guilabel>Include Headers</guilabel> box will write a single row at the top of the file with the names of the columns.</para>
</sect2>
</sect1>
</article>

View File

@@ -0,0 +1,76 @@
<legalnotice id="legalnotice">
<para>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
License (GFDL), Version 1.1 or any later version published
by the Free Software Foundation with no Invariant Sections,
no Front-Cover Texts, and no Back-Cover Texts. You can find
a copy of the GFDL at this <ulink type="help"
url="ghelp:fdl">link</ulink> or in the file COPYING-DOCS
distributed with this manual.
</para>
<para> This manual is part of a collection of GNOME manuals
distributed under the GFDL. If you want to distribute this
manual separately from the collection, you can do so by
adding a copy of the license to the manual, as described in
section 6 of the license.
</para>
<para>
Many of the names used by companies to distinguish their
products and services are claimed as trademarks. Where those
names appear in any GNOME documentation, and the members of
the GNOME Documentation Project are made aware of those
trademarks, then the names are in capital letters or initial
capital letters.
</para>
<para>
DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED
UNDER THE TERMS OF THE GNU FREE DOCUMENTATION LICENSE
WITH THE FURTHER UNDERSTANDING THAT:
<orderedlist>
<listitem>
<para>DOCUMENT IS PROVIDED ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR
IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES
THAT THE DOCUMENT OR MODIFIED VERSION OF THE
DOCUMENT IS FREE OF DEFECTS MERCHANTABLE, FIT FOR
A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE
RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE
OF THE DOCUMENT OR MODIFIED VERSION OF THE
DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR
MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL WRITER, AUTHOR OR ANY
CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY
SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS
LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED
VERSION OF THE DOCUMENT IS AUTHORIZED HEREUNDER
EXCEPT UNDER THIS DISCLAIMER; AND
</para>
</listitem>
<listitem>
<para>UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL
THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
CONTRACT, OR OTHERWISE, SHALL THE AUTHOR,
INITIAL WRITER, ANY CONTRIBUTOR, OR ANY
DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION
OF THE DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH
PARTIES, BE LIABLE TO ANY PERSON FOR ANY
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES OF ANY CHARACTER
INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS
OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR
MALFUNCTION, OR ANY AND ALL OTHER DAMAGES OR
LOSSES ARISING OUT OF OR RELATING TO USE OF THE
DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT,
EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF
THE POSSIBILITY OF SUCH DAMAGES.
</para>
</listitem>
</orderedlist>
</para>
</legalnotice>

View File

@@ -0,0 +1,86 @@
# To use this template:
# 1) Define: figs, docname, lang, omffile, entities although figs,
# omffile, and entities may be empty in your Makefile.am which
# will "include" this one
# 2) Figures must go under figures/ and be in PNG format
# 3) You should only have one document per directory
#
# Note that this makefile forces the directory name under
# $prefix/share/gnome/help/ to be the same as the XML filename
# of the document. This is required by GNOME. eg:
# $prefix/share/gnome/help/fish_applet/C/fish_applet.xml
# ^^^^^^^^^^^ ^^^^^^^^^^^
# Definitions:
# figs A list of screenshots which will be included in EXTRA_DIST
# Note that these should reside in figures/ and should be .png
# files, or you will have to make modifications below.
# docname This is the name of the XML file: <docname>.xml
# lang This is the document locale
# omffile This is the name of the OMF file. Convention is to name
# it <docname>-<locale>.omf.
# entities This is a list of XML entities which must be installed
# with the main XML file and included in EXTRA_DIST.
# eg:
# figs = \
# figures/fig1.png \
# figures/fig2.png
# docname = scrollkeeper-manual
# lang = C
# omffile=scrollkeeper-manual-C.omf
# entities = fdl.xml
# include $(top_srcdir)/help/xmldocs.make
# dist-hook: app-dist-hook
#
docdir = $(datadir)/gnome/help/$(docname)/$(lang)
xml_files = $(entities) $(docname).xml
omf_dir=$(top_srcdir)/omf-install
EXTRA_DIST = xmldocs.make $(xml_files) $(omffile) $(figs)
CLEANFILES = omf_timestamp
all: omf
omf: omf_timestamp
omf_timestamp: $(omffile)
-for file in $(omffile); do \
scrollkeeper-preinstall $(docdir)/`awk 'BEGIN {RS = ">" } /identifier/ {print $$0}' $${file} | awk 'BEGIN {FS="\""} /url/ {print $$2}'` $${file} $(omf_dir)/$${file}; \
done
touch omf_timestamp
$(docname).xml: $(entities)
ourdir=`pwd`; \
cd $(srcdir); \
cp $(entities) $$ourdir
app-dist-hook:
-$(mkinstalldirs) $(distdir)/figures
-if [ -e topic.dat ]; then \
cp $(srcdir)/topic.dat $(distdir); \
fi
install-data-am: omf
-$(mkinstalldirs) $(DESTDIR)$(docdir)/figures
-cp $(srcdir)/$(xml_files) $(DESTDIR)$(docdir)
-for file in $(srcdir)/figures/*.png; do \
basefile=`echo $$file | sed -e 's,^.*/,,'`; \
$(INSTALL_DATA) $$file $(DESTDIR)$(docdir)/figures/$$basefile; \
done
-if [ -e $(srcdir)/topic.dat ]; then \
$(INSTALL_DATA) $(srcdir)/topic.dat $(DESTDIR)$(docdir); \
fi
uninstall-local:
-for file in $(srcdir)/figures/*.png; do \
basefile=`echo $$file | sed -e 's,^.*/,,'`; \
rm -f $(docdir)/figures/$$basefile; \
done
-for file in $(xml_files); do \
rm -f $(DESTDIR)$(docdir)/$$file; \
done
-rmdir $(DESTDIR)$(docdir)/figures
-rmdir $(DESTDIR)$(docdir)

View File

@@ -0,0 +1,3 @@
## Process this file with automake to produce Makefile.in.
SUBDIRS = C

View File

@@ -39,7 +39,7 @@ int i;
struct stat st;
/* load the interface */
propswin_xml = glade_xml_new("gladefiles/gmdb-props.glade", NULL, NULL);
propswin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-props.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(propswin_xml);

View File

@@ -27,7 +27,7 @@ gmdb_macro_add_icon(gchar *text)
GnomeIconList *gil;
gil = glade_xml_get_widget (mainwin_xml, "macro_iconlist");
gnome_icon_list_append(gil, "macro_big.xpm", text);
gnome_icon_list_append(gil, GMDB_ICONDIR "macro_big.xpm", text);
}
void gmdb_macro_populate(MdbHandle *mdb)

View File

@@ -16,9 +16,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <gnome.h>
#include <libgnome/gnome-help.h>
#include <glade/glade.h>
#include <mdbtools.h>
#include <mdbsql.h>
#include "gmdb.h"
GtkWidget *app;
GladeXML *mainwin_xml;
@@ -48,7 +50,7 @@ const gchar *documenters[] = {
};
GdkPixbuf *pixbuf;
pixbuf = gdk_pixbuf_new_from_file ("logo.xpm", NULL);
pixbuf = gdk_pixbuf_new_from_file (GMDB_ICONDIR "logo.xpm", NULL);
gtk_widget_show (gnome_about_new ("Gnome MDB Viewer", "0.2",
"Copyright 2002-2003 Brian Bruns",
@@ -56,11 +58,16 @@ gtk_widget_show (gnome_about_new ("Gnome MDB Viewer", "0.2",
"MDB Tools. It lets you view and export data and schema"
"from MDB files produced by MS Access 97/2000/XP."),
(const gchar **) authors,
(const gchar **) authors,
(const gchar **) documenters,
NULL,
pixbuf));
}
void
gmdb_prefs_cb(GtkWidget *button, gpointer data)
{
gmdb_prefs_new();
}
void
gmdb_info_cb(GtkWidget *button, gpointer data)
{
gmdb_info_new();
@@ -75,6 +82,19 @@ a_callback(GtkWidget *button, gpointer data)
/*just print a string so that we know we got there*/
g_print("Inside Callback\n");
}
void
gmdb_help_cb(GtkWidget *button, gpointer data)
{
GError *error = NULL;
g_print("got here\n");
gnome_help_display("gmdb.xml", NULL, &error);
if (error != NULL) {
g_warning (error->message);
g_error_free (error);
}
}
void gmdb_load_recent_files()
{
@@ -106,11 +126,12 @@ gchar *text, *text2;
void
gmdb_reset_widgets()
{
GnomeIconList *gil;
int pos;
GnomeIconList *gil;
GtkWidget *win;
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "table_iconlist");
gnome_icon_list_clear(gil);
gmdb_table_set_sensitive(FALSE);
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "query_iconlist");
gnome_icon_list_clear(gil);
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "form_iconlist");
@@ -121,6 +142,38 @@ int pos;
gnome_icon_list_clear(gil);
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "module_iconlist");
gnome_icon_list_clear(gil);
win = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "gmdb");
gtk_window_set_title(GTK_WINDOW(win), "MDB File Viewer");
gmdb_set_sensitive(FALSE);
}
void
gmdb_set_sensitive(gboolean b)
{
GtkWidget *mi, *button;
mi = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "sql_menu");
gtk_widget_set_sensitive(mi,b);
mi = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "debug_menu");
gtk_widget_set_sensitive(mi,b);
mi = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "schema_menu");
gtk_widget_set_sensitive(mi,b);
mi = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "info_menu");
gtk_widget_set_sensitive(mi,b);
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "sql_button");
gtk_widget_set_sensitive(button,b);
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "schema_button");
gtk_widget_set_sensitive(button,b);
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "info_button");
gtk_widget_set_sensitive(button,b);
}
void gmdb_init_popups()
@@ -128,9 +181,50 @@ void gmdb_init_popups()
gmdb_table_init_popup();
}
void
gmdb_load_icons(GladeXML *xml)
{
GtkWidget *icon;
char file[256];
GValue value = { 0, };
int i = 0;
char *icons[] = {
"table_icon",
"query_icon",
"form_icon",
"report_icon",
"macro_icon",
"module_icon",
"debug_icon",
NULL
};
char *files[] = {
"table.xpm",
"query.xpm",
"forms.xpm",
"reports.xpm",
"macros.xpm",
"code.xpm",
"debug.xpm",
NULL
};
while (icons[i]) {
icon = glade_xml_get_widget (xml, icons[i]);
g_value_init (&value, G_TYPE_STRING);
g_snprintf(file,256,"%s%s", GMDB_ICONDIR, files[i]);
g_value_set_static_string (&value, file);
g_object_set_property (G_OBJECT (icon), "file" , &value);
g_value_unset (&value);
i++;
}
}
int main(int argc, char *argv[])
{
GtkWidget *gmdb;
GnomeProgram *program;
#ifdef SQL
/* initialize the SQL engine */
@@ -140,13 +234,21 @@ GtkWidget *gmdb;
mdb_init();
/* Initialize GNOME */
gnome_init ("gmdb2", "0.2", argc, argv);
app = gnome_app_new ("gmdb2", "Gnome-MDB File Viewer");
/* Initialize gnome program */
program = gnome_program_init ("gmdb", "0.2",
LIBGNOMEUI_MODULE, argc, argv,
GNOME_PARAM_POPT_TABLE, NULL,
GNOME_PARAM_HUMAN_READABLE_NAME,
_("Gnome-MDB File Viewer"),
GNOME_PARAM_APP_DATADIR, DATADIR,
NULL);
//gnome_init ("gmdb", "0.2", argc, argv);
//app = gnome_app_new ("gmdb", "Gnome-MDB File Viewer");
glade_init();
/* load the interface */
mainwin_xml = glade_xml_new("gladefiles/gmdb.glade", NULL, NULL);
mainwin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(mainwin_xml);
@@ -154,8 +256,12 @@ GtkWidget *gmdb;
gtk_signal_connect (GTK_OBJECT (gmdb), "delete_event",
GTK_SIGNAL_FUNC (delete_event), NULL);
gmdb_load_icons(mainwin_xml);
if (argc>1) {
gmdb_file_open(argv[1]);
} else {
gmdb_reset_widgets();
}
gmdb_load_recent_files();

View File

@@ -27,7 +27,7 @@ gmdb_module_add_icon(gchar *text)
GnomeIconList *gil;
gil = glade_xml_get_widget (mainwin_xml, "module_iconlist");
gnome_icon_list_append(gil, "module_big.xpm", text);
gnome_icon_list_append(gil, GMDB_ICONDIR "module_big.xpm", text);
}
void gmdb_module_populate(MdbHandle *mdb)

View File

@@ -0,0 +1,21 @@
appicondir = $(datadir)/gmdb/pixmaps
appicon_DATA = \
pk.xpm \
logo.xpm \
debug.xpm \
table.xpm \
query.xpm \
forms.xpm \
reports.xpm \
macros.xpm \
code.xpm \
table_big.xpm \
query_big.xpm \
form_big.xpm \
report_big.xpm \
macro_big.xpm \
module_big.xpm
EXTRA_DIST = $(appicon_DATA)

92
src/gmdb2/prefs.c Normal file
View File

@@ -0,0 +1,92 @@
/* MDB Tools - A library for reading MS Access database file
* Copyright (C) 2000 Brian Bruns
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "gmdb.h"
extern GtkWidget *app;
extern MdbHandle *mdb;
GladeXML *prefswin_xml;
unsigned long
gmdb_prefs_get_maxrows()
{
gchar *str;
str = gnome_config_get_string("/gmdb/prefs/maxrows");
if (!str || !strlen(str))
return 1000;
else
return atol(str);
}
/* callbacks */
void
gmdb_prefs_save_cb(GtkWidget *w, GladeXML *xml)
{
GtkWidget *entry;
GtkWidget *win;
gchar *str;
entry = glade_xml_get_widget (xml, "maxrows_entry");
str = (gchar *) gtk_entry_get_text(GTK_ENTRY(entry));
printf("str = %s\n",str);
gnome_config_set_string("/gmdb/prefs/maxrows", str);
gnome_config_sync();
win = glade_xml_get_widget (xml, "prefs_dialog");
if (win) gtk_widget_destroy(win);
}
void
gmdb_prefs_cancel_cb(GtkWidget *w, GladeXML *xml)
{
GtkWidget *win;
win = glade_xml_get_widget (xml, "prefs_dialog");
if (win) gtk_widget_destroy(win);
}
GtkWidget *
gmdb_prefs_new()
{
GtkWidget *prefswin, *button;
GtkWidget *entry;
gchar *str;
/* load the interface */
prefswin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-prefs.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(prefswin_xml);
entry = glade_xml_get_widget (prefswin_xml, "maxrows_entry");
button = glade_xml_get_widget (prefswin_xml, "cancel_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_prefs_cancel_cb), prefswin_xml);
button = glade_xml_get_widget (prefswin_xml, "ok_button");
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (gmdb_prefs_save_cb), prefswin_xml);
str = gnome_config_get_string("/gmdb/prefs/maxrows");
if (!str || !strlen(str)) {
str = "1000";
gnome_config_set_string("/gmdb/prefs/maxrows", str);
gnome_config_sync();
}
gtk_entry_set_text(GTK_ENTRY(entry), str);
}

View File

@@ -28,7 +28,7 @@ gmdb_query_add_icon(gchar *text)
GnomeIconList *gil;
gil = glade_xml_get_widget (mainwin_xml, "query_iconlist");
gnome_icon_list_append(gil, "query_big.xpm", text);
gnome_icon_list_append(gil, GMDB_ICONDIR "query_big.xpm", text);
}

View File

@@ -26,8 +26,8 @@ gmdb_report_add_icon(gchar *text)
{
GnomeIconList *gil;
gil = glade_xml_get_widget (mainwin_xml, "report_iconlist");
gnome_icon_list_append(gil, "report_big.xpm", text);
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "report_iconlist");
gnome_icon_list_append(gil, GMDB_ICONDIR "report_big.xpm", text);
}
void gmdb_report_populate(MdbHandle *mdb)

View File

@@ -163,7 +163,7 @@ MdbCatalogEntry *entry;
int i;
/* load the interface */
schemawin_xml = glade_xml_new("gladefiles/gmdb-schema.glade", NULL, NULL);
schemawin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-schema.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(schemawin_xml);

View File

@@ -53,6 +53,42 @@ gmdb_sql_close_all()
/* callbacks */
void
gmdb_sql_copy_cb(GtkWidget *w, GladeXML *xml)
{
GtkTextBuffer *txtbuffer;
GtkClipboard *clipboard;
GtkWidget *textview;
textview = glade_xml_get_widget(xml, "sql_textview");
clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
txtbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
gtk_text_buffer_copy_clipboard(txtbuffer, clipboard);
}
void
gmdb_sql_cut_cb(GtkWidget *w, GladeXML *xml)
{
GtkTextBuffer *txtbuffer;
GtkClipboard *clipboard;
GtkWidget *textview;
textview = glade_xml_get_widget(xml, "sql_textview");
clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
txtbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
gtk_text_buffer_cut_clipboard(txtbuffer, clipboard, TRUE);
}
void
gmdb_sql_paste_cb(GtkWidget *w, GladeXML *xml)
{
GtkTextBuffer *txtbuffer;
GtkClipboard *clipboard;
GtkWidget *textview;
textview = glade_xml_get_widget(xml, "sql_textview");
clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
txtbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
gtk_text_buffer_paste_clipboard(txtbuffer, clipboard, NULL, TRUE);
}
void
gmdb_sql_close_cb(GtkWidget *w, GladeXML *xml)
{
GtkWidget *win;
@@ -73,7 +109,7 @@ gchar *name;
GtkTreeSelection *select;
GtkTreeStore *store;
GtkTreeView *tree;
GtkTreeIter *iter, iter2;
GtkTreeIter iter2;
tree = (GtkTreeView *) glade_xml_get_widget(xml, "sql_treeview");
select = gtk_tree_view_get_selection(GTK_TREE_VIEW (tree));
@@ -99,10 +135,9 @@ void gmdb_sql_dnd_datareceived_cb(
guint info, guint t,
GladeXML *xml)
{
gchar *buf, *lastbuf;
GtkTextIter iter, start, end;
gchar *buf;
GtkTextIter iter;
GtkTextBuffer *txtbuffer;
int len;
GtkWidget *textview;
textview = glade_xml_get_widget(xml, "sql_textview");
@@ -144,6 +179,7 @@ GList *history;
GType *gtypes;
GtkTreeIter iter;
GtkTreeViewColumn *column;
long row, maxrow;
/* stuff this query on the history */
textview = glade_xml_get_widget(xml, "sql_textview");
@@ -177,7 +213,7 @@ GtkTreeViewColumn *column;
for (i=0;i<sql->num_columns;i++)
gtypes[i]=G_TYPE_STRING;
store = gtk_tree_view_get_model(treeview);
store = (GtkTreeStore *) gtk_tree_view_get_model(treeview);
if (store) {
i=0;
while (column = gtk_tree_view_get_column(GTK_TREE_VIEW(treeview), i)) {
@@ -202,7 +238,12 @@ GtkTreeViewColumn *column;
gtk_tree_view_append_column(GTK_TREE_VIEW (treeview), column);
}
while(mdb_fetch_row(sql->cur_table)) {
maxrow = gmdb_prefs_get_maxrows();
row = 0;
while(mdb_fetch_row(sql->cur_table) &&
(!maxrow || (row < maxrow))) {
row++;
gtk_list_store_append(GTK_LIST_STORE(store), &iter);
for (i=0;i<sql->num_columns;i++) {
gtk_list_store_set(GTK_LIST_STORE(store),
@@ -228,12 +269,24 @@ GtkWidget *mi, *but;
GladeXML *sqlwin_xml;
/* load the interface */
sqlwin_xml = glade_xml_new("gladefiles/gmdb-sql.glade", NULL, NULL);
sqlwin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-sql.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(sqlwin_xml);
sql_list = g_list_append(sql_list, sqlwin_xml);
mi = glade_xml_get_widget (sqlwin_xml, "paste_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_sql_paste_cb), sqlwin_xml);
mi = glade_xml_get_widget (sqlwin_xml, "cut_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_sql_cut_cb), sqlwin_xml);
mi = glade_xml_get_widget (sqlwin_xml, "copy_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_sql_copy_cb), sqlwin_xml);
mi = glade_xml_get_widget (sqlwin_xml, "close_menu");
g_signal_connect (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_sql_close_cb), sqlwin_xml);
@@ -295,7 +348,7 @@ gmdb_sql_tree_populate(MdbHandle *mdb, GladeXML *xml)
{
int i;
MdbCatalogEntry *entry;
GtkTreeIter *iter1, *iter2;
GtkTreeIter *iter2;
GtkWidget *tree = glade_xml_get_widget(xml, "sql_treeview");
GtkTreeStore *store = (GtkTreeStore *) gtk_tree_view_get_model(GTK_TREE_VIEW(tree));

View File

@@ -27,12 +27,13 @@ extern MdbHandle *mdb;
int selected_table = -1;
extern char *mdb_access_types[];
void gmdb_table_set_sensitive(gboolean b);
/* callbacks */
void
gmdb_table_debug_cb(GtkList *list, GtkWidget *w, gpointer data)
{
MdbCatalogEntry *entry;
guint32 page;
/* nothing selected yet? */
if (selected_table==-1) {
@@ -85,15 +86,22 @@ MdbCatalogEntry *entry;
gmdb_table_data_new(entry);
}
void
gmdb_table_unselect_cb(GnomeIconList *gil, int num, GdkEvent *ev, gpointer data)
{
selected_table = -1;
gmdb_table_set_sensitive(FALSE);
}
void
gmdb_table_select_cb(GnomeIconList *gil, int num, GdkEvent *ev, gpointer data)
{
int child_num;
int i,j=0;
int i;
MdbCatalogEntry *entry;
gchar *text;
text = (gchar *) gnome_icon_list_get_icon_data(gil, num);
selected_table = -1;
for (i=0;i<mdb->num_catalog;i++) {
entry = g_ptr_array_index(mdb->catalog,i);
if (entry->object_type==MDB_TABLE &&
@@ -101,6 +109,12 @@ gchar *text;
selected_table = i;
}
}
if (selected_table>0) {
gmdb_table_set_sensitive(TRUE);
} else {
gmdb_table_set_sensitive(FALSE);
}
}
gmdb_table_popup_cb(GtkWidget *menu, GdkEvent *event)
{
@@ -119,12 +133,26 @@ GdkEventButton *event_button;
}
/* functions */
void
gmdb_table_set_sensitive(gboolean b)
{
GtkWidget *button;
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "table_definition");
gtk_widget_set_sensitive(button,b);
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "table_data");
gtk_widget_set_sensitive(button,b);
button = (GtkWidget *) glade_xml_get_widget (mainwin_xml, "table_export");
gtk_widget_set_sensitive(button,b);
}
void
gmdb_table_init_popup()
{
GnomeIconList *gil;
GtkWidget *menu, *mi;
gil = glade_xml_get_widget (mainwin_xml, "table_iconlist");
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "table_iconlist");
menu = gtk_menu_new();
gtk_widget_show(menu);
@@ -151,9 +179,9 @@ GtkWidget *menu, *mi;
g_signal_connect_swapped (G_OBJECT (mi), "activate",
G_CALLBACK (gmdb_table_debug_cb), gil);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
mi = gtk_menu_item_new_with_label("Usage Map");
gtk_widget_show(mi);
gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
//mi = gtk_menu_item_new_with_label("Usage Map");
//gtk_widget_show(mi);
//gtk_menu_shell_append(GTK_MENU_SHELL(menu), mi);
g_signal_connect_swapped (GTK_OBJECT (gil), "button_press_event",
G_CALLBACK (gmdb_table_popup_cb), GTK_OBJECT(menu));
@@ -164,9 +192,9 @@ gmdb_table_add_icon(gchar *text)
GnomeIconList *gil;
int pos;
gil = glade_xml_get_widget (mainwin_xml, "table_iconlist");
gil = (GnomeIconList *) glade_xml_get_widget (mainwin_xml, "table_iconlist");
pos = gnome_icon_list_append(gil, "table_big.xpm", text);
pos = gnome_icon_list_append(gil, GMDB_ICONDIR "table_big.xpm", text);
gnome_icon_list_set_icon_data(gil, pos, text);
}

View File

@@ -44,6 +44,7 @@ MdbColumn *col;
GtkWidget *clist;
GtkWidget *scroll;
int i, rownum;
long row, maxrow;
gchar *bound_data[256];
GMdbDataWindow *dataw = NULL;
@@ -97,8 +98,13 @@ GMdbDataWindow *dataw = NULL;
}
gtk_clist_column_titles_show(GTK_CLIST(clist));
maxrow = gmdb_prefs_get_maxrows();
/* fetch those rows! */
while(mdb_fetch_row(table)) {
row = 0;
while(mdb_fetch_row(table) &&
(!maxrow || (row < maxrow))) {
row++;
rownum = gtk_clist_append(GTK_CLIST(clist), bound_data);
}

View File

@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "gmdb.h"
#include "pk.xpm"
#include "pixmaps/pk.xpm"
extern GtkWidget *app;
extern MdbHandle *mdb;

View File

@@ -160,7 +160,8 @@ GtkWidget *exportwin;
sprintf(msg,"%d Rows exported successfully.\n", rows);
gmdb_info_msg(msg);
}
void gmdb_table_export(MdbCatalogEntry *entry) {
void gmdb_table_export(MdbCatalogEntry *entry)
{
GtkWidget *export_button;
GtkWidget *close_button;
GList *glist = NULL;
@@ -169,7 +170,7 @@ GtkWidget *combo;
cat_entry = entry;
/* load the interface */
exportwin_xml = glade_xml_new("gladefiles/gmdb-export.glade", NULL, NULL);
exportwin_xml = glade_xml_new(GMDB_GLADEDIR "gmdb-export.glade", NULL, NULL);
/* connect the signals in the interface */
glade_xml_signal_autoconnect(exportwin_xml);