Commit Graph

471 Commits

Author SHA1 Message Date
6e736c9b87 Add AgChart::note property 2014-08-11 22:19:07 +02:00
8b5f99d5b4 Rename chart_changed() to ag_window_chart_changed()
Just to follow naming conventions
2014-08-11 22:19:06 +02:00
1ae1972cd0 Remove chart name when going back to chart list
Fixes #47
2014-08-11 01:26:58 +02:00
142284dada Delete selected charts 2014-08-11 01:01:04 +02:00
4a42ae40b6 Implement view-selection-changed signal handler 2014-08-11 01:01:04 +02:00
f44c5b8c86 Add selection mode button and selection toolbar 2014-08-11 01:01:04 +02:00
e0b4d30b07 Implement chart deletion from database 2014-08-11 01:01:04 +02:00
88fb58a527 Import Placidus charts 2014-08-10 14:31:38 +02:00
fee23777f6 Add Placidus import to the app menu 2014-08-10 14:31:38 +02:00
6e847d83ed Create .hor filter for Placidus files 2014-08-10 14:31:38 +02:00
ea3389aadd Define gdouble endianness conversion macros
GLib doesn’t have these for some reason. These are protected in case a
later version of GLib defines them, too.
2014-08-10 14:31:38 +02:00
a30d19d1bb Generalize chart loading functions
* ag_app_import_chart() became ag_app_import_file(), and has the potential
  to load any file type
* ag_app_import_cb() so it can open multiple file types
* ag_chart_load_from_file() is now called ag_chart_load_from_agc()
2014-08-10 14:31:38 +02:00
a3927458b4 Make ag_app_buttoned_dialog()'s first parameter nullable 2014-08-10 09:46:14 +02:00
49c41ca7d7 Refactor ag_window_recalculate_chart() to recalc if edit tab has changed 2014-08-06 00:04:59 +02:00
ffde691aef Rename recalculate_chart() to ag_window_recalculate_chart()
This is simply to follow naming conventions
2014-08-06 00:04:59 +02:00
5e97af76ea Fix tab_edit widget’s name in .ui file 2014-08-06 00:04:34 +02:00
aefbb8e4fa ag_db_save_identical can now compare based only on chart-related data
This way the chart won’t get recalculated on a name change.
2014-08-05 23:45:16 +02:00
881b58080a Add ag_house_system_id_to_nick() and ag_house_system_nick_to_id()
This is to convert between house system ID (required for chart generating)
and GEnum nick (required for saving).
2014-08-04 00:31:25 +02:00
3ad29b3f2d Moved to gtk_application_set_accels_for_action() API
... and with that, to a GTK+ 3.12 requirement.
2014-08-03 23:32:17 +02:00
e3b109819e Merge branch 'master' into chart-db 2014-08-03 11:15:29 +02:00
803b0211dd Using g_clear_object() instead of g_object_unref() in ag_window_set_chart 2014-08-03 11:12:29 +02:00
0d1358303a ag_app_import_chart() now saves the chart immediately after importing 2014-08-03 11:03:23 +02:00
35c7d32636 ag_window_save_chart() now creates an AgDbSave struct for a new chart
Its db_id is -1, thus considered unsaved.
2014-08-03 11:02:52 +02:00
069ce4574f ag_window_can_close() now checks for unsaved (db_id == -1) charts, too 2014-08-03 10:58:19 +02:00
b0e7daeec8 ag_db_save_chart() now sets save_data->db_id after a successful INSERT 2014-08-03 10:57:05 +02:00
c871246d58 Add refresh button to chart list 2014-08-02 21:55:17 +02:00
2f9637e698 Add error checking to ag_window_can_close() 2014-08-02 21:41:30 +02:00
1049b933e8 ag_window_back_action() goes to list only if the chart is saved
The user is prompted if they actually want to save or discard
2014-08-02 20:00:56 +02:00
8d76bdf1ef ag_window_new_chart_action() goes to chart tab if chart was not correctly closed 2014-08-02 20:00:24 +02:00
f1fba37d0d ag_window_save_action() now only saves if needed 2014-08-02 19:59:21 +02:00
d2d67534b3 Change return type of ag_window_list_item_activated_cb() to void
The signal itself defines its return type as GTK_TYPE_VOID
2014-08-02 19:58:33 +02:00
e2701396cc Check if chart needs to be saved upon close action 2014-08-02 19:54:30 +02:00
1c84845fa2 Add delete-event handler to AgWindow 2014-08-02 19:53:50 +02:00
6e35a98cd5 Add ag_app_buttoned_dialog() to ag-app.h 2014-08-02 19:52:47 +02:00
367a91cb51 Show error message if DB chart could not be loaded 2014-08-02 10:28:22 +02:00
377a2e1e8a Rename Open functionality to Import 2014-08-02 01:41:33 +02:00
ab12922d8a Rework chart save procedure
* Fixed some design flows: AgDb should not know about the window
* AgChart now only creates an AgDbSave structure, saving is done through
  AgWindow
