Hello community,

here is the log from the commit of package folder-color for openSUSE:Factory 
checked in at 2015-03-30 19:33:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/folder-color (Old)
 and      /work/SRC/openSUSE:Factory/.folder-color.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "folder-color"

Changes:
--------
--- /work/SRC/openSUSE:Factory/folder-color/folder-color.changes        
2015-03-23 12:17:51.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.folder-color.new/folder-color.changes   
2015-03-30 19:33:50.000000000 +0200
@@ -1,0 +2,7 @@
+Sun Mar 29 13:06:32 UTC 2015 - [email protected]
+
+- Update to 0.0.70:
+  * Fix no transparency in custom colours.
+  * Update translations.
+
+-------------------------------------------------------------------

Old:
----
  folder-color-caja_0.0.62_all.tar.gz
  folder-color-common_0.0.60_all.tar.gz
  folder-color_0.0.62_all.tar.gz

New:
----
  folder-color-caja_0.0.70_all.tar.gz
  folder-color-common_0.0.70_all.tar.gz
  folder-color_0.0.70_all.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ folder-color.spec ++++++
--- /var/tmp/diff_new_pack.ZQcWIN/_old  2015-03-30 19:33:51.000000000 +0200
+++ /var/tmp/diff_new_pack.ZQcWIN/_new  2015-03-30 19:33:51.000000000 +0200
@@ -17,16 +17,15 @@
 
 
 %define _name   folder_color
-%define _version 0.0.6x
-%define _common_ver 0.0.60
+%define _version 0.0.7x
 Name:           folder-color
-Version:        0.0.62
+Version:        0.0.70
 Release:        0
 Summary:        Change a directory colour in Caja and Nautilus
 License:        GPL-3.0+
 Group:          Productivity/File utilities
 Url:            https://launchpad.net/folder-color
-Source0:        
https://launchpad.net/%{name}/trunk/%{_version}/+download/%{name}-common_%{_common_ver}_all.tar.gz
+Source0:        
https://launchpad.net/%{name}/trunk/%{_version}/+download/%{name}-common_%{version}_all.tar.gz
 Source1:        
https://launchpad.net/%{name}/trunk/%{_version}/+download/%{name}-caja_%{version}_all.tar.gz
 Source2:        
https://launchpad.net/%{name}/trunk/%{_version}/+download/%{name}_%{version}_all.tar.gz
 BuildRequires:  fdupes

++++++ folder-color-caja_0.0.62_all.tar.gz -> 
folder-color-caja_0.0.70_all.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color-caja/caja-extension/folder-color.py 
new/folder-color-caja/caja-extension/folder-color.py
--- old/folder-color-caja/caja-extension/folder-color.py        2015-03-18 
19:42:06.000000000 +0100
+++ new/folder-color-caja/caja-extension/folder-color.py        2015-03-29 
12:04:42.000000000 +0200
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Folder Color 0.0.62
+# Folder Color 0.0.70
 # Copyright (C) 2012-2015 Marcos Alvarez Costales 
https://launchpad.net/~costales
 #
 # Folder Color is free software; you can redistribute it and/or modify
@@ -67,8 +67,7 @@
         self.HIDE_DONATION     = os.path.join(self.CFG_PATH, 'hide_donation')
         self.URL_DONATE        = 'http://gufw.org/donate_foldercolor'
         
-        self.GRADIENT_MIDDLE_RANGE = 2500
-        self.GRADIENT_DARK_RANGE   = 5000
+        self.GRADIENT_RANGE = 15
         self.VALUE_LIGHT  = 'value_light'
         self.VALUE_MIDDLE = 'value_middle'
         self.VALUE_DARK   = 'value_dark'
@@ -241,28 +240,43 @@
     
     def custom_color_dialog(self):
         """Shows the dialog and return the color"""
