2.12.1: 2009-10-02 Murray Cumming * glom/libglom/utils.h|cc]: build_sql_select_fields_to_get(): Removed the unused extra_join parameter. * glom/base_db.cc: Adapted. 2009-10-02 Murray Cumming Related Records: Fix doubly-related records portals, such as a list of an Artist's publishers (via their albums). * glom/libglom/utils.[h|cc]: build_sql_select_with_where_clause(): Move some code into build_sql_select_fields_to_get(), so we can get the list of fields to get without the rest of the SQL. * glom/base_db.cc: set_found_set_where_clause_for_portal(): Use build_sql_select_fields_to_get() to GROUP BY the full field list instead of just the primary key, as required by recent PostgreSQL, and probably by the SQL specification. We should investigate SELECT DISTINCT again to simplify this. 2009-10-02 Michael Hasselmann Import: Cleanup, added comments. 2009-10-01 Michael Hasselmann Import: Made import working again, changed import logic * glom/import_csv/csv_parser.[h|cc] (fetch_next_row): This method allows iterating over the parser's cache without the need for a max row/column count. Potential issue with valid empty rows during import needs to be fixed. * glom/import_csv/dialog_import_csv.[h|cc]: Removed logic based on row counts. It turned out that most places didn't need access to get_row_count() anyway. * glom/import_csv/dialog_import_csv_progess.cc: Switched import to use the parser's new fetch_next_row() API. Not tested for large files yet. 2009-09-29 Murray Cumming Doubly-related Records: Correct the SQL. * glom/base_db.cc: set_found_set_where_clause_for_portal(): For doubly-related records, use the correct relationship for the GROUP BY to avoid a SQL error about a non-existant field. We must have been lucky before. However, we now need to fix the SQL error (maybe new in a recent PostgreSQL version) about not mentioning all viewed fields in the GROUP BY. 2009-09-29 Murray Cumming Design: Related Records Portal: Prevent use of inappropriate relationships. * glom/mode_design/layout/dialog_layout_list_related.cc: on_combo_relationship_changed(): Do not allow the related record to show relationships that would require duplicate values in unique fields to show multiple records. Noticed by Alessio C. 2009-09-29 Murray Cumming LayoutGroup: Added accessors for columns count, hiding the member variable. * glom/libglom/data_structure/layout/layoutgroup.[h|cc]: Made m_columns_count private and added get/set_columns_count() so I can see when this is changing. * glom/libglom/data_structure/layout/layoutgroup.h: * glom/libglom/document/document.cc: * glom/mode_data/flowtablewithfields.cc: * glom/utility_widgets/dialog_flowtable.cc: Adapted. 2009-09-29 Murray Cumming Maemo: Actually allow details to be opened. * glom/utility_widgets/db_adddel/db_adddel.cc: get_item_selected(): Use Hildon::TouchSelector::get_selected() instead of get_active() so it actually works for rows other than the first one. See hildon bug https://bugs.maemo.org/show_bug.cgi?id=4640, though the error might be in our maemomm C++ code to work around that. 2009-09-28 Murray Cumming Maemo: Find: Show the quickfind. * glom/frame_glom.cc: Constructor: On Maemo, put the quickfind widgets in the separate find window. 2009-09-28 Murray Cumming Create QuickFind buttons in code, instead of Glade. * glom/frame_glom.cc: * glom/glom.glade: Create the QuickFind widgets in code instead of in Glade so we can adapt them for Maemo and put them in the separate Find window. 2009-09-28 Murray Cumming Initial dialog: Expand the network item. * glom/dialog_existing_or_new.cc: Constructor: Expand the Network item, because it helps to explain what it is, particularly on Maemo where there are no treeview row arrows. 2009-09-28 Murray Cumming * glom/frame_glom.[h|cc]: Maemo: Show the Find UI in a separate window. 2009-09-28 Murray Cumming Maemo: Find: Use only the details view. * glom/mode_find/notebook_find.[h|cc]: Hide the list view (and tabs) on Maemo. This needs to be a separate window too. 2009-09-28 Murray Cumming Maemo: Show the table name in the AppMenu. Added a Find Button. * glom/application.cc: update_window_title(): Update the picker button here too. init_menus(): Add a Find button for the AppMenu. * glom/navigation/maemo/pickerbutton_table.cc: set_table_name(): Actually set the row as active. * glom/dialog_existing_or_new.cc: Make sure the first row is visible, even on Maemo. Otherwise it looks strange. 2009-09-28 Murray Cumming Initial dialog: Expand the network item. * glom/dialog_existing_or_new.cc: Constructor: Expand the Network item, because it helps to explain what it is, particularly on Maemo where there are no treeview row arrows. 2009-09-28 Murray Cumming Fix a crash. * glom/dialog_existing_or_new.cc: Move some assertions so this works again in non-client-only mode. 2009-09-28 Murray Cumming client-only mode: Ifdef out unused code. * glom/dialog_existing_or_new.[h|cc]: Ifdef out unused code for the new document notebook tab in client-only mode. 2009-09-28 Murray Cumming Maemo: Removed icons from dialogs. * glom/glom.glade: Comment out icons in our maemo5 branch. 2009-09-28 Murray Cumming Client-only mode: Change the initial dialog label. * glom/dialog_existing_or_new.cc: Constructor: Change the label text if in client-only mode, to avoid mentioning creation of documents. 2009-09-25 Murray Cumming Fix the build with gtkmm < 2.18. * glom/utility_widgets/flowtable.cc: Correct the use of GTKMM_MINOR_VERSION to fix the build with older gtkmm versions. 2009-09-25 Michael Hasselmann Import: More code cleanup in tests * glom/import_csv/csv_parser.cc (set_file_and_start_parsing): Fail on empty file uri. * tests/import/*: Removed the ugly mainloop singleton, among other cleanups. 2009-09-25 Murray Cumming Cleanup. * glom/glom.glade: Really revert a bad merge from the maemo5 branch. * glom/libglom/connectionpool_backends/postgres_self.cc: Do not have actual newlines in string literals. 2009-09-25 Murray Cumming Fix the build with gtkmm < 2.18. * glom/utility_widgets/flowtable.cc: Correct the use of GTKMM_MINOR_VERSION to fix the build with older gtkmm versions. 2009-09-25 Murray Cumming Import tests: Fixed. * tests/import/utils.[h|cc]: run_parser_from_buffer(): Added a version that takes a std::string, to make the common case more robust. * tests/import/test_parsing.cc: * tests/import/test_signals.cc: Fix the tests by not incorrectly taking the length of the raw arrays, which caused the temp files to contain garbage. 2009-09-25 Murray Cumming Import tests: Handle encoding errors. * tests/import/utils.cc: Handle signal_encoding_error too, because this is one way that the parser can stop. Increase the timeout because an infinite loop is unlikely (and not currently happening). 2009-09-25 Murray Cumming tests/import/: Small cleanup. * tests/import/test_parsing.cc: * tests/import/utils.[h|cc]: Use a sigc::slot instead of the ugly (because not typedefed) function pointer type. 2009-09-25 Murray Cumming Removed some debug output. * glom/libglom/data_structure/glomconversions.cc: parse_time(): * tests/test_parsing_time.cc: Removed debug output. 2009-09-25 Michael Hasselmann Import: Changed the signature of line_scanned handler * glom/import_csv/dialog_import_csv.[h|cc]: Changed the signare of on_parser_line_scanned, to use CsvParser::type_row_strings. It does not change anything, as the handler didn't even use the parameters. Import: Fixed tests to fit new parser API * glom/import_csv/csv_parser.[h|cc]: Added a finished_parsing signal since the max_row count logic is flawed (https://bugzilla.gnome.org/show_bug.cgi?id=588233#c16). Also moved common parts of on_stream_read(.) (now on_buffer_read(.)) into copy_buffer_and_continue_reading(.), to avoid copy'n'paste bugs. * tests/import/utils.[h|cc]: Added mainloop functionality to trigger the idle parse sequence of the CsvParser for the testcases. * tests/import/test_[parsing,signals].cc: Fixed the tests to fit new parser API.