def __init__(self, bus_interface, data_manager):
        '''
        init docs
        '''
        # Init.
        gtk.VBox.__init__(self)
        self.bus_interface = bus_interface
        self.data_manager = data_manager

        self.message_bar = MessageBar(32)
        self.message_box = gtk.HBox()

        self.treeview = TreeView(enable_drag_drop=False)
        self.treeview.set_expand_column(0)
        self.cute_message_image = gtk.VBox()
        self.content_box = gtk.VBox()

        self.pack_start(self.message_box, False, False)
        self.pack_start(self.content_box, True, True)

        self.cute_message_pixbuf = utils.get_common_locale_image_pixbuf(
            "info", "no_download.png")
        self.content_box.pack_start(self.cute_message_image, True, True)

        self.treeview.draw_mask = self.draw_mask

        self.cute_message_image.connect("expose-event",
                                        self.expose_cute_message_image)
        self.treeview.connect("items-change", self.update_message_bar)
        self.treeview.connect(
            "items-change", lambda treeview: global_event.emit(
                "update-install-notify-number",
                self.get_installing_pkgs_number()))
Exemple #2
0
    def __init__(self, data_manager):
        '''
        init docs
        '''
        # Init.
        gtk.VBox.__init__(self)
        self.data_manager = data_manager

        self.keywords = []
        self.all_pkg_names = []
        self.message_bar = MessageBar(18)

        self.content_box = gtk.VBox()

        self.treeview = TreeView(enable_drag_drop=False, expand_column=0)
        global_event.register_event("delete-search-page-items", self.treeview.delete_items)

        self.cute_message_image = gtk.VBox()
        self.cute_message_pixbuf = utils.get_common_locale_image_pixbuf("info", "noresult.png")
        self.cute_message_image.connect("expose-event", self.expose_cute_message_image)

        self.content_box.pack_start(self.message_bar, False, False)
        self.content_box.pack_start(self.treeview)

        self.loading_box = LoadingBox()

        self.pack_start(self.loading_box, True, True)

        self.treeview.connect("items-change", self.update_message_bar)
        self.treeview.draw_mask = self.draw_mask
Exemple #3
0
 def get_info(ticker, indicators):
     con = sqlite3.connect('base.db')
     cur = con.cursor()
     try:
         cur.execute('SELECT * FROM table_' + ticker)
     except sqlite3.OperationalError:
         return 'Такой компании нет в базе данных'
     data_table = cur.fetchall()
     list_indicators = list(indicators.keys())
     for line in data_table:
         date = line[0]
         for i, item in enumerate(line[1:]):
             indicators[list_indicators[i]][date] = item
     return MessageBar().signal_true
Exemple #4
0
    def button_press(self, column, offset_x, offset_y):
        # init Loading widget
        loading_box = LoadingBox()

        global_event.emit("show-pkg-view", loading_box)

        self.page_box = gtk.VBox()

        self.all_pkg_names = self.data_manager.get_second_category_packages(
            self.second_category_name)
        self.message_bar = MessageBar(18)
        self.message_bar.set_message(
            _("%s > %s : %s applications") % (
                get_category_name(self.first_category_name),
                get_category_name(self.second_category_name),
                len(self.all_pkg_names),
            ))

        self.pkg_icon_view = IconView()
        self.pkg_icon_view.connect("motion-notify-item", tooltip_aciton)
        if len(self.all_pkg_names) > LOAD_ITEMS_NUMBER:
            self.load_new_items(self.all_pkg_names[:LOAD_ITEMS_NUMBER])
        else:
            self.load_new_items(self.all_pkg_names)

        self.pkg_icon_scrolled_window = ScrolledWindow()
        self.pkg_icon_scrolled_window.connect(
            "vscrollbar-state-changed",
            self.scrolled_window_vscrollbar_handler)
        self.pkg_icon_scrolled_window.add_child(self.pkg_icon_view)
        self.pkg_icon_view.draw_mask = self.draw_mask
        self.pkg_icon_view.draw_row_mask = self.draw_row_mask

        self.page_box.pack_start(self.message_bar, False, False)
        self.page_box.pack_start(self.pkg_icon_scrolled_window, True, True)

        global_event.emit("update-current-status-pkg-page", self.pkg_icon_view)