-        colorselectiondialog = Gtk.ColorSelectionDialog(_("Choose a Folder 
Color"))
-        selector = colorselectiondialog.get_color_selection()
-        response = colorselectiondialog.run()
-        colorselectiondialog.destroy()
+        dialog = Gtk.ColorSelectionDialog()
         
+        response = dialog.run()
         if response == Gtk.ResponseType.OK:
-            color = selector.get_current_color()
-            # Control max color range
-            if color.red <= self.GRADIENT_DARK_RANGE:
-                color.red = self.GRADIENT_DARK_RANGE
-            if color.green <= self.GRADIENT_DARK_RANGE:
-                color.green = self.GRADIENT_DARK_RANGE
-            if color.blue <= self.GRADIENT_DARK_RANGE:
-                color.blue = self.GRADIENT_DARK_RANGE
-            # Convert to hex
-            rgb_ligth = (color.red, color.green, color.blue)
-            rgb_middle = (color.red-self.GRADIENT_MIDDLE_RANGE, 
color.green-self.GRADIENT_MIDDLE_RANGE, color.blue-self.GRADIENT_MIDDLE_RANGE)
-            rgb_dark = (color.red-self.GRADIENT_DARK_RANGE, 
color.green-self.GRADIENT_DARK_RANGE, color.blue-self.GRADIENT_DARK_RANGE)
-            htmlcolor_light =  ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_ligth)).upper()
-            htmlcolor_middle = ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_middle)).upper()
-            htmlcolor_dark =   ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_dark)).upper()
-            return (htmlcolor_light, htmlcolor_middle, htmlcolor_dark)
+            # Color
+            color = dialog.get_color_selection().get_current_color()
+            dialog.destroy()
+            red   = int(color.red   / 256)
+            green = int(color.green / 256)
+            blue  = int(color.blue  / 256)
+            # Light
+            hex_light = "%02x%02x%02x" % (red, green, blue)
+            # Middle
+            red = red - self.GRADIENT_RANGE
+            if red < 0:
+                red = 0
+            green = green - self.GRADIENT_RANGE
+            if green < 0:
+                green = 0
+            blue = blue - self.GRADIENT_RANGE
+            if blue < 0:
+                blue = 0
+            hex_middle = "%02x%02x%02x" % (red, green, blue)
+            # Dark
+            red = red - self.GRADIENT_RANGE
+            if red < 0:
+                red = 0
+            green = green - self.GRADIENT_RANGE
+            if green < 0:
+                green = 0
+            blue  = blue  - self.GRADIENT_RANGE
+            if blue < 0:
+                blue = 0
+            hex_dark = "%02x%02x%02x" % (red, green, blue)
+            return (hex_light, hex_middle, hex_dark)
+        
+        dialog.destroy()
         return None
     
     def _generate_custom_file(self, src_file, dst_file, colors):
@@ -279,7 +293,7 @@
     def __init__(self):
         self.foldercolor = FolderColor()
         self.lock = Lock()
-        self.switcher = Switcher()
+        self.globalcolor = GlobalColor()
         
         dummy_i18n = (_("Brown"), _("Blue"), _("Green"), _("Grey"), 
_("Orange"), _("Pink"), _("Red"), _("Purple"), _("Yellow"), _("Favorite"), 
_("Finished"), _("Important"), _("In Progress")) # Need i18n, because 
colors/emblems are dynamic now
         
@@ -463,35 +477,21 @@
         label = Gtk.Label(_("Global Color:"))
         button = Gtk.Button(_("Apply"))
         button.connect('clicked', self._on_color_changed)
-        exp1 = Gtk.AspectFrame()
-        exp1.set_shadow_type(0)
-        exp2 = Gtk.AspectFrame()
-        exp2.set_shadow_type(0)
-        hbox.pack_start(exp1, True, True, 0)
         hbox.pack_start(label, False, False, 0)
         hbox.pack_start(self.cb_colors, False, False, 0)
         hbox.pack_start(button, False, False, 0)
-        hbox.pack_start(exp2, True, True, 0)
         vbox.pack_start(hbox, False, False, 0)