2014-08-02 01:37:11 +02:00
860638ed98 Add function ag_app_buttoned_dialog()
This is required to create dialogs with more than one buttons, like Yes/No
dialogs.
2014-08-02 00:34:07 +02:00
defdc75eb0 Add missing va_end() to ag_db_select() 2014-08-02 00:26:49 +02:00
c2241e622a Add New/Back buttons to the header bar
New opens the Edit tab immediately, back goes back to the chart list
2014-08-01 23:55:26 +02:00
d30b31ce7e Merge branch 'master' into chart-db
Conflicts:
        src/ag-chart.h
        src/ag-window.c

Conflicts fixed without problems.
2014-08-01 18:03:27 +02:00
c79e24c709 Annotated AgDb functions 2014-08-01 10:51:15 +02:00
c22fc02a2a Add missing (but actually unnecessary) gtk.h include 2014-08-01 01:09:34 +02:00
c22c81cc61 Move away from popover
GtkPopover cannot display accels, which is not ideal for the gear/view
menu. Switching to normal menus instead.
2014-08-01 01:09:12 +02:00
12e088b452 Add function ag_chart_save_to_db() to save the chart to the db 2014-07-31 21:23:23 +02:00
2e34b71f69 Add function ag_db_save_identical()
It compares two AgDbSave structs and returns TRUE if they are equal or
identical.
2014-07-31 21:22:53 +02:00
1628a71f8b Remove URI from AgWindowPrivate 2014-07-31 21:22:44 +02:00
41098fd2c0 Rename Save as function to Export 2014-07-31 18:12:23 +02:00
8533b2f887 Load chart list when opening a new window 2014-07-31 01:06:24 +02:00
36e89f3fe4 Create the GdMainView for the chart list
GdMainView doesn’t implement GtkBuildable yet, thus, it cannot be added
via the UI file.
2014-07-31 01:06:10 +02:00
809a1b215f Add libgd as a dependency and git submodule
libgd is required for GdMainView until MainView gets into Gtk (which I hope
will happen)
2014-07-31 01:05:23 +02:00
47fa484875 Add function ag_window_load_chart_list()
It loads all charts from the database and fills the main view’s list
store with it
2014-07-31 01:05:19 +02:00
e2606ea5eb Add list store model for the GdMainView 2014-07-31 01:03:49 +02:00
310caa9292 Add function ag_chart_new_from_db_save()
It constructs an AgChart from an AgDbSave struct
2014-07-31 01:00:22 +02:00
bee9ae363f Fix ag_db_select()
Using parameter @err for error collection was a bad idea. Creating
local_err instead.
2014-07-31 01:00:16 +02:00
ea9e4a73a5 Add function ag_db_get_chart_data_by_id()
It loads one single chart from the database and fills an AgDbSave
struct with its data
2014-07-31 01:00:03 +02:00
bfa4cf8cca Add AgDbError error type 2014-07-31 00:59:53 +02:00
8a654e9c0f Add function ag_db_get_chart_list() 2014-07-31 00:49:55 +02:00
e8d9386916 Add function ag_db_save_chart() to add/update charts in the database 2014-07-22 00:11:08 +02:00
98d08893ef Add struct AgDbSave together with the function ag_db_save_data_free() 2014-07-22 00:11:08 +02:00
749a253f18 Code beautification in ag-chart.h 2014-07-21 23:46:20 +02:00
0fc41ba545 Add missing closing bracket in ag_db_non_select() 2014-07-21 23:46:09 +02:00
89e5f5c4dc Code beautification in ag-chart.h 2014-07-21 23:38:22 +02:00
4d64e707bc Add AgDb class 2014-07-20 23:18:45 +02:00
fe25f5ce9d Remove unneeded UI_FILE #define
All UI code is now stored in GResources
2014-07-20 23:18:28 +02:00
d671500a1a Code beautification in xml_open_gresource() 2014-07-20 23:15:58 +02:00
cad657c1b1 Move AgChartPrivate to ag-chart.c completely 2014-07-19 10:46:41 +02:00
bc81187e8b Set month and day to 1, so warnings disappear
This is somewhat cosmetic, a better approach should be found.
Fixes #23
2014-07-18 23:05:40 +02:00
d23c7c42c4 Unset house system is now a critical error
Fixes #38
2014-07-18 22:33:58 +02:00
46cb2b24a5 Add default house system to preferences dialog 2014-07-18 22:27:00 +02:00
69bc58495c Set Edit tab’s house system to the default on startup 2014-07-18 20:49:35 +02:00
0ead40813b Rename ag_window_find_house_system() to ag_window_set_house_system() 2014-07-18 20:49:02 +02:00
bd277de1bc Add house system save functionality
This was missing from #37
2014-07-18 18:32:53 +02:00
427f915f62 Use enum nick instead of name in house system saving
This is easier to do, and the save file has that value already
2014-07-18 18:31:56 +02:00
74e8373dad Add missing g_free() call for house_system_enum_name in chart loading 2014-07-18 18:30:11 +02:00
71cc129e95 Now considering house system setting on the Edit tab 2014-07-18 00:15:20 +02:00
023b179457 House system GtkComboBox now indicates the loaded house system 2014-07-18 00:02:56 +02:00
fa6a850331 Add house system loading to chart load code 2014-07-18 00:02:56 +02:00
09d1fe352a Add the house system configuration widgets to the Edit tab
It is already filled with data, but it is not functional yet!
2014-07-18 00:02:56 +02:00
4e5b649173 Code beautification in ag_chart_load_from_file() 2014-07-17 23:11:24 +02:00
e745312ffe Remove err when checking for note in save file
Note is not required to be present in any save file. However,
get_by_xpath() sets err if it is not, which will never be checked for.
2014-07-17 23:11:24 +02:00
5671a751a9 Fix error messages in AgChart’s get_by_xpath() 2014-07-17 23:08:34 +02:00
183c0a00dc Remove unnecessary upper bound for year_adjust 2014-07-16 22:20:34 +02:00
39881908b7 Remove unnecessary lines from ag_window_init()
* priv->settings assignment is already done in that function
* gtk_window_set_hide_titlebar_when_maximized() is somewhat deprecated
  with HeaderBars
