示例#1
0
    def after_view_init(self) -> None:
        self.tree_view.set_model(self.model)

        time_column = Gtk.TreeViewColumn(title='Time [s]')
        time_column.set_spacing(5)
        self.tree_view.append_column(time_column)

        status_icon = Gtk.CellRendererPixbuf()
        time_column.pack_start(status_icon, False)
        time_column.set_cell_data_func(status_icon, self.status_icon_data_func)

        status_spinner = Gtk.CellRendererSpinner()
        time_column.pack_start(status_spinner, False)
        time_column.set_cell_data_func(status_spinner, self.status_spinner_data_func)

        time_text = Gtk.CellRendererText()
        time_column.pack_start(time_text, True)
        time_column.set_attributes(time_text, text=Column.TIMESTAMP)

        self.tree_view.append_column(Gtk.TreeViewColumn(
            title='Left CA [°]',
            cell_renderer=Gtk.CellRendererText(),
            text=Column.LEFT_CA))

        self.tree_view.append_column(Gtk.TreeViewColumn(
            title='Right CA [°]',
            cell_renderer=Gtk.CellRendererText(),
            text=Column.RIGHT_CA
        ))

        self.view_ready = True
        self.analyses_changed()
        self.selection = self._initial_selection
示例#2
0
    def __init__(self):
        Gtk.Window.__init__(self)
        self.set_title("CellRendererSpinner")
        self.connect("destroy", Gtk.main_quit)

        self.liststore = Gtk.ListStore(str, bool, int)
        self.liststore.append(["Copying files", True, 0])
        self.liststore.append(["Downloading access logs", False, 0])
        self.liststore.append(["Connecting to server", True, 0])

        treeview = Gtk.TreeView()
        treeview.set_model(self.liststore)
        self.add(treeview)

        cellrenderertext = Gtk.CellRendererText()
        self.cellrendererspinner = Gtk.CellRendererSpinner()

        treeviewcolumn = Gtk.TreeViewColumn("Activity")
        treeview.append_column(treeviewcolumn)
        treeviewcolumn.pack_start(cellrenderertext, False)
        treeviewcolumn.add_attribute(cellrenderertext, "text", 0)

        treeviewcolumn = Gtk.TreeViewColumn("Status")
        treeview.append_column(treeviewcolumn)
        treeviewcolumn.pack_start(self.cellrendererspinner, False)
        treeviewcolumn.add_attribute(self.cellrendererspinner, "active", 1)
示例#3
0
    def setup_ui_tasks(self, widget):
        self.janitor_model.set_sort_column_id(self.JANITOR_NAME,
                                              Gtk.SortType.ASCENDING)

        #add janitor columns
        janitor_column = Gtk.TreeViewColumn()

        renderer = Gtk.CellRendererToggle()
        renderer.connect('toggled', self.on_janitor_check_button_toggled)
        janitor_column.pack_start(renderer, False)
        janitor_column.add_attribute(renderer, 'active', self.JANITOR_CHECK)

        self.janitor_view.append_column(janitor_column)

        janitor_column = Gtk.TreeViewColumn()

        renderer = Gtk.CellRendererPixbuf()
        janitor_column.pack_start(renderer, False)
        janitor_column.add_attribute(renderer, 'pixbuf', self.JANITOR_ICON)
        janitor_column.set_cell_data_func(renderer, self.icon_column_view_func,
                                          self.JANITOR_ICON)

        renderer = Gtk.CellRendererText()
        renderer.set_property('ellipsize', Pango.EllipsizeMode.END)
        janitor_column.pack_start(renderer, True)
        janitor_column.add_attribute(renderer, 'markup', self.JANITOR_DISPLAY)

        renderer = Gtk.CellRendererSpinner()
        janitor_column.pack_start(renderer, False)
        janitor_column.add_attribute(renderer, 'active',
                                     self.JANITOR_SPINNER_ACTIVE)
        janitor_column.add_attribute(renderer, 'pulse',
                                     self.JANITOR_SPINNER_PULSE)

        self.janitor_view.append_column(janitor_column)
        #end janitor columns

        #new result columns
        result_display_renderer = self.builder.get_object(
            'result_display_renderer')
        result_display_renderer.set_property('ellipsize',
                                             Pango.EllipsizeMode.END)
        result_icon_renderer = self.builder.get_object('result_icon_renderer')
        self.result_column.set_cell_data_func(result_icon_renderer,
                                              self.icon_column_view_func,
                                              self.RESULT_ICON)
        #end new result columns

        auto_scan = self.autoscan_setting.get_value()
        log.info("Auto scan status: %s", auto_scan)

        self.scan_button.set_visible(not auto_scan)

        self.update_model()

        self._expand_janitor_view()

        self.hpaned1.connect('notify::position', self.on_move_handle)