-        
-        label = Gtk.Label(_("(You may need to restart the file manager)"))
-        label.set_justify(Gtk.Justification.LEFT)
-        vbox.pack_start(label, True, True, 0)
-        
         # Donate
         if not os.path.exists(self.foldercolor.HIDE_DONATION):
             self.vbox_donate = Gtk.VBox(spacing=6)
-            self.vbox_donate.pack_start(Gtk.HSeparator(), False, True, 6)
+            self.vbox_donate.pack_start(Gtk.HSeparator(), True, True, 0)
+            link_donate = Gtk.LinkButton(self.foldercolor.URL_DONATE, 
_("Donate? Click to hide"))
+            link_donate.set_tooltip_text(_("Thanks in advance!"))
+            link_donate.connect("clicked", self._on_donate_hide)
             hbox = Gtk.HBox(spacing=6)
-            btn_donate = Gtk.LinkButton(self.foldercolor.URL_DONATE, 
_("Suppport this app with a donation"))
-            img_hide = Gtk.Image(stock=Gtk.STOCK_CLOSE)
-            btn_hide = Gtk.Button(image=img_hide)
-            btn_hide.connect("clicked", self._on_donate_hide)
-            btn_hide.set_tooltip_text(_("Hide donation forever"))
-            hbox.pack_start(btn_donate, False, False, 0)
-            hbox.pack_start(btn_hide, False, False, 0)           
-            self.vbox_donate.pack_start(hbox, False, False, 0)
-            vbox.pack_start(self.vbox_donate, False, False, 0)
+            hbox.pack_start(link_donate, True, True, 0)
+            self.vbox_donate.pack_start(hbox, True, True, 0)
+            vbox.pack_start(self.vbox_donate, True, True, 0)
         
         win.add(vbox)
         win.connect('delete-event', self._close_win)
@@ -521,9 +521,9 @@
             return
         
         if color == 'default':
-            self.switcher.restore()
+            self.globalcolor.restore()
         else:
-            self.switcher.set_color(color)
+            self.globalcolor.set_color(color)
 
 
 class Lock:
@@ -553,7 +553,7 @@
             return False
 
 
-class Switcher:
+class GlobalColor:
     """Set default global color"""
     def __init__(self):
         self.foldercolor = FolderColor()
@@ -592,13 +592,30 @@
                 return cfg.get(section, 'Inherits')
         return ''
     
+    def _cp_file(self, src, dst):
+        if os.path.isfile(src):
+            try:
+                shutil.copy2(src, dst)
+            except:
+                pass
+    
     def _generate_local_theme(self, name, inherit, color):
         """Generate a inherit local theme from system theme"""
         # Create folder
         name = '.'.join([name, 'foldercolor']) # Generate a Folder Color theme
         try:
             dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places')
-            os.makedirs(dst_path)
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'16x16', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'22x22', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'24x24', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
         except OSError as exception:
             pass
         except:
@@ -606,24 +623,135 @@
 
         # Generate icons
         for folder in self.foldercolor.DEFAULT_FOLDERS:
+            # scalable
             src_file = ''.join([self.foldercolor.get_path(), 
self.foldercolor.get_iconname(folder, color), '.svg'])
             dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(folder))
