2016-02-25 Murray Cumming 1.31.2 2016-02-25 Murray Cumming Export format dialog: Make the TreeView expand so it's actually visible. This must have been wrong for quite a long time, since GTK+ changed its expand system. Bug #762108 (m.rick.mac) 2016-02-25 Murray Cumming Fix silly code after a return. 2016-02-25 Murray Cumming DialogImageLoadProgress::get_image_data(): Give ownership of the GdaBinary. This seems to fix the crash when choosing an image repeatedly: https://bugzilla.gnome.org/show_bug.cgi?id=761396#c13 2016-02-25 Murray Cumming Updated .gitignore. 2016-02-25 Murray Cumming Added test_imageglom_widget. 2016-02-25 Murray Cumming tests: Move the nasty UI test into test/ui. 2016-02-25 Murray Cumming ImageGlom: Avoid copy/paste of code to clear data. 2016-02-25 Murray Cumming C++14: ImageGlom: Use std::unique_ptr to simplify code. 2016-02-25 Murray Cumming ImageGlom: Do not instantiate unnecessary widgets. 2016-02-25 Murray Cumming ImageGlom: Put EvView in ScrolledWindow to avoid crash. Because recent versions of libevince-view have an assert that crashes the application: https://bugzilla.gnome.org/show_bug.cgi?id=761396#c12 2016-02-25 Murray Cumming Add -Wformat=2 to --enable-warnings=fatal. It seems useful. 2016-02-25 Marek Černocký Updated Czech translation 2016-02-21 Мирослав Николић Updated Serbian translation 2016-02-10 Murray Cumming BusyCursor: Correct a wrong null check. I guess this is why I haven't been seeing the busy cursor recently. Found by clang-tidy. 2016-02-10 Murray Cumming Add null checks to silence clang-tidy. 2016-02-10 Murray Cumming Minor const improvements. 2016-02-10 Murray Cumming Added a comment. 2016-02-10 Murray Cumming Add and use copy_with_cloned_items(). 2016-02-10 Murray Cumming And and use Utils::copy(). Doing that just to unconst the members is still awful, but at least this is explicit about what we are doing. 2016-02-10 Murray Cumming Add and use add_unique() to simplify code. 2016-02-09 Murray Cumming Remove duplicate line of code. 2016-02-09 Murray Cumming Correct doxygen @param comments. 2016-02-09 Murray Cumming Remove return in void method. Why didn't the compiler catch this? 2016-02-09 Murray Cumming Use "\n" instead of std::endl. See https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#sl50-avoid-endl 2016-02-09 Murray Cumming Dialog_ImportCsv: Replace get_parser() with parser_fetch_next_row(). So we can use std::unique_ptr<> instead of std::shared_ptr<> for the parser member variable, and generally make the APIs slightly less tightly bound. 2016-02-09 Murray Cumming CsvParser: Use unique_ptr<> for buffer instead of shared_ptr<>. Because nothing shares it. 2016-02-09 Murray Cumming C+11: Use of override keyword on destructors. Found by clang-tidy's misc-use-override check. 2016-02-09 Murray Cumming C++11: More use of auto. 2016-02-08 Murray Cumming C++11: tests: More range-based for loops. With help from clang-modernize-3.7. 2016-02-08 Murray Cumming C++11: More range-based for loops. With help from clang-modernize-3.7. 2016-02-07 Murray Cumming DbUtils::drop_table(): Update the meta store too. Otherwise, we still get the dropped table name when asking libgda for a list of tables. This caused Glom to complain that a previously-deleted table name already existed when the user tried to recreate it. Bug #754645 (m.rick.mac) 2016-02-07 Murray Cumming Box_Tables: Table deletion: Actually let the user cancel the dialog. 2016-02-07 Murray Cumming Correct a comment. 2016-02-07 Murray Cumming PostgresSelf: Pass --locale=C to initdb. So we always get the same result regardless of the current locale, because the "data" shouldn't really be locale-specific. This has disadvantages for collation but we also want the database to be fairly portable across environments. This might help this bug: https://bugzilla.gnome.org/show_bug.cgi?id=761372 2016-02-07 Murray Cumming Surround all Glib::filename_from_uri() calls with try/catch. Because this can fail in the real world and it would be nice to know as soon as possible: https://bugzilla.gnome.org/show_bug.cgi?id=761373 2016-02-07 Daniel Mustieles Updated Spanish translation 2016-02-06 Murray Cumming C++11: Replace push_back() with emplace_back(). 2016-02-05 Murray Cumming C++11: Replace push_front() with emplace_front(). 2016-02-05 Murray Cumming ComboChoices_WithTreeModel: Use unique_ptr<> for columns. 2016-02-05 Murray Cumming Replace ScopedArchivePtr with std::unique_ptr. 2016-02-05 Murray Cumming test_canvas_editable: Use unique_ptr<> instead of naked new. 2016-02-05 Murray Cumming Frame_Glom: Use std::unique_ptr<> for dialogs instead of naked new. 2016-02-05 Murray Cumming AppWindow: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming LayoutWidgetUtils: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming LayoutWidgetMenu: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming ImageGlom: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming AddDel: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming Canvas_PrintLayout: Use std::unique_ptr<> instead of naked new. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming NotebookLabel: Use std::unique_ptr<> for the menu, instead of new and delete. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming Window_PrintLayout_Edit: Use std::unique_ptr<> for the menu, instead of new and delete. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming Window_RelationshipsOverview: Use std::unique_ptr instead of a naked new. 2016-02-05 Murray Cumming Box_Data_Calendar_Related: Use std::unique_ptr<> for the menu, instead of new and delete. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming Db_AddDel: Use std::unique_ptr<> for the menu, instead of new and delete. I am not very happy with passing the raw pointer to gtkmm's attach_to_widget(), but that seems to be the normal use of unique_ptr<>::operator*() and unique_ptr<>::get(), as long as we don't expect the receiving API to take any ownership. 2016-02-05 Murray Cumming Dialog_ImportCSV: Some use of std::unique_ptr<> instead of naked news. 2016-02-05 Murray Cumming Dialog_ImportCSV::get(): Correct the return type. 2016-02-05 Murray Cumming PyGlomRelated: Use unique_ptr::release() instead of get. To avoid a double delete. 2016-02-04 Murray Cumming PyGlomRelated: A small use of unique_ptr<> to avoid a naked new. 2016-02-04 Murray Cumming ConnectionPool: Use std::shared_ptr<> for m_field_types. 2016-02-04 Murray Cumming test_avahi_publisher: Use std::unique_ptr<>. 2016-02-04 Murray Cumming ConnectionPool: Correct curious uses of std::shared_ptr<>. 2016-02-04 Murray Cumming Field::sql_find_operator(): Add a fallback return. The (now C++14) compiler seems to want this now, even though our default switch case should be enough. 2016-02-04 Murray Cumming ConnectionPool: Use std::shared_ptr<> for m_instance. 2016-02-04 Murray Cumming LayoutItem: Use std::unique_ptr<> for m_positions. 2016-02-04 Murray Cumming Use C++14. So we can use std::make_unique(), for instance. 2016-02-04 Murray Cumming Document: Remove signal_forget(). This shouldn't be necessary anymore. We reset the document in all views before we discard the document from the application. If there are any circular references we should deal with them via weak_ptr. 2016-02-04 Murray Cumming Use std::shared_ptr<> for Document. 2016-02-04 Murray Cumming Dialog_Layout_Details::save_to_document(): Support top-level calendar portal too. Though I don't think the rest of the code supports this yet. 2016-01-31 Piotr Drąg Updated Polish translation 2016-01-29 Mario Blättermann Updated German translation 2016-01-28 Murray Cumming Dialog_Layout_Details: Handle top-level notebooks. Instead of just assuming that all top-level groups are standard groups. They could be derived groups, such as notebooks. Bug #759511 2016-01-28 Murray Cumming Box_Data_Details/FlowTableWithFields: Allow notebooks at the top-level. And portals too. By not just assuming that the top-level groups are normal groups. They can be derived groups, such as notebooks. Bug #759511 2016-01-27 Murray Cumming Box_DataDetails::fill_from_database(): Correctly find the primary key. This was a regression caused by use of auto in this commit: https://git.gnome.org/browse/glom/commit/glom/mode_data/box_data_details.cc?id=37a00864fc3fa2f96b75ebb83f97a61628592df2 2016-01-27 Murray Cumming fill_from_database(): Add a sanity-check for the primary key index. 2016-01-26 Piotr Drąg Desktop file: Remove full stop from the comment. To match other .desktop files in GNOME. 2016-01-26 Piotr Drąg Desktop file: Make keywords translatable. Also adds a translator comment to avoid broken translations. 2016-01-26 Murray Cumming Replace deprecated Glib::ScopedPtr. 2016-01-26 Murray Cumming Desktop file: Add some keywords. As requested by Richard Hughes for AppData. 2016-01-25 Richard Hughes Add a missing tag to the AppData file 2016-01-25 Richard Hughes Add a missing tag to the AppData file 2016-01-24 Mario Blättermann Updated German doc translation 2016-01-18 Daniel Mustieles Updated Spanish translation 2016-01-07 Murray Cumming C++11: Use auto for Glib::RefPtr<>s. 2016-01-07 Murray Cumming Fix typos 2016-01-07 Murray Cumming C++11: Use auto for shared_ptr<>. 2016-01-06 Murray Cumming Document: Use unique_ptr<> instead of Glib::ScopedPtr<>. And new instead of g_malloc. 2016-01-06 Murray Cumming C++11: BusyCursor: Delegate a constructor instead of sharing init(). 2016-01-05 Murray Cumming Remove unnecessary init() methods. 2016-01-05 Murray Cumming Remove all empty destructors. 2016-01-05 Murray Cumming Replace find_if_layout_item_field_is_same_field_exists() with find_*_exists(). Because we don't actuall use the iterator other than to check it against end(). 2016-01-05 Murray Cumming C+11: Use auto for iterator types. 2016-01-05 Murray Cumming Add and use find_if_same_name_exist(). To replace use of find_if_same_name() != container.end(). 2016-01-05 Murray Cumming Add and use find_if_exists(container, callable). To replace lengthy use of std::find_if(container.begin(), container.end(), callable) != container.end(). It looks like something like this will be in the standard C++ library at some point, but I don't want to wait. 2016-01-05 Murray Cumming Add and use find_if(container, callable). To replace lengthy use of std::find_if(container.begin(), container.end(), callable). It looks like something like this will be in the standard C++ library at some point, but I don't want to wait. 2016-01-05 Murray Cumming Add and use find(container, element). To replace lengthy use of std::find(container.begin(), container.end(), element) != container.end()). It looks like something like this will be in the standard C++ library at some point, but I don't want to wait. 2016-01-05 Murray Cumming Add and use find_exists(). To replace lengthy use of std::find(container.begin(), container.end(), element) != container.end()). It looks like something like this will be in the standard C++ library at some point, but I don't want to wait. 2016-01-04 Murray Cumming Use AX_CXX_COMPILE_STDCXX() instead of AX_CXX_COMPILE_STDCXX_11(). So we are ready to use C++14 soon. 2016-01-04 Rafael Fontenelle Updated Brazilian Portuguese translation 2016-01-04 Rafael Fontenelle Updated Brazilian Portuguese translation (cherry picked from commit df7e2a00eee87295fc938feb170fc19e96379658) 2016-01-03 Mario Blättermann Updated German translation 2016-01-03 Mario Blättermann Updated German translation 2016-01-03 Mario Blättermann Updated German translation 2016-01-03 Mario Blättermann Updated German translation 2015-12-30 Мирослав Николић Updated Serbian translation 2015-12-28 Mario Blättermann Updated German doc translation 2015-12-24 Marek Černocký Updated Czech translation 2015-12-21 Piotr Drąg Updated Polish translation 2015-12-21 Piotr Drąg Add Polish translation 2015-12-19 Pedro Albuquerque Updated Portuguese translation 2015-12-18 Murray Cumming connection_request_password_and_choose_new_database_name(): Re-ask password. If we are connecting to a central server, so we need to ask for a password, ask for it again if we fail to get an unused database name, which can only happen if there is a connection error. 2015-12-18 Murray Cumming connection_request_password_and_choose_new_database_name(): Simplify more. Extract the code to instantiate the connection dialog. 2015-12-18 Murray Cumming connection_request_password_and_choose_new_database_name(): Simplify. Use DbUtils::ustring get_unused_database_name(), which also has the advantage that it is tested by unit tests. 2015-12-18 Murray Cumming Whitespace fixes. 2015-12-16 Murray Cumming xdg-app-builder manifest: Add gettext Because the base environment (or GNOME runtime?) doesn't have libgettextpo. 2015-12-16 Murray Cumming xdg-app-builder manifest: Update the README. 2015-12-16 Murray Cumming xdg-app-builder manifest: libgda: Disable more. 2015-12-16 Murray Cumming xdg-app-builder manifest: mysql: Cleanup more. 2015-12-16 Murray Cumming xdg-app-builder evince: Disable more and cleanup more. 2015-12-16 Murray Cumming xdg-app-builder gtksourceview: Disable more of the build. 2015-12-16 Murray Cumming xdg-app-builder manifest: avahi: Disable more of the build. 2015-12-16 Murray Cumming xdg-app-builder manifest: Use --disable-gtk-doc Instead of --disable-documentation, which is used by *mm projects. 2015-12-15 Murray Cumming xdg-app-builder manifest: Use --share=network with finish-args And remove other stuff that we don't need. 2015-12-15 Murray Cumming Fix an ouput->output typo in a translatable string. And in some variable names. Bug #754838 (Anders Jonsson) 2015-12-15 Murray Cumming Postgres::attempt_connect(): Specify a timeout. Via the CONNECT_TIMEOUT paramater for libgda's cnc_string, as listed by this command-line command: gda-sql-5.0 -L PostgreSQL 2015-12-14 Murray Cumming xdg-app-builder: Remove now-unused python patches. 2015-12-14 Murray Cumming xdg-app-builder: Build from git master. 2015-12-14 Murray Cumming xdg-app-builder: Build from the top-level So we can build from git too. 2015-12-14 Murray Cumming xdg-app-builder mainfest: boost: Specify python 3.3, not 3.3m. Because the boost build complains about anything but numbers. 2015-12-13 Necdet Yücel Added Turkish translation 2015-12-13 Necdet Yücel Added Turkish translation 2015-12-13 Murray Cumming xdg-app-builder manifest: cleanup more bin utils. 2015-12-13 Murray Cumming xdg-app-builder manifest: cleanup more mysql stuff. 2015-12-13 Murray Cumming xdg-app-builder manifest: avahi: discard /bin Because I don't think we need the avahi utilities. 2015-12-13 Murray Cumming xdg-app-builder manifest: mysql: discard /bin Because we want mysql client library, not the executables, because Glom doesn't support self-hosting of MySQL. 2015-12-13 Murray Cumming Fix tiny typo in comment. 2015-12-13 Necdet Yücel Added Turkish translation 2015-12-13 Necdet Yücel Added Turkish translation 2015-12-13 Necdet Yücel Updated Turkish translation 2015-12-13 Murray Cumming xdg-app-builder: Tell boost python about /usr/include/python3.3m Because it insists on only trying to use /usr/include/python3.3, which doesn't exist. Real distros generally have a symlink, probably because nobody can reasonably be expected to fix the boost build system. 2015-12-12 Murray Cumming xdg-app-builder manifest: libgda: Use --enable-gi-system-install=no . So it install the .gir files under /app , not under /usr . The ones under /app will be used because xdg-app sets GI_TYPELIB_PATH . 2015-12-12 Murray Cumming xdg-app-builder manifest: Don't install Python. Use the one already there. 2015-12-12 Murray Cumming xdg-app-builder manifest: Add patch to install python library as writable. So that xdg-app-builder can strip the library after it is installed. 2015-12-12 Murray Cumming xdg-app-builder manifest: glom: Use --disable-documentation So we don't need the sphinx documentation build tool. 2015-12-12 Murray Cumming xdg-app-builder manifest: boost: Tell it what python to use. Otherwise it just uses the one in /usr, even if you ask it to use a version of python that is not there. 2015-12-12 Murray Cumming xdg-app-builder manifest: Add a patch for python to add a symlink. Because boost expects to find python in /python3.5/, instead of /python3.5m/ (and the boost build doesn't even bother checking when guessing that path). Distro packages also add this symlink in their packages. 2015-12-12 Murray Cumming xdg-app-builder manifest: Use newer glom Which has fixes to how it checks for Boost::Python with more recent, less forgiving, build tools. 2015-12-12 Murray Cumming xdg-app-builder manifest: Added Python. Although it seems to be available by default, maybe via the GNOME runtime, it's shared library and headers are not. 2015-12-11 Murray Cumming xdg-app-builder: Try to add boost python. 2015-12-11 Murray Cumming Move xdg-app-builder files into a sub-directory Now that we need other files too (patches and extra files). 2015-12-10 Murray Cumming xdg-app-builder manifest: Glom: Help it find python. 2015-12-10 Murray Cumming xdg-app-builder manifest: Add mysql (needed for Glom). Specifically, Glom needs this to have been built before libgda builds. Nobody really uses the libgda support in Glom, but it's nice to have a standard build. 2015-12-10 Murray Cumming xdg-app-builder: avahi: Disable qt, python, and mono API. And add a patch to make the gtk stuff build. 2015-12-10 Murray Cumming xdg-app-builder manifest: avahi: Pass --with-distro=none. Using none should be OK because we don't want the init scripts, etc, anyway. 2015-12-10 Murray Cumming xdg-app-builder manifest: Add postgresql 2015-12-10 Murray Cumming xdg-app-builder manifest: Add avahi (for libepc). 2015-12-10 Murray Cumming xdg-app-builder manifest: Use --disable-introspection with libgda. To work around this build error: /usr/bin/install -c -m 644 Gda-5.0.gir '/usr/share/gir-1.0' /usr/bin/install: cannot create regular file ‘/usr/share/gir-1.0/Gda-5.0.gir’: Read-only file system Makefile:1110: recipe for target 'install-girDATA' failed make[3]: *** [install-girDATA] Error 1 2015-12-10 Murray Cumming Add xdg-app-builder manifest file. 2015-12-10 Murray Cumming .desktop file: Remove now useless X-Osso-Service entry. 2015-12-10 Murray Cumming Application: Change application ID to org.glom.Glom. Instead of org.glom.application. This is more generically correct and will look more sane when used in an xdg-app manifest.json file. 2015-12-05 Pedro Albuquerque Updated Portuguese translation 2015-12-04 Daniel Mustieles Updated Spanish translation 2015-11-28 Piotr Drąg AppData: Mark strings for translation. 2015-11-28 Murray Cumming AppData: Add more screenshots. 2015-11-28 Murray Cumming AppData: Use larger screenshot image. Because appstream-util validate said its width was too small. 2015-11-28 Murray Cumming appdata: Use and tags. This also seems to be the new way to do things. 2015-11-28 Murray Cumming appdata: Add and tags. These seem to be new since I created this file. 2015-11-28 Murray Cumming appdata file: Added section, at request of Richard Hughes.