Skip to content

Commit

Permalink
guake --[f|g]color keep transparency
Browse files Browse the repository at this point in the history
Signed-off-by: Gaetan Semet <[email protected]>
  • Loading branch information
gsemet committed Aug 18, 2018
1 parent 4642255 commit 7b3f22a
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 37 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ test-pip-install-wheel: clean-pip-install-local generate-paths wheel
@echo "Testing installation by pip (will install on ~/.local)"
pip install --upgrade -vvv --user $(shell ls -1 dist/*.whl | sort | head -n 1)
ls -la ~/.local/share/guake
~/.local/bin/guake
~/.local/bin/guake -v

sct: style check update-po requirements test

Expand Down
2 changes: 1 addition & 1 deletion NEWS.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Guake
Bug Fixes
---------

- fixes guake --fgcolor error
- fixes ``guake --fgcolor/--bgcolor`` error (#1376).

Translation Updates
-------------------
Expand Down
18 changes: 2 additions & 16 deletions guake/dbusiface.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,25 +88,11 @@ def get_tab_count(self):

@dbus.service.method(DBUS_NAME, in_signature='s')
def set_bgcolor(self, bgcolor):
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gdk
colorRGBA = Gdk.RGBA(0, 0, 0, 0)
colorRGBA.parse(bgcolor)
page_num = self.guake.notebook.get_current_page()
terminal = self.guake.notebook.get_nth_page(page_num).terminal
terminal.set_color_background(colorRGBA)
return self.guake.set_bgcolor(bgcolor)

@dbus.service.method(DBUS_NAME, in_signature='s')
def set_fgcolor(self, fgcolor):
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gdk
colorRGBA = Gdk.RGBA(0, 0, 0, 0)
colorRGBA.parse(fgcolor)
page_num = self.guake.notebook.get_current_page()
terminal = self.guake.notebook.get_nth_page(page_num).terminal
terminal.set_color_foreground(colorRGBA)
return self.guake.set_fgcolor(fgcolor)

@dbus.service.method(DBUS_NAME, in_signature='s')
def execute_command(self, command):
Expand Down
35 changes: 27 additions & 8 deletions guake/guake_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -554,12 +554,16 @@ def _load_palette(self):
paletteList.append(colorRGBA.copy())
return paletteList

def _get_background_color(self, palette_list, transparency):
def _get_background_color(self, palette_list):
if len(palette_list) > 16:
bg_color = palette_list[17]
else:
bg_color = Gdk.RGBA(0, 0, 0, 0.9)

return self._apply_transparency_to_color(bg_color)

def _apply_transparency_to_color(self, bg_color):
transparency = self.settings.styleBackground.get_int('transparency')
if not self.transparency_toggled:
bg_color.alpha = 1 / 100 * transparency
else:
Expand All @@ -570,10 +574,8 @@ def set_background_color_from_settings(self):
self.set_colors_from_settings()

def get_bgcolor(self):
transparency = self.settings.styleBackground.get_int('transparency')
palette_list = self._load_palette()
bg_color = self._get_background_color(palette_list, transparency)
return bg_color
return self._get_background_color(palette_list)

def get_fgcolor(self):
palette_list = self._load_palette()
Expand All @@ -596,16 +598,33 @@ def set_colors_from_settings(self):
def set_bgcolor(self, bgcolor):
if isinstance(bgcolor, str):
c = Gdk.RGBA(0, 0, 0, 0)
c.parse(bgcolor)
log.debug("Building Gdk Color from: %r", bgcolor)
c.parse("#" + bgcolor)
bgcolor = c
self.notebook.get_current_terminal().set_color_background(bgcolor)
if not isinstance(bgcolor, Gdk.RGBA):
raise TypeError("color should be Gdk.RGBA, is: {!r}".format(bgcolor))
bgcolor = self._apply_transparency_to_color(bgcolor)
log.debug("setting background color to: %r", bgcolor)
page_num = self.notebook.get_current_page()
terminal = self.notebook.get_nth_page(page_num).terminal
terminal.set_color_background(bgcolor)


# self.notebook.get_current_terminal().set_color_background(bgcolor)

def set_fgcolor(self, fgcolor):
if isinstance(fgcolor, str):
c = Gdk.RGBA(0, 0, 0, 0)
c.parse(fgcolor)
log.debug("Building Gdk Color from: %r", fgcolor)
c.parse("#" + fgcolor)
fgcolor = c
self.notebook.get_current_terminal().set_color_foreground(fgcolor)
if not isinstance(fgcolor, Gdk.RGBA):
raise TypeError("color should be Gdk.RGBA, is: {!r}".format(fgcolor))
log.debug("setting background color to: %r", fgcolor)
page_num = self.notebook.get_current_page()
terminal = self.notebook.get_nth_page(page_num).terminal
terminal.set_color_foreground(bgcolor)
# self.notebook.get_current_terminal().set_color_foreground(fgcolor)

def execute_command(self, command, tab=None):
"""Execute the `command' in the `tab'. If tab is None, the
Expand Down
14 changes: 6 additions & 8 deletions guake/paths.py.in
Original file line number Diff line number Diff line change
Expand Up @@ -37,51 +37,49 @@ def get_default_package_root():
def get_data_files_dir():
d = os.path.dirname(sys.modules["guake"].__file__)
p = os.path.basename(os.path.abspath(os.path.join(d, "..")))
# print("p", p)
if p in ["site-packages", "dist-packages"]:
# current "guake" package has been installed in a prefix structure (/usr, /usr/local or
# ~/.local/)
loc_dir = os.path.abspath(os.path.join(d, "..", "..", "..", ".."))
loc_dir = os.path.join(loc_dir, "share", "guake")
# print("loc_dir", loc_dir)
if os.path.exists(loc_dir):
return loc_dir
return d


def get_default_data_dir():
d = os.path.join(get_data_files_dir(), "data")
print("Using guake data directory: {}".format(d))
log.debug("Using guake data directory: %s", d)
return d


def get_default_locale_dir():
d = os.path.join(get_data_files_dir(), "po")
print("Using guake image directory: {}".format(d))
log.debug("Using guake image directory: %s", d)
return d


def get_default_image_dir():
d = os.path.join(get_default_data_dir(), 'pixmaps')
print("Using guake image directory: {}".format(d))
log.debug("Using guake image directory: %s", d)
return d


def get_default_glade_dir():
d = get_default_data_dir()
print("Using guake glade directory: {}".format(d))
log.debug("Using guake glade directory: %s", d)
return d


def get_default_schema_dir():
d = get_default_data_dir()
print("Using guake scheme directory: {}".format(d))
log.debug("Using guake scheme directory: %s", d)
return d


def get_default_theme_dir():
d = os.path.join(get_default_data_dir(), 'theme')
print("Using guake theme directory: {}".format(d))
log.debug("Using guake theme directory: %s", d)
return d


Expand Down
1 change: 0 additions & 1 deletion releasenotes/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
---
branch: master
earliest_version: 3.0.0.a4
collapse_pre_releases: true
pre_release_tag_re: (?P<pre_release>\.(?:\d*[ab]|rc)+\d*)$
Expand Down
2 changes: 0 additions & 2 deletions releasenotes/notes/fix-3d38462063ba8bf5.yaml

This file was deleted.

2 changes: 2 additions & 0 deletions releasenotes/notes/terminal-3d38462063ba8bf5.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
fixes:
- fixes ``guake --fgcolor/--bgcolor`` error (#1376).

0 comments on commit 7b3f22a

Please sign in to comment.