-            shutil.copy2(src_file, dst_file)
+            self._cp_file(src_file, dst_file)
+            # 16x16
+            src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+            dst_file_16 = dst_file.replace('/scalable/', '/16x16/')
+            self._cp_file(src_file_16, dst_file_16)
+            # 22x22
+            src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+            dst_file_22 = dst_file.replace('/scalable/', '/22x22/')
+            self._cp_file(src_file_22, dst_file_22)
+            # 24x24
+            src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+            dst_file_24 = dst_file.replace('/scalable/', '/24x24/')
+            self._cp_file(src_file_24, dst_file_24)
+        
+        # folder.svg
         src_file = ''.join([self.foldercolor.get_path(), 
self.foldercolor.get_iconname('', color), '.svg'])
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 0)) # folder.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 1)) # inode-directory.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 2)) # user-home.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 3)) # folder_home.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 4)) # network-workgroup.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 5)) # folder-remote.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 6)) # document-open-recent.svg
-        shutil.copy2(src_file, dst_file)
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 0))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # inode-directory.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 1))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # user-home.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 2))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # folder_home.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 3))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # network-workgroup.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 4))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # folder-remote.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 5))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # document-open-recent.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 6))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
         
         # Generate index.theme
         index_file = '/'.join([os.path.join(self.foldercolor.USER_PATH_THEME, 
name), 'index.theme'])
@@ -634,13 +762,23 @@
         cfg.set('Icon Theme', 'Hidden',      'true')
         cfg.set('Icon Theme', 'Comment',     'Generated by Folder Color')
         cfg.set('Icon Theme', 'Inherits',    inherit)
-        cfg.set('Icon Theme', 'Directories', 'scalable/places')
+        cfg.set('Icon Theme', 'Directories', 
'scalable/places,16x16/places,22x22/places,24x24/places')
         cfg.add_section('scalable/places')
-        cfg.set('scalable/places', 'MinSize', '16')
         cfg.set('scalable/places', 'Size',    '48')
-        cfg.set('scalable/places', 'MaxSize', '256')
         cfg.set('scalable/places', 'Context', 'Places')
         cfg.set('scalable/places', 'Type',    'Scalable')
+        cfg.add_section('16x16/places')
+        cfg.set('16x16/places', 'Size',    '16')
+        cfg.set('16x16/places', 'Context', 'Places')
+        cfg.set('16x16/places', 'Type',    'Threshold')
+        cfg.add_section('22x22/places')
+        cfg.set('22x22/places', 'Size',    '22')
+        cfg.set('22x22/places', 'Context', 'Places')
+        cfg.set('22x22/places', 'Type',    'Threshold')
+        cfg.add_section('24x24/places')
+        cfg.set('24x24/places', 'Size',    '24')
+        cfg.set('24x24/places', 'Context', 'Places')
+        cfg.set('24x24/places', 'Type',    'Threshold')
         f = open(index_file, 'w')
         cfg.write(f)  
         f.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color-caja/debian/changelog 
new/folder-color-caja/debian/changelog
--- old/folder-color-caja/debian/changelog      2015-03-18 19:42:07.000000000 
+0100
+++ new/folder-color-caja/debian/changelog      2015-03-29 12:04:42.000000000 
+0200
@@ -1,10 +1,7 @@
-folder-color-caja (0.0.62) trusty; urgency=low
+folder-color-caja (0.0.70) trusty; urgency=low
 
-  * Allow local themes
-  * Fixed folders network and recent
-  * Allow to hide donation
-  * Layout in Global color fixed
+  * Fixed #1437800: No transparency in custom colors
   * Updated translations
 
- -- costales <[email protected]>  Web, 18 Mar 2015 19:02:31 +0000
+ -- costales <[email protected]>  Sat, 28 Mar 2015 18:12:31 +0000
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color-caja/debian/control 
new/folder-color-caja/debian/control
--- old/folder-color-caja/debian/control        2015-03-18 19:42:07.000000000 
+0100
+++ new/folder-color-caja/debian/control        2015-03-29 12:04:42.000000000 
+0200
@@ -1,7 +1,7 @@
 Source: folder-color-caja
 Section: utils
 Priority: extra
-Standards-Version: 0.0.62
+Standards-Version: 0.0.70
 Maintainer: costales <[email protected]>
 Build-Depends: python-distutils-extra, debhelper (>=7)
 Homepage: https://code.launchpad.net/folder-color
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color-caja/setup.py 
new/folder-color-caja/setup.py
--- old/folder-color-caja/setup.py      2015-03-18 19:42:06.000000000 +0100
+++ new/folder-color-caja/setup.py      2015-03-29 12:04:41.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Folder Color 0.0.62 - http://launchpad.net/folder-color
+# Folder Color 0.0.70 - http://launchpad.net/folder-color
 # Copyright (C) 2012-2015 Marcos Alvarez Costales 
