Updating branch refs/heads/master to 523d6346960ede917212f26642206fcae9d0f75a (commit) from 9dbfb9189be36fed3b8eabbe4474db3b575882d7 (commit)
commit 523d6346960ede917212f26642206fcae9d0f75a Author: Juha Kautto <j...@xfce.org> Date: Mon Nov 28 14:34:05 2011 +0200 4.8.2.6 Made possible to delete archived event from event_list window There was a bug, which prevented deletes for Archive events without manually unarchiving those first. Also moved more code to ical-internal.h configure.in.in | 2 +- icons/48x48/Makefile.am | 3 +- icons/48x48/orage_globaltime.png | Bin 0 -> 1404 bytes icons/scalable/Makefile.am | 3 +- icons/scalable/orage_globaltime.svg | 247 +++++++++++++++++++++++++++++++++++ src/event-list.c | 14 ++- src/ical-archive.c | 11 -- src/ical-code.c | 17 +-- src/ical-expimp.c | 21 +--- src/ical-internal.h | 26 ++++ 10 files changed, 294 insertions(+), 50 deletions(-) diff --git a/configure.in.in b/configure.in.in index a0bee12..da69525 100644 --- a/configure.in.in +++ b/configure.in.in @@ -9,7 +9,7 @@ dnl Written for Xfce by Juha Kautto <j...@xfce.org> dnl dnl Version information -m4_define([orage_version], [4.8.2.5-git]) +m4_define([orage_version], [4.8.2.6-git]) m4_define([gtk_minimum_version], [2.10.0]) m4_define([xfce_minimum_version], [4.6.0]) diff --git a/icons/48x48/Makefile.am b/icons/48x48/Makefile.am index 1289651..78ef88f 100644 --- a/icons/48x48/Makefile.am +++ b/icons/48x48/Makefile.am @@ -2,7 +2,8 @@ iconsdir = $(datadir)/icons/hicolor/48x48/apps icons_DATA = \ - xfcalendar.png + xfcalendar.png \ + orage_globaltime.png EXTRA_DIST = \ $(icons_DATA) diff --git a/icons/48x48/orage_globaltime.png b/icons/48x48/orage_globaltime.png new file mode 100644 index 0000000..67b883d Binary files /dev/null and b/icons/48x48/orage_globaltime.png differ diff --git a/icons/scalable/Makefile.am b/icons/scalable/Makefile.am index a04fba7..269eaad 100644 --- a/icons/scalable/Makefile.am +++ b/icons/scalable/Makefile.am @@ -2,7 +2,8 @@ iconsdir = $(datadir)/icons/hicolor/scalable/apps icons_DATA = \ - xfcalendar.svg + xfcalendar.svg \ + orage_globaltime.svg EXTRA_DIST = \ $(icons_DATA) diff --git a/icons/scalable/orage_globaltime.svg b/icons/scalable/orage_globaltime.svg new file mode 100644 index 0000000..b2c5ca5 --- /dev/null +++ b/icons/scalable/orage_globaltime.svg @@ -0,0 +1,247 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Sodipodi ("http://www.sodipodi.com/") --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:version="0.47 r22583" + sodipodi:docname="orage_globaltime.svg" + height="128pt" + width="128pt" + sodipodi:version="0.32" + id="svg814" + version="1.1"> + <metadata + id="metadata14"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <defs + id="defs816"> + <marker + inkscape:stockid="Arrow1Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Mend" + style="overflow:visible;"> + <path + id="path3769" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.4) rotate(180) translate(10,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Mend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Mend" + style="overflow:visible;"> + <path + id="path3787" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(0.6) rotate(180) translate(0,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;"> + <path + id="path3763" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="DotS" + orient="auto" + refY="0.0" + refX="0.0" + id="DotS" + style="overflow:visible"> + <path + id="path3828" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none" + transform="scale(0.2) translate(7.4, 1)" /> + </marker> + <marker + inkscape:stockid="DotL" + orient="auto" + refY="0.0" + refX="0.0" + id="DotL" + style="overflow:visible"> + <path + id="path3822" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none" + transform="scale(0.8) translate(7.4, 1)" /> + </marker> + <inkscape:perspective + sodipodi:type="inkscape:persp3d" + inkscape:vp_x="0 : 80 : 1" + inkscape:vp_y="0 : 1000 : 0" + inkscape:vp_z="160 : 80 : 1" + inkscape:persp3d-origin="80 : 53.333333 : 1" + id="perspective2973" /> + <linearGradient + id="linearGradient2067"> + <stop + style="stop-color:#c5d2c8;stop-opacity:1;" + offset="0" + id="stop2069" /> + <stop + style="stop-color:#e2e8e3;stop-opacity:1.0000000;" + offset="0.24285714" + id="stop2075" /> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2071" /> + </linearGradient> + <linearGradient + id="linearGradient2060"> + <stop + id="stop2062" + offset="0.0000000" + style="stop-color:#efe0cd;stop-opacity:1.0000000;" /> + <stop + id="stop2066" + offset="0.30000001" + style="stop-color:#f7efe6;stop-opacity:1.0000000;" /> + <stop + id="stop2064" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient828"> + <stop + id="stop829" + offset="0" + style="stop-color:#f3f2f2;stop-opacity:1.0000;" /> + <stop + id="stop830" + offset="1" + style="stop-color:#adaaaa;stop-opacity:1.0000;" /> + </linearGradient> + <linearGradient + y2="0.882812" + x2="0.775194" + y1="7.031250e-2" + x1="4.651171e-2" + id="linearGradient831" + xlink:href="#linearGradient828" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="svg814" + inkscape:window-y="77" + inkscape:window-x="1456" + inkscape:window-height="819" + inkscape:window-width="1242" + inkscape:cy="80" + inkscape:cx="80" + inkscape:zoom="2.95" + snaptogrid="true" + showgrid="true" + id="base" + inkscape:window-maximized="0"> + <inkscape:grid + id="GridFromPre046Settings" + type="xygrid" + originx="0px" + originy="0px" + spacingx="1mm" + spacingy="1mm" + color="#0000ff" + empcolor="#0000ff" + opacity="0.2" + empopacity="0.4" + empspacing="5" /> + </sodipodi:namedview> + <rect + y="7.6377954" + x="14.173228" + height="140.54474" + width="127.25804" + id="rect1307" + style="font-size:12.000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.3749681;stroke-linejoin:round" /> + <rect + y="11.482059" + x="17.094587" + height="140.18172" + width="127.42729" + id="rect827" + style="font-size:12.000000;fill:#000000;fill-opacity:0.48150000;fill-rule:evenodd;stroke:none;stroke-width:3.7500000;stroke-linejoin:round;stroke-opacity:1.0000000" /> + <rect + y="10.695192" + x="17.094570" + height="137.48735" + width="124.33670" + id="rect817" + style="font-size:12;fill:#eae8e3;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:3.375;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none" /> + <text + transform="scale(0.98314105,1.017148)" + id="text1303" + y="35.377594" + x="43.248814" + style="font-size:24.10247231px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" + xml:space="preserve"><tspan + y="35.377594" + x="43.248814" + id="tspan1305" + sodipodi:role="line">Global</tspan></text> + <rect + y="12.542373" + x="18.644068" + height="3.6914454" + width="120.67796" + id="rect2073" + style="fill:#ffffff;fill-opacity:0.59109312;fill-rule:evenodd;stroke:none;stroke-width:0.62500000;stroke-linecap:butt;stroke-miterlimit:4.0000000;stroke-opacity:0.35627529" /> + <text + xml:space="preserve" + style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans" + x="56.692913" + y="138.74016" + id="text2973"><tspan + sodipodi:role="line" + id="tspan2975" + x="56.692913" + y="138.74016">Time</tspan></text> + <path + sodipodi:type="arc" + id="path2977" + sodipodi:cx="88.58268" + sodipodi:cy="92.677162" + sodipodi:rx="31.889763" + sodipodi:ry="31.889763" + d="m 120.47244,92.677162 a 31.889763,31.889763 0 1 1 -63.779523,0 31.889763,31.889763 0 1 1 63.779523,0 z" + transform="matrix(1.2777778,0,0,1.2777779,-33.464573,-38.145239)" + style="fill:#d40000" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none" + d="M 77.952756,82.047244 C 102.75591,57.244094 102.75591,57.244094 102.75591,57.244094" + id="path4961" /> + <path + style="fill:none;stroke:#000000;stroke-width:2.6;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#DotS);marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none" + d="M 77.952756,82.047244 C 60.23622,64.330709 60.23622,64.330709 60.23622,64.330709" + id="path5343" /> +</svg> diff --git a/src/event-list.c b/src/event-list.c index 1cf1452..b63c66a 100644 --- a/src/event-list.c +++ b/src/event-list.c @@ -912,7 +912,7 @@ static void delete_appointment(el_win *el) GtkTreeIter iter; GList *list; gint list_len, i; - gchar *uid = NULL; + gchar *uid = NULL, *flags = NULL; result = orage_warning_dialog(GTK_WINDOW(el->Window) , _("You will permanently remove all\nselected appointments.") @@ -927,6 +927,18 @@ static void delete_appointment(el_win *el) path = (GtkTreePath *)g_list_nth_data(list, i); if (gtk_tree_model_get_iter(model, &iter, path)) { gtk_tree_model_get(model, &iter, COL_UID, &uid, -1); +#ifdef HAVE_ARCHIVE + gtk_tree_model_get(model, &iter, COL_FLAGS, &flags, -1); + if (flags && flags[3] == 'A') { + xfical_unarchive_uid(uid); + /* note that file id changes after archive */ + uid[0]='O'; + /* xfical_unarchive_uid closes the file */ + if (!xfical_file_open(TRUE)) + return; + } + g_free(flags); +#endif result = xfical_appt_del(uid); if (result) orage_message(30, "Removed: %s", uid); diff --git a/src/ical-archive.c b/src/ical-archive.c index 9585de6..e870058 100644 --- a/src/ical-archive.c +++ b/src/ical-archive.c @@ -76,17 +76,6 @@ */ - -extern icalset *ic_fical; -extern icalcomponent *ic_ical; -#ifdef HAVE_ARCHIVE -extern icalset *ic_afical; -extern icalcomponent *ic_aical; -#endif - -extern gboolean ic_file_modified; /* has any ical file been changed */ - - #ifdef HAVE_ARCHIVE gboolean xfical_archive_open(void) { diff --git a/src/ical-code.c b/src/ical-code.c index 1015e5d..52b0749 100644 --- a/src/ical-code.c +++ b/src/ical-code.c @@ -59,6 +59,8 @@ #include <icalss.h> #endif +#define ICAL_MAIN + #include "orage-i18n.h" #include "functions.h" #include "mainbox.h" @@ -94,24 +96,9 @@ typedef struct _xfical_timezone_array int *dst; /* pointer to int array holding dst settings */ } xfical_timezone_array; -icalset *ic_fical = NULL; -icalcomponent *ic_ical = NULL; -#ifdef HAVE_ARCHIVE -icalset *ic_afical = NULL; -icalcomponent *ic_aical = NULL; -#endif -gboolean ic_file_modified = FALSE; /* has any ical file been changed */ static guint file_close_timer = 0; /* delayed file close timer */ -typedef struct _foreign_ical_files -{ - icalset *fical; - icalcomponent *ical; -} ic_foreign_ical_files; - -ic_foreign_ical_files ic_f_ical[10]; - typedef struct _excluded_time { struct icaltimetype e_time; diff --git a/src/ical-expimp.c b/src/ical-expimp.c index 29adb1b..7742829 100644 --- a/src/ical-expimp.c +++ b/src/ical-expimp.c @@ -64,6 +64,7 @@ #include "mainbox.h" #include "reminder.h" #include "ical-code.h" +#include "ical-internal.h" #include "event-list.h" #include "appointment.h" #include "parameters.h" @@ -75,26 +76,6 @@ -/* in ical-code.c: */ -char *ic_generate_uid(); - -extern icalset *ic_fical; -extern icalcomponent *ic_ical; - -extern gboolean ic_file_modified; /* has any ical file been changed */ - -typedef struct _foreign_ical_files -{; - icalset *fical; - icalcomponent *ical; -} ic_foreign_ical_files; - -extern ic_foreign_ical_files ic_f_ical[10]; - -gboolean ic_internal_file_open(icalcomponent **p_ical - , icalset **p_fical, gchar *file_icalpath, gboolean read_only - , gboolean test); - static gboolean add_event(icalcomponent *c) { #undef P_N diff --git a/src/ical-internal.h b/src/ical-internal.h index 61b2635..12d28e2 100644 --- a/src/ical-internal.h +++ b/src/ical-internal.h @@ -33,6 +33,32 @@ typedef struct icalcomponent_kind ikind; /* type of component, VEVENt, VTODO... */ } xfical_period; +typedef struct _foreign_ical_files +{ + icalset *fical; + icalcomponent *ical; +} ic_foreign_ical_files; + +#ifdef ICAL_MAIN +icalset *ic_fical = NULL; +icalcomponent *ic_ical = NULL; +#ifdef HAVE_ARCHIVE +icalset *ic_afical = NULL; +icalcomponent *ic_aical = NULL; +#endif +gboolean ic_file_modified = FALSE; /* has any ical file been changed */ +ic_foreign_ical_files ic_f_ical[10]; +#else +extern icalset *ic_fical; +extern icalcomponent *ic_ical; +#ifdef HAVE_ARCHIVE +extern icalset *ic_afical; +extern icalcomponent *ic_aical; +#endif +extern gboolean ic_file_modified; /* has any ical file been changed */ +extern ic_foreign_ical_files ic_f_ical[10]; +#endif + gboolean ic_internal_file_open(icalcomponent **p_ical , icalset **p_fical, gchar *file_icalpath, gboolean read_only , gboolean test); _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits