From 02bd733f6bf26492ca5db632892680f229f1c47f Mon Sep 17 00:00:00 2001 From: Andrea Zagli Date: Sat, 26 Nov 2011 10:31:09 +0100 Subject: [PATCH] In GdaExQueryEditor used GtkDateEntry if it is present/usable. --- .anjuta/session/anjuta.session | 8 +-- .anjuta/session/dock-layout.xml | 2 +- .anjuta_sym_db.db | Bin 244736 -> 244736 bytes configure.ac | 3 +- src/queryeditor.c | 120 +++++++++++++++++++++++++++----- 5 files changed, 108 insertions(+), 25 deletions(-) diff --git a/.anjuta/session/anjuta.session b/.anjuta/session/anjuta.session index 300bb0f..9954397 100644 --- a/.anjuta/session/anjuta.session +++ b/.anjuta/session/anjuta.session @@ -1,14 +1,14 @@ [Anjuta] Maximized=1 -Geometry=1366x716+0+30 +Geometry=1366x745+0+1 [Project Manager] -Shortcut=libgdaex//libgdaex//src//libgdaex.la%%%libgdaex//libgdaex//tests//test_prefix%%%libgdaex//libgdaex//tests//grid%%%libgdaex//libgdaex//tests//query_editor -Expand=libgdaex +Shortcut=libgdaex//libgdaex//src//libgdaex.la%%%libgdaex//libgdaex//tests//grid%%%libgdaex//libgdaex//tests//query_editor%%%libgdaex//libgdaex//tests//select%%%libgdaex//libgdaex//tests//test_prefix +Expand=libgdaex.la%%%libgdaex [File Loader] -Files=file:///home/andreaz/files/c/libgdaex/src/queryeditor.c#15 +Files=file:///home/andreaz/files/c/libgdaex/src/queryeditor.c#668 [Document Manager] bookmarks=\n\n diff --git a/.anjuta/session/dock-layout.xml b/.anjuta/session/dock-layout.xml index d8c025d..17c0817 100644 --- a/.anjuta/session/dock-layout.xml +++ b/.anjuta/session/dock-layout.xml @@ -1,2 +1,2 @@ - + diff --git a/.anjuta_sym_db.db b/.anjuta_sym_db.db index 722ad464cd0571eafa373a7d5401a81db0bd230d..60e368aaf52e5dbfba6aa892abae85b7cd99af56 100644 GIT binary patch delta 7522 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 delta 7397 zcmcIpdt8-O*4}Ha^PY2F4j}hC0-|_B1i`x~AQ9De87@7n9#_r0EH?^Axm zzx;;(ifE{+jOhtg+sCzRgl=&s!z>N3@B*cxwi21Iv!Wmt>}3bsWUE#C(0zUkLFr)erDWGoz>XF*Z?Mg;(#jY(&4_5A@C%oIR+wseXhF-X0-WzKJ1H z*fn?Urg*r%UeUJKZQ^f#ZwZsp$xi@`qNMv zL1QV8@~N2SQ3Wlb<+PGkQw@Dghv_(;#`745Nz|2Iqs{a-y@zjMHNJ}n@k2aDXXyf6 zp&#gHx@CPlKlg&>GLV-!whvVCYki?ps8TAl4(bFPbtvB!0Ke4-G8y{9tDducVbny& zY5D^-!CRhgTi|)LSHSLOMsJ?^IEHa~9GHA{D;W0v%7HkU3*Ulfb_3o{GWu$deOJK8 zX=Y(7DSQb3I1fXuml92r9zlPv?ehtE4C%w}yPlgv%Ug$I&+1F?fg9 zMN%ZEeg_eTNprCg*A~cg;lCirh6eib@-Y;-@@b4_rvtm#Q{mIL#t2X8VBZp;koTV8fc@(R4f}0VmsFYs-o9vkId6$&wUSK3ks3mhT!zP z>ErW?`VK0XI4eI7>O2cZ;1b`6cTpPiF*Z@}!gbh>kK;gDUa?S6nH}nXQ4Lp+37`}} zbSCG1C_`A6j80pcOdMByAmd>@I&5_c_N&h9nuN(FNYbgG8SrD1upK{=hbgupPYw^@ zv?&1mJ}4#Ti=J}vIamZsGJ9}o)$CkEQI-} z6ea&F)K4%Rc483D#9B(@s6xzGnNE%PP%)-+!c>aoZGS`?Un@p`{%bqR;F)VMfv-*= zKVIldaeV%d7z9l@ZS5WFQmm7U1uv6bKr83i0{b)B$uxi$lwvD;Zw$IS`PbHxztfaW;Md8RR=@PW2Oqv& ziUV!VtMC`Sj^cAM$N|5g>+bR|{~ip!mWy^?KMz~jt6*2W(bXy-oWGriNf5w(kK;dS znHs>xd>mc&G?w99JcFO(XLuE_;MZisf8#F{NkQbI6lyNym$y_RHs{e6EY-5`8atQ|ue${T<@9pFW`@o^$i@Whk=~pn}mF zMrjyHIjV<(2L&7ohHH30!!QklH4M@)P{aKi2Ix{A)$oXhF&f5c$k8y?UgoWSf_@yY zAy>mB4S5GIdEQekOzIbsZBKMIF*j`|~(a{2wT4G!E-UAZugn!VnisCpgx+5A>P1-uDo&>CV!)N5padv_zY@z%lR8P#!o0~IJxYiqVeI?U`7O+#IOcrPF zmO8KHpucIFzrkUz?Z?+J*-;4l^n(@0|MfchAjG+$y>@n*(_oTh$Nl&F>hFB-eO2S- z0jIahWZ3D>ZXd}3LFn*SX_)3EI4rglr)eJv`_ha@^@h9aVYBL~-iTnc_$yWoRrEQ% zLNlm4`3fa&;gBuZ#?x~PPDNX*ipR*aZ7U8lGI6DfRKt|eVvTH;5+T<(yp5;SFf7D= z*a~jL33v;hgz?ZHQlXLhK^;@uRi!GlK9$+QJZvX+c1)c(Ij;m>=E3bKp1*QYLQJ$h z7$W0vMnQ>LAKXi(jnHmxu5eMXf4zP3gekd2aKB|sh>Wm@LS#73$eo_|yX*lx#3j+H ztxJkW7q#IpeW*F_@SzsG*oTsNs*jLhw)Gh8LrM3^0Nf{)=a0|NDVbZ+?!Q{V;*fC9 zA??2$UgQ%dCGjp(;@=`ug7G+$nsTN|i5zWG3foKy=P#VpbmeY5K|O^T18XpY{c5l? zt%a|-yhcLy{2J^;RdAlK)nI%6dkuD>QaHzB_XxF&-h&z_u?l`*ufuvh@D_N|5#079CiR(!Zw|L_yESkR-ImU z0OMej=gk9{?|_}W<%ke;`XOurpXvPkLl^-Eb$Zny3H`ZCrCXm{)=#t*4@+t9bK+r4 zg+KFyhcQKnW8q!`N83-Y+_r?XFQl>m(-(?(cE~G%)#<@&chDl?>V^BOr0a z`$7mWi^=NA@Z=E?+FCAmB^fj)p# z3o^N=iFCsG`7UjscH}uVpK&Jyd(_7LMjHYi?v=DMh?)dz?J2a^odk7zIO|7G42<|%EAzJM) zbY(J~gQfgcGM$0mTseWp>a$By3W=8B!W4Q5ombh_mR6zj{O?y%ESF8EDE_T2`GhT! zI#jh>Abh44;Tp)NKrEzpI6f7p**~9RpCAFI)-Btkaj^s}IrDVnA5&=oY_yc%r#323 z9XQ30Vpp!g0Pe8{4J!tHz$ZM|%1W)~%9%oBYg6eV4oRo6Fo;Jxsh=SyOSP5XOQ*>& zky~U?U!K!}I`FcN)ZTL@gPuU6X@)I!6jyc>QBc;Aeny{L4bR@IBut&^Bpbo!YypfX zMx2~7Mdsw>=1aQ&2Q9ugFw;;W_=1Wh+pcr{$7jITh#S)cfw@1wE*(=$WlOsIf?y zLp>-Jj(KkPpj$R5ZZH;w!7|6Ads8;F)+YZ#)|Z^24v16`2@Bx|d;||t8vOwl5Ca*)N) zsrEdG<)dko&Mnhq^6y4!Pj#Wi90TbeC|$W%!_Xp`^ua@9)o*BE&6&i%!zX%Is+FKT>F5^&FAV7B|_1oBqOWN6|Qo zKx4cc)oGf$;n1C9jQf0sP?dGD@#!eakZ4giiYC}MW7AY)6xWUtdh*Wm2csoUwHB2o zcZ9-(yX451G=}ofb&{8jp+fso_$t_FbDUSDv+K@;Zlzf%qBJk@93e%AH&k$B(4|rwJR-ao1gl+r~r3QX>cKMQ2N6 z5C;}WpWk~?G|5*pD4E`cqt^LCbVZKXyBAOg%7u?O>v1W4MS*MyDLGm8+X1fFAf|DD z#zqe3#eLhHE!cdUYY$ZBYxG$`BmIM4Sje!@Kw_EEK)8RIX*)aeN8g zW^=T3&6=P9({&YxsLW1=e0TiaU^pItN2QcaT2-xhTZGWI$H?W`Jxi2@{|Mz2ZxV;I zQAV1(HZ7C~&mmu@BiXQwCwXu_wXk-^$DB5b+6PMNcYmq(dgJ+R4h7r%9)>754pnNt z^^x5b$6e=Bj-#k_aNZn<;&bz8%J4R$Dg444Ao;{X#jVh zPnn*u1@w~{x=|#|BwR&B)EUOA{rV#%x90v!Xou)9ubT2Kr;gSH`Sa*!sJp~~d)B4T zke|!iVmL)1Vl5wjmKuks|2Q#=G6v3imSSOxK9;$}3qI6o-=!2MQ)e9nt= z;SJU5Bg-7>rLy%rY7eE@IxMmW@N-KjgR_@XysQH60kY&-8oBa0k$Al<&2|KuSWWcE z9i3M<2Ru(DD94mL4=s7!(=t~DJ;1@AKQBGH+#t)kT;{RMDNByBRzE$``vFc%CiqC0 z!z3Ju&*3}x4~nLKA~@F5aZf@yxsaQ`EEJkdynUQR_@gxx;_0)BQtdFoD%>mbn|ZG$ z`GfVsp1m7b`@BLuAhCgA#dl!i+E=KXOyQlEXTn@79qy@lmHOGjF;YcCoZQMlSIC9M z@Q$pEtB9Pmk&^uDmFONiAvc28Wj;rHUf(Ed(i-2%9J`64^jRgAGdEF$b&yf5kjFVG z;UVEz2r&|bV<(qP8$WAmzLzmKL4`I>8DB8>4vl_H>_VW>Tf;n$bmyVcr$eyZ~|6o;?38@ zThHayutZ-|*PC@ScEZ!qMq8__1}t5Fg?*C0*i0!tfvP9^D7hc_m>X}Q$k2Q&#(7wQ zOGHtw#MMF#$K}Y=WeZgpSLhnukWt*n3*IFE_FmO0m-?3c#zYPA8vbu1Z`?{5_0BD| za|;d4b$P9Dvn79j<LWUBRLiD5tkb7= 4 +PKG_CHECK_MODULES(GDAEX, [gmodule-2.0 >= 2 + libgda-4.0 >= 4 gio-2.0 >= 2.24 gtk+-2.0 >= 2.20]) diff --git a/src/queryeditor.c b/src/queryeditor.c index af2191c..44c9182 100644 --- a/src/queryeditor.c +++ b/src/queryeditor.c @@ -159,7 +159,10 @@ static void gdaex_query_editor_on_sel_order_changed (GtkTreeSelection *treeselec #define GDAEX_QUERY_EDITOR_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), TYPE_GDAEX_QUERY_EDITOR, GdaExQueryEditorPrivate)) -typedef GtkWidget *(* GtkDateEntryNew) (void); +typedef GtkWidget *(* GtkDateEntryNew) (const gchar *format, + const gchar *separator, + gboolean calendar_button_is_visible); +typedef void (* GtkDateEntrySetDateVisible) (gpointer gtkdateentry, gboolean visible); typedef void (* GtkDateEntrySetTimeVisible) (gpointer gtkdateentry, gboolean visible); typedef struct _GdaExQueryEditorPrivate GdaExQueryEditorPrivate; @@ -167,6 +170,11 @@ struct _GdaExQueryEditorPrivate { GdaEx *gdaex; + GModule *gtk_date_entry_module; + GtkDateEntryNew gtk_date_entry_new; + GtkDateEntrySetDateVisible gtk_date_entry_set_date_visible; + GtkDateEntrySetTimeVisible gtk_date_entry_set_time_visible; + GtkBuilder *gtkbuilder; GtkWidget *notebook; @@ -308,6 +316,34 @@ GdaExQueryEditor priv->gdaex = gdaex; + /* test if we can use GtkDateEntry */ + priv->gtk_date_entry_module = NULL; + priv->gtk_date_entry_new = NULL; + priv->gtk_date_entry_set_date_visible = NULL; + priv->gtk_date_entry_set_time_visible = NULL; + if (g_module_supported ()) + { + /* TODO it must be found in a better way */ +#ifdef G_OS_WIN32 + priv->gtk_date_entry_module = g_module_open (g_build_filename (g_win32_get_package_installation_directory_of_module (NULL), "libgtkdateentry-0.dll", NULL), G_MODULE_BIND_LAZY); +#else + priv->gtk_date_entry_module = g_module_open ("/usr/local/lib/libgtkdateentry.la", G_MODULE_BIND_LAZY); +#endif + if (priv->gtk_date_entry_module != NULL) + { + if (!g_module_symbol (priv->gtk_date_entry_module, "gtk_date_entry_new", (gpointer *)&(priv->gtk_date_entry_new)) + || !g_module_symbol (priv->gtk_date_entry_module, "gtk_date_entry_set_date_visible", (gpointer *)&(priv->gtk_date_entry_set_date_visible)) + || !g_module_symbol (priv->gtk_date_entry_module, "gtk_date_entry_set_time_visible", (gpointer *)&(priv->gtk_date_entry_set_time_visible))) + { + g_module_close (priv->gtk_date_entry_module); + priv->gtk_date_entry_module = NULL; + priv->gtk_date_entry_new = NULL; + priv->gtk_date_entry_set_date_visible = NULL; + priv->gtk_date_entry_set_time_visible = NULL; + } + } + } + priv->gtkbuilder = gdaex_get_gtkbuilder (priv->gdaex); error = NULL; @@ -591,34 +627,80 @@ gdaex_query_editor_table_add_field (GdaExQueryEditor *qe, if (!GDAEX_QUERY_EDITOR_IS_IWIDGET (_field->iwidget_from)) { - _field->iwidget_from = GDAEX_QUERY_EDITOR_IWIDGET (gdaex_query_editor_entry_new ()); - if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) - { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 10); - } - else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + if (priv->gtk_date_entry_module != NULL + && (_field->type == GDAEX_QE_FIELD_TYPE_DATE + || _field->type == GDAEX_QE_FIELD_TYPE_DATETIME + || _field->type == GDAEX_QE_FIELD_TYPE_TIME)) { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 19); + _field->iwidget_from = GDAEX_QUERY_EDITOR_IWIDGET (priv->gtk_date_entry_new (NULL, NULL, TRUE)); + if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) + { + priv->gtk_date_entry_set_date_visible ((gpointer)_field->iwidget_from, TRUE); + priv->gtk_date_entry_set_time_visible ((gpointer)_field->iwidget_from, FALSE); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + { + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + { + priv->gtk_date_entry_set_date_visible ((gpointer)_field->iwidget_from, FALSE); + priv->gtk_date_entry_set_time_visible ((gpointer)_field->iwidget_from, TRUE); + } } - else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + else { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 8); + _field->iwidget_from = GDAEX_QUERY_EDITOR_IWIDGET (gdaex_query_editor_entry_new ()); + if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 10); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 19); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_from), 8); + } } } if (!GDAEX_QUERY_EDITOR_IS_IWIDGET (_field->iwidget_to)) { - _field->iwidget_to = GDAEX_QUERY_EDITOR_IWIDGET (gdaex_query_editor_entry_new ()); - if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) - { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 10); - } - else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + if (priv->gtk_date_entry_module != NULL + && (_field->type == GDAEX_QE_FIELD_TYPE_DATE + || _field->type == GDAEX_QE_FIELD_TYPE_DATETIME + || _field->type == GDAEX_QE_FIELD_TYPE_TIME)) { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 19); + _field->iwidget_to = GDAEX_QUERY_EDITOR_IWIDGET (priv->gtk_date_entry_new (NULL, NULL, TRUE)); + if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) + { + priv->gtk_date_entry_set_date_visible ((gpointer)_field->iwidget_to, TRUE); + priv->gtk_date_entry_set_time_visible ((gpointer)_field->iwidget_to, FALSE); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + { + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + { + priv->gtk_date_entry_set_date_visible ((gpointer)_field->iwidget_to, FALSE); + priv->gtk_date_entry_set_time_visible ((gpointer)_field->iwidget_to, TRUE); + } } - else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + else { - gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 8); + _field->iwidget_to = GDAEX_QUERY_EDITOR_IWIDGET (gdaex_query_editor_entry_new ()); + if (_field->type == GDAEX_QE_FIELD_TYPE_DATE) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 10); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_DATETIME) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 19); + } + else if (_field->type == GDAEX_QE_FIELD_TYPE_TIME) + { + gtk_entry_set_max_length (GTK_ENTRY (_field->iwidget_to), 8); + } } } -- 2.49.0