2014-07-15 16:43:56 +02:00
2656df25cb Code beautification in ag_chart_create_svg() 2014-07-13 23:01:23 +02:00
69233be35e Add a dist attribute to XML <body> tags so planet icons won't collide 2014-07-13 22:44:15 +02:00
1341628c24 Redesign Aquarius symbol 2014-07-12 22:45:26 +02:00
b762d93ee2 Add license to About dialog 2014-07-12 11:07:45 +02:00
fa7a87dd76 Add artists section to the About dialog
Also remove documentors as it was empty
2014-07-12 11:07:33 +02:00
f63d42dee9 Minor code beautification 2014-07-12 11:06:46 +02:00
5ac17cd8be Move default sign symbols to the resource list 2014-07-12 10:45:38 +02:00
c31ddb6fe7 Add gres:// type links support for libxml2 2014-07-12 10:27:11 +02:00
a5d76beb23 Move the default xsl file to the resources 2014-07-11 15:03:54 +02:00
4144d6b4ff Remove CSS from the xsl file and the SVG generating code 2014-07-11 14:32:24 +02:00
9342ea63de Code beautification
Wrap long lines in all files
2014-07-11 10:33:04 +02:00
110e7f3c25 Beautify code 2014-07-11 00:37:14 +02:00
b6af9a9d96 Refactor all gtk_message_dialog() calls to ag_app_message_dialog() 2014-07-11 00:34:12 +02:00
4db1ecff96 Code beautification
Truncate long lines. This is not finished yet, though!
2014-07-10 23:47:39 +02:00
2af46ece40 Remove WebKitWebView creation from Glade
The Glade template cannot assign an already created WebKitWebViewGroup
to the WebKitWebView it creates. Thus we need to create it manuallp
2014-07-10 23:33:22 +02:00
b8cc90912d Load default chart CSS to AgApp’s private member, web_view_group
This will make sure at least one CSS is loaded for each web view created
later.
2014-07-10 23:24:33 +02:00
3efb358a4f Copy the default chart CSS to the resource database 2014-07-10 23:22:16 +02:00
e6aa43cba7 Add class private to AgApp 2014-07-10 23:20:23 +02:00
a312e59020 Merge branch 'master' into webkit2 2014-07-10 14:34:12 +02:00
86e5438807 Add chart note support
It is saved under /chartinfo/note, and may be non-existant or an empty
tag.

