From 35b4b3dd6ef87674c088d7c73d92327407efd076 Mon Sep 17 00:00:00 2001 From: Necoro <> Date: Mon, 5 Nov 2007 13:49:27 +0000 Subject: r528@Devoty: necoro | 2007-11-04 22:11:39 +0100 Select correct versions again r529@Devoty: necoro | 2007-11-05 14:46:07 +0100 Removed 3rd party tooltips for queue list. --- doc/AUTHORS | 1 - etc/portato.cfg | 3 - portato/backend/__init__.py | 2 - portato/gui/gtk/TreeViewTooltips.py | 423 ----------------------------------- portato/gui/gtk/usetips.py | 101 --------- portato/gui/gtk/windows.py | 73 +++++- portato/gui/templates/portato.glade | 431 ++++++++++++++++++------------------ 7 files changed, 278 insertions(+), 756 deletions(-) delete mode 100644 portato/gui/gtk/TreeViewTooltips.py delete mode 100644 portato/gui/gtk/usetips.py diff --git a/doc/AUTHORS b/doc/AUTHORS index 1e10cb5..cdb99ab 100644 --- a/doc/AUTHORS +++ b/doc/AUTHORS @@ -3,7 +3,6 @@ Main author: René 'Necoro' Neumann Application icon: P4r4D0X (after an idea by wolfden) Shipped with code from: - - Daniel J. Popowich (TreeViewTooltips) - Philip Semanchuk (shm module) Many thanks to the Porthole team which often inspired me or gave me hints. diff --git a/etc/portato.cfg b/etc/portato.cfg index d479d97..25b9f89 100644 --- a/etc/portato.cfg +++ b/etc/portato.cfg @@ -70,9 +70,6 @@ browserCmd = firefox # [Gtk] -; control whether usetips are shown for a package in the Queue - boolean values -showusetips = on - ; sets the font of the console - string values consolefont = Monospace 11 diff --git a/portato/backend/__init__.py b/portato/backend/__init__.py index 26585c6..003feb7 100644 --- a/portato/backend/__init__.py +++ b/portato/backend/__init__.py @@ -57,8 +57,6 @@ def load_system (): if SYSTEM == "portage": debug("Setting Portage System") - from traceback import print_stack - print_stack() from .portage import PortageSystem _sys = PortageSystem () elif SYSTEM == "catapult": diff --git a/portato/gui/gtk/TreeViewTooltips.py b/portato/gui/gtk/TreeViewTooltips.py deleted file mode 100644 index 120d4df..0000000 --- a/portato/gui/gtk/TreeViewTooltips.py +++ /dev/null @@ -1,423 +0,0 @@ -# Copyright (c) 2006, Daniel J. Popowich -# -# Permission is hereby granted, free of charge, to any person -# obtaining a copy of this software and associated documentation files -# (the "Software"), to deal in the Software without restriction, -# including without limitation the rights to use, copy, modify, merge, -# publish, distribute, sublicense, and/or sell copies of the Software, -# and to permit persons to whom the Software is furnished to do so, -# subject to the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -# Send bug reports and contributions to: -# -# dpopowich AT astro dot umass dot edu -# - -''' -TreeViewTooltips.py - -Provides TreeViewTooltips, a class which presents tooltips for cells, -columns and rows in a gtk.TreeView. - ------------------------------------------------------------- - This file includes a demo. Just execute the file: - - python TreeViewTooltips.py ------------------------------------------------------------- - -To use, first subclass TreeViewTooltips and implement the get_tooltip() -method; see below. Then add any number of gtk.TreeVew widgets to a -TreeViewTooltips instance by calling the add_view() method. Overview -of the steps: - - # 1. subclass TreeViewTooltips - class MyTooltips(TreeViewTooltips): - - # 2. overriding get_tooltip() - def get_tooltip(...): - ... - - # 3. create an instance - mytips = MyTooltips() - - # 4. Build up your gtk.TreeView. - myview = gtk.TreeView() - ...# create columns, set the model, etc. - - # 5. Add the view to the tooltips - mytips.add_view(myview) - -How it works: the add_view() method connects the TreeView to the -"motion-notify" event with the callback set to a private method. -Whenever the mouse moves across the TreeView the callback will call -get_tooltip() with the following arguments: - - get_tooltip(view, column, path) - -where, - - view: the gtk.TreeView instance. - column: the gtk.TreeViewColumn instance that the mouse is - currently over. - path: the path to the row that the mouse is currently over. - -Based on whether or not column and path are checked for specific -values, get_tooltip can return tooltips for a cell, column, row or the -whole view: - - Column Checked Path Checked Tooltip For... - Y Y cell - Y N column - N Y row - N N view - -get_tooltip() should return None if no tooltip should be displayed. -Otherwise the return value will be coerced to a string (with the str() -builtin) and stripped; if non-empty, the result will be displayed as -the tooltip. By default, the tooltip popup window will be displayed -centered and just below the pointer and will remain shown until the -pointer leaves the cell (or column, or row, or view, depending on how -get_tooltip() is implemented). - -''' - - -import pygtk -pygtk.require('2.0') - -import gtk -import gtk.gdk -import gobject - -if gtk.gtk_version < (2, 8): - import warnings - - msg = ('''This module was developed and tested with version 2.8.18 of gtk. You are using version %d.%d.%d. Your milage may vary.''' - % gtk.gtk_version) - warnings.warn(msg) - - -# major, minor, patch -version = 1, 0, 0 - -class TreeViewTooltips: - - def __init__(self): - - ''' - Initialize the tooltip. After initialization there are two - attributes available for advanced control: - - window: the popup window that holds the tooltip text, an - instance of gtk.Window. - label: a gtk.Label that is packed into the window. The - tooltip text is set in the label with the - set_label() method, so the text can be plain or - markup text. - - Be default, the tooltip is enabled. See the enabled/disabled - methods. - ''' - - # create the window - self.window = window = gtk.Window(gtk.WINDOW_POPUP) - window.set_name('gtk-tooltips') - window.set_resizable(False) - window.set_border_width(4) - window.set_app_paintable(True) - window.connect("expose-event", self.__on_expose_event) - - - # create the label - self.label = label = gtk.Label() - label.set_line_wrap(True) - label.set_alignment(0.5, 0.5) - label.set_use_markup(True) - label.show() - window.add(label) - - # by default, the tooltip is enabled - self.__enabled = True - # saves the current cell - self.__save = None - # the timer id for the next tooltip to be shown - self.__next = None - # flag on whether the tooltip window is shown - self.__shown = False - - def enable(self): - 'Enable the tooltip' - - self.__enabled = True - - def disable(self): - 'Disable the tooltip' - - self.__enabled = False - - def __show(self, tooltip, x, y): - - '''show the tooltip popup with the text/markup given by - tooltip. - - tooltip: the text/markup for the tooltip. - x, y: the coord. (root window based) of the pointer. - ''' - - window = self.window - - # set label - self.label.set_label(tooltip) - # resize window - w, h = window.size_request() - # move the window - window.move(*self.location(x,y,w,h)) - # show it - window.show() - self.__shown = True - - def __hide(self): - 'hide the tooltip' - - self.__queue_next() - self.window.hide() - self.__shown = False - - def __leave_handler(self, view, event): - 'when the pointer leaves the view, hide the tooltip' - - self.__hide() - - def __motion_handler(self, view, event): - 'As the pointer moves across the view, show a tooltip.' - - path = view.get_path_at_pos(int(event.x), int(event.y)) - - if self.__enabled and path: - path, col, x, y = path - tooltip = self.get_tooltip(view, col, path) - if tooltip is not None: - tooltip = str(tooltip).strip() - if tooltip: - self.__queue_next((path, col), tooltip, - int(event.x_root), - int(event.y_root)) - return - - self.__hide() - - def __queue_next(self, *args): - - 'queue next request to show a tooltip' - - # if args is non-empty it means a request was made to show a - # tooltip. if empty, no request is being made, but any - # pending requests should be cancelled anyway. - - cell = None - - # if called with args, break them out - if args: - cell, tooltip, x, y = args - - # if it's the same cell as previously shown, just return - if self.__save == cell: - return - - # if we have something queued up, cancel it - if self.__next: - gobject.source_remove(self.__next) - self.__next = None - - # if there was a request... - if cell: - # if the tooltip is already shown, show the new one - # immediately - if self.__shown: - self.__show(tooltip, x, y) - # else queue it up in 1/2 second - else: - self.__next = gobject.timeout_add(500, self.__show, - tooltip, x, y) - - # save this cell - self.__save = cell - - - def __on_expose_event(self, window, event): - - # this magic is required so the window appears with a 1-pixel - # black border (default gtk Style). This code is a - # transliteration of the C implementation of gtk.Tooltips. - w, h = window.size_request() - window.style.paint_flat_box(window.window, gtk.STATE_NORMAL, - gtk.SHADOW_OUT, None, window, - 'tooltip', 0, 0, w, h) - - def location(self, x, y, w, h): - - '''Given the x,y coordinates of the pointer and the width and - height (w,h) demensions of the tooltip window, return the x, y - coordinates of the tooltip window. - - The default location is to center the window on the pointer - and 4 pixels below it. - ''' - - return x - w/2, y + 4 - - def add_view(self, view): - - 'add a gtk.TreeView to the tooltip' - - assert isinstance(view, gtk.TreeView), \ - ('This handler should only be connected to ' - 'instances of gtk.TreeView') - - view.connect("motion-notify-event", self.__motion_handler) - view.connect("leave-notify-event", self.__leave_handler) - - def get_tooltip(self, view, column, path): - 'See the module doc string for a description of this method' - - raise NotImplementedError, 'Subclass must implement get_tooltip()' - - -if __name__ == '__main__': - - ############################################################ - # DEMO - ############################################################ - - # First, subclass TreeViewTooltips - - class DemoTips(TreeViewTooltips): - - def __init__(self, customer_column): - # customer_column is an instance of gtk.TreeViewColumn and - # is being used in the gtk.TreeView to show customer names. - self.cust_col = customer_column - - # call base class init - TreeViewTooltips.__init__(self) - - def get_tooltip(self, view, column, path): - - # we have a two column view: customer, phone; we'll make - # tooltips cell-based for the customer column, but generic - # column-based for the phone column. - - # customer - if column is self.cust_col: - - # By checking both column and path we have a - # cell-based tooltip. - model = view.get_model() - customer = model[path][2] - return '%s %s\n%s' % (customer.fname, - customer.lname, - customer.notes) - # phone - else: - return ('Generic Column Tooltip\n' - 'Unless otherwise noted, all\narea codes are 888') - - def XX_location(self, x, y, w, h): - # rename me to "location" so I override the base class - # method. This will demonstrate being able to change - # where the tooltip window popups, relative to the - # pointer. - - # this will place the tooltip above and to the right - return x + 10, y - (h + 10) - - # Here's our customer - class Customer: - - def __init__(self, fname, lname, phone, notes): - self.fname = fname - self.lname = lname - self.phone = phone - self.notes = notes - - # create a bunch of customers - customers = [] - for fname, lname, phone, notes in [ - ('Joe', 'Schmoe', '555-1212', 'Likes to Morris dance.'), - ('Jane', 'Doe', '555-2323', - 'Wonders what the hell\nMorris dancing is.'), - ('Phred', 'Phantastic', '900-555-1212', 'Dreams of Betty.'), - ('Betty', 'Boop', '555-3434', 'Dreams in b&w.'), - ('Red Sox', 'Fan', '555-4545', - "Still livin' 2004!\nEspecially after 2006.")]: - customers.append(Customer(fname, lname, phone, notes)) - - # Build our model and view - model = gtk.ListStore(str, str, object) - for c in customers: - model.append(['%s %s' % (c.fname, c.lname), c.phone, c]) - - view = gtk.TreeView(model) - view.get_selection().set_mode(gtk.SELECTION_NONE) - - # two columns, name and phone - cell = gtk.CellRendererText() - cell.set_property('xpad', 20) - namecol = gtk.TreeViewColumn('Customer Name', cell, text=0) - namecol.set_min_width(200) - view.append_column(namecol) - - cell = gtk.CellRendererText() - phonecol = gtk.TreeViewColumn('Phone', cell, text=1) - view.append_column(phonecol) - - # finally, connect the tooltip, specifying the name column as the - # column we want the tooltip to popup over. - tips = DemoTips(namecol) - tips.add_view(view) - - # We're going to demonstrate enable/disable. First we need a - # callback function to connect to the toggled signal. - def toggle(button): - if button.get_active(): - tips.disable() - else: - tips.enable() - - # create a checkbutton and connect our handler - check = gtk.CheckButton('Check to disable view tooltips') - check.connect('toggled', toggle) - - # a standard gtk.Tooltips to compare to - tt = gtk.Tooltips() - tt.set_tip(check, ('This is a standard gtk tooltip.\n' - 'Compare me to the tooltips above.')) - - # create a VBox to pack the view and checkbutton - vbox = gtk.VBox() - vbox.pack_start(view) - vbox.pack_start(check, False) - vbox.show_all() - - # pack the vbox into a simple dialog and run it - dialog = gtk.Dialog('TreeViewTooltips Demo') - close = dialog.add_button(gtk.STOCK_CLOSE, gtk.RESPONSE_NONE) - - # add a tooltip for the close button - tt.set_tip(close, 'Click to end the demo.') - - dialog.set_default_size(400,400) - dialog.vbox.pack_start(vbox) - dialog.run() diff --git a/portato/gui/gtk/usetips.py b/portato/gui/gtk/usetips.py deleted file mode 100644 index 69e9f9a..0000000 --- a/portato/gui/gtk/usetips.py +++ /dev/null @@ -1,101 +0,0 @@ -# -*- coding: utf-8 -*- -# -# File: portato/gui/gtk/usetips.py -# This file is part of the Portato-Project, a graphical portage-frontend. -# -# Copyright (C) 2007 René 'Necoro' Neumann -# This is free software. You may redistribute copies of it under the terms of -# the GNU General Public License version 2. -# There is NO WARRANTY, to the extent permitted by law. -# -# Written by René 'Necoro' Neumann - -from __future__ import absolute_import - -from ...backend import system -from ...backend.flags import invert_use_flag - -from .TreeViewTooltips import TreeViewTooltips - -class UseTips (TreeViewTooltips): - """This class handles the display of the so called use-tips, - i.e. the tooltips showing the actual use-flags.""" - - def __init__ (self, colno, cfg = None): - """Constructor. - - @param colno: the number of the column to check - @type colno: int - @param cfg: a config to look in, whether we should show the tips or not - @type cfg: Config""" - - self.colno = colno - self.cfg = cfg - - TreeViewTooltips.__init__(self) - - def get_tooltip(self, view, column, path): - - # check config - if self.cfg is not None: - if not self.cfg.get_boolean("useTips", "GTK"): - return None - - store = view.get_model() - it = store.get_iter(path) - - if store.iter_parent(it) is not None: - return self.__get_flags(store.get_value(it, self.colno)) - else: # top items - ignore them - return None - - def __get_flags(self, cpv): - pkg = system.new_package(cpv) - enabled = [] - disabled = [] - expanded = set() - - pkg_flags = pkg.get_iuse_flags() - if not pkg_flags: # no flags - stop here - return None - - pkg_flags.sort() - actual = pkg.get_actual_use_flags() - - if pkg.is_installed(): - installed = pkg.get_installed_use_flags() - else: - inst = system.find_installed_packages(pkg.get_slot_cp()) - if inst: - installed = inst[0].get_installed_use_flags() - else: - installed = [] - - for use in pkg_flags: - exp = pkg.use_expanded(use) - if exp: - expanded.add(exp) - - else: - useStr = use - if installed and ((use in actual) != (use in installed)): - useStr += " %" - if use in actual: - enabled.append(useStr) - else: - disabled.append(useStr) - - string = "" - - if enabled: - string = "+%s" % ("\n+".join(enabled),) - if len(disabled) > 0: - string = string + "\n" - - if disabled: - string = string+"- %s" % ("\n- ".join(disabled),) - - if expanded: - string = string+"\n\n"+"\n".join(expanded) - - return string diff --git a/portato/gui/gtk/windows.py b/portato/gui/gtk/windows.py index ff3c4d1..3c684ad 100644 --- a/portato/gui/gtk/windows.py +++ b/portato/gui/gtk/windows.py @@ -33,7 +33,6 @@ from ...backend.exceptions import PackageNotFoundException, BlockedException from ..gui_helper import Database, Config, EmergeQueue from .basic import Window, AbstractDialog, Popup from .wrapper import GtkTree, GtkConsole -from .usetips import UseTips from .exception_handling import GtkThread from .dialogs import (blocked_dialog, changed_flags_dialog, io_ex_dialog, nothing_found_dialog, queue_not_empty_dialog, remove_deps_dialog, @@ -256,8 +255,7 @@ class PreferenceWindow (AbstractDialog): "systrayCheck" : ("systray", "GUI"), "testPerVersionCheck" : "testingPerVersion", "titleUpdateCheck" : ("updateTitle", "GUI"), - "usePerVersionCheck" : "usePerVersion", - "useTipsCheck" : ("useTips", "GTK") + "usePerVersionCheck" : "usePerVersion" } # all edits in the window @@ -607,7 +605,7 @@ class PackageTable: if self.version: best_version = self.version else: - best_version = system.find_best_match(self.packages[0].get_cp(), (self.instPackages != [])).get_version() + best_version = system.find_best_match(self.packages[0].get_cp(), only_installed = (self.instPackages != [])).get_version() for i in range(len(self.packages)): if self.packages[i].get_version() == best_version: sel.select_path((i,)) @@ -943,7 +941,6 @@ class MainWindow (Window): self.build_pkg_list() # queue list - self.useTips = UseTips(0, self.cfg) self.queueList = self.tree.get_widget("queueList") self.build_queue_list() @@ -1018,8 +1015,6 @@ class MainWindow (Window): col = gtk.TreeViewColumn(_("Options"), cell, markup = 1) self.queueList.append_column(col) - self.useTips.add_view(self.queueList) - def build_cat_list (self): """Builds the category list.""" @@ -1167,6 +1162,70 @@ class MainWindow (Window): if rev != "r0": vers = vers+"-"+rev self.show_package(cat+"/"+name, queue = self.queue, version = vers, instantChange = True, doEmerge = False) return True + + def cb_queue_tooltip_queried (self, view, x, y, is_keyboard, tooltip): + store = self.queueList.get_model() + path = self.queueList.get_path_at_pos(x,y) + + if path is None: + return False + + it = store.get_iter(path[0]) + + if store.iter_parent(it) is None: + return False # do not show tooltips for the root entries + + pkg = system.new_package(store.get_value(it, 0)) + + enabled = [] + disabled = [] + expanded = set() + + pkg_flags = pkg.get_iuse_flags() + if not pkg_flags: # no flags - stop here + return None + + pkg_flags.sort() + actual = pkg.get_actual_use_flags() + + if pkg.is_installed(): + installed = pkg.get_installed_use_flags() + else: + inst = system.find_installed_packages(pkg.get_slot_cp()) + if inst: + installed = inst[0].get_installed_use_flags() + else: + installed = [] + + for use in pkg_flags: + exp = pkg.use_expanded(use) + if exp: + expanded.add(exp) + + else: + useStr = use + if installed and ((use in actual) != (use in installed)): + useStr += " %" + if use in actual: + enabled.append(useStr) + else: + disabled.append(useStr) + + string = "" + + if enabled: + string = "+%s" % ("\n+".join(enabled),) + if len(disabled) > 0: + string = string + "\n" + + if disabled: + string = string+"- %s" % ("\n- ".join(disabled),) + + if expanded: + string = string+"\n\n"+"\n".join(expanded) + + tooltip.set_markup(string) + return string != "" def cb_emerge_clicked (self, action): """Do emerge.""" diff --git a/portato/gui/templates/portato.glade b/portato/gui/templates/portato.glade index ed33a7e..d6f5537 100644 --- a/portato/gui/templates/portato.glade +++ b/portato/gui/templates/portato.glade @@ -467,52 +467,107 @@ 5 3 - + True - 1 - True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - True - True - Installed - 0 - True - - - - False - + + + + 3 + 1 + 2 + GTK_EXPAND + + + + + + True + True + <b>Installed, but not in portage anymore</b> + True + + + 3 + 2 + 3 + GTK_FILL + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 5 - + True - True - Masked - 0 - True - + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + GTK_POLICY_NEVER + GTK_POLICY_AUTOMATIC + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + True + False + + + - False - 1 + False - + True - True - Testing - 0 - True - + False + GTK_POLICY_AUTOMATIC + GTK_POLICY_AUTOMATIC + + + True + + - False - 2 + 1 + + 3 + 3 + 4 + 5 + 5 + + + + + True + GTK_JUSTIFY_CENTER + True + + + 3 + GTK_FILL + + 10 + + + + + True + True + <span foreground='red'><b>MISSING KEYWORD</b></span> + True + 3 2 @@ -653,90 +708,51 @@ - - True - True - <span foreground='red'><b>MISSING KEYWORD</b></span> - True - - - 3 - 2 - 3 - GTK_FILL - - - - - True - GTK_JUSTIFY_CENTER - True - - - 3 - GTK_FILL - - 10 - - - - + True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 + 1 + True - + True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - GTK_POLICY_NEVER - GTK_POLICY_AUTOMATIC - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - True - False - - - + True + Installed + 0 + True + - False + False - + True - False - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - - - True - - + True + Masked + 0 + True + + False 1 - - - 3 - 3 - 4 - 5 - 5 - - - - - True - True - <b>Installed, but not in portage anymore</b> - True + + + True + True + Testing + 0 + True + + + + False + 2 + + 3 @@ -745,22 +761,6 @@ GTK_FILL - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - - - - 3 - 1 - 2 - GTK_EXPAND - - - False @@ -788,9 +788,11 @@ True + True False False + @@ -1280,188 +1282,188 @@ - - True - 0 - 5 - <u><i>Masking Keywords</i></u> - True - True - - - 7 - 8 - 5 - - - - + True - 0 - 5 - <u><i>Testing Keywords</i></u> - True - True - 4 - 5 - 5 + 1 + 2 + 3 + 4 - + True 0 - 5 - <u><i>Use-Flags</i></u> - True + File name to use, if package.use is a directory: True - 1 - 2 - 6 + 3 + 4 - + True - - - True - GTK_SHADOW_OUT - - - True - 0 - <u>You may use the following placeholders:</u> - -<i>$(cat)</i>: category -<i>$(pkg)</i>: package name -<i>$(cat-1)/$(cat-2)</i>: first/second part of the category - True - - - - - - label_item - - - - + Add only exact version to package.use + 0 + True 2 + 2 + 3 - + True - Add only exact version to package.mask/package.unmask + Add only exact version to package.keywords 0 True 2 - 8 - 9 + 5 + 6 - + True 0 - File name to use, if package.mask/package.unmask is a directory: + File name to use, if package.keywords is a directory: True - 9 - 10 + 6 + 7 - + True 1 2 - 9 - 10 + 6 + 7 - + True 1 2 - 6 - 7 + 9 + 10 - + True 0 - File name to use, if package.keywords is a directory: + File name to use, if package.mask/package.unmask is a directory: True - 6 - 7 + 9 + 10 - + True - Add only exact version to package.keywords + Add only exact version to package.mask/package.unmask 0 True 2 - 5 - 6 + 8 + 9 - + True - Add only exact version to package.use - 0 - True + + + True + GTK_SHADOW_OUT + + + True + 0 + <u>You may use the following placeholders:</u> + +<i>$(cat)</i>: category +<i>$(pkg)</i>: package name +<i>$(cat-1)/$(cat-2)</i>: first/second part of the category + True + + + + + + label_item + + + + 2 - 2 - 3 - + True 0 - File name to use, if package.use is a directory: + 5 + <u><i>Use-Flags</i></u> + True True - 3 - 4 + 1 + 2 + 6 - + True + 0 + 5 + <u><i>Testing Keywords</i></u> + True + True - 1 - 2 - 3 - 4 + 4 + 5 + 5 + + + + + True + 0 + 5 + <u><i>Masking Keywords</i></u> + True + True + + + 7 + 8 + 5 @@ -1521,16 +1523,7 @@ - - True - Turn Use-Tips on - 0 - True - - - False - 1 - + -- cgit v1.2.3