示例#4
0
    def after_view_init(self) -> None:
        self.tree_view.set_model(self.model)

        time_column = Gtk.TreeViewColumn(title='Time [s]')
        time_column.set_spacing(5)
        self.tree_view.append_column(time_column)

        status_icon = Gtk.CellRendererPixbuf()
        time_column.pack_start(status_icon, False)
        time_column.set_cell_data_func(status_icon, self.status_icon_data_func)

        status_spinner = Gtk.CellRendererSpinner()
        time_column.pack_start(status_spinner, False)
        time_column.set_cell_data_func(status_spinner,
                                       self.status_spinner_data_func)

        time_text = Gtk.CellRendererText()
        time_column.pack_start(time_text, True)
        time_column.set_attributes(time_text, text=Column.TIMESTAMP)

        self.tree_view.append_column(
            Gtk.TreeViewColumn(title='IFT [mN/m]',
                               cell_renderer=Gtk.CellRendererText(),
                               text=Column.IFT))

        self.tree_view.append_column(
            Gtk.TreeViewColumn(title='V [mm³]',
                               cell_renderer=Gtk.CellRendererText(),
                               text=Column.VOLUME))

        self.tree_view.append_column(
            Gtk.TreeViewColumn(title='SA [mm²]',
                               cell_renderer=Gtk.CellRendererText(),
                               text=Column.SURFACE_AREA))

        self.tree_view.append_column(
            Gtk.TreeViewColumn(title='Bond',
                               cell_renderer=Gtk.CellRendererText(),
                               text=Column.BOND))

        self.tree_view.append_column(
            Gtk.TreeViewColumn(title='Worth.',
                               cell_renderer=Gtk.CellRendererText(),
                               text=Column.WORTHINGTON))

        self.view_ready = True

        self.analyses_changed()

        self.selection = self._initial_selection
示例#5
0
    def add_columns(self, treeview):
        model = treeview.get_model()

        # column for is_fixed toggle
        renderer = Gtk.CellRendererToggle()
        renderer.connect('toggled', self.is_fixed_toggled, model)

        column = Gtk.TreeViewColumn("Fixed?",
                                    renderer,
                                    active=self.COLUMN_FIXED)
        column.set_fixed_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        treeview.append_column(column)

        # column for severities
        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("Severity",
                                    renderer,
                                    text=self.COLUMN_SEVERITY)
        column.set_sort_column_id(self.COLUMN_SEVERITY)
        treeview.append_column(column)

        # column for description
        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("Description",
                                    renderer,
                                    text=self.COLUMN_DESCRIPTION)
        column.set_sort_column_id(self.COLUMN_DESCRIPTION)
        treeview.append_column(column)

        # column for spinner
        renderer = Gtk.CellRendererSpinner()
        column = Gtk.TreeViewColumn("Spinning",
                                    renderer,
                                    pulse=self.COLUMN_PULSE,
                                    active=self.COLUMN_ACTIVE)
        column.set_sort_column_id(self.COLUMN_PULSE)
        treeview.append_column(column)

        # column for symbolic icon
        renderer = Gtk.CellRendererPixbuf()
        renderer.props.follow_state = True
        column = Gtk.TreeViewColumn("Symbolic icon",
                                    renderer,
                                    icon_name=self.COLUMN_ICON,
                                    sensitive=self.COLUMN_SENSITIVE)
        column.set_sort_column_id(self.COLUMN_ICON)
        treeview.append_column(column)
    def add_columns(self, treeview):
        
        model = treeview.get_model()

        # 命令名字
        renderer = Gtk.CellRendererText()
        renderer.connect("edited", self.on_cmdgroup_name_changed);
        self.renderer_name = renderer
        self.renderer_name.set_property("editable", True)
        
        column = Gtk.TreeViewColumn("命令组", renderer, text=self.COLUMN_NAME)
        #column.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
        column.set_alignment(0.5)
        column.set_expand(True)
        column.set_resizable(True)
        
        treeview.append_column(column)

        # 是否成功
        renderer = Gtk.CellRendererPixbuf()
        renderer.props.follow_state = True
        
        column = Gtk.TreeViewColumn("结果", renderer, stock_id = self.COLUMN_IS_OK)
                                    #sensitive=self.COLUMN_SENSITIVE)
        #column.set_sort_column_id(self.COLUMN_ICON)
        column.set_min_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        
        column.set_expand(False)
        column.set_alignment(0.5)
        
        treeview.append_column(column)
        
        # 是否正在运行
        renderer = Gtk.CellRendererSpinner()
        
        column = Gtk.TreeViewColumn("运行", renderer, pulse=self.COLUMN_PROGRESS,
                                    active=self.COLUMN_START_PROCESS)
        column.set_min_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        column.set_alignment(0.5)
        
        treeview.append_column(column)
