Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
xfce4-weather-plugin
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
25
Issues
25
List
Boards
Labels
Service Desk
Milestones
Custom Issue Tracker
Custom Issue Tracker
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Panel Plugins
xfce4-weather-plugin
Commits
d776b317
Commit
d776b317
authored
Nov 14, 2011
by
Colin Leroy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Apply patch from bug 7956 (migrate to libxfce4ui)
Start moving away from weather.com
parent
938e8178
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
120 additions
and
79 deletions
+120
-79
configure.ac.in
configure.ac.in
+1
-1
panel-plugin/Makefile.am
panel-plugin/Makefile.am
+2
-2
panel-plugin/weather-config.c
panel-plugin/weather-config.c
+28
-23
panel-plugin/weather-config.h
panel-plugin/weather-config.h
+2
-1
panel-plugin/weather-search.c
panel-plugin/weather-search.c
+57
-38
panel-plugin/weather-search.h
panel-plugin/weather-search.h
+3
-2
panel-plugin/weather-summary.c
panel-plugin/weather-summary.c
+1
-1
panel-plugin/weather.c
panel-plugin/weather.c
+24
-10
panel-plugin/weather.h
panel-plugin/weather.h
+2
-1
No files found.
configure.ac.in
View file @
d776b317
...
...
@@ -59,7 +59,7 @@ dnl ***********************************
XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.6.0])
XDT_CHECK_PACKAGE([GTHREAD], [gthread-2.0], [2.6.0])
XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.3.90.2])
XDT_CHECK_PACKAGE([LIBXFCE
GUI4], [libxfcegui4-1.0], [4.3.90.2
])
XDT_CHECK_PACKAGE([LIBXFCE
4UI], [libxfce4ui-1], [4.7.0
])
XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.99.1])
XDT_CHECK_PACKAGE([LIBXML], [libxml-2.0], [2.4.0])
...
...
panel-plugin/Makefile.am
View file @
d776b317
...
...
@@ -33,7 +33,7 @@ xfce4_weather_plugin_SOURCES = \
xfce4_weather_plugin_CFLAGS
=
\
$(LIBXFCE4PANEL_CFLAGS)
\
$(LIBXFCE
GUI4
_CFLAGS)
\
$(LIBXFCE
4UI
_CFLAGS)
\
$(LIBXFCE4UTIL_CFLAGS)
\
$(GTK_CFLAGS)
\
$(LIBXML_CFLAGS)
...
...
@@ -41,7 +41,7 @@ xfce4_weather_plugin_CFLAGS = \
xfce4_weather_plugin_LDADD
=
\
$(LIBXFCE4PANEL_LIBS)
\
$(LIBXFCE4UTIL_LIBS)
\
$(LIBXFCE
GUI4
_LIBS)
\
$(LIBXFCE
4UI
_LIBS)
\
$(GTK_LIBS)
\
$(LIBXML_LIBS)
\
$(LIBRESOLV)
...
...
panel-plugin/weather-config.c
View file @
d776b317
...
...
@@ -20,7 +20,7 @@
#endif
#include <string.h>
#include <libxfce
gui4/libxfcegui4
.h>
#include <libxfce
4ui/libxfce4ui
.h>
#include "weather-parsers.h"
#include "weather-data.h"
...
...
@@ -173,14 +173,20 @@ apply_options (xfceweather_dialog *dialog)
else
data
->
unit
=
METRIC
;
if
(
data
->
location_code
)
g_free
(
data
->
location_code
);
if
(
data
->
lat
)
g_free
(
data
->
lat
);
if
(
data
->
lon
)
g_free
(
data
->
lon
);
if
(
data
->
location_name
)
g_free
(
data
->
location_name
);
data
->
location_code
=
g_strdup
(
gtk_entry_get_text
(
GTK_ENTRY
(
dialog
->
txt_loc_code
)));
data
->
lat
=
g_strdup
(
gtk_entry_get_text
(
GTK_ENTRY
(
dialog
->
txt_lat
)));
data
->
lon
=
g_strdup
(
gtk_entry_get_text
(
GTK_ENTRY
(
dialog
->
txt_lon
)));
data
->
location_name
=
g_strdup
(
gtk_label_get_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
)));
...
...
@@ -279,19 +285,21 @@ option_i (datas opt)
return
-
1
;
}
static
void
auto_locate_cb
(
const
gchar
*
loc_name
,
const
gchar
*
l
oc_code
,
gpointer
user_data
)
static
void
auto_locate_cb
(
const
gchar
*
loc_name
,
const
gchar
*
l
at
,
const
gchar
*
lon
,
gpointer
user_data
)
{
xfceweather_dialog
*
dialog
=
(
xfceweather_dialog
*
)
user_data
;
if
(
loc_code
&&
loc_name
)
{
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_loc_code
),
loc_code
);
if
(
lat
&&
lon
&&
loc_name
)
{
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lat
),
lat
);
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lon
),
lon
);
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
loc_name
);
gtk_widget_set_sensitive
(
dialog
->
txt_loc_name
,
TRUE
);
#if GTK_CHECK_VERSION(2,12,0)
gtk_widget_set_tooltip_text
(
dialog
->
txt_loc_name
,
loc_name
);
#endif
}
else
{
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_loc_code
),
""
);
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lat
),
""
);
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lon
),
""
);
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
_
(
"Unset"
));
gtk_widget_set_sensitive
(
dialog
->
txt_loc_name
,
TRUE
);
}
...
...
@@ -317,7 +325,8 @@ cb_findlocation (GtkButton *button,
dialog
->
wd
->
proxy_port
);
if
(
run_search_dialog
(
sdialog
))
{
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_loc_code
),
sdialog
->
result
);
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lat
),
sdialog
->
result_lat
);
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lon
),
sdialog
->
result_lon
);
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
sdialog
->
result_name
);
gtk_widget_set_sensitive
(
dialog
->
txt_loc_name
,
TRUE
);
#if GTK_CHECK_VERSION(2,12,0)
...
...
@@ -377,7 +386,8 @@ create_config_dialog (xfceweather_data *data,
label
=
gtk_label_new
(
_
(
"Location:"
));
dialog
->
txt_loc_code
=
gtk_entry_new
();
dialog
->
txt_lat
=
gtk_entry_new
();
dialog
->
txt_lon
=
gtk_entry_new
();
dialog
->
txt_loc_name
=
gtk_label_new
(
""
);
gtk_misc_set_alignment
(
GTK_MISC
(
label
),
0
,
0
.
5
);
...
...
@@ -386,28 +396,23 @@ create_config_dialog (xfceweather_data *data,
#if GTK_CHECK_VERSION(2,12,0)
gtk_label_set_ellipsize
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
PANGO_ELLIPSIZE_END
);
#endif
if
(
dialog
->
wd
->
location_code
!=
NULL
)
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_loc_code
),
dialog
->
wd
->
location_code
);
if
(
dialog
->
wd
->
lat
!=
NULL
)
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lat
),
dialog
->
wd
->
lat
);
if
(
dialog
->
wd
->
lon
!=
NULL
)
gtk_entry_set_text
(
GTK_ENTRY
(
dialog
->
txt_lon
),
dialog
->
wd
->
lon
);
if
(
dialog
->
wd
->
location_name
!=
NULL
)
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
dialog
->
wd
->
location_name
);
else
if
(
dialog
->
wd
->
weatherdata
&&
get_data
(
dialog
->
wd
->
weatherdata
,
DNAM
)
!=
NULL
&&
strlen
(
get_data
(
dialog
->
wd
->
weatherdata
,
DNAM
))
>
1
)
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
get_data
(
dialog
->
wd
->
weatherdata
,
DNAM
));
else
gtk_label_set_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
),
dialog
->
wd
->
location_code
);
#if GTK_CHECK_VERSION(2,12,0)
gtk_widget_set_tooltip_text
(
dialog
->
txt_loc_name
,
gtk_label_get_text
(
GTK_LABEL
(
dialog
->
txt_loc_name
)));
#endif
if
(
dialog
->
wd
->
l
ocation_code
==
NULL
)
{
if
(
dialog
->
wd
->
l
at
==
NULL
||
dialog
->
wd
->
lon
==
NULL
)
{
start_auto_locate
(
dialog
);
}
gtk_size_group_add_widget
(
sg
,
label
);
...
...
panel-plugin/weather-config.h
View file @
d776b317
...
...
@@ -31,7 +31,8 @@ typedef struct
{
GtkWidget
*
dialog
;
GtkWidget
*
opt_unit
;
GtkWidget
*
txt_loc_code
;
GtkWidget
*
txt_lat
;
GtkWidget
*
txt_lon
;
GtkWidget
*
txt_loc_name
;
GtkWidget
*
txt_proxy_host
;
GtkWidget
*
txt_proxy_port
;
...
...
panel-plugin/weather-search.c
View file @
d776b317
...
...
@@ -21,7 +21,7 @@
#include <string.h>
#include <libxfce
gui4/libxfcegui4
.h>
#include <libxfce
4ui/libxfce4ui
.h>
#include "weather-parsers.h"
#include "weather-data.h"
...
...
@@ -36,13 +36,14 @@
static
void
append_result
(
GtkListStore
*
mdl
,
gchar
*
id
,
gchar
*
lat
,
gchar
*
lon
,
gchar
*
city
)
{
GtkTreeIter
iter
;
gtk_list_store_append
(
mdl
,
&
iter
);
gtk_list_store_set
(
mdl
,
&
iter
,
0
,
city
,
1
,
id
,
-
1
);
gtk_list_store_set
(
mdl
,
&
iter
,
0
,
city
,
1
,
lat
,
lon
,
-
1
);
}
...
...
@@ -79,7 +80,7 @@ cb_searchdone (gboolean succeed,
search_dialog
*
dialog
=
(
search_dialog
*
)
user_data
;
xmlDoc
*
doc
;
xmlNode
*
cur_node
;
gchar
*
id
,
*
city
;
gchar
*
lat
,
*
lon
,
*
city
;
gint
found
=
0
;
GtkTreeIter
iter
;
GtkTreeSelection
*
selection
;
...
...
@@ -106,24 +107,29 @@ cb_searchdone (gboolean succeed,
{
for
(
cur_node
=
cur_node
->
children
;
cur_node
;
cur_node
=
cur_node
->
next
)
{
if
(
NODE_IS_TYPE
(
cur_node
,
"
loc
"
))
if
(
NODE_IS_TYPE
(
cur_node
,
"
place
"
))
{
id
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"id"
);
if
(
!
id
)
continue
;
city
=
DATA
(
cur_node
);
lat
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"lat"
);
if
(
!
lat
)
continue
;
lon
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"lon"
);
if
(
!
lon
)
{
g_free
(
lat
);
continue
;
}
city
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"display_name"
);
if
(
!
city
)
{
g_free
(
id
);
g_free
(
lat
);
g_free
(
lon
);
continue
;
}
append_result
(
dialog
->
result_mdl
,
id
,
city
);
append_result
(
dialog
->
result_mdl
,
lat
,
lon
,
city
);
found
++
;
g_free
(
id
);
g_free
(
lat
);
g_free
(
lon
);
g_free
(
city
);
}
}
...
...
@@ -177,11 +183,11 @@ search_cb (GtkWidget *widget,
gtk_widget_set_sensitive
(
dialog
->
find_button
,
FALSE
);
gtk_dialog_set_response_sensitive
(
GTK_DIALOG
(
dialog
->
dialog
),
GTK_RESPONSE_ACCEPT
,
FALSE
);
url
=
g_strdup_printf
(
"/search
/search?where=%s
"
,
sane_str
);
url
=
g_strdup_printf
(
"/search
?q=%s&format=xml
"
,
sane_str
);
g_free
(
sane_str
);
gtk_tree_view_column_set_title
(
dialog
->
column
,
_
(
"Searching..."
));
weather_http_receive_data
(
"
xoap.weather.com
"
,
url
,
weather_http_receive_data
(
"
nominatim.openstreetmap.org
"
,
url
,
dialog
->
proxy_host
,
dialog
->
proxy_port
,
cb_searchdone
,
dialog
);
...
...
@@ -269,7 +275,7 @@ create_search_dialog (GtkWindow *parent,
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
gtk_container_add
(
GTK_CONTAINER
(
frame
),
scroll
);
dialog
->
result_mdl
=
gtk_list_store_new
(
2
,
G_TYPE_STRING
,
G_TYPE_STRING
);
dialog
->
result_mdl
=
gtk_list_store_new
(
3
,
G_TYPE_STRING
,
G_TYPE_STRING
,
G_TYPE_STRING
);
dialog
->
result_list
=
gtk_tree_view_new_with_model
(
GTK_TREE_MODEL
(
dialog
->
result_mdl
));
dialog
->
column
=
gtk_tree_view_column_new_with_attributes
(
_
(
"Results"
),
renderer
,
"text"
,
0
,
NULL
);
gtk_tree_view_append_column
(
GTK_TREE_VIEW
(
dialog
->
result_list
),
dialog
->
column
);
...
...
@@ -301,7 +307,13 @@ run_search_dialog (search_dialog *dialog)
{
gtk_tree_model_get_value
(
GTK_TREE_MODEL
(
dialog
->
result_mdl
),
&
iter
,
1
,
&
value
);
dialog
->
result
=
g_strdup
(
g_value_get_string
(
&
value
));
dialog
->
result_lat
=
g_strdup
(
g_value_get_string
(
&
value
));
g_value_unset
(
&
value
);
gtk_tree_model_get_value
(
GTK_TREE_MODEL
(
dialog
->
result_mdl
),
&
iter
,
2
,
&
value
);
dialog
->
result_lon
=
g_strdup
(
g_value_get_string
(
&
value
));
g_value_unset
(
&
value
);
...
...
@@ -321,7 +333,8 @@ run_search_dialog (search_dialog *dialog)
void
free_search_dialog
(
search_dialog
*
dialog
)
{
g_free
(
dialog
->
result
);
g_free
(
dialog
->
result_lat
);
g_free
(
dialog
->
result_lon
);
g_free
(
dialog
->
result_name
);
g_free
(
dialog
->
last_search
);
...
...
@@ -333,7 +346,7 @@ free_search_dialog (search_dialog * dialog)
typedef
struct
{
const
gchar
*
proxy_host
;
gint
proxy_port
;
void
(
*
cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
oc_code
,
gpointer
user_data
);
void
(
*
cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
at
,
const
gchar
*
lon
,
gpointer
user_data
);
gpointer
user_data
;
}
geolocation_data
;
...
...
@@ -347,10 +360,10 @@ cb_geo_searchdone (gboolean succeed,
geolocation_data
*
data
=
(
geolocation_data
*
)
user_data
;
xmlDoc
*
doc
;
xmlNode
*
cur_node
;
gchar
*
id
,
*
city
;
gchar
*
lat
,
*
lon
,
*
city
;
if
(
!
succeed
||
received
==
NULL
)
{
data
->
cb
(
NULL
,
NULL
,
data
->
user_data
);
data
->
cb
(
NULL
,
NULL
,
NULL
,
data
->
user_data
);
g_free
(
data
);
return
;
}
...
...
@@ -364,7 +377,7 @@ cb_geo_searchdone (gboolean succeed,
g_free
(
received
);
if
(
!
doc
)
{
data
->
cb
(
NULL
,
NULL
,
data
->
user_data
);
data
->
cb
(
NULL
,
NULL
,
NULL
,
data
->
user_data
);
g_free
(
data
);
return
;
}
...
...
@@ -375,23 +388,29 @@ cb_geo_searchdone (gboolean succeed,
{
for
(
cur_node
=
cur_node
->
children
;
cur_node
;
cur_node
=
cur_node
->
next
)
{
if
(
NODE_IS_TYPE
(
cur_node
,
"
loc
"
))
if
(
NODE_IS_TYPE
(
cur_node
,
"
place
"
))
{
id
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"id"
);
lat
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"lat"
);
if
(
!
lat
)
continue
;
lon
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"lon"
);
if
(
!
lon
)
{
g_free
(
lat
);
continue
;
}
if
(
!
id
)
continue
;
city
=
DATA
(
cur_node
);
city
=
(
gchar
*
)
xmlGetProp
(
cur_node
,
(
const
xmlChar
*
)
"display_name"
);
if
(
!
city
)
{
g_free
(
id
);
g_free
(
lat
);
g_free
(
lon
);
continue
;
}
data
->
cb
(
city
,
id
,
data
->
user_data
);
g_free
(
id
);
data
->
cb
(
city
,
lat
,
lon
,
data
->
user_data
);
g_free
(
lat
);
g_free
(
lon
);
g_free
(
city
);
break
;
}
...
...
@@ -418,7 +437,7 @@ cb_geolocation (gboolean succeed,
gchar
*
p
;
if
(
!
succeed
||
received
==
NULL
)
{
data
->
cb
(
NULL
,
NULL
,
data
->
user_data
);
data
->
cb
(
NULL
,
NULL
,
NULL
,
data
->
user_data
);
g_free
(
data
);
return
;
}
...
...
@@ -439,7 +458,7 @@ cb_geolocation (gboolean succeed,
g_free
(
received
);
if
(
!
doc
)
{
data
->
cb
(
NULL
,
NULL
,
data
->
user_data
);
data
->
cb
(
NULL
,
NULL
,
NULL
,
data
->
user_data
);
g_free
(
data
);
return
;
}
...
...
@@ -496,17 +515,17 @@ cb_geolocation (gboolean succeed,
gchar
*
url
,
*
sane_str
;
if
((
sane_str
=
sanitize_str
(
full_loc
))
==
NULL
)
{
data
->
cb
(
NULL
,
NULL
,
data
->
user_data
);
data
->
cb
(
NULL
,
NULL
,
NULL
,
data
->
user_data
);
g_free
(
data
);
g_free
(
full_loc
);
return
;
}
g_free
(
full_loc
);
url
=
g_strdup_printf
(
"/search
/search?where=%s
"
,
sane_str
);
url
=
g_strdup_printf
(
"/search
?q=%s&format=xml
"
,
sane_str
);
g_free
(
sane_str
);
weather_http_receive_data
(
"
xoap.weather.com
"
,
url
,
weather_http_receive_data
(
"
nominatim.openstreetmap.org
"
,
url
,
data
->
proxy_host
,
data
->
proxy_port
,
cb_geo_searchdone
,
data
);
g_free
(
url
);
...
...
@@ -517,7 +536,7 @@ cb_geolocation (gboolean succeed,
void
weather_search_by_ip
(
const
gchar
*
proxy_host
,
gint
proxy_port
,
void
(
*
gui_cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
oc_code
,
gpointer
user_data
),
void
(
*
gui_cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
at
,
const
gchar
*
lon
,
gpointer
user_data
),
gpointer
user_data
)
{
geolocation_data
*
data
;
...
...
panel-plugin/weather-search.h
View file @
d776b317
...
...
@@ -33,7 +33,8 @@ typedef struct
GtkListStore
*
result_mdl
;
GtkTreeViewColumn
*
column
;
gchar
*
result
;
gchar
*
result_lat
;
gchar
*
result_lon
;
gchar
*
result_name
;
gchar
*
proxy_host
;
...
...
@@ -48,7 +49,7 @@ search_dialog *create_search_dialog (GtkWindow *, gchar *, gint);
gboolean
run_search_dialog
(
search_dialog
*
dialog
);
void
weather_search_by_ip
(
const
gchar
*
proxy_host
,
gint
proxy_port
,
void
(
*
gui_cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
oc_code
,
gpointer
user_data
),
void
(
*
gui_cb
)(
const
gchar
*
loc_name
,
const
gchar
*
l
at
,
const
gchar
*
lon
,
gpointer
user_data
),
gpointer
user_data
);
void
free_search_dialog
(
search_dialog
*
dialog
);
...
...
panel-plugin/weather-summary.c
View file @
d776b317
...
...
@@ -19,7 +19,7 @@
#include <config.h>
#endif
#include <libxfce
gui4/libxfcegui4
.h>
#include <libxfce
4ui/libxfce4ui
.h>
#include "weather-parsers.h"
#include "weather-data.h"
...
...
panel-plugin/weather.c
View file @
d776b317
...
...
@@ -23,7 +23,7 @@
#include <sys/stat.h>
#include <libxfce4util/libxfce4util.h>
#include <libxfce
gui4/libxfcegui4
.h>
#include <libxfce
4ui/libxfce4ui
.h>
#include "weather-parsers.h"
#include "weather-data.h"
...
...
@@ -368,7 +368,7 @@ update_weatherdata (xfceweather_data *data)
{
gchar
*
url
;
if
(
!
data
->
l
ocation_code
)
if
(
!
data
->
l
at
||
!
data
->
lon
)
{
gtk_scrollbox_clear
(
GTK_SCROLLBOX
(
data
->
scrollbox
));
set_icon_error
(
data
);
...
...
@@ -378,7 +378,7 @@ update_weatherdata (xfceweather_data *data)
/* build url */
url
=
g_strdup_printf
(
"/weather/local/%s?cc=*&dayf=%d&unit=%c&link=xoap&prod=xoap&par=%s&key=%s"
,
data
->
location_code
,
XML_WEATHER_DAYF_N
,
"FIXME"
,
XML_WEATHER_DAYF_N
,
data
->
unit
==
METRIC
?
'm'
:
'i'
,
PARTNER_ID
,
LICENSE_KEY
);
...
...
@@ -442,14 +442,24 @@ xfceweather_read_config (XfcePanelPlugin *plugin,
if
(
!
rc
)
return
;
value
=
xfce_rc_read_entry
(
rc
,
"l
oc_code
"
,
NULL
);
value
=
xfce_rc_read_entry
(
rc
,
"l
at
"
,
NULL
);
if
(
value
)
{
if
(
data
->
l
ocation_code
)
g_free
(
data
->
l
ocation_code
);
if
(
data
->
l
at
)
g_free
(
data
->
l
at
);
data
->
location_code
=
g_strdup
(
value
);
data
->
lat
=
g_strdup
(
value
);
}
value
=
xfce_rc_read_entry
(
rc
,
"lon"
,
NULL
);
if
(
value
)
{
if
(
data
->
lon
)
g_free
(
data
->
lon
);
data
->
lon
=
g_strdup
(
value
);
}
value
=
xfce_rc_read_entry
(
rc
,
"loc_name"
,
NULL
);
...
...
@@ -547,8 +557,11 @@ xfceweather_write_config (XfcePanelPlugin *plugin,
xfce_rc_write_bool_entry
(
rc
,
"celcius"
,
(
data
->
unit
==
METRIC
));
if
(
data
->
location_code
)
xfce_rc_write_entry
(
rc
,
"loc_code"
,
data
->
location_code
);
if
(
data
->
lat
)
xfce_rc_write_entry
(
rc
,
"lat"
,
data
->
lat
);
if
(
data
->
lon
)
xfce_rc_write_entry
(
rc
,
"lon"
,
data
->
lon
);
if
(
data
->
location_name
)
xfce_rc_write_entry
(
rc
,
"loc_name"
,
data
->
location_name
);
...
...
@@ -898,7 +911,8 @@ xfceweather_free (XfcePanelPlugin *plugin,
#endif
/* Free chars */
g_free
(
data
->
location_code
);
g_free
(
data
->
lat
);
g_free
(
data
->
lon
);
g_free
(
data
->
location_name
);
g_free
(
data
->
proxy_host
);
...
...
panel-plugin/weather.h
View file @
d776b317
...
...
@@ -49,7 +49,8 @@ typedef struct
GtkOrientation
orientation
;
gint
updatetimeout
;
gchar
*
location_code
;
gchar
*
lat
;
gchar
*
lon
;
gchar
*
location_name
;
units
unit
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment