[PATCH] Switch to libtimezonemap for the timezone map.

David Shea dshea at redhat.com
Thu Nov 14 18:41:05 UTC 2013


Remove all of our TimezoneMap widget code and paraphernalia in favor of
it being somebody else's problem.
---
 anaconda.spec.in                              |   2 +
 po/POTFILES.in                                |   2 -
 pyanaconda/ui/gui/spokes/datetime_spoke.glade |   4 +-
 pyanaconda/ui/gui/spokes/datetime_spoke.py    |  22 +-
 widgets/Makefile.am                           |   2 +-
 widgets/configure.ac                          |   4 +-
 widgets/data/Makefile.am                      |  23 -
 widgets/data/tzmapdata/Makefile.am            |  23 -
 widgets/data/tzmapdata/bg.png                 | Bin 213448 -> 0 bytes
 widgets/data/tzmapdata/cc.png                 | Bin 52271 -> 0 bytes
 widgets/data/tzmapdata/pin.png                | Bin 561 -> 0 bytes
 widgets/data/tzmapdata/timezone_-1.png        | Bin 8012 -> 0 bytes
 widgets/data/tzmapdata/timezone_-10.png       | Bin 7783 -> 0 bytes
 widgets/data/tzmapdata/timezone_-11.png       | Bin 8347 -> 0 bytes
 widgets/data/tzmapdata/timezone_-2.png        | Bin 4333 -> 0 bytes
 widgets/data/tzmapdata/timezone_-3.5.png      | Bin 740 -> 0 bytes
 widgets/data/tzmapdata/timezone_-3.png        | Bin 13615 -> 0 bytes
 widgets/data/tzmapdata/timezone_-4.5.png      | Bin 1900 -> 0 bytes
 widgets/data/tzmapdata/timezone_-4.png        | Bin 15084 -> 0 bytes
 widgets/data/tzmapdata/timezone_-5.5.png      | Bin 437 -> 0 bytes
 widgets/data/tzmapdata/timezone_-5.png        | Bin 19166 -> 0 bytes
 widgets/data/tzmapdata/timezone_-6.png        | Bin 13764 -> 0 bytes
 widgets/data/tzmapdata/timezone_-7.png        | Bin 11977 -> 0 bytes
 widgets/data/tzmapdata/timezone_-8.png        | Bin 6801 -> 0 bytes
 widgets/data/tzmapdata/timezone_-9.5.png      | Bin 437 -> 0 bytes
 widgets/data/tzmapdata/timezone_-9.png        | Bin 7908 -> 0 bytes
 widgets/data/tzmapdata/timezone_0.png         | Bin 11074 -> 0 bytes
 widgets/data/tzmapdata/timezone_1.png         | Bin 15458 -> 0 bytes
 widgets/data/tzmapdata/timezone_10.5.png      | Bin 421 -> 0 bytes
 widgets/data/tzmapdata/timezone_10.png        | Bin 12829 -> 0 bytes
 widgets/data/tzmapdata/timezone_11.5.png      | Bin 446 -> 0 bytes
 widgets/data/tzmapdata/timezone_11.png        | Bin 12113 -> 0 bytes
 widgets/data/tzmapdata/timezone_12.75.png     | Bin 409 -> 0 bytes
 widgets/data/tzmapdata/timezone_12.png        | Bin 7130 -> 0 bytes
 widgets/data/tzmapdata/timezone_13.png        | Bin 621 -> 0 bytes
 widgets/data/tzmapdata/timezone_14.png        | Bin 7722 -> 0 bytes
 widgets/data/tzmapdata/timezone_2.png         | Bin 12854 -> 0 bytes
 widgets/data/tzmapdata/timezone_3.5.png       | Bin 2142 -> 0 bytes
 widgets/data/tzmapdata/timezone_3.png         | Bin 17475 -> 0 bytes
 widgets/data/tzmapdata/timezone_4.5.png       | Bin 1773 -> 0 bytes
 widgets/data/tzmapdata/timezone_4.png         | Bin 4954 -> 0 bytes
 widgets/data/tzmapdata/timezone_5.5.png       | Bin 6099 -> 0 bytes
 widgets/data/tzmapdata/timezone_5.75.png      | Bin 2885 -> 0 bytes
 widgets/data/tzmapdata/timezone_5.png         | Bin 14539 -> 0 bytes
 widgets/data/tzmapdata/timezone_6.5.png       | Bin 1609 -> 0 bytes
 widgets/data/tzmapdata/timezone_6.png         | Bin 8441 -> 0 bytes
 widgets/data/tzmapdata/timezone_7.png         | Bin 14412 -> 0 bytes
 widgets/data/tzmapdata/timezone_8.75.png      | Bin 13993 -> 0 bytes
 widgets/data/tzmapdata/timezone_8.png         | Bin 16050 -> 0 bytes
 widgets/data/tzmapdata/timezone_9.5.png       | Bin 1959 -> 0 bytes
 widgets/data/tzmapdata/timezone_9.png         | Bin 12608 -> 0 bytes
 widgets/data/tzmapdata/timezones_backward     | 118 -----
 widgets/doc/AnacondaWidgets-docs.xml          |   1 -
 widgets/glade/AnacondaWidgets.xml             |  10 -
 widgets/python/AnacondaWidgets.py             |   8 -
 widgets/src/Makefile.am                       |   6 +-
 widgets/src/TimezoneMap.c                     | 630 --------------------------
 widgets/src/TimezoneMap.h                     |  84 ----
 widgets/src/tz.c                              | 447 ------------------
 widgets/src/tz.h                              |  85 ----
 60 files changed, 23 insertions(+), 1448 deletions(-)
 delete mode 100644 widgets/data/Makefile.am
 delete mode 100644 widgets/data/tzmapdata/Makefile.am
 delete mode 100644 widgets/data/tzmapdata/bg.png
 delete mode 100644 widgets/data/tzmapdata/cc.png
 delete mode 100644 widgets/data/tzmapdata/pin.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-1.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-10.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-11.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-2.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-3.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-3.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-4.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-4.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-5.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-6.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-7.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-8.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-9.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_-9.png
 delete mode 100644 widgets/data/tzmapdata/timezone_0.png
 delete mode 100644 widgets/data/tzmapdata/timezone_1.png
 delete mode 100644 widgets/data/tzmapdata/timezone_10.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_10.png
 delete mode 100644 widgets/data/tzmapdata/timezone_11.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_11.png
 delete mode 100644 widgets/data/tzmapdata/timezone_12.75.png
 delete mode 100644 widgets/data/tzmapdata/timezone_12.png
 delete mode 100644 widgets/data/tzmapdata/timezone_13.png
 delete mode 100644 widgets/data/tzmapdata/timezone_14.png
 delete mode 100644 widgets/data/tzmapdata/timezone_2.png
 delete mode 100644 widgets/data/tzmapdata/timezone_3.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_3.png
 delete mode 100644 widgets/data/tzmapdata/timezone_4.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_4.png
 delete mode 100644 widgets/data/tzmapdata/timezone_5.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_5.75.png
 delete mode 100644 widgets/data/tzmapdata/timezone_5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_6.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_6.png
 delete mode 100644 widgets/data/tzmapdata/timezone_7.png
 delete mode 100644 widgets/data/tzmapdata/timezone_8.75.png
 delete mode 100644 widgets/data/tzmapdata/timezone_8.png
 delete mode 100644 widgets/data/tzmapdata/timezone_9.5.png
 delete mode 100644 widgets/data/tzmapdata/timezone_9.png
 delete mode 100644 widgets/data/tzmapdata/timezones_backward
 delete mode 100644 widgets/src/TimezoneMap.c
 delete mode 100644 widgets/src/TimezoneMap.h
 delete mode 100644 widgets/src/tz.c
 delete mode 100644 widgets/src/tz.h

diff --git a/anaconda.spec.in b/anaconda.spec.in
index ff3d397..ea922ae 100644
--- a/anaconda.spec.in
+++ b/anaconda.spec.in
@@ -44,6 +44,7 @@ Source0: %{name}-%{version}.tar.bz2
 %define rpmver 4.10.0
 %define libarchivever 3.0.4
 %define langtablever 0.0.18-1
+%define libtimezonemapver 0.4.1
 
 BuildRequires: audit-libs-devel
 BuildRequires: gettext >= %{gettextver}
@@ -81,6 +82,7 @@ BuildRequires: desktop-file-utils
 %ifarch s390 s390x
 BuildRequires: s390utils-devel
 %endif
+BuildRequires: libtimezonemap-devel >= %{libtimezonemapver}
 
 Requires: anaconda-widgets = %{version}-%{release}
 Requires: dnf >= %{dnfver}
diff --git a/po/POTFILES.in b/po/POTFILES.in
index a1a7f74..5e9d0b2 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -89,11 +89,9 @@ widgets/src/MountpointSelector.c
 widgets/src/SpokeSelector.c
 widgets/src/SpokeWindow.c
 widgets/src/StandaloneWindow.c