Exemple #5
0
    def __init__(self, package):
        Gtk.EventBox.__init__(self)

        self.package = package
        self.action = None
        self.drag_active = False

        # Add style class
        self.style_context = self.get_style_context()
        self.style_context.add_class("WidgetWindow")

        # Used to remove focus when clicking a non focusable widget
        self.connect('button-press-event', self.on_button_press)

        builder = Gtk.Builder()
        builder.add_from_file(UI_FILE)
        builder.connect_signals(self)

        # WidgetWindow - the whole thing
        self.widget_window = builder.get_object('widget_window')

        # Overlay - covers the whole window to catch event for drag/resize
        self.overlay = builder.get_object('overlay')
        self.overlay.add_events(Gdk.EventMask.KEY_PRESS_MASK)
        self.overlay_style_context = self.overlay.get_style_context()

        # The inner window, used only for getting the icon image
        self.window = builder.get_object('window')

        # TitleBar - the title bar at the top of the window
        self.title_bar = builder.get_object('title_bar')
        self.title_bar_label = builder.get_object('title_bar_label')
        self.title_bar_button = builder.get_object('title_bar_button')

        #  WidgetBox - the box that the widget actually gets added to
        self.widget_box = builder.get_object('widget_box')

        # MessageBar
        self.message_bar = MessageBar()
        self.widget_box.add_overlay(self.message_bar)

        # Import the Widget and add to WidgetWindow
        module = importlib.import_module(self.package)
        widget = getattr(module, 'Widget')(self)

        self.widget_dir = os.path.abspath(os.path.dirname(module.__file__))

        if hasattr(widget, 'title'):
            # Use widget title attribute if specified
            title = widget.title
        else:
            # Use the package name
            title = self.package.split('.')[-1]

        # Set up the WidgetWindow
        self.title_bar_label.set_text(title)

        widget.set_margin_right(5)
        widget.set_margin_left(5)
        widget.set_margin_top(5)
        widget.set_margin_bottom(5)

        self.widget_box.add(widget)
        self.add(self.widget_window)

        if hasattr(widget, 'on_settings_button_pressed'):
            self.title_bar_button.connect('clicked',
                                          widget.on_settings_button_pressed)

        self.show_all()
    def initUI(self, MainWindow):
        settings = Settings()
        self.company_details = CompanyDetails()

        dates = settings.dates
        row_label = settings.get_list_of_financial_performance_items()

        MainWindow.setObjectName("MainWindow")
        MainWindow.setFixedSize(settings.screen_width, settings.screen_height)
        self.setWindowTitle('Security Analysis ' + settings.version)
        self.setWindowIcon(QtGui.QIcon('img/graph.png'))

        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.resize(settings.table_width, settings.table_height)

        width_table = self.centralWidget.width()

        distance_from_table = settings.distance_from_table
        distance_between_items = settings.distance_between_items

        vbox = QtWidgets.QVBoxLayout(self.centralWidget)
        self.TableWidget = QtWidgets.QTableWidget()
        vbox.addWidget(self.TableWidget)
        self.TableWidget.setColumnCount(len(dates))
        self.TableWidget.setRowCount(len(row_label))

        self.line_input_ticker = QtWidgets.QLineEdit(self)
        self.line_input_ticker.move(width_table + distance_from_table, 32)
        line_width = width_table + self.line_input_ticker.width()
        self.line_input_ticker.resize(70, 33)
        self.line_input_ticker.setAlignment(Qt.AlignCenter)
        self.line_input_ticker.setFont(QtGui.QFont("Calibri", 14, QtGui.QFont.Bold))
        self.line_input_ticker.setPlaceholderText("----")
        self.line_input_ticker.setMaxLength(4)
        self.line_input_ticker.setValidator(Validator(self))
        self.line_input_ticker.setToolTip('enter ticker of company')

        self.information_panel = QtWidgets.QTextEdit(self)
        self.information_panel.move(width_table + distance_from_table, 84 + distance_between_items*7)
        self.information_panel.resize(350 , 285)
        self.information_panel.setFont(QtGui.QFont("Calibri", 12))
        self.information_panel.setReadOnly(True)
        self.message = MessageBar(bar=self.information_panel)

        self.button_search_info = QtWidgets.QPushButton(QtGui.QIcon('img/Search_find_locate_1892.png'), '', self)
        self.button_search_info.move(line_width, 32)
        self.button_search_info.resize(41, 33)
        self.button_search_info.setToolTip('Click to find and\n'
                                           ' fill in the table\n'
                                           ' with company information')
        self.button_search_info.clicked.connect(self.search_info)

        self.button_to_get_estimate = QtWidgets.QPushButton(QtGui.QIcon('img/a_4466.png'), '  Get estimate', self)
        self.button_to_get_estimate.move(width_table + distance_from_table, 32 + distance_between_items)
        self.button_to_get_estimate.resize(130, 33)
        self.button_to_get_estimate.setStyleSheet("QPushButton {text-align: left;}")
        self.button_to_get_estimate.clicked.connect(self.obtain_estimate)

        self.button_save_as = QtWidgets.QPushButton(QtGui.QIcon('img/savetheapplication_guardar_2958.png'),
                                                    '  Save as', self)
        self.button_save_as.move(width_table + distance_from_table, 32 + distance_between_items*2)
        self.button_save_as.resize(130, 33)
        self.button_save_as.setStyleSheet("QPushButton {text-align: left;}")
        self.button_save_as.clicked.connect(self.file_save_as)

        self.button_save = QtWidgets.QPushButton(QtGui.QIcon('img/savetheapplication_guardar_2958.png'),
                                                 '  Save', self)
        self.button_save.move(width_table + distance_from_table, 32 + distance_between_items*3)
        self.button_save.resize(130, 33)
        self.button_save.setStyleSheet("QPushButton {text-align: left;}")
        self.button_save.setEnabled(False)
        self.button_save.clicked.connect(self.file_save)

        self.button_open = QtWidgets.QPushButton(QtGui.QIcon('img/open-folder_icon-icons.com_70017.png'),
                                                 '  Open', self)
        self.button_open.move(width_table + distance_from_table, 32 + distance_between_items*4)
        self.button_open.resize(130, 33)
        self.button_open.setStyleSheet("QPushButton {text-align: left;}")
        self.button_open.clicked.connect(self.file_open)

        self.button_clear_message = QtWidgets.QPushButton(QtGui.QIcon('img/clear.png'),
                                                 '  Clear', self)
        self.button_clear_message.move(width_table + distance_from_table, 32 + distance_between_items*7)
        self.button_clear_message.resize(130, 33)
        self.button_clear_message.setStyleSheet("QPushButton {text-align: left;}")
        self.button_clear_message.clicked.connect(self.message_clear)

        self.TableWidget.setHorizontalHeaderLabels(dates)
        self.TableWidget.setVerticalHeaderLabels(row_label)

        style = """        
        QTableWidget::item {background-color: white;
        border-style: outset} 

        QHeaderView::section{Background-color: rgb(230,230,230)}

        QTableWidget::item:selected {border-width: 1px; color: black ; border-color: green}
        """

        self.setStyleSheet(style)

        self.show()