def __init__(self, parent): """ Constructor @param parent parent widget (QWidget) """ self.tabWidgets = [] QSplitter.__init__(self, parent) ViewManager.__init__(self) self.setChildrenCollapsible(False) tw = TabWidget(self) self.addWidget(tw) self.tabWidgets.append(tw) self.currentTabWidget = tw self.currentTabWidget.showIndicator(True) tw.currentChanged.connect(self.__currentChanged) tw.installEventFilter(self) tw.tabBar().installEventFilter(self) self.setOrientation(Qt.Vertical) self.__inRemoveView = False self.maxFileNameChars = Preferences.getUI( "TabViewManagerFilenameLength") self.filenameOnly = Preferences.getUI("TabViewManagerFilenameOnly")
def __init__(self, orientation=Qt.Horizontal): QSplitter.__init__(self, orientation) self.pfile = None self.lateral_widget = lateral_widget.LateralWidget() self.table_widget = table_widget.TableWidget() self.query_container = query_container.QueryContainer(self) self._vsplitter = QSplitter(Qt.Vertical) self._vsplitter.addWidget(self.table_widget) self._vsplitter.addWidget(self.query_container) self.addWidget(self.lateral_widget) self.addWidget(self._vsplitter) self.modified = False self.__nquery = 1 # Connections # FIXME self.lateral_widget.relationClicked.connect(self._on_relation_clicked) # lambda i: self.table_widget.stacked.setCurrentIndex(i)) # For change table widget item when up/down # see issue #39 self.lateral_widget.relationSelectionChanged.connect( lambda i: self.table_widget.stacked.setCurrentIndex(i)) self.query_container.saveEditor['PyQt_PyObject'].connect( self.save_query) self.setSizes([1, 1])
def __init__(self, orientation=Qt.Vertical): QSplitter.__init__(self, orientation) self.pfile = None self._hsplitter = QSplitter(Qt.Horizontal) self.lateral_widget = lateral_widget.LateralWidget() self._hsplitter.addWidget(self.lateral_widget) self.table_widget = table_widget.TableWidget() self._hsplitter.addWidget(self.table_widget) self.addWidget(self._hsplitter) self.query_container = query_container.QueryContainer(self) self.addWidget(self.query_container) self.modified = False self.__nquery = 1 # Connections # FIXME self.lateral_widget.itemClicked.connect( lambda: self.table_widget.stacked.setCurrentIndex( self.lateral_widget.row())) # For change table widget item when up/down # see issue #39 self.lateral_widget.itemSelectionChanged.connect( lambda: self.table_widget.stacked.setCurrentIndex( self.lateral_widget.row())) self.query_container.saveEditor['PyQt_PyObject'].connect( self.save_query) self.setSizes([1, 1])
def __init__(self, querylist, config, parent, debug=True): QSplitter.__init__(self, parent) self.sql = querylist self.conf = config self.debug = debug self.parent = parent self.db = Database.Database(self.conf, sql=self.sql) filters_display = { "Heroes": True, "Sites": True, "Games": True, "Currencies": True, "Limits": True, "LimitSep": True, "LimitType": True, "Type": False, "UseType": 'ring', "Seats": False, "SeatSep": False, "Dates": True, "GraphOps": True, "Groups": False, "Button1": True, "Button2": True } self.filters = Filters.Filters(self.db, display=filters_display) self.filters.registerButton1Name(_("Refresh Graph")) self.filters.registerButton1Callback(self.generateGraph) self.filters.registerButton2Name(_("Export to File")) self.filters.registerButton2Callback(self.exportGraph) scroll = QScrollArea() scroll.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Expanding) scroll.setWidget(self.filters) self.addWidget(scroll) frame = QFrame() self.graphBox = QVBoxLayout() frame.setLayout(self.graphBox) self.addWidget(frame) self.setStretchFactor(0, 0) self.setStretchFactor(1, 1) self.fig = None #self.exportButton.set_sensitive(False) self.canvas = None self.exportFile = None self.db.rollback()
def __init__(self, parent): QSplitter.__init__(self, parent) self.parent = parent codeInspector = CodeInspector(self) self.addWidget(codeInspector) self.tabwidget = TabWidget(self) self.addWidget(self.tabwidget) tools = Tools(self) self.addWidget(tools)
def __init__(self): QSplitter.__init__(self) self.setObjectName("main_container") self.main_tab = tab_manager.TabManager() self.secundary_tab = tab_manager.TabManager() self.secundary_tab.hide() self.tab = self.main_tab self.addWidget(self.main_tab) self.addWidget(self.secundary_tab) Amaru.load_component("main_container", self) self.fileChanged.connect(self._file_changed) self.tab.currentChanged[int].connect(self._current_tab_changed) self.tab.allTabsClosed.connect(self._all_tabs_closed)
def __init__(self, parent): """ Constructor @param parent parent widget (QWidget) """ self.stacks = [] QSplitter.__init__(self, parent) ViewManager.__init__(self) self.setChildrenCollapsible(False) self.viewlist = QListWidget(self) policy = self.viewlist.sizePolicy() policy.setHorizontalPolicy(QSizePolicy.Ignored) self.viewlist.setSizePolicy(policy) self.addWidget(self.viewlist) self.viewlist.setContextMenuPolicy(Qt.CustomContextMenu) self.viewlist.currentRowChanged.connect(self.__showSelectedView) self.viewlist.customContextMenuRequested.connect(self.__showMenu) self.stackArea = QSplitter(self) self.stackArea.setChildrenCollapsible(False) self.addWidget(self.stackArea) self.stackArea.setOrientation(Qt.Vertical) stack = StackedWidget(self.stackArea) self.stackArea.addWidget(stack) self.stacks.append(stack) self.currentStack = stack stack.currentChanged.connect(self.__currentChanged) stack.installEventFilter(self) self.setSizes([int(self.width() * 0.2), int(self.width() * 0.8)]) # 20% for viewlist, 80% for the editors self.__inRemoveView = False self.__initMenu() self.contextMenuEditor = None self.contextMenuIndex = -1
def __init__(self, config, querylist, mainwin, owner, debug=True): QSplitter.__init__(self, mainwin) self.debug = debug self.conf = config self.sql = querylist self.window = mainwin self.owner = owner self.liststore = None self.MYSQL_INNODB = 2 self.PGSQL = 3 self.SQLITE = 4 self.fig = None self.canvas = None self.ax = None self.graphBox = None # create new db connection to avoid conflicts with other threads self.db = Database.Database(self.conf, sql=self.sql) self.cursor = self.db.cursor settings = {} settings.update(self.conf.get_db_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) # text used on screen stored here so that it can be configured self.filterText = { 'handhead': _('Hand Breakdown for all levels listed above') } filters_display = { "Heroes": True, "Sites": True, "Games": True, "Currencies": True, "Limits": True, "LimitSep": True, "LimitType": True, "Type": False, "Seats": True, "SeatSep": False, "Dates": True, "Groups": False, "GroupsAll": False, "Button1": True, "Button2": False } self.filters = Filters.Filters(self.db, display=filters_display) self.filters.registerButton1Name("_Refresh") self.filters.registerButton1Callback(self.refreshStats) scroll = QScrollArea() scroll.setWidget(self.filters) # ToDo: store in config # ToDo: create popup to adjust column config # columns to display, keys match column name returned by sql, values in tuple are: # is column displayed, column heading, xalignment, formatting self.columns = [(1.0, "SID"), (1.0, "Hands"), (0.5, "Start"), (0.5, "End"), (1.0, "Rate"), (1.0, "Open"), (1.0, "Close"), (1.0, "Low"), (1.0, "High"), (1.0, "Range"), (1.0, "Profit")] self.detailFilters = [] # the data used to enhance the sql select self.stats_frame = QFrame() self.stats_frame.setLayout(QVBoxLayout()) self.view = None heading = QLabel(self.filterText['handhead']) heading.setAlignment(Qt.AlignCenter) self.stats_frame.layout().addWidget(heading) self.main_vbox = QSplitter(Qt.Vertical) self.graphBox = QFrame() self.graphBox.setLayout(QVBoxLayout()) self.addWidget(scroll) self.addWidget(self.main_vbox) self.setStretchFactor(0, 0) self.setStretchFactor(1, 1) self.main_vbox.addWidget(self.graphBox) self.main_vbox.addWidget(self.stats_frame)
def __init__(self, orientation=Qt.Horizontal): QSplitter.__init__(self, orientation) self.setHandleWidth(1) self.child_splitters = []
def __init__(self, config, querylist, mainwin): QSplitter.__init__(self, mainwin) self.config = config self.main_window = mainwin self.sql = querylist self.replayer = None self.db = Database.Database(self.config, sql=self.sql) filters_display = { "Heroes": True, "Sites": True, "Games": True, "Currencies": False, "Limits": True, "LimitSep": True, "LimitType": True, "Positions": True, "Type": True, "Seats": False, "SeatSep": False, "Dates": True, "Cards": True, "Groups": False, "GroupsAll": False, "Button1": True, "Button2": False } self.filters = Filters.Filters(self.db, display=filters_display) self.filters.registerButton1Name(_("Load Hands")) self.filters.registerButton1Callback(self.loadHands) self.filters.registerCardsCallback(self.filter_cards_cb) scroll = QScrollArea() scroll.setWidget(self.filters) self.handsFrame = QFrame() self.handsVBox = QVBoxLayout() self.handsFrame.setLayout(self.handsVBox) self.addWidget(scroll) self.addWidget(self.handsFrame) self.setStretchFactor(0, 0) self.setStretchFactor(1, 1) self.deck_instance = Deck.Deck(self.config, height=42, width=30) self.cardImages = self.init_card_images() # Dict of colnames and their column idx in the model/ListStore self.colnum = { 'Stakes': 0, 'Pos': 1, 'Street0': 2, 'Action0': 3, 'Street1-4': 4, 'Action1-4': 5, 'Won': 6, 'Bet': 7, 'Net': 8, 'Game': 9, 'HandId': 10, } self.view = QTableView() self.view.setSelectionBehavior(QTableView.SelectRows) self.handsVBox.addWidget(self.view) self.model = QStandardItemModel(0, len(self.colnum), self.view) self.filterModel = QSortFilterProxyModel() self.filterModel.setSourceModel(self.model) self.filterModel.setSortRole(Qt.UserRole) self.view.setModel(self.filterModel) self.view.verticalHeader().hide() self.model.setHorizontalHeaderLabels([ 'Stakes', 'Pos', 'Street0', 'Action0', 'Street1-4', 'Action1-4', 'Won', 'Bet', 'Net', 'Game', 'HandId' ]) self.view.doubleClicked.connect(self.row_activated) self.view.contextMenuEvent = self.contextMenu self.filterModel.rowsInserted.connect( lambda index, start, end: [self.view.resizeRowToContents(r) for r in xrange(start, end + 1)]) self.filterModel.filterAcceptsRow = lambda row, sourceParent: self.is_row_in_card_filter( row) self.view.resizeColumnsToContents() self.view.setSortingEnabled(True)
def __init__(self, parent=None): QSplitter.__init__(self, parent)
def __init__(self, config, querylist, mainwin, debug=True): QSplitter.__init__(self, None) self.debug = debug self.conf = config self.main_window = mainwin self.sql = querylist self.liststore = [ ] # gtk.ListStore[] stores the contents of the grids self.listcols = [ ] # gtk.TreeViewColumn[][] stores the columns in the grids self.MYSQL_INNODB = 2 self.PGSQL = 3 self.SQLITE = 4 # create new db connection to avoid conflicts with other threads self.db = Database.Database(self.conf, sql=self.sql) self.cursor = self.db.cursor settings = {} settings.update(self.conf.get_db_parameters()) settings.update(self.conf.get_import_parameters()) settings.update(self.conf.get_default_paths()) # text used on screen stored here so that it can be configured self.filterText = { 'handhead': _('Hand Breakdown for all levels listed above') } filters_display = { "Heroes": True, "Sites": True, "Games": True, "Currencies": True, "Limits": True, "LimitSep": True, "LimitType": True, "Type": True, "Seats": True, "SeatSep": True, "Dates": True, "Groups": True, "GroupsAll": True, "Button1": True, "Button2": True } self.filters = Filters.Filters(self.db, display=filters_display) self.filters.registerButton1Name(_("Filters")) self.filters.registerButton1Callback(self.showDetailFilter) self.filters.registerButton2Name(_("Refresh Stats")) self.filters.registerButton2Callback(self.refreshStats) scroll = QScrollArea() scroll.setWidget(self.filters) # ToDo: store in config # ToDo: create popup to adjust column config # columns to display, keys match column name returned by sql, values in tuple are: # is column displayed(summary then position), column heading, xalignment, formatting, celltype self.columns = self.conf.get_gui_cash_stat_params() # Detail filters: This holds the data used in the popup window, extra values are # added at the end of these lists during processing # sql test, screen description, min, max self.handtests = [ # already in filter class : ['h.seats', 'Number of Players', 2, 10] ['gt.maxSeats', 'Size of Table', 2, 10], ['h.playersVpi', 'Players who VPI', 0, 10], ['h.playersAtStreet1', 'Players at Flop', 0, 10], ['h.playersAtStreet2', 'Players at Turn', 0, 10], ['h.playersAtStreet3', 'Players at River', 0, 10], ['h.playersAtStreet4', 'Players at Street7', 0, 10], ['h.playersAtShowdown', 'Players at Showdown', 0, 10], ['h.street0Raises', 'Bets to See Flop', 0, 5], ['h.street1Raises', 'Bets to See Turn', 0, 5], ['h.street2Raises', 'Bets to See River', 0, 5], ['h.street3Raises', 'Bets to See Street7', 0, 5], ['h.street4Raises', 'Bets to See Showdown', 0, 5] ] self.cardstests = [ [Card.DATABASE_FILTERS['pair'], _('Pocket pairs')], [Card.DATABASE_FILTERS['suited'], _('Suited')], [ Card.DATABASE_FILTERS['suited_connectors'], _('Suited connectors') ], [Card.DATABASE_FILTERS['offsuit'], _('Offsuit')], [ Card.DATABASE_FILTERS['offsuit_connectors'], _('Offsuit connectors') ], ] self.stats_frame = None self.stats_vbox = None self.detailFilters = [] # the data used to enhance the sql select self.cardsFilters = [] self.stats_frame = QFrame() self.stats_frame.setLayout(QVBoxLayout()) self.stats_vbox = QSplitter(Qt.Vertical) self.stats_frame.layout().addWidget(self.stats_vbox) self.addWidget(scroll) self.addWidget(self.stats_frame) self.setStretchFactor(0, 0) self.setStretchFactor(1, 1) # Make sure Hand column is not displayed. hand_column = (x for x in self.columns if x[0] == 'hand').next() hand_column[colshowsumm] = hand_column[colshowposn] = False # If rfi and steal both on for summaries, turn rfi off. rfi_column = (x for x in self.columns if x[0] == 'rfi').next() steals_column = (x for x in self.columns if x[0] == 'steals').next() if rfi_column[colshowsumm] and steals_column[colshowsumm]: rfi_column[colshowsumm] = False # If rfi and steal both on for position breakdowns, turn steals off. if rfi_column[colshowposn] and steals_column[colshowposn]: steals_column[colshowposn] = False
def __init__(self, config, db, sql, mainwin, debug=True): QSplitter.__init__(self, mainwin) self.conf = config self.db = db self.cursor = self.db.cursor self.sql = sql self.main_window = mainwin self.debug = debug self.liststore = [ ] # QStandardItemModel[] stores the contents of the grids self.listcols = [] filters_display = { "Heroes": True, "Sites": True, #"Games" : True, #"Limits" : True, #"LimitSep" : True, #"LimitType" : True, #"Type" : True, "Seats": True, #"SeatSep" : True, "Dates": True, #"Groups" : True, #"GroupsAll" : True, #"Button1" : True, "Button2": True } self.stats_frame = None self.stats_vbox = None self.detailFilters = [] # the data used to enhance the sql select self.filters = Filters.Filters(self.db, display=filters_display) #self.filters.registerButton1Name(_("_Filters")) #self.filters.registerButton1Callback(self.showDetailFilter) self.filters.registerButton2Name(_("_Refresh Stats")) self.filters.registerButton2Callback(self.refreshStats) scroll = QScrollArea() scroll.setWidget(self.filters) # ToDo: store in config # ToDo: create popup to adjust column config # columns to display, keys match column name returned by sql, values in tuple are: # is column displayed, column heading, xalignment, formatting, celltype self.columns = [ ["siteName", True, _("Site"), 0.0, "%s", "str"] #,["tourney", False, _("Tourney"), 0.0, "%s", "str"] # true not allowed for this line , ["category", True, _("Cat."), 0.0, "%s", "str"], ["limitType", True, _("Limit"), 0.0, "%s", "str"], ["currency", True, _("Curr."), 0.0, "%s", "str"], ["buyIn", True, _("BuyIn"), 1.0, "%3.2f", "str"], ["fee", True, _("Fee"), 1.0, "%3.2f", "str"], ["playerName", False, _("Name"), 0.0, "%s", "str"] # true not allowed for this line (set in code) , ["tourneyCount", True, _("#"), 1.0, "%1.0f", "str"], ["itm", True, _("ITM%"), 1.0, "%3.2f", "str"], ["_1st", False, _("1st"), 1.0, "%1.0f", "str"], ["_2nd", True, _("2nd"), 1.0, "%1.0f", "str"], ["_3rd", True, _("3rd"), 1.0, "%1.0f", "str"], ["unknownRank", True, _("Rank?"), 1.0, "%1.0f", "str"], ["spent", True, _("Spent"), 1.0, "%3.2f", "str"], ["won", True, _("Won"), 1.0, "%3.2f", "str"], ["roi", True, _("ROI%"), 1.0, "%3.0f", "str"], ["profitPerTourney", True, _("$/Tour"), 1.0, "%3.2f", "str"] ] self.stats_frame = QFrame() self.stats_frame.setLayout(QVBoxLayout()) self.stats_vbox = QSplitter(Qt.Vertical) self.stats_frame.layout().addWidget(self.stats_vbox) # self.fillStatsFrame(self.stats_vbox) #self.main_hbox.pack_start(self.filters.get_vbox()) #self.main_hbox.pack_start(self.stats_frame, expand=True, fill=True) self.addWidget(scroll) self.addWidget(self.stats_frame) self.setStretchFactor(0, 0) self.setStretchFactor(1, 1)