Rev 3697: (Mark Hammond) Update bzr.ico, and include TBZR icons in installer. in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Sep 9 18:33:55 BST 2008


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 3697
revision-id: pqm at pqm.ubuntu.com-20080909173348-5y4vo2tga9d19fpa
parent: pqm at pqm.ubuntu.com-20080908061835-nz7hj7o0pms1nf9p
parent: john at arbash-meinel.com-20080909170221-svim3jw2mrz0amp3
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2008-09-09 18:33:48 +0100
message:
  (Mark Hammond) Update bzr.ico, and include TBZR icons in installer.
modified:
  bzr.ico                        bzr.ico-20060629083000-q18ip0hk7lq55i4y-1
  setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 3688.3.3
    revision-id: john at arbash-meinel.com-20080909170221-svim3jw2mrz0amp3
    parent: mhammond at skippinet.com.au-20080904120301-x3tujl7hloy0o75j
    author: Mark Hammond <mhammond at skippinet.com.au>
    committer: John Arbash Meinel <john at arbash-meinel.com>
    branch nick: jam-integration
    timestamp: Tue 2008-09-09 12:02:21 -0500
    message:
      An updated transparent icon for bzr.
    modified:
      bzr.ico                        bzr.ico-20060629083000-q18ip0hk7lq55i4y-1
    ------------------------------------------------------------
    revno: 3688.3.2
    revision-id: mhammond at skippinet.com.au-20080904120301-x3tujl7hloy0o75j
    parent: mhammond at skippinet.com.au-20080904115040-ai5yum99nqz0azz2
    committer: Mark Hammond <mhammond at skippinet.com.au>
    branch nick: bzr.binaries.17
    timestamp: Thu 2008-09-04 22:03:01 +1000
    message:
      build the list of icons without changing directory.
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 3688.3.1
    revision-id: mhammond at skippinet.com.au-20080904115040-ai5yum99nqz0azz2
    parent: pqm at pqm.ubuntu.com-20080903223056-b108iytb38xkznci
    parent: mhammond at skippinet.com.au-20080903120907-0cgb5efq1gzhsh0b
    committer: Mark Hammond <mhammond at skippinet.com.au>
    branch nick: bzr.binaries.17
    timestamp: Thu 2008-09-04 21:50:40 +1000
    message:
      re-merge
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 3684.2.1
    revision-id: mhammond at skippinet.com.au-20080903120907-0cgb5efq1gzhsh0b
    parent: pqm at pqm.ubuntu.com-20080903094659-lkj3i4hd83d35fov
    committer: Mark Hammond <mhammond at skippinet.com.au>
    branch nick: bzr.binaries.17
    timestamp: Wed 2008-09-03 22:09:07 +1000
    message:
      include tbzr icons in windows binary distributions
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
=== modified file 'bzr.ico'
Binary files a/bzr.ico	2006-07-31 16:12:57 +0000 and b/bzr.ico	2008-09-09 17:02:21 +0000 differ
=== modified file 'setup.py'
--- a/setup.py	2008-09-03 06:31:11 +0000
+++ b/setup.py	2008-09-04 12:03:01 +0000
@@ -253,6 +253,7 @@
     # win32com uses them.  Hook this in so win32com.shell is found.
     import modulefinder
     import win32com
+    import cPickle as pickle
     for p in win32com.__path__[1:]:
         modulefinder.AddPackagePath("win32com", p)
     for extra in ["win32com.shell"]:
@@ -271,6 +272,29 @@
     sys.path.append(os.path.join(tbzr_root, "shellext", "python"))
 
     packages.append("tbzrlib")
+
+    # collect up our icons.
+    cwd = os.getcwd()
+    ico_root = os.path.join(tbzr_root, 'tbzrlib', 'resources')
+    icos = [] # list of (path_root, relative_ico_path)
+    # First always bzr's icon and its in the root of the bzr tree.
+    icos.append(('', 'bzr.ico'))
+    for root, dirs, files in os.walk(ico_root):
+        icos.extend([(ico_root, os.path.join(root, f)[len(ico_root)+1:])
+                     for f in files if f.endswith('.ico')])
+    # allocate an icon ID for each file and the full path to the ico
+    icon_resources = [(rid, os.path.join(ico_dir, ico_name))
+                      for rid, (ico_dir, ico_name) in enumerate(icos)]
+    # create a string resource with the mapping.  Might as well save the
+    # runtime some effort and write a pickle.
+    # Runtime expects unicode objects with forward-slash seps.
+    fse = sys.getfilesystemencoding()
+    map_items = [(f.replace('\\', '/').decode(fse), rid)
+                 for rid, (_, f) in enumerate(icos)]
+    ico_map = dict(map_items)
+    # Create a new resource type of 'ICON_MAP', and use ID=1
+    other_resources = [ ("ICON_MAP", 1, pickle.dumps(ico_map))]
+
     excludes.extend("""pywin pywin.dialogs pywin.dialogs.list
                        win32ui crawler.Crawler""".split())
 
@@ -284,7 +308,8 @@
     # GUI version that is generally used.
     tbzrcache = dict(
         script = os.path.join(tbzr_root, "Scripts", "tbzrcache.py"),
-        icon_resources = [(0,'bzr.ico')],
+        icon_resources = icon_resources,
+        other_resources = other_resources,
     )
     console_targets.append(tbzrcache)
 




More information about the bazaar-commits mailing list