Commit c27a1d24 authored by Maxime Doyen's avatar Maxime Doyen

5.0.3 release

parent 6a93fa3e
2015-06-06 Maxime Doyen
Made 5.0.3 release.
* change: win32: upgraded to libofx 0.9.9 again
* wish : #1460370 internal xfer credit should display from account
* wish : #1444792 wish: button to expand/collapse all in "Manage Categories"
* wish : #1429413 wish: thinking of icon credit vs debit card
* wish : #1416957 wish: add ability to modify transaction when posting from template
* bugfix: #1460390 Dont work: "Save file as". If I change the file name, it does not change.
* bugfix: #1434972 (libofx 0.8.3 bug) win32 : some OFX files leads to crash
* bugfix: #1424660 (libofx 0.8.3 bug) win32: memo field truncated
* bugfix: #1080093 (libofx bug 39) OFX imports incorrect date
2015-05-06 Maxime Doyen
Made 5.0.2 release.
......
1;-;Алименты
1;-;Автомобиль
2;-;Оплата автомобилей
2;-;Бензин
2;-;Техническое обслуживание
1;-;Банковские расходы
2;-;Проценты, уплаченные
2;-;Плата за обслуживание
1;-;Векселей
2;-;Кабельное / Спутниковое телевидение
2;-;Сотовый телефон
2;-;Сотовые
2;-;Электричество
2;-;Garbage и Recycle
2;-;Оздоровительный центр
2;-;Домой-владельца сборам
2;-;Членских взносов
2;-;Ипотечный оплаты
2;-;Природный газ / нефть
2;-;Газета
2;-;On-line/Internet службы
2;-;Другие платеж по кредиту
2;-;Аренда
2;-;Студент Жилищный кредит
2;-;Телефон
2;-;Вода и канализационные
1;-;Снятие наличных
1;-;Благотворительные пожертвования
1;-;Забота о детях
1;-;Детей / Игрушки
2;-;Финансовая поддержка
2;-;Дневные
1;-;Одежда
1;-;Платежи по кредитным картам / Переводы
1;-;Из столовой
1;-;Образование
2;-;Книги
2;-;Тарифы
2;-;Помощь в учебе
1;-;Развлечения
1;-;Тарифы
1;-;Питание
1;-;Подарки
1;-;Бакалейные товары
1;-;Медико-санитарных
2;-;Стоматологические
2;-;Глаз-санитарной помощи
2;-;Больница
2;-;Врач
2;-;Рецепты
1;-;Хобби / Досуг
2;-;Книги и журналы
2;-;Культурные мероприятия
2;-;Развлекательный
2;-;Фильмы и видео в аренду
2;-;Спортивные события
2;-;Спортивные товары
2;-;Кассеты и компакт-дисков
2;-;Игрушки и игры
1;-;Home Improvement
1;-;Домашнее хозяйство
2;-;Обстановка
2;-;Уборка помещений
2;-;Двор службы
1;-;Страхование
2;-;Автомобильные
2;-;Здоровье
2;-;Домой-владельца / арендатора
2;-;Жизнь
1;-;Работа расходов
2;-;Не возмещаются
2;-;Возмещение
1;-;Заем
2;-;Процентная
2;-;Проценты по ипотечным кредитам
2;-;Студенческий кредит Процентные
1;-;Разное
1;-;Ипотека / Аренда
1;-;Красота и здоровье
1;-;Pet помощи
2;-;Продукты питания
2;-;Принадлежности
2;-;Ветеринарного
1;-;Телефон / Wireless
1;-;Услуги / Членство
1;-;Налоги
2;-;Федерального подоходного налога
2;-;Федеральный подоходного налога предыдущим годом
2;-;Местный подоходный налог
2;-;Medicare налог
2;-;Прочие налоги
2;-;Налоги на недвижимость
2;-;Налог с продаж
2;-;Налога на социальное обеспечение
2;-;Налога на прибыль
2;-;Штата / провинции
1;-;Путешествия / Сезонный
2;-;Жилье
2;-;Поездки
1;-;Коммунальные услуги
1;+;Прибыль / Интерес
1;+;Доходы от инвестиций
2;+;Доход от прироста капитала
2;+;Дивиденды
2;+;Проценты
2;+;Освобожденных от налогообложения интересов
1;+;Не расходов
1;+;Прочие доходы
2;+;Финансовая поддержка Поступило
2;+;Сотрудник Stock Option
2;+;Подарки, полученные
2;+;Кредит Основные Поступило
2;+;Розыгрыши
2;+;Государственный и местный налог Возврат
2;+;Пособия по безработице
1;+;Пенсионный доход
2;+;Распределение ИРА
2;+;Пенсии и аннуитеты
2;+;Пособия по социальному обеспечению
1;+;Заработной платы и зарплаты
2;+;Бонус
2;+;Комиссия
2;+;Работодатель соответствия
2;+;Размер заработной платы
2;+;Чистые платный
2;+;Сверхурочные
1;-;Автомобили и мотоциклы
2;-;Выплаты по кредиту
2;-;Принадлежности
2;-;Стоянка и дорожный налог
2;-;Страхование
2;-;Техническое обслуживание
2;-;Топливо
1;-;Банковские расходы
2;-;Банковские начисления
2;-;Банковское обслуживание
2;-;Выплаченные проценты
2;-;Платежи по картам и кредитам
2;-;Различные расходы
1;-;Бытовые принадлежности
2;-;Мебель
2;-;Работы и инструменты
2;-;Электроприборы
1;-;Дети
2;-;Выплаты по кредиту на обучение
2;-;Детский сад и услуги няни
2;-;Оплата обучения
2;-;Питание в столовой
2;-;Различные расходы
2;-;Спортивная и культурная деятельность
2;-;Страхование
1;-;Домашние животные
2;-;Ветеринарные услуги
2;-;Корма
2;-;Различные расходы
1;-;Здоровье
2;-;Больница
2;-;Врачебные услуги
2;-;Добровольное медицинское страхование
2;-;Лекарства
2;-;Массаж
2;-;Офтальмология
2;-;Стоматология
1;-;Личная гигиена
2;-;Парикмахерская и косметология
2;-;Фитнесс и SPA
1;-;Налоги и сборы
2;-;Другие налоги
2;-;Местные налоги
2;-;Налог на имущество
2;-;Подоходный налог
2;-;Подоходный налог за прошлый год
2;-;Социальное страхование
1;-;Одежда
2;-;Аксессуары
2;-;Обувь
2;-;Спецодежда и обмундирование
1;-;Отдых, культура и спорт
2;-;Видеопрокат
2;-;Газеты и журналы
2;-;Игры
2;-;Кино и театр
2;-;Книги
2;-;Музеи и выставки
2;-;Покупка CD и DVD
2;-;Спортивная деятельность
2;-;Спортивные мероприятия
2;-;Спортивные товары
1;-;Отпуск и путешествия
2;-;Жильё
2;-;Питание
2;-;Проезд
2;-;Прокат автомобиля
2;-;Различные расходы
2;-;Страхование
2;-;Экскурсии
1;-;Питание
2;-;Бакалейные товары
2;-;Кафе и бары
2;-;Рестораны
1;-;Подписки и счета
2;-;Арендная плата
2;-;Водоснабжение
2;-;Выплаты по ипотечному кредиту
2;-;Выплаты по потребительскому кредиту
2;-;Домашнее хозяйство
2;-;Интернет
2;-;Кабельное и спутниковое телевидение
2;-;Мобильная связь
2;-;Отопление
2;-;Страхование жилья
2;-;Текущий ремонт
2;-;Телефон
2;-;Эксплуатационные затраты
2;-;Электричество
1;-;Разное
2;-;Благотворительные пожертвования
2;-;Гражданская ответственность
2;-;Подарки
2;-;Снятие наличных
1;-;Сбережения
2;-;Вклады и прочее
2;-;Страхование жизни
1;-;Служебные расходы
2;-;Возмещаемые
2;-;Невозмещаемые
1;-;Транспорт
2;-;Метро, автобусы
2;-;Поезда
2;-;Самолёты
2;-;Такси
1;+;Другие доходы
2;+;Выигрыши
2;+;Налоговый кредит
2;+;Наследство
2;+;Опцион на акции
2;+;Полученные подарки
2;+;Пособие по безработице
2;+;Производственная травма
2;+;Семейное пособие
2;+;Ссудный капитал
1;+;Жалование и заработная плата
2;+;Выплаты работодателя
2;+;Комиссионное вознаграждение
2;+;Начисленная сумма
2;+;Плата за сверхурочную работу
2;+;Различные надбавки
2;+;Сумма к выплате
1;+;Инвестиции
2;+;Дивиденды
2;+;Доход от сдачи жилья в аренду
2;+;Повышение стоимости недвижимости
2;+;Прирост капитала
2;+;Проценты
1;+;Пенсия
2;+;Дополнительные выплаты
2;+;Пенсия по возрасту
2;+;Социальные пособия
......@@ -43,6 +43,10 @@ homebank_SOURCES = \
hb-hbfile.h \
hb-import.c \
hb-import.h \
hb-import-ofx.c \
hb-import-qif.c \
hb-import-qif.h \
hb-import-csv.c \
hb-misc.c \
hb-misc.h \
hb-payee.c \
......@@ -59,8 +63,6 @@ homebank_SOURCES = \
hb-xml.h \
homebank.c \
homebank.h \
imp_qif.c \
imp_qif.h \
language.c \
language.h \
list_account.c \
......
......@@ -95,10 +95,11 @@ am_homebank_OBJECTS = dsp_account.$(OBJEXT) dsp_mainwindow.$(OBJEXT) \
gtk-dateentry.$(OBJEXT) hb-account.$(OBJEXT) \
hb-archive.$(OBJEXT) hb-assign.$(OBJEXT) hb-category.$(OBJEXT) \
hb-encoding.$(OBJEXT) hb-export.$(OBJEXT) hb-filter.$(OBJEXT) \
hb-hbfile.$(OBJEXT) hb-import.$(OBJEXT) hb-misc.$(OBJEXT) \
hb-payee.$(OBJEXT) hb-preferences.$(OBJEXT) \
hb-report.$(OBJEXT) hb-tag.$(OBJEXT) hb-transaction.$(OBJEXT) \
hb-xml.$(OBJEXT) homebank.$(OBJEXT) imp_qif.$(OBJEXT) \
hb-hbfile.$(OBJEXT) hb-import.$(OBJEXT) \
hb-import-ofx.$(OBJEXT) hb-import-qif.$(OBJEXT) \
hb-import-csv.$(OBJEXT) hb-misc.$(OBJEXT) hb-payee.$(OBJEXT) \
hb-preferences.$(OBJEXT) hb-report.$(OBJEXT) hb-tag.$(OBJEXT) \
hb-transaction.$(OBJEXT) hb-xml.$(OBJEXT) homebank.$(OBJEXT) \
language.$(OBJEXT) list_account.$(OBJEXT) \
list_operation.$(OBJEXT) list_topspending.$(OBJEXT) \
list_upcoming.$(OBJEXT) rep_balance.$(OBJEXT) \
......@@ -176,12 +177,15 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CATALOGS = @CATALOGS@
CATOBJEXT = @CATOBJEXT@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DATADIRNAME = @DATADIRNAME@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DEPS_CFLAGS = @DEPS_CFLAGS@
......@@ -192,6 +196,7 @@ ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
GMOFILES = @GMOFILES@
GMSGFMT = @GMSGFMT@
GREP = @GREP@
INSTALL = @INSTALL@
......@@ -199,6 +204,8 @@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
INSTOBJEXT = @INSTOBJEXT@
INTLLIBS = @INTLLIBS@
INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
INTLTOOL_MERGE = @INTLTOOL_MERGE@
INTLTOOL_PERL = @INTLTOOL_PERL@
......@@ -214,7 +221,9 @@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
MSGFMT_OPTS = @MSGFMT_OPTS@
MSGMERGE = @MSGMERGE@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
......@@ -228,6 +237,10 @@ PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
POFILES = @POFILES@
POSUB = @POSUB@
PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
......@@ -314,6 +327,10 @@ homebank_SOURCES = \
hb-hbfile.h \
hb-import.c \
hb-import.h \
hb-import-ofx.c \
hb-import-qif.c \
hb-import-qif.h \
hb-import-csv.c \
hb-misc.c \
hb-misc.h \
hb-payee.c \
......@@ -330,8 +347,6 @@ homebank_SOURCES = \
hb-xml.h \
homebank.c \
homebank.h \
imp_qif.c \
imp_qif.h \
language.c \
language.h \
list_account.c \
......@@ -491,6 +506,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-export.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-filter.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-hbfile.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-csv.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-ofx.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import-qif.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-import.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-misc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-payee.Po@am__quote@
......@@ -500,7 +518,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-transaction.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/hb-xml.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/homebank.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/imp_qif.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/language.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_account.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list_operation.Po@am__quote@
......
......@@ -932,7 +932,7 @@ gboolean result;
type = TRANSACTION_EDIT_INHERIT;
}
dialog = create_deftransaction_window(GTK_WINDOW(data->window), type);
dialog = create_deftransaction_window(GTK_WINDOW(data->window), type, FALSE);
result = GTK_RESPONSE_ADD;
while(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ADDKEEP)
{
......@@ -981,7 +981,7 @@ gboolean result;
old_txn = get_active_transaction(GTK_TREE_VIEW(data->LV_ope));
if(old_txn)
{
dialog = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_MODIFY);
dialog = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_MODIFY, FALSE);
data->cur_ope = da_transaction_clone (old_txn); // to keep old datas, just in case
deftransaction_set_transaction(dialog, data->cur_ope);
......
......@@ -1072,7 +1072,7 @@ gint account, count;
if(data->acc != NULL)
account = data->acc->key;
window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD);
window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD, FALSE);
count = 0;
while(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ADDKEEP)
{
......@@ -1381,6 +1381,59 @@ GtkTreeIter iter;
}
static void ui_mainwindow_scheduled_do_post(Archive *arc, gboolean doedit, gpointer user_data)
{
struct hbfile_data *data = user_data;
GtkWidget *window;
gint result;
Transaction *txn;
window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD, TRUE);
/* fill in the transaction */
txn = da_transaction_malloc();
da_transaction_init_from_template(txn, arc);
txn->date = scheduled_get_postdate(arc, arc->nextdate);
deftransaction_set_transaction(window, txn);
result = gtk_dialog_run (GTK_DIALOG (window));
DB( g_print(" - dialog result is %d\n", result) );
if(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ACCEPT)
{
deftransaction_get(window, NULL);
transaction_add(txn, NULL, txn->kacc);
GLOBALS->changes_count++;
scheduled_date_advance(arc);
DB( g_print(" - added 1 transaction to %d\n", txn->kacc) );
}
da_transaction_free(txn);
deftransaction_dispose(window, NULL);
gtk_widget_destroy (window);
}
static void ui_mainwindow_scheduled_editpost_cb(GtkWidget *widget, gpointer user_data)
{
struct hbfile_data *data = user_data;
Archive *arc = ui_mainwindow_scheduled_get_selected_item(GTK_TREE_VIEW(data->LV_upc));
if( (arc != NULL) )
{
ui_mainwindow_scheduled_do_post(arc, TRUE, data);
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL));
}
}
static void ui_mainwindow_scheduled_post_cb(GtkWidget *widget, gpointer user_data)
{
struct hbfile_data *data = user_data;
......@@ -1404,45 +1457,11 @@ struct hbfile_data *data = user_data;
}
else
{
GtkWidget *window = create_deftransaction_window(GTK_WINDOW(data->window), TRANSACTION_EDIT_ADD);
gint result;
Transaction *txn;
/* fill in the transaction */
txn = da_transaction_malloc();
da_transaction_init_from_template(txn, arc);
txn->date = scheduled_get_postdate(arc, arc->nextdate);
deftransaction_set_transaction(window, txn);
result = gtk_dialog_run (GTK_DIALOG (window));
DB( g_print(" - dialog result is %d\n", result) );
if(result == GTK_RESPONSE_ADD || result == GTK_RESPONSE_ACCEPT)
{
deftransaction_get(window, NULL);
transaction_add(txn, NULL, txn->kacc);
GLOBALS->changes_count++;
scheduled_date_advance(arc);
DB( g_print(" - added 1 transaction to %d\n", txn->kacc) );
}
da_transaction_free(txn);
deftransaction_dispose(window, NULL);
gtk_widget_destroy (window);
ui_mainwindow_scheduled_do_post(arc, FALSE, data);
}
ui_mainwindow_update(GLOBALS->mainwindow, GINT_TO_POINTER(UF_REFRESHALL));
}
}
......@@ -1478,13 +1497,15 @@ struct hbfile_data *data;
{
DB( g_print("archive is %s\n", arc->wording) );
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), TRUE);
}
else
{
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_skip), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_post), FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(data->BT_sched_editpost), FALSE);
}
}
......@@ -2699,8 +2720,8 @@ GtkWidget *label, *align, *widget;
static GtkWidget *ui_mainwindow_scheduled_create(struct hbfile_data *data)
{
GtkWidget *mainvbox, *hbox, *vbox, *sw, *tbar;
GtkWidget *label, *image, *align, *widget;
GtkWidget *mainvbox, *hbox, *vbox, *bbox, *sw, *tbar;
GtkWidget *label, *align, *widget;
GtkToolItem *toolitem;
mainvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
......@@ -2744,16 +2765,28 @@ GtkToolItem *toolitem;
tbar = gtk_toolbar_new();
gtk_toolbar_set_icon_size (GTK_TOOLBAR(tbar), GTK_ICON_SIZE_MENU);
gtk_toolbar_set_style(GTK_TOOLBAR(tbar), GTK_TOOLBAR_ICONS);
gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR);
gtk_box_pack_start (GTK_BOX (vbox), tbar, FALSE, FALSE, 0);
gtk_style_context_add_class (gtk_widget_get_style_context (tbar), GTK_STYLE_CLASS_INLINE_TOOLBAR);
bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
toolitem = gtk_tool_item_new();
gtk_container_add (GTK_CONTAINER(toolitem), bbox);
gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(toolitem), -1);
/*widget = gtk_tool_item_new ();
label = gtk_label_new("test");
gtk_container_add(GTK_CONTAINER(widget), label);
gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(widget), -1);*/
image = gtk_image_new_from_icon_name (ICONNAME_HB_SCHED_SKIP, GTK_ICON_SIZE_MENU);
widget = gtk_button_new_with_label(_("Skip"));
data->BT_sched_skip = widget;
gtk_box_pack_start (GTK_BOX (bbox), widget, FALSE, FALSE, 0);
widget = gtk_button_new_with_label(_("Edit & Post"));
data->BT_sched_editpost = widget;
gtk_box_pack_start (GTK_BOX (bbox), widget, FALSE, FALSE, 0);
widget = gtk_button_new_with_label (_("Post"));
data->BT_sched_post = widget;
gtk_box_pack_start (GTK_BOX (bbox), widget, FALSE, FALSE, 0);
/* image = gtk_image_new_from_icon_name (ICONNAME_HB_SCHED_SKIP, GTK_ICON_SIZE_MENU);
toolitem = gtk_tool_button_new(image, NULL);
data->BT_sched_skip = toolitem;
gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(toolitem), -1);
......@@ -2764,7 +2797,7 @@ GtkToolItem *toolitem;
data->BT_sched_post = toolitem;
gtk_toolbar_insert(GTK_TOOLBAR(tbar), GTK_TOOL_ITEM(toolitem), -1);
gtk_widget_set_tooltip_text(GTK_WIDGET(toolitem), _("Post"));
*/
return mainvbox;
......@@ -2896,8 +2929,9 @@ GtkWidget *bar, *label;
g_signal_connect (GTK_TREE_VIEW(data->LV_acc), "row-activated", G_CALLBACK (ui_mainwindow_onRowActivated), GINT_TO_POINTER(2));
g_signal_connect (gtk_tree_view_get_selection(GTK_TREE_VIEW(data->LV_upc)), "changed", G_CALLBACK (ui_mainwindow_scheduled_selection_cb), NULL);
g_signal_connect (G_OBJECT (data->BT_sched_post), "clicked", G_CALLBACK (ui_mainwindow_scheduled_post_cb), data);
g_signal_connect (G_OBJECT (data->BT_sched_skip), "clicked", G_CALLBACK (ui_mainwindow_scheduled_skip_cb), data);
g_signal_connect (G_OBJECT (data->BT_sched_editpost), "clicked", G_CALLBACK (ui_mainwindow_scheduled_editpost_cb), data);
g_signal_connect (G_OBJECT (data->BT_sched_post), "clicked", G_CALLBACK (ui_mainwindow_scheduled_post_cb), data);
widget = radio_get_nth_widget(GTK_CONTAINER(data->RA_type), 1);
if(widget)
......
......@@ -41,8 +41,9 @@ struct hbfile_data
GtkWidget *GR_upc;
GtkWidget *LV_upc;
GtkWidget *LB_maxpostdate;
GtkToolItem *BT_sched_post;
GtkToolItem *BT_sched_skip;
GtkWidget *BT_sched_skip;
GtkWidget *BT_sched_post;
GtkWidget *BT_sched_editpost;
GtkWidget *RA_type;
......
......@@ -792,7 +792,9 @@ guint event_time;
event_device = gdk_event_get_device (event);
assoc_device = gdk_device_get_associated_device (event_device);
if (gdk_device_get_source (event_device) == GDK_SOURCE_KEYBOARD) {
event_time = gdk_event_get_time (event);
if (gdk_device_get_source (event_device) == GDK_SOURCE_KEYBOARD) {
keyboard_device = event_device;
pointer_device = assoc_device;
} else {
......@@ -900,7 +902,7 @@ static gint
gtk_date_entry_popup_button_press (GtkWidget * widget, GdkEvent * event, gpointer user_data)
{
GtkDateEntry *dateentry = user_data;
GtkDateEntryPrivate *priv = dateentry->priv;
//GtkDateEntryPrivate *priv = dateentry->priv;
GtkWidget *child;
DB( g_print("\n[dateentry] popup_button_press\n") );
......
......@@ -333,8 +333,8 @@ GList *lcat, *list;
flt->option[FILTER_STATUS] = 0;
flt->reconciled = TRUE;
flt->cleared = TRUE;
flt->forceadd = FALSE;
flt->forcechg = FALSE;
flt->forceadd = TRUE;
flt->forcechg = TRUE;
flt->option[FILTER_CATEGORY] = 0;
lcat = list = g_hash_table_get_values(GLOBALS->h_cat);
......
/* HomeBank -- Free, easy, personal accounting for everyone.
* Copyright (C) 1995-2015 Maxime DOYEN
*
* This file is part of HomeBank.
*
* HomeBank 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.
*
* HomeBank 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, see <http://www.gnu.org/licenses/>.
*/
#include "homebank.h"
#include "hb-import.h"
#include "hb-import-qif.h"
/****************************************************************************/
/* Debug macros */
/****************************************************************************/
#define MYDEBUG 0
#if MYDEBUG
#define DB(x) (x);
#else
#define DB(x);
#endif
/* our global datas */
extern struct HomeBank *GLOBALS;
extern struct Preferences *PREFS;
GList *homebank_csv_import(gchar *filename, ImportContext *ictx)
{
GIOChannel *io;
GList *list = NULL;
static gint csvtype[7] = {
CSV_DATE,
CSV_INT,
CSV_STRING,
CSV_STRING,
CSV_STRING,
CSV_DOUBLE,
CSV_STRING,
};
DB( g_print("\n[import] homebank csv\n") );
io = g_io_channel_new_file(filename, "r", NULL);
if(io != NULL)
{
gchar *tmpstr;
gint io_stat;
gboolean valid;
gint count = 0;
gint error = 0;
Account *tmp_acc;
Payee *payitem;
Category *catitem;
GError *err = NULL;
gchar *accname = g_strdup_printf(_("(account %d)"), da_acc_get_max_key() + 1);
tmp_acc = import_create_account(accname, NULL);
g_free(accname);
if( ictx->encoding != NULL )
{
g_io_channel_set_encoding(io, ictx->encoding, NULL);
}
for(;;)