More HIG changes.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12952 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
David Hampton
2006-01-23 05:53:11 +00:00
parent cf241d1dc6
commit 7079008d54
3 changed files with 176 additions and 208 deletions
+3
View File
@@ -1,5 +1,8 @@
2006-01-22 David Hampton <hampton@employees.org>
* src/gnome/dialog-chart-export.c:
* src/gnome/glade/chart-export.glade: More HIG changes.
* src/gnome-utils/gnc-file.c: Add an icon to the export button in
the generic filename dialog.
+48 -33
View File
@@ -4,6 +4,7 @@
* Sun Feb 27 14:19:12 2005
* Copyright 2005 Neil Williams
* linux@codehelp.co.uk
* Copyright (c) 2006 David Hampton <hampton@employees.org>
****************************************************************************/
/*
@@ -35,15 +36,18 @@
#include "dialog-utils.h"
#include "gnc-engine.h"
#include "gnc-file.h"
#include "gnc-ui.h"
#define EQUITY_ACCOUNT_NAME _("Opening Balances")
#define OPENING_BALANCE_DESC _("Opening Balance")
static GtkWidget *chart_export;
void on_dateok_clicked (GtkButton *button, gpointer user_data);
void chart_export_response_cb (GtkDialog *dialog, gint response, gpointer user_data);
typedef struct chart_data_s
{
GladeXML *xml;
GtkWidget *dialog;
GtkWidget *calendar;
time_t chart_time_t;
QofSession *chart_session;
Account *equity_account;
@@ -175,51 +179,41 @@ chart_entity_cb(QofEntity *ent, gpointer user_data)
g_list_free(ref);
}
static GtkWidget *
create_chart_export ( void )
void
gnc_main_window_chart_export(void)
{
GtkWidget *dialog;
GladeXML *xml;
GladeXML *xml;
chart_data *data;
xml = gnc_glade_xml_new ("chart-export.glade", "chart-export");
data = g_new0(chart_data, 1);
glade_xml_signal_connect_data(xml, "on_dateok_clicked",
G_CALLBACK (on_dateok_clicked), data);
dialog = glade_xml_get_widget (xml, "chart-export");
return dialog;
data->xml = xml;
data->dialog = glade_xml_get_widget(xml, "chart-export");
data->calendar = glade_xml_get_widget(xml, "chart-calendar");
glade_xml_signal_autoconnect_full(xml,
gnc_glade_autoconnect_full_func,
data);
gtk_widget_show(data->dialog);
}
void
gnc_main_window_chart_export(void)
{
chart_export = create_chart_export ();
gtk_widget_show (chart_export);
}
void
on_dateok_clicked (GtkButton *button, gpointer user_data)
static void
on_dateok_clicked (chart_data *data)
{
guint year, month, day;
chart_data *data;
GtkCalendar *calendar;
struct tm *chart_tm;
GtkWindow *parent;
gchar *filename;
QofSession *current_session, *chart_session;
QofBook *book;
QofCollection *coll;
calendar = (GtkCalendar*)gnc_glade_lookup_widget(chart_export, "chart-calendar");
parent = (GtkWindow*)gtk_widget_get_parent ((GtkWidget*)chart_export);
data = (chart_data*)user_data;
data->chart_time_t = time(NULL);
chart_tm = gmtime(&data->chart_time_t);
/* set today - calendar will omit any zero/NULL values */
year = chart_tm->tm_year + 1900;
month = chart_tm->tm_mon + 1;
day = chart_tm->tm_mday;
gtk_calendar_get_date(calendar, &year, &month, &day);
gtk_calendar_get_date(GTK_CALENDAR(data->calendar),
&year, &month, &day);
if((year + 1900) != chart_tm->tm_year) {
chart_tm->tm_year = year - 1900;
}
@@ -230,7 +224,6 @@ on_dateok_clicked (GtkButton *button, gpointer user_data)
chart_tm->tm_mday = day;
}
data->chart_time_t = mktime(chart_tm);
gtk_widget_destroy(chart_export);
current_session = qof_session_get_current_session();
book = qof_session_get_book(current_session);
filename = g_strdup("/tmp/qsf-chartofaccounts.xml");
@@ -239,21 +232,22 @@ on_dateok_clicked (GtkButton *button, gpointer user_data)
NULL, NULL, GNC_FILE_DIALOG_EXPORT);
if (filename)
{
gnc_set_busy_cursor(NULL, TRUE);
gnc_engine_suspend_events();
qof_session_begin(chart_session, filename, TRUE, TRUE);
qof_session_begin(chart_session, filename, TRUE, TRUE);
data->chart_session = chart_session;
data->equity_account = NULL;
coll = qof_book_get_collection(book, GNC_ID_ACCOUNT);
coll = qof_book_get_collection(book, GNC_ID_ACCOUNT);
qof_collection_foreach(coll, chart_collection_cb, data);
if(data->equity_account == NULL)
{
{
data->equity_account = xaccMallocAccount (qof_session_get_book(chart_session));
xaccAccountBeginEdit (data->equity_account);
xaccAccountSetName (data->equity_account, EQUITY_ACCOUNT_NAME);
xaccAccountSetDescription(data->equity_account, EQUITY_ACCOUNT_NAME);
xaccAccountSetType (data->equity_account, EQUITY);
xaccAccountSetCommodity (data->equity_account, gnc_default_currency());
}
}
qof_object_foreach(GNC_ID_ACCOUNT, book, chart_entity_cb, data);
data->param_ref_list = qof_class_get_referenceList(GNC_ID_TRANS);
qof_object_foreach(GNC_ID_TRANS, book, chart_reference_cb, data);
@@ -261,11 +255,32 @@ on_dateok_clicked (GtkButton *button, gpointer user_data)
data->param_ref_list = qof_class_get_referenceList(GNC_ID_SPLIT);
qof_object_foreach(GNC_ID_SPLIT, book, chart_reference_cb, data);
g_list_free(data->param_ref_list);
qof_session_save(chart_session, NULL);
qof_session_save(chart_session, NULL);
show_session_error(qof_session_get_error(chart_session), filename);
gnc_engine_resume_events();
gnc_unset_busy_cursor(NULL);
}
qof_session_end(chart_session);
g_free(data);
qof_session_set_current_session(current_session);
}
void
chart_export_response_cb (GtkDialog *dialog, gint response, gpointer user_data)
{
chart_data *data;
data = (chart_data*)user_data;
switch (response) {
case GTK_RESPONSE_OK:
gtk_widget_hide(data->dialog);
on_dateok_clicked(data);
break;
default:
/* do nothing */
break;
}
gtk_widget_destroy(data->dialog);
g_object_unref(data->xml);
g_free(data);
}
+125 -175
View File
@@ -4,6 +4,7 @@
<glade-interface>
<widget class="GtkDialog" id="chart-export">
<property name="border_width">6</property>
<property name="visible">True</property>
<property name="title" translatable="yes">Export Chart of Accounts</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
@@ -16,18 +17,20 @@
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="has_separator">True</property>
<property name="focus_on_map">True</property>
<property name="has_separator">False</property>
<signal name="response" handler="chart_export_response_cb" last_modification_time="Mon, 23 Jan 2006 04:43:46 GMT"/>
<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>
<property name="spacing">12</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area1">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="cancelbutton1">
@@ -49,179 +52,12 @@
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="has_focus">True</property>
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-5</property>
<signal name="clicked" handler="on_dateok_clicked" last_modification_time="Mon, 28 Feb 2005 10:40:01 GMT"/>
</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="GtkFixed" id="fixed1">
<property name="visible">True</property>
<child>
<widget class="GtkCalendar" id="chart-calendar">
<property name="width_request">215</property>
<property name="height_request">180</property>
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Future dates are not supported</property>
<property name="can_focus">True</property>
<property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
</widget>
<packing>
<property name="x">40</property>
<property name="y">184</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="chartlabel">
<property name="width_request">304</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="label" translatable="yes">You can export the Chart of Accounts to a QSF XML file that can be imported into another GnuCash file or used in other programs.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.52</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">You can export the Chart of Accounts to a QSF XML file that can be imported into another GnuCash file or used in other programs.</atkproperty>
</accessibility>
</widget>
<packing>
<property name="x">8</property>
<property name="y">8</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="processlabel">
<property name="width_request">296</property>
<property name="height_request">48</property>
<property name="visible">True</property>
<property name="label" translatable="yes">Select the date to use and click Next to choose the filename and location.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="x">8</property>
<property name="y">128</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="chartnote">
<property name="width_request">304</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="label" translatable="yes">The Chart of Accounts includes the balance for each account, on the date specified. Note that future dates are not supported.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
</widget>
<packing>
<property name="x">8</property>
<property name="y">64</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>
<widget class="GtkFileChooserDialog" id="chartfilechooserdialog">
<property name="visible">True</property>
<property name="action">GTK_FILE_CHOOSER_ACTION_SAVE</property>
<property name="local_only">True</property>
<property name="select_multiple">False</property>
<property name="show_hidden">False</property>
<property name="title" translatable="yes">Filename for exported XML</property>
<property name="type">GTK_WINDOW_TOPLEVEL</property>
<property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property>
<property name="modal">False</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
<property name="decorated">True</property>
<property name="skip_taskbar_hint">False</property>
<property name="skip_pager_hint">False</property>
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<child internal-child="vbox">
<widget class="GtkVBox" id="dialog-vbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">24</property>
<child internal-child="action_area">
<widget class="GtkHButtonBox" id="dialog-action_area2">
<property name="visible">True</property>
<property name="layout_style">GTK_BUTTONBOX_END</property>
<child>
<widget class="GtkButton" id="button1">
<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="focus_on_click">True</property>
<property name="response_id">-6</property>
</widget>
</child>
<child>
<widget class="GtkButton" id="exportok">
<property name="visible">True</property>
<property name="can_default">True</property>
<property name="has_default">True</property>
<property name="can_focus">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
<property name="focus_on_click">True</property>
<property name="response_id">-5</property>
<accessibility>
<atkproperty name="AtkObject::accessible_name" translatable="yes">Export</atkproperty>
</accessibility>
<signal name="clicked" handler="on_exportok_clicked" last_modification_time="Mon, 28 Feb 2005 11:26:59 GMT"/>
<child>
<widget class="GtkAlignment" id="alignment1">
<widget class="GtkAlignment" id="alignment2">
<property name="visible">True</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
@@ -233,13 +69,13 @@
<property name="right_padding">0</property>
<child>
<widget class="GtkHBox" id="hbox1">
<widget class="GtkHBox" id="hbox2">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">2</property>
<child>
<widget class="GtkImage" id="image1">
<widget class="GtkImage" id="image2">
<property name="visible">True</property>
<property name="stock">gtk-convert</property>
<property name="icon_size">4</property>
@@ -256,9 +92,9 @@
</child>
<child>
<widget class="GtkLabel" id="label3">
<widget class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="label" translatable="yes">_Export</property>
<property name="label">_Export</property>
<property name="use_underline">True</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -268,6 +104,10 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -289,6 +129,116 @@
<property name="pack_type">GTK_PACK_END</property>
</packing>
</child>
<child>
<widget class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="homogeneous">False</property>
<property name="spacing">6</property>
<child>
<widget class="GtkLabel" id="chartlabel">
<property name="width_request">304</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="label" translatable="yes">You can export the Chart of Accounts to a QSF XML file that can be imported into another GnuCash file or used in other programs.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.519999980927</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="chartnote">
<property name="width_request">304</property>
<property name="height_request">56</property>
<property name="visible">True</property>
<property name="label" translatable="yes">The Chart of Accounts includes the balance for each account, on the date specified. Note that future dates are not supported.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkLabel" id="processlabel">
<property name="width_request">296</property>
<property name="height_request">48</property>
<property name="visible">True</property>
<property name="label" translatable="yes">Select the date to use and click Export to choose the filename and location.</property>
<property name="use_underline">False</property>
<property name="use_markup">False</property>
<property name="justify">GTK_JUSTIFY_FILL</property>
<property name="wrap">True</property>
<property name="selectable">False</property>
<property name="xalign">0.5</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
<property name="width_chars">-1</property>
<property name="single_line_mode">False</property>
<property name="angle">0</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
<child>
<widget class="GtkCalendar" id="chart-calendar">
<property name="width_request">215</property>
<property name="height_request">180</property>
<property name="visible">True</property>
<property name="tooltip" translatable="yes">Future dates are not supported</property>
<property name="can_focus">True</property>
<property name="display_options">GTK_CALENDAR_SHOW_HEADING|GTK_CALENDAR_SHOW_DAY_NAMES</property>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">False</property>
<property name="fill">False</property>
</packing>
</child>
</widget>
<packing>
<property name="padding">0</property>
<property name="expand">True</property>
<property name="fill">True</property>
</packing>
</child>
</widget>
</child>
</widget>