示例#7
0
    def build_ui(self):
        # Dark theme at start
        if self._settings.get_boolean('dark-theme'):
            self.toggle_dark_theme(True)

        # Headerbar
        builder = Gtk.Builder.new_from_resource(UI_PATH + 'menu.ui')
        window_menu = builder.get_object('window-menu')
        self.menu_button.set_menu_model(window_menu)

        # Mainbox - drag&drop
        enforce_target = Gtk.TargetEntry.new('text/uri-list',
                                             Gtk.TargetFlags(4), 0)
        self.mainbox.drag_dest_set(Gtk.DestDefaults.ALL, [enforce_target],
                                   Gdk.DragAction.COPY)
        self.mainbox.connect('drag-data-received', self.on_receive)

        # Treeview
        self.store = Gtk.ListStore(bool, str, str, int, str, int, str, float)
        self.treeview.set_model(self.store)
        self.renderer = Gtk.CellRendererText()
        self.spinner_renderer = Gtk.CellRendererSpinner()

        col_bool = Gtk.TreeViewColumn('', self.spinner_renderer, active=0)
        self.treeview.append_column(col_bool)
        self.add_column_to_treeview(_("Filename"), 1, True)
        self.add_column_to_treeview(_("Old Size"), 2, True, 3)
        self.add_column_to_treeview(_("New Size"), 4, True, 5)
        self.add_column_to_treeview(_("Savings"), 6, True, 7)

        self.adjustment = self.treeview_scrolled_window.get_vadjustment()

        # Lossy toggle
        self.toggle_lossy.set_active(self._settings.get_boolean('lossy'))
        self.toggle_lossy.connect('notify::active', self.on_lossy_changed)

        # Info label
        self.change_save_info_label()
示例#8
0
    def get_main_widget(self):
        vbox = Gtk.VBox()

        self._sw = Gtk.ScrolledWindow()
        self._sw.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.NEVER)
        vbox.pack_start(self._sw, True, True, 0)

        self._model = Gtk.ListStore(object, str, str, bool, int)
        self._treeview = Gtk.TreeView(model=self._model)
        self._treeview.connect('motion-notify-event',
                               self._on_treeview__motion_notify_event)
        self._treeview.connect('button-release-event',
                               self._on_treeview__button_release_event)
        self._treeview.add_events(Gdk.EventMask.BUTTON_PRESS_MASK
                                  | Gdk.EventMask.KEY_PRESS_MASK)

        self._treeview.set_tooltip_column(COL_TOOLTIP)
        self._treeview.set_enable_search(False)

        self._selection = self._treeview.get_selection()
        self._selection.set_mode(Gtk.SelectionMode.BROWSE)

        self._spinner_renderer = Gtk.CellRendererSpinner()
        self._spinner_column = Gtk.TreeViewColumn('',
                                                  self._spinner_renderer,
                                                  active=COL_SPINNER_ACTIVE,
                                                  pulse=COL_SPINNER_PULSE)

        self._renderer = ComboDetailsCellRenderer(use_markup=True)
        self._treeview.append_column(
            Gtk.TreeViewColumn('', self._renderer, label=COL_MARKUP))

        self._treeview.set_headers_visible(False)
        self._sw.add(self._treeview)

        vbox.show_all()
        return vbox
