diff --git a/files/usr/lib/cinnamon-settings/cinnamon-settings.py b/files/usr/lib/cinnamon-settings/cinnamon-settings.py index fa1e212..8bb1c1f 100755 --- a/files/usr/lib/cinnamon-settings/cinnamon-settings.py +++ b/files/usr/lib/cinnamon-settings/cinnamon-settings.py @@ -11,9 +11,6 @@ try: import gconf import json import dbus - import tz - import time - from datetime import datetime from user import home import thread except Exception, detail: @@ -738,245 +735,6 @@ class GSettingsComboBox(Gtk.HBox): value = self.model[tree_iter][0] self.settings.set_string(self.key, value) -class TimeZoneSelectorWidget(Gtk.HBox): - def __init__(self): - super(TimeZoneSelectorWidget, self).__init__() - - proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/") - self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism") - - self.timezones = tz.load_db() - - self.selected_region, self.selected_city = self.get_selected_zone() - - region_label = Gtk.Label(_("Region")) - self.pack_start(region_label, False, False, 2) - - regions = self.timezones.keys() - regions.sort() - self.region_model = Gtk.ListStore(str, str) - selected_region_iter = None - for region in regions: - iter = self.region_model.insert_before(None, None) - self.region_model.set_value(iter, 0, region) - self.region_model.set_value(iter, 1, region.replace("_", " ")) - if (region == self.selected_region): - selected_region_iter = iter - - self.region_widget = Gtk.ComboBox.new_with_model(self.region_model) - renderer_text = Gtk.CellRendererText() - self.region_widget.pack_start(renderer_text, True) - self.region_widget.add_attribute(renderer_text, "text", 1) - if selected_region_iter is not None: - self.region_widget.set_active_iter(selected_region_iter) - self.pack_start(self.region_widget, False, False, 2) - - city_label = Gtk.Label(_("City")) - self.pack_start(city_label, False, False, 2) - - self.city_model = Gtk.ListStore(str, str) - self.city_widget = Gtk.ComboBox.new_with_model(self.city_model) - renderer_text = Gtk.CellRendererText() - self.city_widget.pack_start(renderer_text, True) - self.city_widget.add_attribute(renderer_text, "text", 1) - self.pack_start(self.city_widget, False, False, 2) - - self.update_cities_list() - - self.region_widget.connect("changed", self.on_region_changed) - self.city_widget.connect("changed", self.on_city_changed) - def on_city_changed(self, widget): - tree_iter = widget.get_active_iter() - if tree_iter != None: - self.selected_city = self.city_model[tree_iter][0] - self.dbus_iface.SetTimezone(self.selected_region+"/"+self.selected_city) - def on_region_changed(self, widget): - tree_iter = widget.get_active_iter() - if tree_iter != None: - self.selected_region = self.region_model[tree_iter][0] - self.update_cities_list() - def update_cities_list(self): - self.city_model.clear() - if self.selected_region and self.selected_region in self.timezones.keys(): - cities = self.timezones[self.selected_region] - cities.sort() - selected_city_iter = None - for city in cities: - iter = self.city_model.insert_before(None, None) - self.city_model.set_value(iter, 0, city) - self.city_model.set_value(iter, 1, city.replace("_", " ")) - if (city == self.selected_city): - selected_city_iter = iter - if selected_city_iter is not None: - self.city_widget.set_active_iter(selected_city_iter) - def get_selected_zone(self): - tz = self.dbus_iface.GetTimezone() - if "/" in tz: - i = tz.index("/") - region = tz[:i] - city = tz[i+1:] - return region, city - else: - return "", "" - -class ChangeTimeWidget(Gtk.HBox): - def __init__(self): - super(ChangeTimeWidget, self).__init__() - proxy = dbus.SystemBus().get_object("org.gnome.SettingsDaemon.DateTimeMechanism", "/") - self.dbus_iface = dbus.Interface(proxy, dbus_interface="org.gnome.SettingsDaemon.DateTimeMechanism") - - # Ensures we are setting the system time only when the user changes it - self.changedOnTimeout = False - - # Ensures we do not update the values in the date/time fields during the DBus call to set the time - self._setting_time = False - self._setting_time_lock = thread.allocate() - self._time_to_set = None - - self.thirtyDays = [3, 5, 8, 10] - months = ['January','February','March','April','May','June','July','August','September','October','November','December'] - - # Boxes - timeBox = Gtk.HBox() - dateBox = Gtk.HBox() - - # Combo Boxes - self.monthBox = Gtk.ComboBoxText() - - for month in months: - self.monthBox.append_text(month) - - # Adjustments - hourAdj = Gtk.Adjustment(0, 0, 23, 1, 1) - minAdj = Gtk.Adjustment(0, 0, 59, 1, 1) - yearAdj = Gtk.Adjustment(0, 0, 9999, 1, 5) - dayAdj = Gtk.Adjustment(0, 1, 31, 1, 1) - - # Spin buttons - self.hourSpin = Gtk.SpinButton() - self.minSpin = Gtk.SpinButton() - self.yearSpin = Gtk.SpinButton() - self.daySpin = Gtk.SpinButton() - - self.hourSpin.configure(hourAdj, 0.5, 0) - self.minSpin.configure(minAdj, 0.5, 0) - self.yearSpin.configure(yearAdj, 0.5, 0) - self.daySpin.configure(dayAdj, 0.5, 0) - #self.hourSpin.set_editable(False) - #self.minSpin.set_editable(False) - #self.yearSpin.set_editable(False) - #self.daySpin.set_editable(False) - - self.update_time() - GObject.timeout_add(1000, self.update_time) - - # Connect to callback - self.hourSpin.connect('changed', self._change_system_time) - self.minSpin.connect('changed', self._change_system_time) - self.monthBox.connect('changed', self._change_system_time) - self.yearSpin.connect('changed', self._change_system_time) - self.daySpin.connect('changed', self._change_system_time) - - timeBox.pack_start(self.hourSpin, False, False, 2) - timeBox.pack_start(Gtk.Label(_(":")), False, False, 2) - timeBox.pack_start(self.minSpin, False, False, 2) - - dateBox.pack_start(self.monthBox, False, False, 2) - dateBox.pack_start(self.daySpin, False, False, 2) - dateBox.pack_start(self.yearSpin, False, False, 2) - - self.pack_start(Gtk.Label(_("Date : ")), False, False, 2) - self.pack_start(dateBox, True, True, 2) - self.pack_start(Gtk.Label(_("Time : ")), False, False, 2) - self.pack_start(timeBox, True, True, 2) - - def update_time(self): - self._setting_time_lock.acquire() - do_update = not self._setting_time - self._setting_time_lock.release() - - if not do_update: - return True - - dt = datetime.now() - - self.changedOnTimeout = True - - # Time - self.hourSpin.set_value( dt.hour ) - self.minSpin.set_value( dt.minute ) - - # Date - self.monthBox.set_active( dt.month-1 ) - self.daySpin.set_value( dt.day ) - self.yearSpin.set_value( dt.year ) - - self.changedOnTimeout = False - - # Update the max of the day spin box - maxDay = 31 - if dt.month == 2: - if dt.year % 4 == 0: - maxDay = 29 - else: - maxDay = 28 - elif dt.month-1 in self.thirtyDays: - maxDay = 30 - - self.daySpin.get_adjustment().set_upper(maxDay) - - return True - - def change_using_ntp(self, usingNtp): - # Check if we were using Ntp by seeing if the spin button - # is sensitive - self.set_sensitive(not usingNtp) - - def _do_change_system_time(self): - self._setting_time_lock.acquire() - do_set = not self._setting_time - self._setting_time = True - self._setting_time_lock.release() - - # If there is already another thread updating the time, we let it do the job - if not do_set: - return - - done = False - while not done: - self._setting_time_lock.acquire() - time_to_set = self._time_to_set - self._time_to_set = None - self._setting_time_lock.release() - - self.dbus_iface.SetTime(time_to_set) - - # Check whether another request to set the time was done since this thread started - self._setting_time_lock.acquire() - if self._time_to_set==None: - done = True - self._setting_time_lock.release() - - self._setting_time_lock.acquire() - self._setting_time = False - self._setting_time_lock.release() - - def _change_system_time(self, widget): - if not self.changedOnTimeout: - hour = int( self.hourSpin.get_value() ) - minute = int( self.minSpin.get_value() ) - month = self.monthBox.get_active() + 1 - day = int( self.daySpin.get_value() ) - year = int( self.yearSpin.get_value() ) - - newDt = datetime(year, month, day, hour, minute) - - self._setting_time_lock.acquire() - self._time_to_set = time.mktime(newDt.utctimetuple()) - self._setting_time_lock.release() - - thread.start_new_thread(self._do_change_system_time, ()) - class TitleBarButtonsOrderSelector(Gtk.Table): def __init__(self): self.key = "/desktop/cinnamon/windows/button_layout" @@ -1121,27 +879,12 @@ class MainWindow: sidePage.add_widget(GSettingsCheckButton(_("Panel Launchers draggable"), "org.cinnamon", "panel-launchers-draggable")) sidePage = SidePage(_("Calendar"), "clock.svg", self.content_box) - self.sidePages.append((sidePage, "calendar")) - self.changeTimeWidget = ChangeTimeWidget() + self.sidePages.append((sidePage, "calendar")) sidePage.add_widget(GSettingsCheckButton(_("Show week dates in calendar"), "org.cinnamon.calendar", "show-weekdate")) sidePage.add_widget(GSettingsEntry(_("Date format for the panel"), "org.cinnamon.calendar", "date-format")) sidePage.add_widget(GSettingsEntry(_("Date format inside the date applet"), "org.cinnamon.calendar", "date-format-full")) sidePage.add_widget(Gtk.LinkButton.new_with_label("http://www.foragoodstrftime.com/", _("Generate your own date formats"))) - self.ntpCheckButton = None - try: - self.ntpCheckButton = DBusCheckButton(_("Use network time"), "org.gnome.SettingsDaemon.DateTimeMechanism", "/", "GetUsingNtp", "SetUsingNtp") - sidePage.add_widget(self.ntpCheckButton) - except: - pass - sidePage.add_widget(self.changeTimeWidget) - try: - sidePage.add_widget(TimeZoneSelectorWidget()) - except: - pass - - if self.ntpCheckButton != None: - self.ntpCheckButton.connect('toggled', self._ntp_toggled) - self.changeTimeWidget.change_using_ntp( self.ntpCheckButton.get_active() ) + sidePage = SidePage(_("Hot corner"), "overview.svg", self.content_box) self.sidePages.append((sidePage, "hotcorner")) @@ -1316,7 +1059,6 @@ class MainWindow: sidePage.add_widget(GSettingsFontButton(_("Default font"), "org.gnome.desktop.interface", "font-name")) sidePage.add_widget(GSettingsFontButton(_("Document font"), "org.gnome.desktop.interface", "document-font-name")) sidePage.add_widget(GSettingsFontButton(_("Monospace font"), "org.gnome.desktop.interface", "monospace-font-name")) - sidePage.add_widget(GConfFontButton(_("Window title font"), "/apps/metacity/general/titlebar_font")) sidePage.add_widget(GSettingsComboBox(_("Hinting"), "org.gnome.settings-daemon.plugins.xsettings", "hinting", [(i, i.title()) for i in ("none", "slight", "medium", "full")])) sidePage.add_widget(GSettingsComboBox(_("Antialiasing"), "org.gnome.settings-daemon.plugins.xsettings", "antialiasing", [(i, i.title()) for i in ("none", "grayscale", "rgba")])) @@ -1357,9 +1099,6 @@ class MainWindow: self.content_box_sw.hide() self.top_button_box.hide() self.side_view_sw.show_all() - - def _ntp_toggled(self, widget): - self.changeTimeWidget.change_using_ntp( self.ntpCheckButton.get_active() ) if __name__ == "__main__": diff --git a/files/usr/lib/cinnamon-settings/tz.py b/files/usr/lib/cinnamon-settings/tz.py deleted file mode 100644 index 1b1d264..0000000 --- a/files/usr/lib/cinnamon-settings/tz.py +++ /dev/null @@ -1,35 +0,0 @@ -import os - -def load_db(): - tz_db = {} - - filename = '/usr/share/zoneinfo/zone.tab' - if not os.path.exists(filename): - filename = '/usr/share/lib/zoneinfo/tab/zone_sun.tab' - if not os.path.exists(filename): - return {} - - tz_file = open(filename) - - for line in tz_file: - line = line.rstrip().lstrip() - if line=="" or line[0] == '#': - continue - - tz_info = line.split('\t') - if len(tz_info)<3: - continue - tz = tz_info[2] - if "/" in tz: - i = tz.index("/") - region = tz[:i] - zone = tz[i+1:] - - if region not in tz_db: - tz_db[region] = [] - - tz_db[region].append(zone) - - tz_file.close() - - return tz_db diff --git a/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js b/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js index 2b5dc82..6c367ca 100644 --- a/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js +++ b/files/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js @@ -62,9 +62,7 @@ MyApplet.prototype = { this._calendar = new Calendar.Calendar(this._eventSource); vbox.add(this._calendar.actor); - let item = new PopupMenu.PopupMenuItem(_("Date and Time Settings")) - item.connect("activate", Lang.bind(this, this._onLaunchSettings)); - //this.menu.addMenuItem(item); + item = this.menu.addSettingsAction(_("Date and Time Settings"), 'gnome-datetime-panel.desktop'); if (item) { let separator = new PopupMenu.PopupSeparatorMenuItem(); separator.setColumnWidths(1); @@ -96,11 +94,6 @@ MyApplet.prototype = { on_applet_clicked: function(event) { this.menu.toggle(); }, - - _onLaunchSettings: function() { - this.menu.close(); - Util.spawnCommandLine("cinnamon-settings calendar"); - }, _updateClockAndDate: function() { let dateFormat = this._calendarSettings.get_string('date-format');