https://launchpad.net/~costales
 #
 # folder-color is free software; you can redistribute it and/or modify
@@ -26,7 +26,7 @@
 # Setup stage
 DistUtilsExtra.auto.setup(
     name         = "folder-color-caja",
-    version      = "0.0.62",
+    version      = "0.0.70",
     description  = "Change your folder color in Caja",
     author       = "Marcos Alvarez Costales https://launchpad.net/~costales";,
     author_email = "https://launchpad.net/~costales";,

++++++ folder-color-common_0.0.60_all.tar.gz -> 
folder-color-common_0.0.70_all.tar.gz ++++++
++++ 16614 lines of diff (skipped)

++++++ folder-color_0.0.62_all.tar.gz -> folder-color_0.0.70_all.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color/debian/changelog 
new/folder-color/debian/changelog
--- old/folder-color/debian/changelog   2015-03-18 19:41:59.000000000 +0100
+++ new/folder-color/debian/changelog   2015-03-29 12:04:28.000000000 +0200
@@ -1,10 +1,7 @@
-folder-color (0.0.62) trusty; urgency=low
+folder-color (0.0.70) trusty; urgency=low
 
-  * Allow local themes
-  * Fixed folders network and recent
-  * Allow to hide donation
-  * Layout in Global color fixed
+  * Fixed #1437800: No transparency in custom colors
   * Updated translations
 
- -- costales <[email protected]>  Web, 18 Mar 2015 19:02:31 +0000
+ -- costales <[email protected]>  Sat, 28 Mar 2015 18:12:31 +0000
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color/debian/control 
new/folder-color/debian/control
--- old/folder-color/debian/control     2015-03-18 19:41:59.000000000 +0100
+++ new/folder-color/debian/control     2015-03-29 12:04:28.000000000 +0200
@@ -1,7 +1,7 @@
 Source: folder-color
 Section: utils
 Priority: extra
-Standards-Version: 0.0.62
+Standards-Version: 0.0.70
 Maintainer: costales <[email protected]>
 Build-Depends: python-distutils-extra, debhelper (>=7)
 Homepage: https://code.launchpad.net/folder-color
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color/nautilus-extension/folder-color.py 
new/folder-color/nautilus-extension/folder-color.py
--- old/folder-color/nautilus-extension/folder-color.py 2015-03-18 
19:41:35.000000000 +0100
+++ new/folder-color/nautilus-extension/folder-color.py 2015-03-29 
12:03:51.000000000 +0200
@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
-# Folder Color 0.0.62
+# Folder Color 0.0.70
 # Copyright (C) 2012-2015 Marcos Alvarez Costales 
https://launchpad.net/~costales
 #
 # Folder Color is free software; you can redistribute it and/or modify
@@ -67,8 +67,7 @@
         self.HIDE_DONATION     = os.path.join(self.CFG_PATH, 'hide_donation')
         self.URL_DONATE        = 'http://gufw.org/donate_foldercolor'
         
-        self.GRADIENT_MIDDLE_RANGE = 2500
-        self.GRADIENT_DARK_RANGE   = 5000
+        self.GRADIENT_RANGE = 15
         self.VALUE_LIGHT  = 'value_light'
         self.VALUE_MIDDLE = 'value_middle'
         self.VALUE_DARK   = 'value_dark'
@@ -241,28 +240,43 @@
     
     def custom_color_dialog(self):
         """Shows the dialog and return the color"""
-        colorselectiondialog = Gtk.ColorSelectionDialog(_("Choose a Folder 
Color"))
-        selector = colorselectiondialog.get_color_selection()
-        response = colorselectiondialog.run()
-        colorselectiondialog.destroy()
-        
+        dialog = Gtk.ColorChooserDialog()
+        dialog.set_use_alpha(False)
+        response = dialog.run()
         if response == Gtk.ResponseType.OK:
-            color = selector.get_current_color()
-            # Control max color range
-            if color.red <= self.GRADIENT_DARK_RANGE:
-                color.red = self.GRADIENT_DARK_RANGE
-            if color.green <= self.GRADIENT_DARK_RANGE:
-                color.green = self.GRADIENT_DARK_RANGE
-            if color.blue <= self.GRADIENT_DARK_RANGE:
-                color.blue = self.GRADIENT_DARK_RANGE
-            # Convert to hex
-            rgb_ligth = (color.red, color.green, color.blue)
-            rgb_middle = (color.red-self.GRADIENT_MIDDLE_RANGE, 
color.green-self.GRADIENT_MIDDLE_RANGE, color.blue-self.GRADIENT_MIDDLE_RANGE)
-            rgb_dark = (color.red-self.GRADIENT_DARK_RANGE, 
color.green-self.GRADIENT_DARK_RANGE, color.blue-self.GRADIENT_DARK_RANGE)
-            htmlcolor_light =  ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_ligth)).upper()
-            htmlcolor_middle = ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_middle)).upper()
-            htmlcolor_dark =   ''.join((str(hex(i/257))[2:].rjust(2, '0') for 
i in rgb_dark)).upper()
-            return (htmlcolor_light, htmlcolor_middle, htmlcolor_dark)
+            # Color
+            color = dialog.get_rgba()
+            dialog.destroy()
+            red   = (color.red   * 255)
+            green = (color.green * 255)
+            blue  = (color.blue  * 255)
+            # Light
+            hex_light = "%02x%02x%02x" % (red, green, blue)
+            # Middle
+            red = red - self.GRADIENT_RANGE
+            if red < 0:
+                red = 0
+            green = green - self.GRADIENT_RANGE
+            if green < 0:
+                green = 0
+            blue = blue - self.GRADIENT_RANGE
+            if blue < 0:
+                blue = 0
+            hex_middle = "%02x%02x%02x" % (red, green, blue)
+            # Dark
+            red = red - self.GRADIENT_RANGE
+            if red < 0:
+                red = 0
+            green = green - self.GRADIENT_RANGE
+            if green < 0:
+                green = 0
+            blue  = blue  - self.GRADIENT_RANGE
+            if blue < 0:
+                blue = 0
+            hex_dark = "%02x%02x%02x" % (red, green, blue)
+            return (hex_light, hex_middle, hex_dark)
+        
+        dialog.destroy()
         return None
     
     def _generate_custom_file(self, src_file, dst_file, colors):