示例#9
0
    def add_columns(self, treeview):

        model = treeview.get_model()

        # 是否需要执行
        renderer = Gtk.CellRendererToggle()
        renderer.connect('toggled', self.on_is_selected_toggled, model)
        self.renderer_is_selected = renderer

        column = Gtk.TreeViewColumn("选中",
                                    renderer,
                                    active=self.COLUMN_IS_SELECTED)
        column.set_fixed_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        column.set_alignment(0.5)
        treeview.append_column(column)

        # 命令类型
        renderer = Gtk.CellRendererCombo()
        renderer.set_property("text-column", 0)
        renderer.set_property("model", self.create_selected_cmd_list())
        renderer.connect("changed", self.on_cmd_content_changed, model)
        self.renderer_content = renderer

        column = Gtk.TreeViewColumn("命令", renderer, text=self.COLUMN_CMD)
        #column.set_sort_column_id(self.COLUMN_SEVERITY)
        #column.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
        column.set_resizable(True)
        column.set_expand(True)
        column.set_alignment(0.5)

        treeview.append_column(column)

        # 命令内容或者参数
        renderer = Gtk.CellRendererText()
        renderer.connect("edited", self.on_param_edited, model)
        self.renderer_name = renderer

        column = Gtk.TreeViewColumn("详细", renderer, text=self.COLUMN_PARAM)
        #column.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
        column.set_alignment(0.5)
        column.set_expand(True)
        column.set_resizable(True)

        treeview.append_column(column)

        # 是否正在运行
        renderer = Gtk.CellRendererSpinner()

        column = Gtk.TreeViewColumn("运行",
                                    renderer,
                                    pulse=self.COLUMN_PROGRESS,
                                    active=self.COLUMN_CMD_START_PROCESS)
        column.set_min_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)
        column.set_alignment(0.5)

        treeview.append_column(column)

        # 是否成功
        renderer = Gtk.CellRendererPixbuf()
        renderer.props.follow_state = True

        column = Gtk.TreeViewColumn("结果", renderer, stock_id=self.COLUMN_IS_OK)
        #sensitive=self.COLUMN_SENSITIVE)
        #column.set_sort_column_id(self.COLUMN_ICON)
        column.set_min_width(50)
        column.set_sizing(Gtk.TreeViewColumnSizing.FIXED)

        column.set_expand(False)
        column.set_alignment(0.5)

        treeview.append_column(column)
    def __init__(self):
        """
		Initializes the class.
		"""

        super().__init__()

        # Settings
        self.set_headers_visible(False)

        # Create model
        self.model = Gtk.TreeStore(
            str,  # Reason
            bool,  # Status
            str,  # Icon
            int,  # ID
            str,  # Name
            str,  # Version
            str,  # Size/Download status
            bool,  # Downloading
            int,  # Downloading pulse
            bool,  # Checkbox and package_name visibility
            bool,  # Icon visibility
        )
        self.set_model(self.model)

        # Create columns

        # Package
        self.package_column = Gtk.TreeViewColumn("Package")
        self.package_column.set_expand(True)

        self.package_checkbox = Gtk.CellRendererToggle()
        self.package_checkbox.set_activatable(True)
        self.package_column.pack_start(self.package_checkbox, False)
        self.package_column.add_attribute(self.package_checkbox, "visible", 9)
        self.package_column.add_attribute(self.package_checkbox, "active", 1)

        # Handle checkbox toggled signal
        self.package_checkbox.connect("toggled", self.on_status_toggled)

        self.package_icon = Gtk.CellRendererPixbuf()
        self.package_column.pack_start(self.package_icon, False)
        self.package_column.add_attribute(self.package_icon, "visible", 10)
        self.package_column.add_attribute(self.package_icon, "icon_name", 2)

        self.version_spinner = Gtk.CellRendererSpinner()
        self.package_column.pack_start(self.version_spinner, False)
        self.package_column.add_attribute(self.version_spinner, "visible", 7)
        self.package_column.add_attribute(self.version_spinner, "active", 7)
        self.package_column.add_attribute(self.version_spinner, "pulse", 8)

        self.package_name = Gtk.CellRendererText()
        self.package_column.pack_start(self.package_name, True)
        #self.package_column.add_attribute(self.package_name, "visible", 7)
        self.package_column.add_attribute(self.package_name, "text", 4)

        self.append_column(self.package_column)

        # Size column
        self.size_column = Gtk.TreeViewColumn("Size")
        #self.size_column.set_expand(True)

        self.version_size = Gtk.CellRendererText()
        self.size_column.pack_start(self.version_size, True)
        self.size_column.add_attribute(self.version_size, "visible", 9)
        self.size_column.add_attribute(self.version_size, "text", 6)

        self.append_column(self.size_column)

        # Version

        self.version_column = Gtk.TreeViewColumn("Version")

        #self.version_column.set_expand(True)
        self.version_version = Gtk.CellRendererText()
        self.version_column.pack_start(self.version_version, False)
        self.version_column.add_attribute(self.version_version, "text", 5)

        self.append_column(self.version_column)

        # Create main sections:
        # Application updates, New packages, packages to remove, package updates
        self.clear()
