modified: README.md

modified:   po/fr.po
	modified:   src/extension.js
	modified:   src/stylesheet.css
yahoo_weather
Christian METZLER 13 years ago
parent e472d48830
commit 6d9ebe3a56
  1. 52
      README.md
  2. 3
      po/fr.po
  3. 46
      src/extension.js
  4. 18
      src/stylesheet.css

@ -12,33 +12,32 @@ Currently, the weather report including forecast for today and tomorrow is fetch
---- ----
### Depends
* `libglib2.0-dev`, without you'll get an error about `GLIB_GSETTINGS`.
* `gnome-common`
----
### Installation ### Installation
* [Arch Linux](https://aur.archlinux.org/packages.php?ID=49409) Run the following commands in the `gnome-shell-extension-weather` directory:
* [Frugalware](http://www.frugalware.org/packages/119339) `./autogen.sh --prefix=/usr && make && sudo make install && sudo `
* [Ubuntu](https://launchpad.net/~webupd8team/+archive/gnome3/+packages)
* Generic: For a generic installation, run the following commands:
`./autogen.sh --prefix=/usr && make && sudo make install`
* Make sure you have the `libglib2.0-dev` package (or equivalent for your distribution)
installed, or else you'll get an error about `GLIB_GSETTINGS`.
* *Please report further links!*
That's it! That's it!
### Versions ### Versions
Due to incompatible changes between GNOME 3.0 and 3.2, separate versions of this extension are provided: Only for GNOME Shell 3.2 (not tested under GNOME Shell 3.0)
* For GNOME Shell 3.2, use the `master` branch.
* For GNOME Shell 3.0, use the `gnome3.0` branch.
---- ----
### Configuration ### Configuration
gnome-shell-extension-weather uses gsettings to save your configuration. You can use `dconf-editor` or `gsettings` from the command line to modify some parameters. Use the `Weather Settings` button to edit the configuration.
You can also use `dconf-editor` or `gsettings` to modify some parameters from the command line.
#### Location ("Cambridge, MA" (GNOME Foundation) by default) #### City (`Cambridge, MA` (GNOME Foundation) by default)
You can specify your location using the following command. Perhaps you need quotation marks as in the second command. You can specify your location using the following command. Perhaps you need quotation marks as in the second command.
@ -52,6 +51,14 @@ You can modify the temperature unit using one of the following commands:
gsettings set org.gnome.shell.extensions.weather unit celsius gsettings set org.gnome.shell.extensions.weather unit celsius
gsettings set org.gnome.shell.extensions.weather unit fahrenheit gsettings set org.gnome.shell.extensions.weather unit fahrenheit
#### Position in Panel (optional, center by default)
The position of this GNOME Shell extension in the panel can be configured to either 'left', 'center' or 'right' (requires restart of GNOME Shell).
gsettings set org.gnome.shell.extensions.weather position-in-panel center
gsettings set org.gnome.shell.extensions.weather position-in-panel left
gsettings set org.gnome.shell.extensions.weather position-in-panel right
#### Translate Weather Conditions (optional, true by default) #### Translate Weather Conditions (optional, true by default)
You may want to configure whether to translate the weather condition. If enabled, the condition is translated based on the weather code. If disabled, the condition string from Yahoo is taken. Note: Enabling the translation sometimes results in loss of accuracy, e.g., the condition string "PM Thunderstorms" cannot be expressed in terms of weather codes. You may want to configure whether to translate the weather condition. If enabled, the condition is translated based on the weather code. If disabled, the condition string from Yahoo is taken. Note: Enabling the translation sometimes results in loss of accuracy, e.g., the condition string "PM Thunderstorms" cannot be expressed in terms of weather codes.
@ -59,12 +66,12 @@ You may want to configure whether to translate the weather condition. If enabled
gsettings set org.gnome.shell.extensions.weather translate-condition true gsettings set org.gnome.shell.extensions.weather translate-condition true
gsettings set org.gnome.shell.extensions.weather translate-condition false gsettings set org.gnome.shell.extensions.weather translate-condition false
#### Use Symbolic Icons (optional, true by default) #### Symbolic Icons (optional, true by default)
If desired, you can enable the usage of symbolic icons to display the weather condition (instead of full-colored icons). If desired, you can enable the usage of full-colored icons to display the weather condition (instead of symbolic icons).
gsettings set org.gnome.shell.extensions.weather use-symbolic-icons false
gsettings set org.gnome.shell.extensions.weather use-symbolic-icons true gsettings set org.gnome.shell.extensions.weather use-symbolic-icons true
gsettings set org.gnome.shell.extensions.weather use-symbolic-icons false
#### Show Text in Panel (optional, true by default) #### Show Text in Panel (optional, true by default)
@ -73,21 +80,13 @@ You can configure whether to show the weather condition text (aka. comment) toge
gsettings set org.gnome.shell.extensions.weather show-text-in-panel true gsettings set org.gnome.shell.extensions.weather show-text-in-panel true
gsettings set org.gnome.shell.extensions.weather show-text-in-panel false gsettings set org.gnome.shell.extensions.weather show-text-in-panel false
#### Show Comment in Panel (optional, false by default) #### Include condition (optional, false by default)
Configures whether to show the comment (aka. weather condition text, e.g. "Windy", "Clear") in the panel. Note that the temperature is still shown (if undesired, consider show-text-in-panel option). Configures whether to show the comment (aka. weather condition text, e.g. "Windy", "Clear") in the panel. Note that the temperature is still shown (if undesired, consider show-text-in-panel option).
gsettings set org.gnome.shell.extensions.weather show-comment-in-panel false gsettings set org.gnome.shell.extensions.weather show-comment-in-panel false
gsettings set org.gnome.shell.extensions.weather show-comment-in-panel true gsettings set org.gnome.shell.extensions.weather show-comment-in-panel true
#### Position in Panel (optional, center by default)
The position of this GNOME Shell extension in the panel can be configured to either 'left', 'center' or 'right' (requires restart of GNOME Shell).
gsettings set org.gnome.shell.extensions.weather position-in-panel center
gsettings set org.gnome.shell.extensions.weather position-in-panel left
gsettings set org.gnome.shell.extensions.weather position-in-panel right
#### Refresh Interval (optional, 300 by default) #### Refresh Interval (optional, 300 by default)
The interval to refresh the weather information may be set arbitrarily and is specified in seconds. The interval to refresh the weather information may be set arbitrarily and is specified in seconds.
@ -111,6 +110,7 @@ Timur Kristóf <venemo@msn.com>,
Elad Alfassa <elad@fedoraproject.org>, Elad Alfassa <elad@fedoraproject.org>,
Simon Legner <Simon.Legner@gmail.com>, Simon Legner <Simon.Legner@gmail.com>,
Simon Claessens <gagalago@gmail.com> Simon Claessens <gagalago@gmail.com>
Christian METZLER <neroth@xeked.com>
This file is part of gnome-shell-extension-weather. This file is part of gnome-shell-extension-weather.

@ -271,6 +271,9 @@ msgstr "Pression :"
msgid "Wind:" msgid "Wind:"
msgstr "Vent :" msgstr "Vent :"
#: extension.js:689
msgid "Weather Settings"
msgstr "Paramètres de météo"
#: weather-extension-configurator.py:113 #: weather-extension-configurator.py:113
msgid "City" msgid "City"

@ -32,7 +32,6 @@ const Cairo = imports.cairo;
const Gettext = imports.gettext.domain('gnome-shell-extension-weather'); const Gettext = imports.gettext.domain('gnome-shell-extension-weather');
const Gio = imports.gi.Gio; const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk; const Gtk = imports.gi.Gtk;
const Json = imports.gi.Json;
const Lang = imports.lang; const Lang = imports.lang;
const Mainloop = imports.mainloop; const Mainloop = imports.mainloop;
const Soup = imports.gi.Soup; const Soup = imports.gi.Soup;
@ -160,10 +159,11 @@ WeatherMenuButton.prototype = {
this._currentWeather = new St.Bin({ style_class: 'current' }); this._currentWeather = new St.Bin({ style_class: 'current' });
// Future weather // Future weather
this._futureWeather = new St.Bin({ style_class: 'forecast' /*, x_align: St.Align.START*/}); this._futureWeather = new St.Bin({ style_class: 'forecast' /*, x_align: St.Align.START*/});
// Setting button
this._settingWeather = new St.Bin({ style_class: 'setting' });
// Separator (copied from Gnome shell's popupMenu.js) // Separators (copied from Gnome shell's popupMenu.js)
this._separatorArea = new St.DrawingArea({ style_class: 'popup-separator-menu-item' }); this._separatorArea = new St.DrawingArea({ style_class: 'popup-separator-menu-item' });
this._separatorArea.width = 200;
this._separatorArea.connect('repaint', Lang.bind(this, this._onSeparatorAreaRepaint)); this._separatorArea.connect('repaint', Lang.bind(this, this._onSeparatorAreaRepaint));
// Putting the popup item together // Putting the popup item together
@ -171,6 +171,7 @@ WeatherMenuButton.prototype = {
mainBox.add_actor(this._currentWeather); mainBox.add_actor(this._currentWeather);
mainBox.add_actor(this._separatorArea); mainBox.add_actor(this._separatorArea);
mainBox.add_actor(this._futureWeather); mainBox.add_actor(this._futureWeather);
mainBox.add_actor(this._settingWeather);
this.menu.addActor(mainBox); this.menu.addActor(mainBox);
@ -179,6 +180,7 @@ WeatherMenuButton.prototype = {
this.rebuildCurrentWeatherUi(); this.rebuildCurrentWeatherUi();
this.rebuildFutureWeatherUi(); this.rebuildFutureWeatherUi();
this.rebuildSettingWeatherUi();
// Show weather // Show weather
Mainloop.timeout_add_seconds(3, Lang.bind(this, function() { Mainloop.timeout_add_seconds(3, Lang.bind(this, function() {
@ -187,25 +189,8 @@ WeatherMenuButton.prototype = {
}, },
getPreferencesIcon: function() { _onPreferencesActivate : function() {
let prefIcon = new St.Icon ({
icon_type: this._icon_type,
icon_size: 16,
icon_name: 'system-run'
});
let prefButton = new St.Button({
style_class: 'panel-button'
});
prefButton.connect('clicked', function() {
Util.spawn(["weather-extension-configurator"]); Util.spawn(["weather-extension-configurator"]);
});
let prefBox = new St.BoxLayout({
style_class: 'weather-config',
vertical: true
});
prefButton.add_actor(prefIcon);
prefBox.add_actor(prefButton);
return prefBox;
}, },
unit_to_url: function() { unit_to_url: function() {
@ -569,6 +554,11 @@ WeatherMenuButton.prototype = {
this._futureWeather.get_child().destroy(); this._futureWeather.get_child().destroy();
}, },
destroySettingWeather: function() {
if (this._settingWeather.get_child() != null)
this._settingWeather.get_child().destroy();
},
showLoadingUi: function() { showLoadingUi: function() {
this.destroyCurrentWeather(); this.destroyCurrentWeather();
this.destroyFutureWeather(); this.destroyFutureWeather();
@ -582,7 +572,7 @@ WeatherMenuButton.prototype = {
// This will hold the icon for the current weather // This will hold the icon for the current weather
this._currentWeatherIcon = new St.Icon({ this._currentWeatherIcon = new St.Icon({
icon_type: this._icon_type, icon_type: this._icon_type,
icon_size: 64, icon_size: 72,
icon_name: 'view-refresh-symbolic', icon_name: 'view-refresh-symbolic',
style_class: 'weather-current-icon' style_class: 'weather-current-icon'
}); });
@ -633,7 +623,6 @@ WeatherMenuButton.prototype = {
let xb = new St.BoxLayout(); let xb = new St.BoxLayout();
xb.add_actor(bb); xb.add_actor(bb);
xb.add_actor(rb); xb.add_actor(rb);
xb.add_actor(this.getPreferencesIcon());
let box = new St.BoxLayout({ let box = new St.BoxLayout({
style_class: 'weather-current-iconbox' style_class: 'weather-current-iconbox'
@ -691,6 +680,17 @@ WeatherMenuButton.prototype = {
}, },
rebuildSettingWeatherUi: function() {
this.destroySettingWeather();
let item = new PopupMenu.PopupSeparatorMenuItem();
this.menu.addMenuItem(item);
let item = new PopupMenu.PopupMenuItem(_("Weather Settings"));
item.connect('activate', Lang.bind(this, this._onPreferencesActivate));
this.menu.addMenuItem(item);
},
// Copied from Gnome shell's popupMenu.js // Copied from Gnome shell's popupMenu.js
_onSeparatorAreaRepaint: function(area) { _onSeparatorAreaRepaint: function(area) {
let cr = area.get_context(); let cr = area.get_context();

@ -1,22 +1,20 @@
.weather-current-summarybox { .weather-current-summarybox {
padding-top: 15px;
} }
.weather-current-summary { .weather-current-summary {
font-size: 35px; font-size: 40px;
} }
.weather-current-databox { .weather-current-databox {
padding-top: 15px; padding: 0 15px 5px 30px;
padding-left: 30px;
} }
.weather-current-icon { .weather-current-icon {
padding: 0 30px; padding: 0px 30px 10px 30px;
} }
.weather-current-iconbox { .weather-current-iconbox {
padding: 10px; padding: 0 20px 0 0;
} }
.weather-icon { .weather-icon {
@ -34,11 +32,11 @@
} }
.weather-forecast-icon { .weather-forecast-icon {
padding: 0 15px 0 30px; padding: 0 15px 0px 25px;
} }
.weather-forecast-databox { .weather-forecast-databox {
padding: 0 30px 0 0; padding: 5px 30px 5px 0;
} }
.weather-forecast-day { .weather-forecast-day {
@ -46,6 +44,10 @@
font-size: 90%; font-size: 90%;
} }
.weather-setting-button {
padding-top: 500px;
}
.weather-config { .weather-config {
padding-right: 10px; padding-right: 10px;
} }

Loading…
Cancel
Save