-widgets/src/TimezoneMap.c
 widgets/src/LayoutIndicator.c
 widgets/src/Lightbox.c
 widgets/src/glade-adaptor.c
-widgets/src/tz.c
 
 # Interface files.
 pyanaconda/ui/gui/spokes/advanced_user.glade
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.glade b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
index 80e7e6e..39f3912 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.glade
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
@@ -281,10 +281,10 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="AnacondaTimezoneMap" id="tzmap">
+                      <object class="CcTimezoneMap" id="tzmap">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <signal name="timezone-changed" handler="on_timezone_changed" swapped="no"/>
+                        <signal name="location-changed" handler="on_location_changed" swapped="no"/>
                       </object>
                       <packing>
                         <property name="expand">True</property>
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.py b/pyanaconda/ui/gui/spokes/datetime_spoke.py
index 285b34a..88a96a6 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.py
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.py
@@ -22,7 +22,7 @@
 import logging
 log = logging.getLogger("anaconda")
 
-from gi.repository import GLib, Gdk
+from gi.repository import GLib, Gdk, TimezoneMap
 
 from pyanaconda.ui.communication import hubQ
 from pyanaconda.ui.common import FirstbootSpokeMixIn
@@ -342,6 +342,11 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke):
     icon = "preferences-system-time-symbolic"
     title = CN_("GUI|Spoke", "DATE & _TIME")
 
+    # Hack to get libtimezonemap loaded for GtkBuilder
+    # see https://bugzilla.gnome.org/show_bug.cgi?id=712184
+    _hack = TimezoneMap.TimezoneMap()
+    del(_hack)
+
     def __init__(self, *args):
         NormalSpoke.__init__(self, *args)
 
@@ -451,10 +456,12 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke):
                 return _("%s timezone") % get_xlated_timezone(self.data.timezone.timezone)
             else:
                 return _("Invalid timezone")
-        elif self._tzmap.get_timezone():
-            return _("%s timezone") % get_xlated_timezone(self._tzmap.get_timezone())
         else:
-            return _("Nothing selected")
+            location = self._tzmap.get_location()
+            if location and location.get_property("zone"):
+                return _("%s timezone") % get_xlated_timezone(location.get_property("zone"))
+            else:
+                return _("Nothing selected")
 
     def apply(self):
         # we could use self._tzmap.get_timezone() here, but it returns "" if
@@ -873,10 +880,10 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke):
         if region == "Etc":
             # Etc timezones cannot be displayed on the map, so let's set the map
             # to "" which sets it to "Europe/London" (UTC) without a city pin
-            self._tzmap.set_timezone("", no_signal=True)
+            self._tzmap.set_timezone("")
         else:
             # we don't want the timezone-changed signal to be emitted
-            self._tzmap.set_timezone(timezone, no_signal=True)
+            self._tzmap.set_timezone(timezone)
 
         # update "old" values
         self._old_city = city
@@ -922,7 +929,8 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke):
         self._stop_and_maybe_start_time_updating(interval=5)
         self._daysFilter.refilter()
 
-    def on_timezone_changed(self, tz_map, timezone):
+    def on_location_changed(self, tz_map, location):
+        timezone = location.get_property('zone')
         if self._set_timezone(timezone):
             # timezone successfully set
             os.environ["TZ"] = timezone
diff --git a/widgets/Makefile.am b/widgets/Makefile.am
index ad80f87..3fc2d37 100644
--- a/widgets/Makefile.am
+++ b/widgets/Makefile.am
@@ -21,7 +21,7 @@
 
 ACLOCAL_AMFLAGS = -I m4
 
-SUBDIRS = src python glade doc data
+SUBDIRS = src python glade doc
 
 MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.guess config.h.in config.sub \
 	configure depcomp gtk-doc.make install-sh ltmain.sh missing py-compile \
diff --git a/widgets/configure.ac b/widgets/configure.ac
index a87e79f..a4d143b 100644
--- a/widgets/configure.ac
+++ b/widgets/configure.ac
@@ -67,7 +67,5 @@ AC_CONFIG_FILES([Makefile
                  doc/Makefile
                  glade/Makefile
                  src/Makefile
-                 python/Makefile
-                 data/Makefile
-                 data/tzmapdata/Makefile])
+                 python/Makefile])
 AC_OUTPUT