@@ -279,7 +293,7 @@
     def __init__(self):
         self.foldercolor = FolderColor()
         self.lock = Lock()
-        self.switcher = Switcher()
+        self.globalcolor = GlobalColor()
         
         dummy_i18n = (_("Brown"), _("Blue"), _("Green"), _("Grey"), 
_("Orange"), _("Pink"), _("Red"), _("Purple"), _("Yellow"), _("Favorite"), 
_("Finished"), _("Important"), _("In Progress")) # Need i18n, because 
colors/emblems are dynamic now
         
@@ -463,35 +477,21 @@
         label = Gtk.Label(_("Global Color:"))
         button = Gtk.Button(_("Apply"))
         button.connect('clicked', self._on_color_changed)
-        exp1 = Gtk.AspectFrame()
-        exp1.set_shadow_type(0)
-        exp2 = Gtk.AspectFrame()
-        exp2.set_shadow_type(0)
-        hbox.pack_start(exp1, True, True, 0)
         hbox.pack_start(label, False, False, 0)
         hbox.pack_start(self.cb_colors, False, False, 0)
         hbox.pack_start(button, False, False, 0)
-        hbox.pack_start(exp2, True, True, 0)
         vbox.pack_start(hbox, False, False, 0)
-        
-        label = Gtk.Label(_("(You may need to restart the file manager)"))
-        label.set_justify(Gtk.Justification.LEFT)
-        vbox.pack_start(label, True, True, 0)
-        
         # Donate
         if not os.path.exists(self.foldercolor.HIDE_DONATION):
             self.vbox_donate = Gtk.VBox(spacing=6)