示例#11
0
window = Gtk.Window()
window.set_default_size(200, 200)
window.connect("destroy", lambda q: Gtk.main_quit())

liststore = Gtk.ListStore(str, bool, int)
liststore.append(["OpenSuSE", True, 1])
liststore.append(["Aptosid", False, 0])
liststore.append(["Crunchbang", True, 3])

treeview = Gtk.TreeView(model=liststore)
window.add(treeview)

treeviewcolumn = Gtk.TreeViewColumn("Distribution")
treeview.append_column(treeviewcolumn)
cellrenderertext = Gtk.CellRendererText()
treeviewcolumn.pack_start(cellrenderertext, False)
treeviewcolumn.add_attribute(cellrenderertext, "text", 0)

treeviewcolumn = Gtk.TreeViewColumn("Active")
treeview.append_column(treeviewcolumn)
cellrendererspinner = Gtk.CellRendererSpinner()
treeviewcolumn.pack_start(cellrendererspinner, False)
treeviewcolumn.add_attribute(cellrendererspinner, "active", 1)
treeviewcolumn.add_attribute(cellrendererspinner, "pulse", 2)

window.show_all()

GObject.timeout_add(100, pulse_spinner)

Gtk.main()
示例#12
0
    def _build_ui(self):
        # connection status ----------------------
        self._ds_connect_btn = self._ui.get_object('connect_to_display_server_button')
        self._ds_connect_btn.connect('clicked', self.on_connect_to_display_server)
        self._ds_disconnect_btn = self._ui.get_object('disconnect_from_display_server_button')
        self._ds_disconnect_btn.connect('clicked', self.on_disconnect_from_display_server)
        self._ds_status_lbl = self._ui.get_object('ds_connection_status_label')

        # save calibration EXR button -----------
        button = self._ui.get_object('save_calibration_exr_button')
        button.connect('clicked', self.on_save_calibration_exr)

        # build main window ----------------------

        window = self._ui.get_object('main_box')

        nb = Gtk.Notebook()
        window.add(nb)

        nb.append_page(self._ui.get_object('checkerboard_grid'),
                       Gtk.Label(label='intrinsics'))

        nb.append_page(self._ui.get_object('virtual_display_layout_grid'),
                       Gtk.Label(label='virtual displays'))

        nb.append_page(self._ui.get_object('geom_grid'),
                       Gtk.Label(label='display geometry'))

        nb.append_page(self._ui.get_object('corresponding_points_grid'),
                       Gtk.Label(label='extrinsics'))

        self._ui.get_object('file_open_menu_item').connect(
            'activate', self.on_open)

        self._ui.get_object('file_save_menu_item').connect(
            'activate', self.on_save)

        self._ui.get_object('file_saveas_menu_item').connect(
            'activate', self.on_save_as)

        self._ui.get_object('file_quit_menu_item').connect(
            'activate', rosgobject.main_quit)

        self._ui.get_object('help_about_menu_item').connect(
            'activate', self.on_help_about)

        self._ui.get_object('view_mock_ds_item').connect(
            'activate', self.on_view_mock_ds)

        # setup checkerboard treeview ----------------

        self.checkerboard_store = Gtk.ListStore(object)

        treeview = self._ui.get_object('checkerboard_treeview')
        treeview.set_model( self.checkerboard_store )

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("rows", renderer)
        column.set_cell_data_func(renderer, self.render_checkerboard_row, func_data='rows')
        treeview.append_column(column)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("columns", renderer)
        column.set_cell_data_func(renderer, self.render_checkerboard_row, func_data='columns')
        treeview.append_column(column)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("size", renderer)
        column.set_cell_data_func(renderer, self.render_checkerboard_row, func_data='size')
        treeview.append_column(column)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("time", renderer)
        column.set_cell_data_func(renderer, self.render_checkerboard_row, func_data='date_string')
        treeview.append_column(column)

        self._ui.get_object('CK_add_button').connect('clicked', self.on_CK_add)
        self._ui.get_object('CK_remove_button').connect('clicked', self.on_CK_remove)

        self._ui.get_object('compute_intrinsics').connect('clicked', self.on_compute_intrinsics)

        # setup checkerboard dialog ----------------
        self.add_CK_dialog = AddCheckerboardDialog(self._ui,
                                nrows=DEFAULT_CHECKER_NROWS,
                                ncols=DEFAULT_CHECKER_NCOLS,
                                size=DEFAULT_CHECKER_SIZE)

        # setup help->about dialog -----------------
        self.help_about_dialog = Gtk.Dialog(title='About',
                                            parent=None,
                                            buttons=(Gtk.STOCK_OK, Gtk.ResponseType.OK))
        self.help_about_dialog.get_content_area().add(self._ui.get_object('help_about_dialog_grid'))
        version_str = getattr(flyvr,'__version__','0.0')
        self._ui.get_object('version_label').set_text(version_str)

        # setup vdisp combobox ----------------
        self.vdisp_store = Gtk.ListStore(str,int,bool,int,float,bool,object,bool)

        # create vdisp treeview -----------------------

        treeview = self._ui.get_object('vdisp_treeview')
        treeview.set_model( self.vdisp_store )

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("virtual display", renderer, text=VS_VDISP)
        column.set_sort_column_id(VS_VDISP)
        treeview.append_column(column)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("count", renderer, text=VS_COUNT)
        column.set_sort_column_id(VS_COUNT)
        treeview.append_column(column)

        renderer = CellRendererButton('Calibrate')
        renderer.connect("clicked", self.on_trigger_cal)
        column = Gtk.TreeViewColumn("calibration")
        column.pack_start(renderer, False)
        renderer = Gtk.CellRendererSpinner()
        column.pack_start(renderer, False)
        column.add_attribute(renderer, "active", VS_CALIBRATION_RUNNING)
        column.add_attribute(renderer, "pulse", VS_CALIBRATION_PROGRESS)
        treeview.append_column(column)
        GObject.timeout_add(100, self._pulse_spinner)

        renderer = Gtk.CellRendererText()
        column = Gtk.TreeViewColumn("mean reproj. error", renderer,
                                    text=VS_MRE)
        column.set_sort_column_id(VS_MRE)
        treeview.append_column(column)

        renderer = Gtk.CellRendererToggle()
        renderer.connect("toggled", self.on_toggle_show_beachball)
        column = Gtk.TreeViewColumn("show beachball", renderer, active=VS_SHOW_BEACHBALL)
        treeview.append_column(column)

        renderer = Gtk.CellRendererToggle()
        renderer.connect("toggled", self.on_toggle_publish_rviz)
        column = Gtk.TreeViewColumn("publish RViz cam", renderer, active=VS_PUBLISH_RVIZ)
        treeview.append_column(column)

        # create point treeview -----------------------

        self.point_store = Gtk.ListStore(str, float, float, float, float, bool, bool)

        treeview = self._ui.get_object('treeview1')
        treeview.set_model( self.point_store )

        renderer_text = Gtk.CellRendererCombo(model=self.vdisp_store,
                                              text_column=VDISP,
                                              editable=True)
        renderer_text.connect("edited", self.on_edit_vdisp, VDISP)
        column = Gtk.TreeViewColumn("virtual display", renderer_text, text=VDISP)
        column.set_sort_column_id(VDISP)
        treeview.append_column(column)

        renderer_text = Gtk.CellRendererText(editable=True)
        renderer_text.connect("edited", self.on_edit_cell, TEXU)
        column = Gtk.TreeViewColumn("texture U", renderer_text, text=TEXU)
        column.set_cell_data_func(renderer_text, nice_float_fmt, func_data=TEXU)
        column.set_sort_column_id(TEXU)
        treeview.append_column(column)

        renderer_text = Gtk.CellRendererText(editable=True)
        renderer_text.connect("edited", self.on_edit_cell, TEXV)
        column = Gtk.TreeViewColumn("texture V", renderer_text, text=TEXV)
        column.set_cell_data_func(renderer_text, nice_float_fmt, func_data=TEXV)
        column.set_sort_column_id(TEXV)
        treeview.append_column(column)

        renderer_text = Gtk.CellRendererText(editable=True)
        renderer_text.connect("edited", self.on_edit_cell, DISPLAYX)
        column = Gtk.TreeViewColumn("display X", renderer_text, text=DISPLAYX)
        column.set_cell_data_func(renderer_text, nice_float_fmt, func_data=DISPLAYX)
        column.set_sort_column_id(DISPLAYX)
        treeview.append_column(column)

        renderer_text = Gtk.CellRendererText(editable=True)
        renderer_text.connect("edited", self.on_edit_cell, DISPLAYY)
        column = Gtk.TreeViewColumn("display Y", renderer_text, text=DISPLAYY)
        column.set_cell_data_func(renderer_text, nice_float_fmt, func_data=DISPLAYY)
        column.set_sort_column_id(DISPLAYY)
        treeview.append_column(column)

        renderer_toggle = Gtk.CellRendererToggle()
        renderer_toggle.connect("toggled", self.on_toggle_point_show)
        column = Gtk.TreeViewColumn("show", renderer_toggle, active=SHOWPT)
        column.set_sort_column_id(SHOWPT)
        treeview.append_column(column)

        renderer_pixbuf = Gtk.CellRendererToggle()
        renderer_pixbuf.set_radio(True)
        renderer_pixbuf.connect("toggled", self.on_do_point)
        column = Gtk.TreeViewColumn('Joystick select', renderer_pixbuf, active=JOYLISTEN)
        treeview.append_column(column)

        self.point_store.connect("row-changed",  self.on_points_updated)
        self.point_store.connect("row-inserted", self.on_points_updated)
        self.point_store.connect("row-deleted",  self.on_points_updated)

        # connect treeview buttons ---------------------------
        self._ui.get_object('UV_add_button').connect('clicked', self.on_add_UV)
        self._ui.get_object('UV_remove_button').connect('clicked', self.on_remove_UV)

        # self._ui.get_object('save_points_button').connect('clicked', self.on_save_to_yaml,
        #                                                   self.point_store_to_list)
        # self._ui.get_object('load_points_button').connect('clicked', self.on_load_points_button)

        self._ui.get_object('show_all_button').connect('clicked', self.on_show_all_button, True)
        self._ui.get_object('show_none_button').connect('clicked', self.on_show_all_button, False)

        # setup ComboBoxText
        cal_method_cbtext = self._ui.get_object('cal_method_cbtext')

        for method in EXTRINSIC_CALIBRATION_METHODS:
            cal_method_cbtext.append(method,method)
        cal_method_cbtext.set_active_id(EXTRINSIC_CALIBRATION_METHODS[0])