diff --git a/widgets/data/Makefile.am b/widgets/data/Makefile.am
deleted file mode 100644
index 0f106d5..0000000
--- a/widgets/data/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Copyright (C) 2012  Red Hat, Inc.
-#
-# This copyrighted material is made available to anyone wishing to use,
-# modify, copy, or redistribute it subject to the terms and conditions of
-# the GNU General Public License v.2, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY expressed or implied, including the implied warranties of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
-# Public License for more details.  You should have received a copy of the
-# GNU General Public License along with this program; if not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.  Any Red Hat trademarks that are incorporated in the
-# source code or documentation are not subject to the GNU General Public
-# License and may only be used or replicated with the express permission of
-# Red Hat, Inc.
-#
-# Red Hat Author(s): Vratislav Podzimek <vpodzime at redhat.com>
-#
-
-SUBDIRS = tzmapdata
-
-MAINTAINERCLEANFILES = Makefile.in
diff --git a/widgets/data/tzmapdata/Makefile.am b/widgets/data/tzmapdata/Makefile.am
deleted file mode 100644
index 2dd6029..0000000
--- a/widgets/data/tzmapdata/Makefile.am
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Copyright (C) 2012  Red Hat, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as published
-# by the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-# Author: Vratislav Podzimek <vpodzime at redhat.com>
-
-timezonemap_datadir        = $(datadir)/anaconda/tzmapdata
-dist_timezonemap_data_DATA = $(srcdir)/*.png timezones_backward
-
-MAINTAINERCLEANFILES = Makefile.in
-
diff --git a/widgets/data/tzmapdata/bg.png b/widgets/data/tzmapdata/bg.png
deleted file mode 100644
index 4180ee8..0000000
Binary files a/widgets/data/tzmapdata/bg.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/cc.png b/widgets/data/tzmapdata/cc.png
deleted file mode 100644
index 9984d23..0000000
Binary files a/widgets/data/tzmapdata/cc.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/pin.png b/widgets/data/tzmapdata/pin.png
deleted file mode 100644
index 599a751..0000000
Binary files a/widgets/data/tzmapdata/pin.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-1.png b/widgets/data/tzmapdata/timezone_-1.png
deleted file mode 100644
index fb00d83..0000000
Binary files a/widgets/data/tzmapdata/timezone_-1.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-10.png b/widgets/data/tzmapdata/timezone_-10.png
deleted file mode 100644
index 472eb88..0000000
Binary files a/widgets/data/tzmapdata/timezone_-10.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-11.png b/widgets/data/tzmapdata/timezone_-11.png
deleted file mode 100644
index 1da3536..0000000
Binary files a/widgets/data/tzmapdata/timezone_-11.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-2.png b/widgets/data/tzmapdata/timezone_-2.png
deleted file mode 100644
index 30a1ec7..0000000
Binary files a/widgets/data/tzmapdata/timezone_-2.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-3.5.png b/widgets/data/tzmapdata/timezone_-3.5.png
deleted file mode 100644
index c1df00b..0000000
Binary files a/widgets/data/tzmapdata/timezone_-3.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-3.png b/widgets/data/tzmapdata/timezone_-3.png
deleted file mode 100644
index c22dbb6..0000000
Binary files a/widgets/data/tzmapdata/timezone_-3.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-4.5.png b/widgets/data/tzmapdata/timezone_-4.5.png
deleted file mode 100644
index 9e3c134..0000000
Binary files a/widgets/data/tzmapdata/timezone_-4.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-4.png b/widgets/data/tzmapdata/timezone_-4.png
deleted file mode 100644
index 4b5a431..0000000
Binary files a/widgets/data/tzmapdata/timezone_-4.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-5.5.png b/widgets/data/tzmapdata/timezone_-5.5.png
deleted file mode 100644
index b1c788d..0000000
Binary files a/widgets/data/tzmapdata/timezone_-5.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-5.png b/widgets/data/tzmapdata/timezone_-5.png
deleted file mode 100644
index 06c15e6..0000000
Binary files a/widgets/data/tzmapdata/timezone_-5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-6.png b/widgets/data/tzmapdata/timezone_-6.png
deleted file mode 100644
index 8505fb1..0000000
Binary files a/widgets/data/tzmapdata/timezone_-6.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-7.png b/widgets/data/tzmapdata/timezone_-7.png
deleted file mode 100644
index fec235d..0000000
Binary files a/widgets/data/tzmapdata/timezone_-7.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-8.png b/widgets/data/tzmapdata/timezone_-8.png
deleted file mode 100644
index bdad7bf..0000000
Binary files a/widgets/data/tzmapdata/timezone_-8.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-9.5.png b/widgets/data/tzmapdata/timezone_-9.5.png
deleted file mode 100644
index b1c788d..0000000
Binary files a/widgets/data/tzmapdata/timezone_-9.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_-9.png b/widgets/data/tzmapdata/timezone_-9.png
deleted file mode 100644
index 04cb3cb..0000000
Binary files a/widgets/data/tzmapdata/timezone_-9.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_0.png b/widgets/data/tzmapdata/timezone_0.png
deleted file mode 100644
index e59b773..0000000
Binary files a/widgets/data/tzmapdata/timezone_0.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_1.png b/widgets/data/tzmapdata/timezone_1.png
deleted file mode 100644
index 2053b7e..0000000
Binary files a/widgets/data/tzmapdata/timezone_1.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_10.5.png b/widgets/data/tzmapdata/timezone_10.5.png
deleted file mode 100644
index 6ec7f9f..0000000
Binary files a/widgets/data/tzmapdata/timezone_10.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_10.png b/widgets/data/tzmapdata/timezone_10.png
deleted file mode 100644
index 475dcf4..0000000
Binary files a/widgets/data/tzmapdata/timezone_10.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_11.5.png b/widgets/data/tzmapdata/timezone_11.5.png
deleted file mode 100644
index afdedd7..0000000
Binary files a/widgets/data/tzmapdata/timezone_11.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_11.png b/widgets/data/tzmapdata/timezone_11.png
deleted file mode 100644
index 6168aa2..0000000
Binary files a/widgets/data/tzmapdata/timezone_11.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_12.75.png b/widgets/data/tzmapdata/timezone_12.75.png
deleted file mode 100644
index 4f74a85..0000000
Binary files a/widgets/data/tzmapdata/timezone_12.75.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_12.png b/widgets/data/tzmapdata/timezone_12.png
deleted file mode 100644
index d0b3531..0000000
Binary files a/widgets/data/tzmapdata/timezone_12.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_13.png b/widgets/data/tzmapdata/timezone_13.png
deleted file mode 100644
index fe2f134..0000000
Binary files a/widgets/data/tzmapdata/timezone_13.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_14.png b/widgets/data/tzmapdata/timezone_14.png
deleted file mode 100644
index e91d4eb..0000000
Binary files a/widgets/data/tzmapdata/timezone_14.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_2.png b/widgets/data/tzmapdata/timezone_2.png
deleted file mode 100644
index ec1e874..0000000
Binary files a/widgets/data/tzmapdata/timezone_2.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_3.5.png b/widgets/data/tzmapdata/timezone_3.5.png
deleted file mode 100644
index 2dc7399..0000000
Binary files a/widgets/data/tzmapdata/timezone_3.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_3.png b/widgets/data/tzmapdata/timezone_3.png
deleted file mode 100644
index eda59dc..0000000
Binary files a/widgets/data/tzmapdata/timezone_3.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_4.5.png b/widgets/data/tzmapdata/timezone_4.5.png
deleted file mode 100644
index e09ed90..0000000
Binary files a/widgets/data/tzmapdata/timezone_4.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_4.png b/widgets/data/tzmapdata/timezone_4.png
deleted file mode 100644
index 483dc53..0000000
Binary files a/widgets/data/tzmapdata/timezone_4.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_5.5.png b/widgets/data/tzmapdata/timezone_5.5.png
deleted file mode 100644
index f904cc2..0000000
Binary files a/widgets/data/tzmapdata/timezone_5.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_5.75.png b/widgets/data/tzmapdata/timezone_5.75.png
deleted file mode 100644
index 827ce1a..0000000
Binary files a/widgets/data/tzmapdata/timezone_5.75.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_5.png b/widgets/data/tzmapdata/timezone_5.png
deleted file mode 100644
index 1bb6d20..0000000
Binary files a/widgets/data/tzmapdata/timezone_5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_6.5.png b/widgets/data/tzmapdata/timezone_6.5.png
deleted file mode 100644
index d307bf3..0000000
Binary files a/widgets/data/tzmapdata/timezone_6.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_6.png b/widgets/data/tzmapdata/timezone_6.png
deleted file mode 100644
index 460f9cf..0000000
Binary files a/widgets/data/tzmapdata/timezone_6.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_7.png b/widgets/data/tzmapdata/timezone_7.png
deleted file mode 100644
index 239115a..0000000
Binary files a/widgets/data/tzmapdata/timezone_7.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_8.75.png b/widgets/data/tzmapdata/timezone_8.75.png
deleted file mode 100644
index 2a2917f..0000000
Binary files a/widgets/data/tzmapdata/timezone_8.75.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_8.png b/widgets/data/tzmapdata/timezone_8.png
deleted file mode 100644
index d210222..0000000
Binary files a/widgets/data/tzmapdata/timezone_8.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_9.5.png b/widgets/data/tzmapdata/timezone_9.5.png
deleted file mode 100644
index 1c3290c..0000000
Binary files a/widgets/data/tzmapdata/timezone_9.5.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezone_9.png b/widgets/data/tzmapdata/timezone_9.png
deleted file mode 100644
index 65d2e46..0000000
Binary files a/widgets/data/tzmapdata/timezone_9.png and /dev/null differ
diff --git a/widgets/data/tzmapdata/timezones_backward b/widgets/data/tzmapdata/timezones_backward
deleted file mode 100644
index f1f95a8..0000000
--- a/widgets/data/tzmapdata/timezones_backward
+++ /dev/null
@@ -1,118 +0,0 @@
-# <pre>
-# @(#)backward	8.9
-# This file is in the public domain, so clarified as of
-# 2009-05-17 by Arthur David Olson.
-
-# This file provides links between current names for time zones
-# and their old names.  Many names changed in late 1993.
-
-Link	Africa/Asmara		Africa/Asmera
-Link	Africa/Bamako		Africa/Timbuktu
-Link	America/Argentina/Catamarca	America/Argentina/ComodRivadavia
-Link	America/Adak		America/Atka
-Link	America/Argentina/Buenos_Aires	America/Buenos_Aires
-Link	America/Argentina/Catamarca	America/Catamarca
-Link	America/Atikokan	America/Coral_Harbour
-Link	America/Argentina/Cordoba	America/Cordoba
-Link	America/Tijuana		America/Ensenada
-Link	America/Indiana/Indianapolis	America/Fort_Wayne
-Link	America/Indiana/Indianapolis	America/Indianapolis
-Link	America/Argentina/Jujuy	America/Jujuy
-Link	America/Indiana/Knox	America/Knox_IN
-Link	America/Kentucky/Louisville	America/Louisville
-Link	America/Argentina/Mendoza	America/Mendoza
-Link	America/Rio_Branco	America/Porto_Acre
-Link	America/Argentina/Cordoba	America/Rosario
-Link	America/St_Thomas	America/Virgin
-Link	Asia/Ashgabat		Asia/Ashkhabad
-Link	Asia/Chongqing		Asia/Chungking
-Link	Asia/Dhaka		Asia/Dacca
-Link	Asia/Kathmandu		Asia/Katmandu
-Link	Asia/Kolkata		Asia/Calcutta
-Link	Asia/Macau		Asia/Macao
-Link	Asia/Jerusalem		Asia/Tel_Aviv
-Link	Asia/Ho_Chi_Minh	Asia/Saigon
-Link	Asia/Thimphu		Asia/Thimbu
-Link	Asia/Makassar		Asia/Ujung_Pandang
-Link	Asia/Ulaanbaatar	Asia/Ulan_Bator
-Link	Atlantic/Faroe		Atlantic/Faeroe
-Link	Europe/Oslo		Atlantic/Jan_Mayen
-Link	Australia/Sydney	Australia/ACT
-Link	Australia/Sydney	Australia/Canberra
-Link	Australia/Lord_Howe	Australia/LHI
-Link	Australia/Sydney	Australia/NSW
-Link	Australia/Darwin	Australia/North
-Link	Australia/Brisbane	Australia/Queensland
-Link	Australia/Adelaide	Australia/South
-Link	Australia/Hobart	Australia/Tasmania
-Link	Australia/Melbourne	Australia/Victoria
-Link	Australia/Perth		Australia/West
-Link	Australia/Broken_Hill	Australia/Yancowinna
-Link	America/Rio_Branco	Brazil/Acre
-Link	America/Noronha		Brazil/DeNoronha
-Link	America/Sao_Paulo	Brazil/East
-Link	America/Manaus		Brazil/West
-Link	America/Halifax		Canada/Atlantic
-Link	America/Winnipeg	Canada/Central
-Link	America/Regina		Canada/East-Saskatchewan
-Link	America/Toronto		Canada/Eastern
-Link	America/Edmonton	Canada/Mountain
-Link	America/St_Johns	Canada/Newfoundland
-Link	America/Vancouver	Canada/Pacific
-Link	America/Regina		Canada/Saskatchewan
-Link	America/Whitehorse	Canada/Yukon
-Link	America/Santiago	Chile/Continental
-Link	Pacific/Easter		Chile/EasterIsland
-Link	America/Havana		Cuba
-Link	Africa/Cairo		Egypt
-Link	Europe/Dublin		Eire
-Link	Europe/London		Europe/Belfast
-Link	Europe/Chisinau		Europe/Tiraspol
-Link	Europe/London		GB
-Link	Europe/London		GB-Eire
-Link	Etc/GMT			GMT+0
-Link	Etc/GMT			GMT-0
-Link	Etc/GMT			GMT0
-Link	Etc/GMT			Greenwich
-Link	Asia/Hong_Kong		Hongkong
-Link	Atlantic/Reykjavik	Iceland
-Link	Asia/Tehran		Iran
-Link	Asia/Jerusalem		Israel
-Link	America/Jamaica		Jamaica
-Link	Asia/Tokyo		Japan
-Link	Pacific/Kwajalein	Kwajalein
-Link	Africa/Tripoli		Libya
-Link	America/Tijuana		Mexico/BajaNorte
-Link	America/Mazatlan	Mexico/BajaSur
-Link	America/Mexico_City	Mexico/General
-Link	Pacific/Auckland	NZ
-Link	Pacific/Chatham		NZ-CHAT
-Link	America/Denver		Navajo
-Link	Asia/Shanghai		PRC
-Link	Pacific/Pago_Pago	Pacific/Samoa
-Link	Pacific/Chuuk		Pacific/Yap
-Link	Pacific/Chuuk		Pacific/Truk
-Link	Pacific/Pohnpei		Pacific/Ponape
-Link	Europe/Warsaw		Poland
-Link	Europe/Lisbon		Portugal
-Link	Asia/Taipei		ROC
-Link	Asia/Seoul		ROK
-Link	Asia/Singapore		Singapore
-Link	Europe/Istanbul		Turkey
-Link	Etc/UCT			UCT
-Link	America/Anchorage	US/Alaska
-Link	America/Adak		US/Aleutian
-Link	America/Phoenix		US/Arizona
-Link	America/Chicago		US/Central
-Link	America/Indiana/Indianapolis	US/East-Indiana
-Link	America/New_York	US/Eastern
-Link	Pacific/Honolulu	US/Hawaii
-Link	America/Indiana/Knox	US/Indiana-Starke
-Link	America/Detroit		US/Michigan
-Link	America/Denver		US/Mountain
-Link	America/Los_Angeles	US/Pacific
-Link	Pacific/Pago_Pago	US/Samoa
-Link	Etc/UTC			UTC
-Link	Etc/UTC			Universal
-Link	Europe/Moscow		W-SU
-Link	Etc/UTC			Zulu
diff --git a/widgets/doc/AnacondaWidgets-docs.xml b/widgets/doc/AnacondaWidgets-docs.xml
index 3ea50ae..200408c 100644
--- a/widgets/doc/AnacondaWidgets-docs.xml
+++ b/widgets/doc/AnacondaWidgets-docs.xml
@@ -40,7 +40,6 @@
         <title>Miscellaneous Widgets</title>
         <xi:include href="xml/SpokeSelector.xml" />
         <xi:include href="xml/LayoutIndicator.xml" />
-        <xi:include href="xml/TimezoneMap.xml" />
     </chapter>
 
     <chapter id="hierarchy">
diff --git a/widgets/glade/AnacondaWidgets.xml b/widgets/glade/AnacondaWidgets.xml
index 9d84f8d..7a496c3 100644
--- a/widgets/glade/AnacondaWidgets.xml
+++ b/widgets/glade/AnacondaWidgets.xml
@@ -130,15 +130,6 @@
             </properties>
         </glade-widget-class>
 
-	<glade-widget-class title="Timezone Map"
-			    name="AnacondaTimezoneMap"
-			    icon-name="widget-gtk-image"
-			    generic-name="AnacondaTimezoneMap">
-	    <properties>
-	        <property id="spacing" default="6" visible="False" />
-	    </properties>
-	</glade-widget-class>
-
     <glade-widget-class title="Layout Indicator"
 			            name="AnacondaLayoutIndicator"
 			            icon-name="widget-gtk-label"
@@ -161,7 +152,6 @@
 
     <glade-widget-group name="anaconda-misc-widgets" title="Anaconda Miscellaneous Widgets">
         <glade-widget-class-ref name="AnacondaSpokeSelector" />
-        <glade-widget-class-ref name="AnacondaTimezoneMap" />
         <glade-widget-class-ref name="AnacondaLayoutIndicator" />
     </glade-widget-group>
 </glade-catalog>
diff --git a/widgets/python/AnacondaWidgets.py b/widgets/python/AnacondaWidgets.py
index ec87b3f..649be1c 100644
--- a/widgets/python/AnacondaWidgets.py
+++ b/widgets/python/AnacondaWidgets.py
@@ -86,11 +86,3 @@ class DiskOverview(Anaconda.DiskOverview):
 
 DiskOverview = override(DiskOverview)
 __all__.append('DiskOverview')
-
-# pylint: disable-msg=W0232
-class TimezoneMap(Anaconda.TimezoneMap):
-    def set_timezone(self, timezone, no_signal=False):
-        Anaconda.TimezoneMap.set_timezone(self, timezone, no_signal)
-
-TimezoneMap = override(TimezoneMap)
-__all__.append('TimezoneMap')
diff --git a/widgets/src/Makefile.am b/widgets/src/Makefile.am
index 689207e..53da24d 100644
--- a/widgets/src/Makefile.am
+++ b/widgets/src/Makefile.am
@@ -32,7 +32,6 @@ GISOURCES = BaseWindow.c \
 	 SpokeSelector.c \
 	 SpokeWindow.c \
 	 StandaloneWindow.c \
-	 TimezoneMap.c \
 	 LayoutIndicator.c \
 	 Lightbox.c
 
@@ -43,13 +42,12 @@ GIHDRS = BaseWindow.h \
 	 SpokeSelector.h \
 	 SpokeWindow.h \
 	 StandaloneWindow.h \
-	 TimezoneMap.h \
 	 LayoutIndicator.h \
 	 Lightbox.h
 
-NONGISOURCES = tz.c
+NONGISOURCES =
 
-NONGIHDRS = tz.h
+NONGIHDRS =
 
 SOURCES = $(GISOURCES) $(NONGISOURCES)
 
diff --git a/widgets/src/TimezoneMap.c b/widgets/src/TimezoneMap.c
deleted file mode 100644
index a939c3c..0000000
--- a/widgets/src/TimezoneMap.c
+++ /dev/null
@@ -1,630 +0,0 @@
-/* Copyright (C) 2012-2013 Red Hat, Inc
- *
- * Heavily based on the code from gnome-control-center, Copyright (C) 2010 Intel, Inc.
- * Written by Thomas Wood <thomas.wood at intel.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Author: Vratislav Podzimek <vpodzime at redhat.com>
- *
- */
-
-#include "TimezoneMap.h"
-#include <math.h>
-#include <string.h>
-#include <stdlib.h>
-#include "tz.h"
-
-/**
- * SECTION: TimezoneMap
- * @title: AnacondaTimezoneMap
- * @short_description: An interactive map for timezone selection
- *
- * A #AnacondaTimezoneMap is a widget that can be used for timezone selection.
- * The most important is the ::timezone-changed signal that includes the newly
- * selected timezone.
- */
-
-G_DEFINE_TYPE (AnacondaTimezoneMap, anaconda_timezone_map, GTK_TYPE_WIDGET)
-
-#define TIMEZONE_MAP_PRIVATE(o) \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o), ANACONDA_TYPE_TIMEZONE_MAP, AnacondaTimezoneMapPrivate))
-
-
-typedef struct {
-  gdouble offset;
-  guchar red;
-  guchar green;
-  guchar blue;
-  guchar alpha;
-} AnacondaTimezoneMapOffset;
-
-struct _AnacondaTimezoneMapPrivate {
-  GdkPixbuf *orig_background;
-  GdkPixbuf *orig_color_map;
-
-  GdkPixbuf *background;
-  GdkPixbuf *color_map;
-
-  guchar *visible_map_pixels;
-  gint visible_map_rowstride;
-
-  gdouble selected_offset;
-
-  TzDB *tzdb;
-  TzLocation *location;
-};
-
-enum {
-  TIMEZONE_CHANGED,
-  LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL];
-
-static AnacondaTimezoneMapOffset color_codes[] =
-{
-    {-11.0, 43, 0, 0, 255 },
-    {-10.0, 85, 0, 0, 255 },
-    {-9.5, 102, 255, 0, 255 },
-    {-9.0, 128, 0, 0, 255 },
-    {-8.0, 170, 0, 0, 255 },
-    {-7.0, 212, 0, 0, 255 },
-    {-6.0, 255, 0, 1, 255 }, // north
-    {-6.0, 255, 0, 0, 255 }, // south
-    {-5.0, 255, 42, 42, 255 },
-    {-4.5, 192, 255, 0, 255 },
-    {-4.0, 255, 85, 85, 255 },
-    {-3.5, 0, 255, 0, 255 },
-    {-3.0, 255, 128, 128, 255 },
-    {-2.0, 255, 170, 170, 255 },
-    {-1.0, 255, 213, 213, 255 },
-    {0.0, 43, 17, 0, 255 },
-    {1.0, 85, 34, 0, 255 },
-    {2.0, 128, 51, 0, 255 },
-    {3.0, 170, 68, 0, 255 },
-    {3.5, 0, 255, 102, 255 },
-    {4.0, 212, 85, 0, 255 },
-    {4.5, 0, 204, 255, 255 },
-    {5.0, 255, 102, 0, 255 },
-    {5.5, 0, 102, 255, 255 },
-    {5.75, 0, 238, 207, 247 },
-    {6.0, 255, 127, 42, 255 },
-    {6.5, 204, 0, 254, 254 },
-    {7.0, 255, 153, 85, 255 },
-    {8.0, 255, 179, 128, 255 },
-    {9.0, 255, 204, 170, 255 },
-    {9.5, 170, 0, 68, 250 },
-    {10.0, 255, 230, 213, 255 },
-    {10.5, 212, 124, 21, 250 },
-    {11.0, 212, 170, 0, 255 },
-    {11.5, 249, 25, 87, 253 },
-    {12.0, 255, 204, 0, 255 },
-    {12.75, 254, 74, 100, 248 },
-    {13.0, 255, 85, 153, 250 },
-    {-100, 0, 0, 0, 0 }
-};
-
-/**
- * anaconda_timezone_map_new:
- *
- * Creates a new #AnacondaTimezoneMap.
- *
- * Returns: A new #AnacondaTimezoneMap
- */
-GtkWidget *anaconda_timezone_map_new () {
-    return g_object_new(ANACONDA_TYPE_TIMEZONE_MAP, NULL);
-}
-
-static void
-anaconda_timezone_map_get_property (GObject    *object,
-                              guint       property_id,
-                              GValue     *value,
-                              GParamSpec *pspec) {
-  switch (property_id) {
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-}
-
-static void
-anaconda_timezone_map_set_property (GObject      *object,
-                              guint         property_id,
-                              const GValue *value,
-                              GParamSpec   *pspec) {
-  switch (property_id) {
-    default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
-    }
-}
-
-static void
-anaconda_timezone_map_dispose (GObject *object) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (object)->priv;
-
-  if (priv->orig_background) {
-      g_object_unref (priv->orig_background);
-      priv->orig_background = NULL;
-    }
-
-  if (priv->orig_color_map) {
-      g_object_unref (priv->orig_color_map);
-      priv->orig_color_map = NULL;
-    }
-
-  if (priv->background) {
-      g_object_unref (priv->background);
-      priv->background = NULL;
-    }
-
-  if (priv->color_map) {
-      g_object_unref (priv->color_map);
-      priv->color_map = NULL;
-
-      priv->visible_map_pixels = NULL;
-      priv->visible_map_rowstride = 0;
-    }
-
-  G_OBJECT_CLASS (anaconda_timezone_map_parent_class)->dispose (object);
-}
-
-static void
-anaconda_timezone_map_finalize (GObject *object) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (object)->priv;
-
-  if (priv->tzdb) {
-      tz_db_free (priv->tzdb);
-      priv->tzdb = NULL;
-    }
-
-
-  G_OBJECT_CLASS (anaconda_timezone_map_parent_class)->finalize (object);
-}
-
-/* GtkWidget functions */
-static void
-anaconda_timezone_map_get_preferred_width (GtkWidget *widget,
-                                     gint      *minimum,
-                                     gint      *natural) {
-  /* choose a minimum size small enough to prevent the window
-   * from growing horizontally
-   */
-  if (minimum != NULL)
-    *minimum = 300;
-  if (natural != NULL)
-    *natural = 300;
-}
-
-static void
-anaconda_timezone_map_get_preferred_height (GtkWidget *widget,
-                                      gint      *minimum,
-                                      gint      *natural) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (widget)->priv;
-  gint size;
-
-  /* The + 20 here is a slight tweak to make the map fill the
-   * panel better without causing horizontal growing
-   */
-  size = 300 * gdk_pixbuf_get_height (priv->orig_background) / gdk_pixbuf_get_width (priv->orig_background) + 20;
-  if (minimum != NULL)
-    *minimum = size;
-  if (natural != NULL)
-    *natural = size;
-}
-
-static void
-anaconda_timezone_map_size_allocate (GtkWidget     *widget,
-                               GtkAllocation *allocation) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (widget)->priv;
-
-  if (priv->background)
-    g_object_unref (priv->background);
-
-  priv->background = gdk_pixbuf_scale_simple (priv->orig_background,
-                                              allocation->width,
-                                              allocation->height,
-                                              GDK_INTERP_BILINEAR);
-
-  if (priv->color_map)
-    g_object_unref (priv->color_map);
-
-  priv->color_map = gdk_pixbuf_scale_simple (priv->orig_color_map,
-                                             allocation->width,
-                                             allocation->height,
-                                             GDK_INTERP_BILINEAR);
-
-  priv->visible_map_pixels = gdk_pixbuf_get_pixels (priv->color_map);
-  priv->visible_map_rowstride = gdk_pixbuf_get_rowstride (priv->color_map);
-
-  GTK_WIDGET_CLASS (anaconda_timezone_map_parent_class)->size_allocate (widget,
-                                                                  allocation);
-}
-
-static void
-anaconda_timezone_map_realize (GtkWidget *widget) {
-  GdkWindowAttr attr = { 0, };
-  GtkAllocation allocation;
-  GdkCursor *cursor;
-  GdkWindow *window;
-
-  gtk_widget_get_allocation (widget, &allocation);
-
-  gtk_widget_set_realized (widget, TRUE);
-
-  attr.window_type = GDK_WINDOW_CHILD;
-  attr.wclass = GDK_INPUT_OUTPUT;
-  attr.width = allocation.width;
-  attr.height = allocation.height;
-  attr.x = allocation.x;
-  attr.y = allocation.y;
-  attr.event_mask = gtk_widget_get_events (widget)
-                                 | GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK;
-
-  window = gdk_window_new (gtk_widget_get_parent_window (widget), &attr,
-                           GDK_WA_X | GDK_WA_Y);
-
-  cursor = gdk_cursor_new (GDK_HAND2);
-  gdk_window_set_cursor (window, cursor);
-
-  gdk_window_set_user_data (window, widget);
-  gtk_widget_set_window (widget, window);
-}
-
-
-static gdouble
-convert_longtitude_to_x (gdouble longitude, gint map_width) {
-  const gdouble xdeg_offset = -6;
-  gdouble x;
-
-  x = (map_width * (180.0 + longitude) / 360.0)
-    + (map_width * xdeg_offset / 180.0);
-
-  return x;
-}
-
-static gdouble
-radians (gdouble degrees) {
-  return (degrees / 360.0) * G_PI * 2;
-}
-
-static gdouble
-convert_latitude_to_y (gdouble latitude, gdouble map_height) {
-  gdouble bottom_lat = -59;
-  gdouble top_lat = 81;
-  gdouble top_per, y, full_range, top_offset, map_range;
-
-  top_per = top_lat / 180.0;
-  y = 1.25 * log (tan (G_PI_4 + 0.4 * radians (latitude)));
-  full_range = 4.6068250867599998;
-  top_offset = full_range * top_per;
-  map_range = fabs (1.25 * log (tan (G_PI_4 + 0.4 * radians (bottom_lat))) - top_offset);
-  y = fabs (y - top_offset);
-  y = y / map_range;
-  y = y * map_height;
-  return y;
-}
-
-
-static gboolean
-anaconda_timezone_map_draw (GtkWidget *widget,
-                      cairo_t   *cr) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (widget)->priv;
-  GdkPixbuf *hilight, *orig_hilight, *pin;
-  GtkAllocation alloc;
-  gchar *file;
-  GError *err = NULL;
-  gdouble pointx, pointy;
-  char buf[16];
-
-  gtk_widget_get_allocation (widget, &alloc);
-
-  /* paint background */
-  gdk_cairo_set_source_pixbuf (cr, priv->background, 0, 0);
-  cairo_paint (cr);
-
-  /* paint hilight */
-  file = g_strdup_printf ("%s/" TZMAP_DATADIR "/timezone_%s.png",
-                          get_widgets_datadir(),
-                          g_ascii_formatd (buf, sizeof (buf),
-                                           "%g", priv->selected_offset));
-  orig_hilight = gdk_pixbuf_new_from_file (file, &err);
-  g_free (file);
-  file = NULL;
-
-  if (!orig_hilight) {
-      g_warning ("Could not load hilight: %s",
-                 (err) ? err->message : "Unknown Error");
-      if (err)
-        g_clear_error (&err);
-    }
-  else {
-
-      hilight = gdk_pixbuf_scale_simple (orig_hilight, alloc.width,
-                                         alloc.height, GDK_INTERP_BILINEAR);
-      gdk_cairo_set_source_pixbuf (cr, hilight, 0, 0);
-
-      cairo_paint (cr);
-      g_object_unref (hilight);
-      g_object_unref (orig_hilight);
-    }
-
-  /* load pin icon */
-
-  file = g_strdup_printf("%s/" TZMAP_DATADIR "/pin.png", get_widgets_datadir());
-  pin = gdk_pixbuf_new_from_file (file, &err);
-  g_free(file);
-
-  if (err) {
-      g_warning ("Could not load pin icon: %s", err->message);
-      g_clear_error (&err);
-    }
-
-  if (priv->location) {
-      pointx = convert_longtitude_to_x (priv->location->longitude, alloc.width);
-      pointy = convert_latitude_to_y (priv->location->latitude, alloc.height);
-
-      if (pointy > alloc.height)
-        pointy = alloc.height;
-
-      if (pin) {
-          gdk_cairo_set_source_pixbuf (cr, pin, pointx - 8, pointy - 14);
-          cairo_paint (cr);
-        }
-    }
-
-  if (pin) {
-      g_object_unref (pin);
-    }
-
-  return TRUE;
-}
-
-
-static void
-anaconda_timezone_map_class_init (AnacondaTimezoneMapClass *klass) {
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
-  g_type_class_add_private (klass, sizeof (AnacondaTimezoneMapPrivate));
-
-  object_class->get_property = anaconda_timezone_map_get_property;
-  object_class->set_property = anaconda_timezone_map_set_property;
-  object_class->dispose = anaconda_timezone_map_dispose;
-  object_class->finalize = anaconda_timezone_map_finalize;
-
-  widget_class->get_preferred_width = anaconda_timezone_map_get_preferred_width;
-  widget_class->get_preferred_height = anaconda_timezone_map_get_preferred_height;
-  widget_class->size_allocate = anaconda_timezone_map_size_allocate;
-  widget_class->realize = anaconda_timezone_map_realize;
-  widget_class->draw = anaconda_timezone_map_draw;
-
-  signals[TIMEZONE_CHANGED] = g_signal_new ("timezone-changed",
-                                            ANACONDA_TYPE_TIMEZONE_MAP,
-                                            G_SIGNAL_RUN_FIRST,
-                                            0,
-                                            NULL,
-                                            NULL,
-                                            g_cclosure_marshal_VOID__STRING,
-                                            G_TYPE_NONE, 1,
-                                            G_TYPE_STRING);
-}
-
-
-static gint
-sort_locations (TzLocation *a,
-                TzLocation *b) {
-  if (a->dist > b->dist)
-    return 1;
-
-  if (a->dist < b->dist)
-    return -1;
-
-  return 0;
-}
-
-static void
-set_location (AnacondaTimezoneMap *map,
-              TzLocation    *location,
-              gboolean no_city,
-              gboolean no_signal) {
-  AnacondaTimezoneMapPrivate *priv = map->priv;
-  TzInfo *info;
-
-  info = tz_info_from_location (location);
-
-  priv->selected_offset = tz_location_get_utc_offset (location)
-    / (60.0*60.0) + ((info->daylight) ? -1.0 : 0.0);
-
-  if (no_city) {
-      priv->location = NULL;
-      if (!no_signal)
-          g_signal_emit (map, signals[TIMEZONE_CHANGED], 0, "");
-  }
-  else {
-      priv->location = location;
-      if (!no_signal)
-          g_signal_emit (map, signals[TIMEZONE_CHANGED], 0, priv->location->zone);
-  }
-
-  tz_info_free (info);
-}
-
-static gboolean
-button_press_event (GtkWidget      *widget,
-                    GdkEventButton *event) {
-  AnacondaTimezoneMapPrivate *priv = ANACONDA_TIMEZONE_MAP (widget)->priv;
-  gint x, y;
-  guchar r, g, b, a;
-  guchar *pixels;
-  gint rowstride;
-  gint i;
-
-  const GPtrArray *array;
-  gint width, height;
-  GList *distances = NULL;
-  GtkAllocation alloc;
-
-  x = event->x;
-  y = event->y;
-
-
-  rowstride = priv->visible_map_rowstride;
-  pixels = priv->visible_map_pixels;
-
-  r = pixels[(rowstride * y + x * 4)];
-  g = pixels[(rowstride * y + x * 4) + 1];
-  b = pixels[(rowstride * y + x * 4) + 2];
-  a = pixels[(rowstride * y + x * 4) + 3];
-
-
-  for (i = 0; color_codes[i].offset != -100; i++) {
-       if (color_codes[i].red == r && color_codes[i].green == g
-           && color_codes[i].blue == b && color_codes[i].alpha == a) {
-           priv->selected_offset = color_codes[i].offset;
-         }
-    }
-
-  gtk_widget_queue_draw (widget);
-
-  /* work out the co-ordinates */
-
-  array = tz_get_locations (priv->tzdb);
-
-  gtk_widget_get_allocation (widget, &alloc);
-  width = alloc.width;
-  height = alloc.height;
-
-  for (i = 0; i < array->len; i++) {
-      gdouble pointx, pointy, dx, dy;
-      TzLocation *loc = array->pdata[i];
-
-      pointx = convert_longtitude_to_x (loc->longitude, width);
-      pointy = convert_latitude_to_y (loc->latitude, height);
-
-      dx = pointx - x;
-      dy = pointy - y;
-
-      loc->dist = dx * dx + dy * dy;
-      distances = g_list_prepend (distances, loc);
-
-    }
-  distances = g_list_sort (distances, (GCompareFunc) sort_locations);
-
-
-  set_location (ANACONDA_TIMEZONE_MAP (widget), (TzLocation*) distances->data, FALSE, FALSE);
-
-  g_list_free (distances);
-
-  return TRUE;
-}
-
-static void
-anaconda_timezone_map_init (AnacondaTimezoneMap *self) {
-  AnacondaTimezoneMapPrivate *priv;
-  GError *err = NULL;
-  gchar *file;
-
-  priv = self->priv = TIMEZONE_MAP_PRIVATE (self);
-
-  file = g_strdup_printf("%s/" TZMAP_DATADIR "/bg.png", get_widgets_datadir());
-  priv->orig_background = gdk_pixbuf_new_from_file (file, &err);
-  g_free(file);
-
-  if (!priv->orig_background) {
-      g_warning ("Could not load background image: %s",
-                 (err) ? err->message : "Unknown error");
-      g_clear_error (&err);
-    }
-
-  file = g_strdup_printf("%s/" TZMAP_DATADIR "/cc.png", get_widgets_datadir());
-  priv->orig_color_map = gdk_pixbuf_new_from_file (file, &err);
-  g_free(file);
-
-  if (!priv->orig_color_map) {
-      g_warning ("Could not load background image: %s",
-                 (err) ? err->message : "Unknown error");
-      g_clear_error (&err);
-    }
-
-  priv->tzdb = tz_load_db ();
-
-  g_signal_connect (self, "button-press-event", G_CALLBACK (button_press_event),
-                    NULL);
-}
-
-/**
- * anaconda_timezone_map_set_timezone:
- * @map: an #AnacondaTimezoneMap
- * @timezone: timezone name
- * @no_signal: whether the timezone-changed signal should be emitted or not
- *
- * Modifies the map to show @timezone as selected. Also modifies the internal
- * data of the @map.
- *
- * Returns: (transfer none): Whether the change was successfully completed.
- */
-gboolean
-anaconda_timezone_map_set_timezone (AnacondaTimezoneMap *map,
-                                    const gchar   *timezone,
-                                    gboolean no_signal) {
-  GPtrArray *locations;
-  guint i;
-  char *real_tz;
-  gboolean ret;
-  gboolean no_city = FALSE;
-
-  /* "" means reset to default -- Europe/London timezone without
-   *                              a pin (no_city) */
-  if (!g_strcmp0 (timezone, "")) {
-      timezone = "Europe/London";
-      no_city = TRUE;
-  }
-
-  real_tz = tz_info_get_clean_name (map->priv->tzdb, timezone);
-
-  locations = tz_get_locations (map->priv->tzdb);
-  ret = FALSE;
-
-  for (i = 0; i < locations->len; i++) {
-      TzLocation *loc = locations->pdata[i];
-
-      if (!g_strcmp0 (loc->zone, real_tz ? real_tz : timezone)) {
-          set_location (map, loc, no_city, no_signal);
-          ret = TRUE;
-          break;
-        }
-    }
-
-  if (ret)
-    gtk_widget_queue_draw (GTK_WIDGET (map));
-
-  g_free (real_tz);
-
-  return ret;
-}
-
-/**
- * anaconda_timezone_map_get_timezone:
- * @map: an #AnacondaTimezoneMap
- *
- * Returns: (transfer none): the selected timezone
- */
-gchar *
-anaconda_timezone_map_get_timezone (AnacondaTimezoneMap *map) {
-    if (map->priv->location)
-        return map->priv->location->zone;
-    else
-        return "";
-}
diff --git a/widgets/src/TimezoneMap.h b/widgets/src/TimezoneMap.h
deleted file mode 100644
index 3a857bd..0000000
--- a/widgets/src/TimezoneMap.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2012-2013 Red Hat, Inc
- *
- * Heavily based on the gnome-control-center code,
- * Copyright (c) 2010 Intel, Inc
- * Written by Thomas Wood <thomas.wood at intel.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Author: Vratislav Podzimek <vpodzime at redhat.com>
- *
- */
-
-#ifndef _ANACONDA_TIMEZONE_MAP_H
-#define _ANACONDA_TIMEZONE_MAP_H
-
-#include <gtk/gtk.h>
-#include "tz.h"
-
-G_BEGIN_DECLS
-
-#define ANACONDA_TYPE_TIMEZONE_MAP anaconda_timezone_map_get_type()
-
-#define ANACONDA_TIMEZONE_MAP(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
-  ANACONDA_TYPE_TIMEZONE_MAP, AnacondaTimezoneMap))
-
-#define ANACONDA_TIMEZONE_MAP_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST ((klass), \
-  ANACONDA_TYPE_TIMEZONE_MAP, AnacondaTimezoneMapClass))
-
-#define ANACONDA_IS_TIMEZONE_MAP(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
-  ANACONDA_TYPE_TIMEZONE_MAP))
-
-#define ANACONDA_IS_TIMEZONE_MAP_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE ((klass), \
-  ANACONDA_TYPE_TIMEZONE_MAP))
-
-#define ANACONDA_TIMEZONE_MAP_GET_CLASS(obj) \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), \
-  ANACONDA_TYPE_TIMEZONE_MAP, AnacondaTimezoneMapClass))
-
-typedef struct _AnacondaTimezoneMap AnacondaTimezoneMap;
-typedef struct _AnacondaTimezoneMapClass AnacondaTimezoneMapClass;
-typedef struct _AnacondaTimezoneMapPrivate AnacondaTimezoneMapPrivate;
-
-struct _AnacondaTimezoneMap
-{
-  GtkWidget parent;
-
-  AnacondaTimezoneMapPrivate *priv;
-};
-
-struct _AnacondaTimezoneMapClass
-{
-  GtkWidgetClass parent_class;
-};
-
-GType anaconda_timezone_map_get_type (void) G_GNUC_CONST;
-
-GtkWidget *anaconda_timezone_map_new (void);
-
-gboolean anaconda_timezone_map_set_timezone (AnacondaTimezoneMap *map,
-                                             const gchar   *timezone,
-                                             gboolean no_signal);
-
-gchar *anaconda_timezone_map_get_timezone (AnacondaTimezoneMap *map);
-
-G_END_DECLS
-
-#endif /* _ANACONDA_TIMEZONE_MAP_H */
diff --git a/widgets/src/tz.c b/widgets/src/tz.c
deleted file mode 100644
index 54c0da5..0000000
--- a/widgets/src/tz.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* Generic timezone utilities.
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- *
- * Authors: Hans Petter Jansson <hpj at ximian.com>
- * 
- * Largely based on Michael Fulbright's work on Anaconda.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-
-#include <glib.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <time.h>
-#include <math.h>
-#include <string.h>
-#include "tz.h"
-
-
-/* Forward declarations for private functions */
-
-static float convert_pos (gchar *pos, int digits);
-static int compare_country_names (const void *a, const void *b);
-static void sort_locations_by_country (GPtrArray *locations);
-static gchar * tz_data_file_get (void);
-static void load_backward_tz (TzDB *tz_db);
-
-/* Returns path to anaconda widgets data directory using the value of the
- * environment variable ANACONDA_WIDGETS_DATA or WIDGETS_DATADIR macro
- * (defined in Makefile.am) if the environment variable is not defined.
- */
-gchar *get_widgets_datadir() {
-    gchar *env_value;
-
-    env_value = getenv("ANACONDA_WIDGETS_DATA");
-    if (env_value == NULL)
-        return WIDGETS_DATADIR;
-    else
-        return env_value;
-}
-
-/* ---------------- *
- * Public interface *
- * ---------------- */
-TzDB *
-tz_load_db (void)
-{
-	gchar *tz_data_file;
-	TzDB *tz_db;
-	FILE *tzfile;
-	char buf[4096];
-
-	tz_data_file = tz_data_file_get ();
-	if (!tz_data_file) {
-		g_warning ("Could not get the TimeZone data file name");
-		return NULL;
-	}
-	tzfile = fopen (tz_data_file, "r");
-	if (!tzfile) {
-		g_warning ("Could not open *%s*\n", tz_data_file);
-		g_free (tz_data_file);
-		return NULL;
-	}
-
-	tz_db = g_new0 (TzDB, 1);
-	tz_db->locations = g_ptr_array_new ();
-
-	while (fgets (buf, sizeof(buf), tzfile)) {
-		gchar **tmpstrarr;
-		gchar *latstr, *lngstr, *p;
-		TzLocation *loc;
-
-		if (*buf == '#') continue;
-
-		g_strchomp(buf);
-		tmpstrarr = g_strsplit(buf,"\t", 6);
-		
-		latstr = g_strdup (tmpstrarr[1]);
-		p = latstr + 1;
-		while (*p != '-' && *p != '+') p++;
-		lngstr = g_strdup (p);
-		*p = '\0';
-		
-		loc = g_new0 (TzLocation, 1);
-		loc->country = g_strdup (tmpstrarr[0]);
-		loc->zone = g_strdup (tmpstrarr[2]);
-		loc->latitude  = convert_pos (latstr, 2);
-		loc->longitude = convert_pos (lngstr, 3);
-		
-		loc->comment = (tmpstrarr[3]) ? g_strdup(tmpstrarr[3]) : NULL;
-
-		g_ptr_array_add (tz_db->locations, (gpointer) loc);
-
-		g_free (latstr);
-		g_free (lngstr);
-		g_strfreev (tmpstrarr);
-	}
-	
-	fclose (tzfile);
-	
-	/* now sort by country */
-	sort_locations_by_country (tz_db->locations);
-	
-	g_free (tz_data_file);
-
-	/* Load up the hashtable of backward links */
-	load_backward_tz (tz_db);
-
-	return tz_db;
-}
-
-static void
-tz_location_free (TzLocation *loc)
-{
-	g_free (loc->country);
-	g_free (loc->zone);
-	g_free (loc->comment);
-
-	g_free (loc);
-}
-
-void
-tz_db_free (TzDB *db)
-{
-	g_ptr_array_foreach (db->locations, (GFunc) tz_location_free, NULL);
-	g_ptr_array_free (db->locations, TRUE);
-	g_hash_table_destroy (db->backward);
-	g_free (db);
-}
-
-GPtrArray *
-tz_get_locations (TzDB *db)
-{
-	return db->locations;
-}
-
-
-gchar *
-tz_location_get_country (TzLocation *loc)
-{
-	return loc->country;
-}
-
-
-gchar *
-tz_location_get_zone (TzLocation *loc)
-{
-	return loc->zone;
-}
-
-
-gchar *
-tz_location_get_comment (TzLocation *loc)
-{
-	return loc->comment;
-}
-
-
-void
-tz_location_get_position (TzLocation *loc, double *longitude, double *latitude)
-{
-	*longitude = loc->longitude;
-	*latitude = loc->latitude;
-}
-
-glong
-tz_location_get_utc_offset (TzLocation *loc)
-{
-	TzInfo *tz_info;
-	glong offset;
-
-	tz_info = tz_info_from_location (loc);
-	offset = tz_info->utc_offset;
-	tz_info_free (tz_info);
-	return offset;
-}
-
-TzInfo *
-tz_info_from_location (TzLocation *loc)
-{
-	TzInfo *tzinfo;
-	time_t curtime;
-	struct tm *curzone;
-	gchar *tz_env_value;
-	
-	g_return_val_if_fail (loc != NULL, NULL);
-	g_return_val_if_fail (loc->zone != NULL, NULL);
-	
-	tz_env_value = g_strdup (getenv ("TZ"));
-	setenv ("TZ", loc->zone, 1);
-	
-	tzinfo = g_new0 (TzInfo, 1);
-
-	curtime = time (NULL);
-	curzone = localtime (&curtime);
-
-	/* Currently this solution doesnt seem to work - I get that */
-	/* America/Phoenix uses daylight savings, which is wrong    */
-	tzinfo->tzname_normal = g_strdup (curzone->tm_zone);
-	if (curzone->tm_isdst) 
-		tzinfo->tzname_daylight =
-			g_strdup (&curzone->tm_zone[curzone->tm_isdst]);
-	else
-		tzinfo->tzname_daylight = NULL;
-
-	tzinfo->utc_offset = curzone->tm_gmtoff;
-
-	tzinfo->daylight = curzone->tm_isdst;
-
-	if (tz_env_value)
-		setenv ("TZ", tz_env_value, 1);
-	else
-		unsetenv ("TZ");
-
-	g_free (tz_env_value);
-	
-	return tzinfo;
-}
-
-
-void
-tz_info_free (TzInfo *tzinfo)
-{
-	g_return_if_fail (tzinfo != NULL);
-	
-	if (tzinfo->tzname_normal) g_free (tzinfo->tzname_normal);
-	if (tzinfo->tzname_daylight) g_free (tzinfo->tzname_daylight);
-	g_free (tzinfo);
-}
-
-struct {
-	const char *orig;
-	const char *dest;
-} aliases[] = {
-	{ "Asia/Istanbul",  "Europe/Istanbul" },	/* Istanbul is in both Europe and Asia */
-	{ "Europe/Nicosia", "Asia/Nicosia" },		/* Ditto */
-	{ "EET",            "Europe/Istanbul" },	/* Same tz as the 2 above */
-	{ "HST",            "Pacific/Honolulu" },
-	{ "WET",            "Europe/Brussels" },	/* Other name for the mainland Europe tz */
-	{ "CET",            "Europe/Brussels" },	/* ditto */
-	{ "MET",            "Europe/Brussels" },
-	{ "Etc/Zulu",       "Etc/GMT" },
-	{ "Etc/UTC",        "Etc/GMT" },
-	{ "GMT",            "Etc/GMT" },
-	{ "Greenwich",      "Etc/GMT" },
-	{ "Etc/UCT",        "Etc/GMT" },
-	{ "Etc/GMT0",       "Etc/GMT" },
-	{ "Etc/GMT+0",      "Etc/GMT" },
-	{ "Etc/GMT-0",      "Etc/GMT" },
-	{ "Etc/Universal",  "Etc/GMT" },
-	{ "PST8PDT",        "America/Los_Angeles" },	/* Other name for the Atlantic tz */
-	{ "EST",            "America/New_York" },	/* Other name for the Eastern tz */
-	{ "EST5EDT",        "America/New_York" },	/* ditto */
-	{ "CST6CDT",        "America/Chicago" },	/* Other name for the Central tz */
-	{ "MST",            "America/Denver" },		/* Other name for the mountain tz */
-	{ "MST7MDT",        "America/Denver" },		/* ditto */
-};
-
-static gboolean
-compare_timezones (const char *a,
-		   const char *b)
-{
-	if (g_str_equal (a, b))
-		return TRUE;
-	if (strchr (b, '/') == NULL) {
-		char *prefixed;
-
-		prefixed = g_strdup_printf ("/%s", b);
-		if (g_str_has_suffix (a, prefixed)) {
-			g_free (prefixed);
-			return TRUE;
-		}
-		g_free (prefixed);
-	}
-
-	return FALSE;
-}
-
-char *
-tz_info_get_clean_name (TzDB *tz_db,
-			const char *tz)
-{
-	char *ret;
-	const char *timezone;
-	guint i;
-	gboolean replaced;
-
-	/* Remove useless prefixes */
-	if (g_str_has_prefix (tz, "right/"))
-		tz = tz + strlen ("right/");
-	else if (g_str_has_prefix (tz, "posix/"))
-		tz = tz + strlen ("posix/");
-
-	/* Here start the crazies */
-	replaced = FALSE;
-
-	for (i = 0; i < G_N_ELEMENTS (aliases); i++) {
-		if (compare_timezones (tz, aliases[i].orig)) {
-			replaced = TRUE;
-			timezone = aliases[i].dest;
-			break;
-		}
-	}
-
-	/* Try again! */
-	if (!replaced) {
-		/* Ignore crazy solar times from the '80s */
-		if (g_str_has_prefix (tz, "Asia/Riyadh") ||
-		    g_str_has_prefix (tz, "Mideast/Riyadh")) {
-			timezone = "Asia/Riyadh";
-			replaced = TRUE;
-		}
-	}
-
-	if (!replaced)
-		timezone = tz;
-
-	ret = g_hash_table_lookup (tz_db->backward, timezone);
-	if (ret == NULL)
-		return g_strdup (timezone);
-	return g_strdup (ret);
-}
-
-/* ----------------- *
- * Private functions *
- * ----------------- */
-
-static gchar *
-tz_data_file_get (void)
-{
-	gchar *file;
-
-	file = g_strdup (TZ_DATA_FILE);
-
-	return file;
-}
-
-static float
-convert_pos (gchar *pos, int digits)
-{
-	gchar whole[10];
-	gchar *fraction;
-	gint i;
-	float t1, t2;
-	
-	if (!pos || strlen(pos) < 4 || digits > 9) return 0.0;
-	
-	for (i = 0; i < digits + 1; i++) whole[i] = pos[i];
-	whole[i] = '\0';
-	fraction = pos + digits + 1;
-
-	t1 = g_strtod (whole, NULL);
-	t2 = g_strtod (fraction, NULL);
-
-	if (t1 >= 0.0) return t1 + t2/pow (10.0, strlen(fraction));
-	else return t1 - t2/pow (10.0, strlen(fraction));
-}
-
-static int
-compare_country_names (const void *a, const void *b)
-{
-	const TzLocation *tza = * (TzLocation **) a;
-	const TzLocation *tzb = * (TzLocation **) b;
-	
-	return strcmp (tza->zone, tzb->zone);
-}
-
-
-static void
-sort_locations_by_country (GPtrArray *locations)
-{
-	qsort (locations->pdata, locations->len, sizeof (gpointer),
-	       compare_country_names);
-}
-
-static void
-load_backward_tz (TzDB *tz_db)
-{
-  GError *error = NULL;
-  char **lines, *contents;
-  guint i;
-  gchar *file;
-
-  tz_db->backward = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
-  file = g_strdup_printf ("%s/" TZMAP_DATADIR "/timezones_backward", get_widgets_datadir());
-  if (g_file_get_contents (file, &contents, NULL, &error) == FALSE) {
-      g_warning ("Failed to load 'backward' file: %s", error->message);
-      return;
-    }
-  g_free(file);
-
-  lines = g_strsplit (contents, "\n", -1);
-  g_free (contents);
-  for (i = 0; lines[i] != NULL; i++) {
-      char **items;
-      guint j;
-      char *real, *alias;
-
-      if (g_ascii_strncasecmp (lines[i], "Link\t", 5) != 0)
-        continue;
-
-      items = g_strsplit (lines[i], "\t", -1);
-      real = NULL;
-      alias = NULL;
-      /* Skip the "Link<tab>" part */
-      for (j = 1; items[j] != NULL; j++) {
-          if (items[j][0] == '\0')
-            continue;
-          if (real == NULL) {
-              real = items[j];
-              continue;
-            }
-          alias = items[j];
-          break;
-        }
-
-      if (real == NULL || alias == NULL)
-        g_warning ("Could not parse line: %s", lines[i]);
-
-      /* We don't need more than one name for it */
-      if (g_str_equal (real, "Etc/UTC") ||
-          g_str_equal (real, "Etc/UCT"))
-        real = "Etc/GMT";
-
-      g_hash_table_insert (tz_db->backward, g_strdup (alias), g_strdup (real));
-      g_strfreev (items);
-    }
-  g_strfreev (lines);
-}
-
diff --git a/widgets/src/tz.h b/widgets/src/tz.h
deleted file mode 100644
index ec8a569..0000000
--- a/widgets/src/tz.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* Generic timezone utilities.
- *
- * Copyright (C) 2000-2001 Ximian, Inc.
- *
- * Authors: Hans Petter Jansson <hpj at ximian.com>
- * 
- * Largely based on Michael Fulbright's work on Anaconda.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef _E_TZ_H
-#define _E_TZ_H
-
-#include <glib.h>
-
-#define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
-
-typedef struct _TzDB TzDB;
-typedef struct _TzLocation TzLocation;
-typedef struct _TzInfo TzInfo;
-
-gchar *get_widgets_datadir();
-
-struct _TzDB
-{
-	GPtrArray  *locations;
-	GHashTable *backward;
-};
-
-struct _TzLocation
-{
-	gchar *country;
-	gdouble latitude;
-	gdouble longitude;
-	gchar *zone;
-	gchar *comment;
-
-	gdouble dist; /* distance to clicked point for comparison */
-};
-
-/* see the glibc info page information on time zone information */
-/*  tzname_normal    is the default name for the timezone */
-/*  tzname_daylight  is the name of the zone when in daylight savings */
-/*  utc_offset       is offset in seconds from utc */
-/*  daylight         if non-zero then location obeys daylight savings */
-
-struct _TzInfo
-{
-	gchar *tzname_normal;
-	gchar *tzname_daylight;
-	glong utc_offset;
-	gint daylight;
-};
-
-
-TzDB      *tz_load_db                 (void);
-void       tz_db_free                 (TzDB *db);
-char *     tz_info_get_clean_name     (TzDB *tz_db,
-				       const char *tz);
-GPtrArray *tz_get_locations           (TzDB *db);
-void       tz_location_get_position   (TzLocation *loc,
-				       double *longitude, double *latitude);
-char      *tz_location_get_country    (TzLocation *loc);
-gchar     *tz_location_get_zone       (TzLocation *loc);
-gchar     *tz_location_get_comment    (TzLocation *loc);
-glong      tz_location_get_utc_offset (TzLocation *loc);
-gint       tz_location_set_locally    (TzLocation *loc);
-TzInfo    *tz_info_from_location      (TzLocation *loc);
-void       tz_info_free               (TzInfo *tz_info);
-
-#endif
-- 
1.8.4.2



More information about the anaconda-patches mailing list