-            self.vbox_donate.pack_start(Gtk.HSeparator(), False, True, 6)
+            self.vbox_donate.pack_start(Gtk.HSeparator(), True, True, 0)
+            link_donate = Gtk.LinkButton(self.foldercolor.URL_DONATE, 
_("Donate? Click to hide"))
+            link_donate.set_tooltip_text(_("Thanks in advance!"))
+            link_donate.connect("clicked", self._on_donate_hide)
             hbox = Gtk.HBox(spacing=6)
-            btn_donate = Gtk.LinkButton(self.foldercolor.URL_DONATE, 
_("Suppport this app with a donation"))
-            img_hide = Gtk.Image(stock=Gtk.STOCK_CLOSE)
-            btn_hide = Gtk.Button(image=img_hide)
-            btn_hide.connect("clicked", self._on_donate_hide)
-            btn_hide.set_tooltip_text(_("Hide donation forever"))
-            hbox.pack_start(btn_donate, False, False, 0)
-            hbox.pack_start(btn_hide, False, False, 0)           
-            self.vbox_donate.pack_start(hbox, False, False, 0)
-            vbox.pack_start(self.vbox_donate, False, False, 0)
+            hbox.pack_start(link_donate, True, True, 0)
+            self.vbox_donate.pack_start(hbox, True, True, 0)
+            vbox.pack_start(self.vbox_donate, True, True, 0)
         
         win.add(vbox)
         win.connect('delete-event', self._close_win)
@@ -521,9 +521,9 @@
             return
         
         if color == 'default':
-            self.switcher.restore()
+            self.globalcolor.restore()
         else:
-            self.switcher.set_color(color)
+            self.globalcolor.set_color(color)
 
 
 class Lock:
@@ -553,7 +553,7 @@
             return False
 
 
-class Switcher:
+class GlobalColor:
     """Set default global color"""
     def __init__(self):
         self.foldercolor = FolderColor()
@@ -592,13 +592,30 @@
                 return cfg.get(section, 'Inherits')
         return ''
     
+    def _cp_file(self, src, dst):
+        if os.path.isfile(src):
+            try:
+                shutil.copy2(src, dst)
+            except:
+                pass
+    
     def _generate_local_theme(self, name, inherit, color):
         """Generate a inherit local theme from system theme"""
         # Create folder
         name = '.'.join([name, 'foldercolor']) # Generate a Folder Color theme
         try:
             dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places')
-            os.makedirs(dst_path)
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'16x16', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'22x22', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
+            dst_path = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'24x24', 'places')
+            if not os.path.exists(dst_path):
+                os.makedirs(dst_path)
         except OSError as exception:
             pass
         except:
@@ -606,24 +623,135 @@
 
         # Generate icons
         for folder in self.foldercolor.DEFAULT_FOLDERS:
+            # scalable
             src_file = ''.join([self.foldercolor.get_path(), 
self.foldercolor.get_iconname(folder, color), '.svg'])
             dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(folder))
