Example #1
0
    def _create_default_config(self, child_name):
        """Creates default settings to save the state of a detachable widget."""
        try:
            GlobalSettings.add_config_section(child_name)
        except ConfigError:
            self.info("Section %s already exists", child_name)
            return

        GlobalSettings.add_config_option(child_name + "docked",
                                         section=child_name,
                                         key="docked",
                                         default=True)
        GlobalSettings.add_config_option(child_name + "width",
                                         section=child_name,
                                         key="width",
                                         default=320)
        GlobalSettings.add_config_option(child_name + "height",
                                         section=child_name,
                                         key="height",
                                         default=400)
        GlobalSettings.add_config_option(child_name + "x",
                                         section=child_name,
                                         key="x",
                                         default=0)
        GlobalSettings.add_config_option(child_name + "y",
                                         section=child_name,
                                         key="y",
                                         default=0)

        self.settings.read_setting_section_from_file(child_name)
    def test_write_config_file(self):
        GlobalSettings.add_config_section("section-new")
        GlobalSettings.add_config_option("sectionNewOptionA",
                                         section="section-new",
                                         key="option-a",
                                         default="elmo")
        GlobalSettings.add_config_option("sectionNewOptionB",
                                         section="section-new",
                                         key="option-b",
                                         default=["foo"])

        with mock.patch("pitivi.settings.xdg_config_home") as xdg_config_home,\
                tempfile.TemporaryDirectory() as temp_dir:
            xdg_config_home.return_value = temp_dir
            settings1 = GlobalSettings()

            settings1.sectionNewOptionA = "kermit"
            settings1.sectionNewOptionB = []
            settings1.store_settings()

            settings2 = GlobalSettings()
            self.assertEqual(settings2.sectionNewOptionA, "kermit")
            self.assertEqual(settings2.sectionNewOptionB, [])
Example #3
0
HAS_GST_1_19 = GstDependency("Gst", apiversion="1.0",
                             version_required="1.19").check()

# Make sure gst knowns about our own GstPresets
Gst.preset_set_app_dir(get_gstpresets_dir())


class ProxyingStrategy:
    AUTOMATIC = "automatic"
    ALL = "all"
    NOTHING = "nothing"


GlobalSettings.add_config_section("proxy")
GlobalSettings.add_config_option('proxying_strategy',
                                 section='proxy',
                                 key='proxying-strategy',
                                 default=ProxyingStrategy.AUTOMATIC)

GlobalSettings.add_config_option('num_transcoding_jobs',
                                 section='proxy',
                                 key='num-proxying-jobs',
                                 default=4,
                                 notify=True)
PreferencesDialog.add_numeric_preference(
    'num_transcoding_jobs',
    description="",
    section="_proxies",
    label=_("Max number of parallel transcoding jobs"),
    lower=1)

