Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PR: Remember language in weather normals viewer #346

Merged
merged 4 commits into from
Oct 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions gwhat/config/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@
'detrend_waterlevels': True,
}
),
('weather_normals_viewer',
{'graphs_labels_language': 'english'}
),
]


Expand Down
1 change: 1 addition & 0 deletions gwhat/mainwindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ def closeEvent(self, event):

print('Closing projet')
self.pmanager.close()
self.dmanager.close()

print('Closing GWHAT')
self.tab_hydrocalc.close()
Expand Down
25 changes: 16 additions & 9 deletions gwhat/meteo/weather_viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,11 +90,11 @@ def __initUI__(self):
"Show the monthly weather normals data table.")
btn_showStats.clicked.connect(self.show_monthly_grid)

btn_language = LangToolButton()
btn_language.setToolTip(
self.btn_language = LangToolButton()
self.btn_language.setToolTip(
"Set the language of the text shown in the graph.")
btn_language.sig_lang_changed.connect(self.set_lang)
btn_language.setIconSize(icons.get_iconsize('normal'))
self.btn_language.sig_lang_changed.connect(self.set_language)
self.btn_language.setIconSize(icons.get_iconsize('normal'))

# Instantiate and define a layout for the year range widget.

Expand Down Expand Up @@ -123,7 +123,7 @@ def __initUI__(self):
self.toolbar = QToolBar()
self.toolbar.setStyleSheet("QToolBar {border: 0px; spacing:1px;}")
buttons = [btn_save, self.btn_copy, self.btn_export, btn_showStats,
btn_language, None, self.year_rng]
self.btn_language, None, self.year_rng]
for button in buttons:
if button is None:
self.toolbar.addSeparator()
Expand Down Expand Up @@ -157,10 +157,17 @@ def show_monthly_grid(self):
self.grid_weather_normals.calcul_height())
self.sender().setAutoRaise(True)

def set_lang(self, lang):
def get_language(self):
"""Return the language used for the figure labels."""
return self.btn_language.language

def set_language(self, language):
"""Sets the language of all the labels in the figure."""
self.fig_weather_normals.set_lang(lang)
self.fig_weather_normals.draw()
if language.lower() != self.btn_language.language.lower():
self.btn_language.set_language(language)
else:
self.fig_weather_normals.set_lang(language)
self.fig_weather_normals.draw()

def set_weather_dataset(self, wxdset):
"""
Expand Down Expand Up @@ -813,7 +820,7 @@ def select_export_file(self, time_frame, savefilename=None):

w = WeatherViewer()

w.set_lang('French')
w.set_language('French')
w.set_weather_dataset(wxdset)
w.show()

Expand Down
11 changes: 11 additions & 0 deletions gwhat/projet/manager_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
QLineEdit, QPushButton, QFileDialog, QApplication, QDialog, QGroupBox)

# ---- Local library imports
from gwhat.config.main import CONF
from gwhat.config.ospath import (
get_select_file_dialog_dir, set_select_file_dialog_dir)
from gwhat.meteo.weather_viewer import WeatherViewer, ExportWeatherButton
Expand Down Expand Up @@ -73,6 +74,14 @@ def __init__(self, parent=None, projet=None, pm=None, pytesting=False):
pm.currentProjetChanged.connect(self.set_projet)
self.set_projet(pm.projet)

def close(self):
"""Close this data manager."""
if self.weather_avg_graph is not None:
CONF.set('weather_normals_viewer',
'graphs_labels_language',
self.weather_avg_graph.get_language())
self.weather_avg_graph.close()

def setup_manager(self):
"""Setup the layout of the manager."""
layout = QGridLayout(self)
Expand Down Expand Up @@ -467,6 +476,8 @@ def show_weather_normals(self):
return
if self.weather_avg_graph is None:
self.weather_avg_graph = WeatherViewer()
self.weather_avg_graph.set_language(
CONF.get('weather_normals_viewer', 'graphs_labels_language'))
self.weather_avg_graph.set_weather_dataset(self.get_current_wxdset())
self.weather_avg_graph.show()

Expand Down