def __init__(self, parent=None):
        builder = Gtk.Builder()
        builder.add_from_file(get_ui_file("account/category_assignments_dialog.glade"))
        builder.connect_signals(self)

        # get gui objects
        sw = builder.get_object("scrolledwindow")
        dlg = builder.get_object("dialog")
        self.searchstring_entry = builder.get_object("searchstring_entry")
        self.priority_entry = builder.get_object("priority_entry")
        self.category_combobox = builder.get_object("category_combobox")
        self.preview_sw = builder.get_object("preview_sw")

        self.active_rule = None
        self.preview_active = None

        # create gui elements
        self._init_tree()
        self._init_combobox()
        sw.add(self.rules_tree)

        # setup and show dialog
        dlg.set_transient_for(parent)
        dlg.add_buttons(Gtk.STOCK_CLOSE, Gtk.ResponseType.ACCEPT)
        dlg.show_all()
        dlg.run()
        dlg.destroy()
    def __init__(self, account, parent):
        self.account = account
        builder = Gtk.Builder()
        builder.add_from_file(get_ui_file("account/edit_account_dialog.glade"))
        self.dlg = builder.get_object("dialog")
        self.dlg.set_transient_for(parent.tree.get_toplevel())
        self.name_entry = builder.get_object("name_entry")
        self.name_entry.set_text(account.name)
        self.balance_entry = builder.get_object("balance_entry")
        adjustment = builder.get_object("adjustment1")
        adjustment.set_value(account.balance)
        self.combobox = builder.get_object("type_combobox")
        liststore = Gtk.ListStore(int, str)
        self.combobox.set_model(liststore)
        cell = Gtk.CellRendererText()
        self.combobox.pack_start(cell, True)
        self.combobox.add_attribute(cell, "text", 1)
        for account_type, name in account_m.yield_account_types():
            iterator = liststore.append([account_type, name])
            if account_type == account.type:
                self.combobox.set_active_iter(iterator)

        self.dlg.add_buttons(Gtk.STOCK_CLOSE, Gtk.ResponseType.ACCEPT)
        self.dlg.connect("response", self.on_response)
        self.dlg.show()
Beispiel #3
0
    def __init__(self, pf, transaction=None, parent=None):
        self.pf = pf
        self.transaction = transaction

        builder = Gtk.Builder()
        builder.add_from_file(get_ui_file("portfolio/buy_dialog.glade"))

        self.dlg = builder.get_object("dialog")
        self.shares_entry = builder.get_object("shares_entry")
        self.price_entry = builder.get_object("price_entry")
        self.costs_entry = builder.get_object("costs_entry")
        self.total_entry = builder.get_object("total_entry")
        self.calendar = builder.get_object("calendar")
        grid = builder.get_object("grid")

        self.dlg.set_transient_for(parent)
        self.dlg.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.REJECT,
                      Gtk.STOCK_APPLY, Gtk.ResponseType.ACCEPT)
        self.dlg.set_response_sensitive(Gtk.ResponseType.ACCEPT, False)
        self.on_change()

        # asset entry
        if not self.transaction:
            self.asset_selector = dialogs.StockSelector()
            grid.attach(self.asset_selector, 0, 1, 3, 1)
            self.asset_selector.result_tree.connect('cursor-changed', self.on_asset_selection)
            self.asset_selector.result_tree.get_model().connect('row-deleted', self.on_asset_deselection)
        else:
            self.shares_entry.set_value(self.transaction.quantity)
            self.total_entry.set_value(-self.transaction.total)
            self.costs_entry.set_value(self.transaction.cost)
            self.calendar.select_month(self.transaction.date.month - 1, self.transaction.date.year)
            self.calendar.select_day(self.transaction.date.day)
            self.on_change()

        # info bar to show warnings
        self.infobar = Gtk.InfoBar()
        self.infobar.set_message_type(Gtk.MessageType.WARNING)
        content = self.infobar.get_content_area()
        label = Gtk.Label(label=_('Buy dates can not be in the future.'))
        image = Gtk.Image()
        image.set_from_stock(Gtk.STOCK_DIALOG_WARNING, Gtk.IconSize.DIALOG)
        content.pack_start(image, True, True, 0)
        content.pack_start(label, True, True, 0)
        self.dlg.get_content_area().pack_start(self.infobar, True, True, 0)

        builder.connect_signals(self)

        self.date_ok = True
        if self.transaction:
            self.asset_ok = True
            self.position = transaction.position
            self.dlg.set_response_sensitive(Gtk.ResponseType.ACCEPT, True)
        else:
            self.asset_ok = False
            self.position = None
            self.dlg.set_response_sensitive(Gtk.ResponseType.ACCEPT, False)

        self.dlg.run()
    def __init__(self, account=None, parent=None):
        self.builder = Gtk.Builder()
        self.builder.add_from_file(get_ui_file("account/import_csv_dialog.glade"))
        self.dlg = self.builder.get_object("dialog")
        self.dlg.set_transient_for(parent)
        self.import_button = self.builder.get_object("import_button")
        self.builder.connect_signals(self)

        self.account = account
        self.config = config.avernusConfig()
        self.importer = csvimporter.CsvImporter()
        self.b_categories = self.config.get_option('category_assignments_on_import') == 'True'
        self.importer.do_categories = self.b_categories
        self.b_file = False
        self.b_account = not account is None

        self._init_widgets()
        self.dlg.show_all()
        response = self.dlg.run()
        self.process_result(response=response)
Beispiel #5
0
    def __init__(self, parent=None):
        self.parent = parent
        builder = Gtk.Builder()
        builder.add_from_file(get_ui_file("portfolio/asset_manager_dialog.glade"))

        self.tree = gui_utils.Tree()
        self.tree.set_headers_visible(True)
        model = Gtk.ListStore(object, str, str, str, str)
        self.tree.set_model(model)
        self.tree.create_column(_('Name'), 1)
        self.tree.create_column(_('ISIN'), 2)
        self.tree.create_column(_('Type'), 3)
        self.tree.create_column(_('Currency'), 4)

        sw = builder.get_object("scrolledwindow")
        sw.add(self.tree)

        tb = builder.get_object("toolbar")
        tb.get_style_context().add_class("inline-toolbar")

        # connect signals
        handlers = {
            "on_delete_clicked": self.on_delete,
            "on_edit_clicked": self.on_edit
            }
        builder.connect_signals(handlers)
        self.tree.connect("button-press-event", self.on_button_press_event)

        # load items
        for asset in asset_m.get_all_assets():
            model.append(self.get_row(asset))

        dlg = builder.get_object("dialog")
        dlg.set_transient_for(parent)
        dlg.add_buttons(
                    Gtk.STOCK_CLOSE, Gtk.ResponseType.ACCEPT)

        dlg.show_all()
        dlg.run()
        dlg.destroy()