GlobalSettings.add_config_option("max_cpu_usage",
Example #4
0
from pitivi.settings import GlobalSettings
from pitivi.utils.loggable import Loggable
from pitivi.utils.misc import uri_is_valid
from pitivi.utils.pipeline import AssetPipeline
from pitivi.utils.ui import beautify_length
from pitivi.utils.ui import beautify_stream
from pitivi.utils.ui import SPACING
from pitivi.viewer.viewer import ViewerWidget

PREVIEW_WIDTH = 250
PREVIEW_HEIGHT = 100

GlobalSettings.add_config_section('filechooser-preview')
GlobalSettings.add_config_option('FCEnablePreview',
                                 section='filechooser-preview',
                                 key='do-preview-on-clip-import',
                                 default=True)
GlobalSettings.add_config_option('FCpreviewWidth',
                                 section='filechooser-preview',
                                 key='video-preview-width',
                                 default=PREVIEW_WIDTH)
GlobalSettings.add_config_option('FCpreviewHeight',
                                 section='filechooser-preview',
                                 key='video-preview-height',
                                 default=PREVIEW_HEIGHT)

ACCEPTABLE_TAGS = [
    Gst.TAG_ALBUM_ARTIST, Gst.TAG_ARTIST, Gst.TAG_TITLE, Gst.TAG_ALBUM,
    Gst.TAG_BITRATE, Gst.TAG_COMPOSER, Gst.TAG_GENRE, Gst.TAG_PERFORMER,
    Gst.TAG_DATE, Gst.TAG_COPYRIGHT
]
Example #5
0
from gi.repository import Gio
from gi.repository import GLib
from gi.repository import Gtk

from pitivi.configure import get_pixmap_dir
from pitivi.dialogs.about import AboutDialog
from pitivi.dialogs.prefs import PreferencesDialog
from pitivi.editorperspective import EditorPerspective
from pitivi.greeterperspective import GreeterPerspective
from pitivi.settings import GlobalSettings
from pitivi.utils.loggable import Loggable
from pitivi.utils.misc import show_user_manual

GlobalSettings.add_config_option('mainWindowX',
                                 section="main-window",
                                 key="X",
                                 default=0,
                                 type_=int)
GlobalSettings.add_config_option('mainWindowY',
                                 section="main-window",
                                 key="Y",
                                 default=0,
                                 type_=int)
GlobalSettings.add_config_option('mainWindowWidth',
                                 section="main-window",
                                 key="width",
                                 default=-1,
                                 type_=int)
GlobalSettings.add_config_option('mainWindowHeight',
                                 section="main-window",
                                 key="height",
Example #6
0
from gi.repository import GLib
from gi.repository import GObject
from gi.repository import Gst
from gi.repository import Gtk

from pitivi.settings import GlobalSettings
from pitivi.utils.loggable import Loggable
from pitivi.utils.pipeline import AssetPipeline
from pitivi.utils.ui import SPACING
from pitivi.utils.widgets import TimeWidget
from pitivi.viewer.guidelines import GuidelinesPopover
from pitivi.viewer.overlay_stack import OverlayStack

GlobalSettings.add_config_section("viewer")
GlobalSettings.add_config_option("viewerDocked",
                                 section="viewer",
                                 key="docked",
                                 default=True)
GlobalSettings.add_config_option("viewerWidth",
                                 section="viewer",
                                 key="width",
                                 default=320)
GlobalSettings.add_config_option("viewerHeight",
                                 section="viewer",
                                 key="height",
                                 default=240)
GlobalSettings.add_config_option("viewerX",
                                 section="viewer",
                                 key="x-pos",
                                 default=0)
GlobalSettings.add_config_option("viewerY",
                                 section="viewer",
Example #7
0
from pitivi.project import ProjectSettingsDialog
from pitivi.settings import GlobalSettings
from pitivi.tabsmanager import BaseTabs
from pitivi.timeline.previewers import ThumbnailCache
from pitivi.timeline.timeline import TimelineContainer
from pitivi.transitions import TransitionsListWidget
from pitivi.utils.loggable import Loggable
from pitivi.utils.misc import path_from_uri
from pitivi.utils.ui import beautify_time_delta
from pitivi.utils.ui import EDITOR_PERSPECTIVE_CSS
from pitivi.utils.ui import info_name
from pitivi.viewer.viewer import ViewerContainer

GlobalSettings.add_config_section("main-window")
GlobalSettings.add_config_option('mainWindowHPanePosition',
                                 section="main-window",
                                 key="hpane-position",
                                 type_=int)
GlobalSettings.add_config_option('mainWindowMainHPanePosition',
                                 section="main-window",
                                 key="main-hpane-position",
                                 type_=int)
GlobalSettings.add_config_option('mainWindowVPanePosition',
                                 section="main-window",
                                 key="vpane-position",
                                 type_=int)
GlobalSettings.add_config_option('lastProjectFolder',
                                 section="main-window",
                                 key="last-folder",
                                 environment="PITIVI_PROJECT_FOLDER",
                                 default=os.path.expanduser("~"))
Example #8
0
    "navigationtest",
    "videoanalyse",
    # We prefer to use videocrop, see https://gitlab.gnome.org/GNOME/pitivi/issues/2150
    "videobox",
    "videodetect",
    "volume",
]

HIDDEN_EFFECTS = [
    # Overlaying an image onto a video stream can already be done.
    "gdkpixbufoverlay"
]

GlobalSettings.add_config_section('effect-library')
GlobalSettings.add_config_option('favourite_effects',
                                 section='effect-library',
                                 key='favourite-effects',
                                 default=[])

ICON_WIDTH = 80
ICON_HEIGHT = 45


class EffectInfo:
    """Info for displaying and using an effect.

    Attributes:
        effect_name (str): The bin_description identifying the effect.
    """
    def __init__(self, effect_name, media_type, categories, human_name,
                 description):
        object.__init__(self)
Example #9
0
"""PluginManager for loading Pitivi plugins."""
import os
from enum import IntEnum
from gettext import gettext as _

from gi.repository import GObject
from gi.repository import Peas

from pitivi.configure import get_plugins_dir
from pitivi.configure import get_user_plugins_dir
from pitivi.settings import GlobalSettings
from pitivi.utils.loggable import Loggable

GlobalSettings.add_config_section("plugins")
GlobalSettings.add_config_option("ActivePlugins",
                                 section="plugins",
                                 key="active-plugins",
                                 default=[])


class API(GObject.GObject):
    """Interface that gives access to all the objects inside Pitivi."""
    def __init__(self, app):
        GObject.GObject.__init__(self)
        self.app = app


class PluginType(IntEnum):
    """Types of plugins we support, depending on their directory location."""

    # pylint: disable=comparison-with-callable,inconsistent-return-statements,no-else-return
Example #10
0
from pitivi.configure import get_ui_dir
from pitivi.configure import get_user_plugins_dir
from pitivi.pluginmanager import PluginManager
from pitivi.settings import GlobalSettings
from pitivi.utils import widgets
from pitivi.utils.loggable import Loggable
from pitivi.utils.ui import alter_style_class
from pitivi.utils.ui import fix_infobar
from pitivi.utils.ui import PADDING
from pitivi.utils.ui import PREFERENCES_CSS
from pitivi.utils.ui import SPACING

GlobalSettings.add_config_section("user-interface")

GlobalSettings.add_config_option('prefsDialogWidth',
                                 section="user-interface",
                                 key="prefs-dialog-width",
                                 default=600)

GlobalSettings.add_config_option('prefsDialogHeight',
                                 section="user-interface",
                                 key="prefs-dialog-height",
                                 default=400)


class PreferencesDialog(Loggable):
    """Preferences for how the app works."""

    _instance = None
    prefs = {}
    section_names = {
        "timeline": _("Timeline"),
Example #11
0
from gi.repository import GES
from gi.repository import Gtk
from gi.repository import Pango

from pitivi.configure import get_ui_dir
from pitivi.dialogs.prefs import PreferencesDialog
from pitivi.settings import GlobalSettings
from pitivi.utils.loggable import Loggable
from pitivi.utils.ui import argb_to_gdk_rgba
from pitivi.utils.ui import gdk_rgba_to_argb
from pitivi.utils.widgets import ColorPickerButton

GlobalSettings.add_config_option("titleClipLength",
                                 section="user-interface",
                                 key="title-clip-length",
                                 default=5000,
                                 notify=True)

PreferencesDialog.add_numeric_preference(
    "titleClipLength",
    section="timeline",
    label=_("Title clip duration"),
    description=
    _("Default clip length (in milliseconds) of titles when inserting on the timeline."
      ),
    lower=1)


class TitleProperties(Gtk.Expander, Loggable):
    """Widget for configuring a title.
    def test_read_config_file(self):
        GlobalSettings.add_config_section("section-1")
        GlobalSettings.add_config_option("section1OptionA",
                                         section="section-1",
                                         key="option-a",
                                         default=50)
        GlobalSettings.add_config_option("section1OptionB",
                                         section="section-1",
                                         key="option-b",
                                         default=False)
        GlobalSettings.add_config_option("section1OptionC",
                                         section="section-1",
                                         key="option-c",
                                         default="")
        GlobalSettings.add_config_option("section1OptionD",
                                         section="section-1",
                                         key="option-d",
                                         default=[])
        GlobalSettings.add_config_option("section1OptionE",
                                         section="section-1",
                                         key="option-e",
                                         default=["foo"])
        GlobalSettings.add_config_option("section1OptionF",
                                         section="section-1",
                                         key="option-f",
                                         default=Gdk.RGBA())

        self.assertEqual(GlobalSettings.section1OptionA, 50)
        self.assertEqual(GlobalSettings.section1OptionB, False)
        self.assertEqual(GlobalSettings.section1OptionC, "")
        self.assertEqual(GlobalSettings.section1OptionD, [])
        self.assertEqual(GlobalSettings.section1OptionE, ["foo"])
        self.assertEqual(GlobalSettings.section1OptionF, Gdk.RGBA())

        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionA"][0], int)
        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionB"][0], bool)
        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionC"][0], str)
        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionD"][0], list)
        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionE"][0], list)
        self.assertIs(
            GlobalSettings.options["section-1"]["section1OptionF"][0],
            Gdk.RGBA)

        conf_file_content = ("[section-1]\n"
                             "option-a = 10\n"
                             "option-b = True\n"
                             "option-c = Pigs fly\n"
                             "option-d=\n"
                             "option-e=\n"
                             "     elmo\n"
                             "          knows\n"
                             "     where you live\n"
                             "option-f=rgba(51,102,255,0.4)")

        with mock.patch("pitivi.settings.xdg_config_home") as xdg_config_home,\
                tempfile.TemporaryDirectory() as temp_dir:
            with open(os.path.join(temp_dir, "pitivi.conf"), "w") as tmp_file:
                tmp_file.write(conf_file_content)
            xdg_config_home.return_value = temp_dir
            settings = GlobalSettings()

        self.assertEqual(settings.section1OptionA, 10)
        self.assertEqual(settings.section1OptionB, True)
        self.assertEqual(settings.section1OptionC, "Pigs fly")
        self.assertEqual(settings.section1OptionD, [])
        expected_e_value = ["elmo", "knows", "where you live"]
        self.assertEqual(settings.section1OptionE, expected_e_value)
        self.assertEqual(settings.section1OptionF,
                         Gdk.RGBA(0.2, 0.4, 1.0, 0.4))
 def add_option():
     GlobalSettings.add_config_option("optionA1",
                                      section="section-a",
                                      key="option-a-1",
                                      default=False)