Fixes #28
2014-07-09 00:38:04 +02:00
7c745e51a7 Reorder Edit GtkGrid’s children to be a bit more logical 2014-07-08 23:55:54 +02:00
6724f68dcf Started transitioning to Webkit 2.0
Unfortunately, webkit_web_view_load_string() is not implemented in the
2.0 API, so trying with load_html() for now. Seems not to work with SVG
images without tweaking.
2014-07-08 21:04:45 +02:00
ee4faf34a6 Remove unneeded TODO line 2014-07-05 11:14:11 +02:00
8262eaabd1 Add error checking to several places 2014-07-05 11:03:27 +02:00
165cf260c9 Add ag_app_message_dialog() to create multi-purpose message dialogs 2014-07-04 22:31:59 +02:00
740691f97f Automatically apply settings change for planet/aspect icons as characters 2014-07-04 22:07:16 +02:00
76975df877 Refactor aspect table redrawing to a separate function
This is to later allow me to call when the certain GSettings values
((planets|aspects)-char) change.
2014-07-04 22:07:16 +02:00
409c1f5267 Create planet and aspect symbols with respect to the (planets|aspects)-char settings 2014-07-04 22:07:16 +02:00
582c7e02b9 Add new settings planets-char and aspects-char to the preferences dialog
They are only effective upon chart redraw. A callback must be utilised
to automatically redraw the aspect table upon change.
2014-07-04 13:13:38 +02:00
d8aadc4ffa Add planets-char and aspects-char settings to GSettings schema 2014-07-04 13:02:45 +02:00
f65cb50f8e Incorporate first icon in the aspect table
Sun is now represented by an (oversized) icon in the aspects table.
2014-07-03 23:24:11 +02:00
5da0699607 Move resource files to resources/ directory
This is to make them more managable
2014-07-03 23:13:52 +02:00
26fb959a48 Remove AgSettings’ priv property 2014-07-03 18:15:48 +02:00
4542f52980 Remove AgWindow’s priv property 2014-07-03 18:08:34 +02:00
ee86d98317 ag-window.c cleanup
Remove non-used private variables and their references
2014-07-03 15:56:46 +02:00
d95ef75e59 Set window title and subtitle
Title is fixed, set to “Astrognome”
Subtitle is the name on the chart
2014-07-03 15:31:05 +02:00
20cc731289 Move view changing functionality from GtkStackSwitcher into a view menu 2014-07-03 14:08:51 +02:00
bdecad3c2a Start transitioning main window to Glade 2014-07-03 10:57:57 +02:00
9e3b4400a9 Add type cast to ag_window_open_chart_tab() call 2014-07-02 23:02:39 +02:00
9c9da9c273 Removed TODO comment after merging chart-tab-if-open 2014-07-02 19:50:46 +02:00
0cc6344c37 Change to chart view when opening an existing chart 2014-07-02 19:15:54 +02:00
b2cab90dcb Add preferences window with option to turn off maximized windows
This is very limited right now. See README.md for other options to
integrate here (and throughout the app).
2014-06-30 22:51:15 +02:00
1cee8bf38c Merge branch 'master' into settings 2014-06-30 18:16:47 +02:00
78d127afec Create GtkGrid for aspect table
This is a textual representation only. Icons are still on their way.
2014-06-30 18:00:13 +02:00
70d38a379d Add function ag_chart_get_planets() 2014-06-30 17:55:00 +02:00
a6a5eff641 Add function ag_chart_add_planets() to add all known planets to the chart
This is required for a readable aspect table
2014-06-30 17:55:00 +02:00
259302a7c2 Update note in tab_changed_cb() 2014-06-30 17:55:00 +02:00
170fca314a Add some remark about a translatable string 2014-06-30 14:12:27 +02:00
f744cb0150 Upgrade GLib dependency to 2.38 2014-06-30 14:12:27 +02:00
172518f472 Uncrustified sources 2014-06-27 21:11:17 +02:00
c34ba055bc Add SVG export functionality 2014-06-27 17:15:57 +02:00
f6e3f9e033 Change ag_chart_create_svg() to return the length of the SVG document
This is needed later for SVG export
2014-06-27 17:11:04 +02:00
cc7aed38c1 Add GTK message dialogs instead of g_warning() calls.
This is to enhance UX. Fix #9
2014-03-30 17:52:57 +02:00
85fb8be73b Add timezone control to edit tab
Fix #15
2014-03-30 17:41:11 +02:00
83782a92ff Set southern latitude/western longitude if saved chart has negative values
Fix #16
2014-03-30 16:51:45 +02:00
a4f1b17a76 Add message dialogs to indicate save errors 2014-03-30 11:33:48 +02:00
847e1c419e Change deprecated GTK stock items to actual values 2014-03-30 09:47:21 +02:00
84528f2970 Move ag_window_redraw_chart() to a more appropriate place 2014-03-30 09:34:41 +02:00
306584ff70 Remove unnecessary gswe_planet_data_unref() calls
This introduced an ugly bug when changing from the Edit tab to Chart view
for the second time.
2014-03-30 09:32:49 +02:00
aa339f5863 Remove references and calls to libgd in favour of Gtk 3.10 calls 2014-02-25 22:32:54 +01:00
f7e4c451b4 Make get_by_xpath() string return value a maybe-string 2013-10-05 03:23:38 +02:00
096111684e Updated for SWE-GLib 2.0 API 2013-10-04 00:16:55 +02:00
8313b4c2a6 Added skeleton for the preferences code 2013-09-22 20:53:58 +02:00
5a1ff8cee9 Added Help on pressing F1
This still has many things to do. The help files must be improved,
and the help function must be made context-aware (the current show_help()
function is already context-aware).
2013-09-22 13:51:21 +02:00
f80b9df82b Disabled context menu in chart's web view 2013-09-22 12:12:41 +02:00
899df5d0fe Added a Close menu item to the window menu 2013-09-21 20:53:28 +02:00
2103f015b8 Put Save/Save as menu items in one section 2013-09-21 20:51:26 +02:00
814a86dfeb Reindented UI file to follow coding standards 2013-09-21 20:51:01 +02:00
754433d884 Window settings are now saved when a window is repositioned or resized 2013-09-21 19:27:14 +02:00
f4e32478e6 Typo fix in rebased code 2013-09-21 18:56:12 +02:00
56a388b86a Uncrustified new code 2013-09-21 18:56:12 +02:00
9ef2d957ff Now restoring window settings (size and maximized state) from GSettings 2013-09-21 18:56:12 +02:00
c06c5e214f Created AgSettings object to deal with GSettings 2013-09-21 18:56:11 +02:00
ea3b038b57 Uncrustified sources
Also, added astrognome-uncrustify.cfg for later use
2013-09-21 18:37:27 +02:00
7fc700bf4e Made country and city values optional in save files
The <country> and <city> tags are still required, but may be empty
2013-09-21 15:50:16 +02:00
04b281c56b Added a required parameter to get_by_xpath() 2013-09-21 15:49:13 +02:00
616fc79d11 Made GVariant fetching code simpler 2013-09-21 15:47:48 +02:00
f5ba22d7df Added a dispose function to AgWindow 2013-09-21 14:07:53 +02:00
8a589b4699 Header bar and web view now correctly resize with the window 2013-09-20 15:23:41 +02:00
8ef33d3dec Added hotkeys for tab switching
The hotkeys are the same as in Placidus, as the original Astrognome didn't
have any.
2013-09-20 12:41:21 +02:00
e180603a6b Sanitized action callback function names 2013-09-20 10:58:12 +02:00
8407ffadd3 Moved run_action() and application_activate_cb() to ag-app.c 2013-09-20 10:23:02 +02:00
3fea7bf0a8 XSLT stylesheet is now loaded directly from file
Reading from memory kind of disabled XInclude possibility. Included
files must have been loaded one by one, which is a bit out of control.
2013-09-20 10:03:08 +02:00
ffb00a00a0 Enabled XInclude for XSLT stylesheets 2013-09-20 09:58:31 +02:00
5bba36e949 Created save-as dialog 2013-09-20 00:11:17 +02:00
337f5b6656 Created AgWindowError quark for later use 2013-09-20 00:11:03 +02:00
c8e0a888dd Resizing webkit view when the chart tab is activated
This is temporary, it really should resize automatically
2013-09-19 23:21:27 +02:00
c11bccc820 Added some cleanup functions 2013-09-19 23:17:58 +02:00
d6df0e4690 Added base_url to webkit load function
Without that, using external CSS files is impossible
2013-09-19 23:17:43 +02:00
fcb75f672b Now setting the CSS file path as a parameter
This will allow us to use separate CSS and XSLT files (e.g. themes) later
2013-09-19 23:16:52 +02:00
a154118b6f Temporarily changing locale to C while generating the SVG image
With locales that have a character other than dot as a decimal separator,
the generated SVG is messed up (due to a libxml2 bug)
2013-09-19 23:14:37 +02:00
3c3a09143b Added libxslt initialization to main()
It worked without this. Just to be on the safe side...
2013-09-19 23:10:36 +02:00
a6c747fc48 Created web view for the SVG chart 2013-09-19 20:19:55 +02:00
e171bdfbbd Added WebKitGtk 3.0 as a build dependency 2013-09-19 20:13:03 +02:00
25e5abcbcb Finished SVG generating code 2013-09-19 19:56:25 +02:00
4b81d38bc6 Now initializing eXSLT together with libXML 2013-09-19 17:26:52 +02:00
4cfa4624e6 Added exslt as a build dependency 2013-09-19 17:26:32 +02:00
cda22746ff Finished base XML generation code 2013-09-18 22:31:14 +02:00
e4033f0702 Sanitized AgWindow - Removed timestamp member
It can be retrieved from the Window's chart, and is rarely used
2013-09-18 22:30:40 +02:00
2d93bca140 Started generating chart SVG 2013-09-18 11:41:20 +02:00
25ffd534e5 Implemented ag_chart_save_to_file 2013-09-18 11:22:23 +02:00
ec75d9b4cd Moved XML creation code to AgChart's create_save_doc() 2013-09-18 11:22:07 +02:00
c767124713 Fixed ag_chart_load_from_file() to return on xpath matching errors 2013-09-18 11:20:02 +02:00
d26f9f5d8b ag_app_open_chart() now saves the URI of the opened chart to the created window 2013-09-18 10:40:17 +02:00
bdf318a2ad Added uri to AgWindow's private structure, for saving purposes 2013-09-18 10:37:48 +02:00
c921e29c4a Created a Save As... menu item 2013-09-18 10:09:32 +02:00
573f05ceb4 Changed ag_chart_save_to_file() prototype to a more sane one 2013-09-18 10:06:12 +02:00
160339d888 Moved chart loading into ag_chart_load_from_file(), where it was intended to be 2013-09-18 10:05:24 +02:00
1541e381c5 Created ag-chart-error-quark and AgChartError enum 2013-09-18 10:02:23 +02:00
0571253730 Started creating save functionality 2013-09-18 00:45:19 +02:00
25914141c2 Now setting chart name based on edit form 2013-09-18 00:45:00 +02:00
707e7395b0 Finished chart loading code 2013-09-17 22:25:10 +02:00
157c02d0f5 Fixed signal connection to comply with new code 2013-09-17 22:25:10 +02:00
f8c5415789 Created ag_window_update_from_chart() to update form values from the window's chart 2013-09-17 22:25:10 +02:00
a9977ac54e Chart changing now calls ag_window_redraw_chart() 2013-09-17 22:22:12 +02:00
f4a303e97a Created ag_window_redraw_chart() for later use 2013-09-17 22:21:37 +02:00