-            shutil.copy2(src_file, dst_file)
+            self._cp_file(src_file, dst_file)
+            # 16x16
+            src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+            dst_file_16 = dst_file.replace('/scalable/', '/16x16/')
+            self._cp_file(src_file_16, dst_file_16)
+            # 22x22
+            src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+            dst_file_22 = dst_file.replace('/scalable/', '/22x22/')
+            self._cp_file(src_file_22, dst_file_22)
+            # 24x24
+            src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+            dst_file_24 = dst_file.replace('/scalable/', '/24x24/')
+            self._cp_file(src_file_24, dst_file_24)
+        
+        # folder.svg
         src_file = ''.join([self.foldercolor.get_path(), 
self.foldercolor.get_iconname('', color), '.svg'])
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 0)) # folder.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 1)) # inode-directory.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 2)) # user-home.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 3)) # folder_home.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 4)) # network-workgroup.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 5)) # folder-remote.svg
-        shutil.copy2(src_file, dst_file)
-        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 6)) # document-open-recent.svg
-        shutil.copy2(src_file, dst_file)
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 0))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # inode-directory.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 1))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # user-home.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 2))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # folder_home.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 3))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # network-workgroup.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 4))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # folder-remote.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 5))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
+        
+        # document-open-recent.svg
+        dst_file = os.path.join(self.foldercolor.USER_PATH_THEME, name, 
'scalable', 'places', self._get_folder_icon(None, 6))
+        self._cp_file(src_file, dst_file)
+        
+        src_file_16 = src_file.replace('/48', '/16').replace('48/', '16/')
+        dst_file_16 = dst_file.replace('scalable', '16x16')
+        self._cp_file(src_file_16, dst_file_16)
+        
+        src_file_22 = src_file.replace('/48', '/22').replace('48/', '22/')
+        dst_file_22 = dst_file.replace('scalable', '22x22')
+        self._cp_file(src_file_22, dst_file_22)
+        
+        src_file_24 = src_file.replace('/48', '/24').replace('48/', '24/')
+        dst_file_24 = dst_file.replace('scalable', '24x24')
+        self._cp_file(src_file_24, dst_file_24)
         
         # Generate index.theme
         index_file = '/'.join([os.path.join(self.foldercolor.USER_PATH_THEME, 
name), 'index.theme'])
@@ -634,13 +762,23 @@
         cfg.set('Icon Theme', 'Hidden',      'true')
         cfg.set('Icon Theme', 'Comment',     'Generated by Folder Color')
         cfg.set('Icon Theme', 'Inherits',    inherit)
-        cfg.set('Icon Theme', 'Directories', 'scalable/places')
+        cfg.set('Icon Theme', 'Directories', 
'scalable/places,16x16/places,22x22/places,24x24/places')
         cfg.add_section('scalable/places')
-        cfg.set('scalable/places', 'MinSize', '16')
         cfg.set('scalable/places', 'Size',    '48')
-        cfg.set('scalable/places', 'MaxSize', '256')
         cfg.set('scalable/places', 'Context', 'Places')
         cfg.set('scalable/places', 'Type',    'Scalable')
+        cfg.add_section('16x16/places')
+        cfg.set('16x16/places', 'Size',    '16')
+        cfg.set('16x16/places', 'Context', 'Places')
+        cfg.set('16x16/places', 'Type',    'Threshold')
+        cfg.add_section('22x22/places')
+        cfg.set('22x22/places', 'Size',    '22')
+        cfg.set('22x22/places', 'Context', 'Places')
+        cfg.set('22x22/places', 'Type',    'Threshold')
+        cfg.add_section('24x24/places')
+        cfg.set('24x24/places', 'Size',    '24')
+        cfg.set('24x24/places', 'Context', 'Places')
+        cfg.set('24x24/places', 'Type',    'Threshold')
         f = open(index_file, 'w')
         cfg.write(f)  
         f.close()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/folder-color/setup.py new/folder-color/setup.py
--- old/folder-color/setup.py   2015-03-18 19:41:59.000000000 +0100
+++ new/folder-color/setup.py   2015-03-29 12:04:28.000000000 +0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-# Folder Color 0.0.62 - http://launchpad.net/folder-color
+# Folder Color 0.0.70 - http://launchpad.net/folder-color
 # Copyright (C) 2012-2015 Marcos Alvarez Costales 
https://launchpad.net/~costales
 #
 # folder-color is free software; you can redistribute it and/or modify
@@ -26,7 +26,7 @@
 # Setup stage
 DistUtilsExtra.auto.setup(
     name         = "folder-color",
-    version      = "0.0.62",
+    version      = "0.0.70",
     description  = "Change your folder color in Nautilus",
     author       = "Marcos Alvarez Costales https://launchpad.net/~costales";,
     author_email = "https://launchpad.net/~costales";,


Reply via email to