示例#13
0
    def __init__(self, madmin, log, config, settings, stationlist):

        self.madmin = madmin
        self.log = log
        self.config = config
        self.settings = settings
        self.stationlist = stationlist

        self.obj_timer_streamripper = None

        self.record_status = False

        self.count = 0

        self.pre_stationlist = [
            [
                'Alternative', 'Radio freeFM Ulm',
                'http://stream.freefm.de:7000/Studio'
            ],
            [
                'Alternative', 'Radio FM 4 at',
                'https://orf-live.ors-shoutcast.at/fm4-q2a'
            ],
            ['Alternative', 'Zeilsteen Radio', 'http://live.zeilsteen.com:80'],
            [
                'Mix / Alternative', 'Gorilla FM',
                'http://185.33.21.112:80/gorillafm_128'
            ],
            [
                'Electro', 'radio Top 40 Electro',
                'http://antenne-th.divicon-stream.net/antth_top40electro_JlSz-mp3-192?sABC=58p2q700%230%232pn8rp1qoro76pp9n0r46nspn714s714%23fgernz.enqvbgbc40.qr'
            ],
            [
                'Electro', 'Sunshine Live',
                'http://sunshinelive.hoerradar.de/sunshinelive-live-mp3-hq'
            ], ['Charts', 'Radio Fg', 'http://radiofg.impek.com:80/fg'],
            [
                'Charts', 'radio Top 40 Weimar Charts',
                'http://antenne-th.divicon-stream.net/antth_top40char_0f6x-mp3-192?sABC=58p2q6s8%230%232pn8rp1qoro76pp9n0r46nspn714s714%23fgernz.enqvbgbc40.qr'
            ],
            [
                'Charts', 'Top 100 Station',
                'http://www.top100station.de/switch/r3472.pls'
            ],
            [
                'Charts', 'radio Top 40 Weimar Live',
                'http://antenne-th.divicon-stream.net/antth_top40live_SeJx-mp3-192?sABC=58p2q6rq%230%232pn8rp1qoro76pp9n0r46nspn714s714%23fgernz.enqvbgbc40.qr'
            ],
            [
                'Pop', 'Antenne Bayern Fresh4You',
                'http://mp3channels.webradio.antenne.de/fresh'
            ],
            [
                'Rock', 'Antenne Bayern Rock',
                'http://mp3channels.webradio.antenne.de/rockantenne'
            ], ['Rock', 'PureRock.US', 'http://167.114.64.181:8524/stream']
        ]

        self.grid = Gtk.Grid()
        self.grid.set_column_homogeneous(True)
        #self.grid.set_row_homogeneous(True)

        self.record_station = []

        self.liststore = Gtk.ListStore(int, bool, str, str, str, str)
        self.update_listmodel()

        self.treeview = Gtk.TreeView.new_with_model(model=self.liststore)
        #self.treeview.connect('button-press-event', self.treeview_press_event)
        self.treeview.connect('row-activated', self.treeview_row_activated)
        self.treeview.set_activate_on_single_click(True)

        self.renderer_spinner = Gtk.CellRendererSpinner()
        self.renderer_spinner.set_fixed_size(50, 30)
        self.column_spinner = Gtk.TreeViewColumn('Rec',
                                                 self.renderer_spinner,
                                                 active=0)
        self.treeview.append_column(self.column_spinner)
        self.column_spinner.add_attribute(self.renderer_spinner, 'pulse', 0)

        renderer_rec = Gtk.CellRendererToggle()
        renderer_rec.set_fixed_size(50, 30)
        column_rec = Gtk.TreeViewColumn('Sel', renderer_rec, active=1)
        renderer_rec.connect('toggled', self.on_cell_toggled)
        self.treeview.append_column(column_rec)

        renderer_pixbuf = Gtk.CellRendererPixbuf()
        renderer_pixbuf.set_fixed_size(50, 30)
        self.column_delete = Gtk.TreeViewColumn('Del',
                                                renderer_pixbuf,
                                                icon_name=2)
        self.treeview.append_column(self.column_delete)

        self.renderer_genre = Gtk.CellRendererText()
        self.renderer_genre.set_property('editable', True)
        self.renderer_genre.set_fixed_size(150, 30)
        column_genre = Gtk.TreeViewColumn('Genre', self.renderer_genre, text=3)
        self.renderer_genre.connect('edited', self.renderer_genre_edited)
        self.treeview.append_column(column_genre)

        self.renderer_stations = Gtk.CellRendererText()
        self.renderer_stations.set_property('editable', True)
        self.renderer_stations.set_fixed_size(250, 30)
        self.renderer_stations.connect('edited', self.renderer_stations_edited)
        column_station = Gtk.TreeViewColumn('Station',
                                            self.renderer_stations,
                                            text=4)
        self.treeview.append_column(column_station)

        self.renderer_url = Gtk.CellRendererText()
        self.renderer_url.set_property('editable', True)
        self.renderer_url.connect('edited', self.renderer_url_edited)
        column_url = Gtk.TreeViewColumn('Url', self.renderer_url, text=5)
        column_url.set_expand(True)
        self.treeview.append_column(column_url)

        self.scrolledwindow = Gtk.ScrolledWindow()
        self.scrolledwindow.set_vexpand(True)
        self.scrolledwindow.set_hexpand(True)
        self.scrolledwindow.set_child(self.treeview)
        self.scrolledwindow.set_child(self.treeview)
        self.scrolledwindow.set_margin_bottom(5)

        self.grid.attach(self.scrolledwindow, 1, 1, 1, 1)

        hbox_buttons = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL,
                               spacing=5)

        button_selectall = Gtk.Button(label='Select All')
        button_selectall.connect('clicked', self.button_selectall_clicked)

        button_deselectall = Gtk.Button(label='Deselect All')
        button_deselectall.connect('clicked', self.button_deselectall_clicked)

        button_record_start = Gtk.Button(label='Start Record')
        button_record_start.connect('clicked', self.button_record_clicked)

        button_record_stop = Gtk.Button(label='Stop Record')
        button_record_stop.connect('clicked', self.button_stop_clicked)

        button_new_station = Gtk.Button(label='New Station')
        button_new_station.connect('clicked', self.button_new_station_clicked)

        button_reset = Gtk.Button(label='Reset')
        button_reset.connect('clicked', self.button_reset_clicked)

        button_info = Gtk.Button(label='Info')
        button_info.connect('clicked', self.button_info_clicked)

        hbox_buttons.append(button_selectall)
        hbox_buttons.append(button_deselectall)
        hbox_buttons.append(button_record_start)
        hbox_buttons.append(button_record_stop)
        hbox_buttons.append(button_new_station)
        hbox_buttons.append(button_reset)
        hbox_buttons.append(button_info)
        hbox_buttons.set_margin_start(5)

        self.grid.attach_next_to(hbox_buttons, self.scrolledwindow,
                                 Gtk.PositionType.BOTTOM, 1, 1)

        self.hbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL, spacing=5)
        self.hbox.append(self.grid)
        self.hbox.set_margin_bottom(5)