def data(self, index, role):
     basedata = QFileSystemModel.data(self, index, role)
     if role == 1 and ospath.isfile(self.filePath(index)):
         initial = QPixmap(self.filePath(index))
         if not initial.isNull():
             return QIcon(initial.scaled(16, 16))
     return basedata
 def __init__(self, mainWindow):
     super(QDockWidget, self).__init__(mainWindow)
     self.setWindowTitle(self.tr("Dice"))
     self.realwidget = QWidget(
         mainWindow
     )  #I messed up on the initial setup and was too lazy to rename everything.
     self.widget = QGridLayout()
     self.diceArea = QListWidget(mainWindow)
     try:
         self.load(jsonload(ospath.join(SAVE_DIR, "dice.rgd")))
     except:
         self.macros = [
             QListWidgetItem(QIcon('data/dice.png'), "Sample: 2d6"),
             QListWidgetItem(QIcon('data/dice.png'), "Sample: 4k2"),
             QListWidgetItem(QIcon('data/dice.png'), "Sample: 1dn3")
         ]
     for m in self.macros:
         self.diceArea.addItem(m)
     self.diceArea.currentRowChanged.connect(self.changeCurrentMacro)
     self.rollbutton = QPushButton(self.tr("Roll"), mainWindow)
     self.rollbutton.setToolTip(
         self.tr("Roll dice according to the selected macro."))
     self.addmacrobutton = QPushButton(self.tr("Add Macro"), mainWindow)
     self.addmacrobutton.setToolTip(
         self.tr("Add a new macro via a dialog box."))
     self.removemacrobutton = QPushButton(self.tr("Delete Macro"),
                                          mainWindow)
     self.removemacrobutton.setToolTip(
         self.tr("Remove the currently selected macro."))
     self.rollbutton.clicked.connect(self.rollDice)
     self.addmacrobutton.clicked.connect(self.summonMacro)
     self.removemacrobutton.clicked.connect(self.removeCurrentMacro)
     self.widget.addWidget(self.diceArea, 0, 0)
     self.widget.addWidget(self.rollbutton, 1, 0)
     self.widget.addWidget(self.addmacrobutton, 2, 0)
     self.widget.addWidget(self.removemacrobutton, 3, 0)
     self.realwidget.setLayout(self.widget)
     self.setWidget(self.realwidget)
     self.setObjectName("Dice Widget")
     mainWindow.addDockWidget(Qt.BottomDockWidgetArea, self)
     self.close()
     self.currentMacro = -1
Exemple #3
0
    def __init__(self):
        '''
		Only initialize critical components(like opengl) here, use start() for anything else
		'''
        QMainWindow.__init__(self)

        self.setWindowTitle("RandomGameGenerator")
        self.setObjectName("MainWindow")
        try:
            self.setWindowIcon(QIcon(path.join("data", "rgglogo2.png")))
        except:
            pass

        self.glwidget = GLWidget(self)
        self.setCentralWidget(self.glwidget)

        self.drawTimer = QTimer()
        self.drawTimer.timeout.connect(self.drawTimerTimeout)
        try:
            js = jsonload(path.join(SAVE_DIR, "ui_settings.rgs"))
            drawtimer = loadInteger('init.drawtimer', js.get('drawtimer'))
            self.drawTimer.start(drawtimer)
        except:
            self.drawTimer.start(20)
Exemple #4
0
    def __init__(self,
                 mapExistenceCheck=None,
                 pogExistenceCheck=None,
                 charExistenceCheck=None):

        main = mainWindow

        self.menubar = main.menuBar()

        self.mapExistenceCheck = mapExistenceCheck
        self.pogExistenceCheck = pogExistenceCheck
        self.charExistenceCheck = charExistenceCheck

        # ACTIONS

        self.newMapAct = QAction(translate("menubar", "&New Map..."), main)
        self.newMapAct.setShortcut("Ctrl+N")

        self.loadMapAct = QAction(translate("menubar", "Load Map..."), main)
        #self.loadMapAct.setShortcut("Ctrl+L")

        self.saveMapAct = QAction(translate("menubar", "Save Map As..."), main)
        #self.saveMapAct.setShortcut("Ctrl+S")

        self.closeSpecificMapAct = QAction(translate("menubar", "Close Map"),
                                           main)

        self.closeMapAct = QAction(translate("menubar", "&Close All Maps"),
                                   main)
        self.closeMapAct.setShortcut("Ctrl+Shift+W")

        self.loadSessAct = QAction(translate("menubar", "&Load Session..."),
                                   main)
        self.loadSessAct.setShortcut("Ctrl+L")

        self.saveSessAct = QAction(translate("menubar", "&Save Session As..."),
                                   main)
        self.saveSessAct.setShortcut("Ctrl+S")

        self.clearSessAct = QAction(translate("menubar", "Clear Session"),
                                    main)

        self.deletePogsAct = QAction(translate("menubar", "Delete All Pogs"),
                                     main)

        self.saveCharsAct = QAction(
            translate("menubar", "Save IC Characters As..."), main)

        self.loadCharsAct = QAction(
            translate("menubar", "Load IC Characters..."), main)

        self.gfxSettingsAct = QAction(
            translate("menubar", "Configure Graphics..."), main)

        self.drawTimerSettingsAct = QAction(
            translate("menubar", "Configure FPS..."), main)

        self.hostGameAct = QAction(translate("menubar", "&Host Game..."), main)
        self.hostGameAct.setShortcut("Ctrl+H")

        self.joinGameAct = QAction(translate("menubar", "&Join Game..."), main)
        self.joinGameAct.setShortcut("Ctrl+J")

        self.disconnectAct = QAction(translate("menubar", "&Disconnect"), main)
        self.disconnectAct.setShortcut("Ctrl+D")

        self.sendFileAct = QAction(translate("menubar", "Send file..."), main)

        self.createSurveyAct = QAction(
            translate("menubar", "Create Survey..."), main)

        self.aboutAct = QAction(translate("menubar", "&About"), main)
        self.aboutAct.setShortcut("Ctrl+A")

        self.thicknessOneAct = QAction(translate("menubar", "&One"), main)
        self.thicknessTwoAct = QAction(translate("menubar", "&Two"), main)
        self.thicknessThreeAct = QAction(translate("menubar", "&Three"), main)

        self.toggleAlertsAct = QAction(
            translate("menubar", "Chat Username Notify"), main)
        self.toggleAlertsAct.setCheckable(True)
        self.toggleAlertsAct.setChecked(True)

        self.toggleTimestampsAct = QAction(
            translate("menubar", "OOC Chat Timestamps"), main)
        self.toggleTimestampsAct.setCheckable(True)
        self.toggleTimestampsAct.setChecked(False)

        self.toggleRightclickAct = QAction(
            translate("menubar", "Right-Click Opens Pog Ctrl-Click Menu"),
            main)
        self.toggleRightclickAct.setCheckable(True)
        self.toggleRightclickAct.setChecked(True)

        self.lockToGridAct = QAction(
            translate("menubar", "Lock Pogs to Map Grid"), main)
        self.lockToGridAct.setCheckable(True)
        self.lockToGridAct.setChecked(False)

        try:
            js = jsonload(path.join(SAVE_DIR, "ui_settings.rgs"))
            if loadString('chatWidget.notify', js.get('notify')) == "Off":
                self.toggleAlertsAct.setChecked(False)
        except:
            pass

        try:
            js = jsonload(path.join(SAVE_DIR, "ui_settings.rgs"))
            if loadString('chatWidget.rightclick',
                          js.get('rightclick')) == "Off":
                self.toggleRightclickAct.setChecked(False)
        except:
            pass

        try:
            js = jsonload(path.join(SAVE_DIR, "ui_settings.rgs"))
            if loadString('chatWidget.timestamp', js.get('timestamp')) == "On":
                self.toggleTimestampsAct.setChecked(True)
        except:
            pass

        try:
            js = jsonload(path.join(SAVE_DIR, "ui_settings.rgs"))
            if loadString('chatWidget.gridlock', js.get('gridlock')) == "On":
                self.lockToGridAct.setChecked(True)
        except:
            pass

        self.setTimestampFormatAct = QAction(
            translate("menubar", "Set Timestamp Format..."), main)

        self.portraitMenu = QAction(
            translate("menubar", "Set IC Portrait Size..."), main)

        self.selectIcon = QAction(QIcon("./data/FAD-select-icon.png"),
                                  "Select Tool", main)
        self.selectIcon.setShortcut("Ctrl+T")
        self.selectIcon.setToolTip("Select Tool (Ctrl+T)")

        #self.moveIcon = QAction(QIcon("./data/FAD-move-icon.png"), "Move Tool", main)
        #self.moveIcon.setShortcut("Ctrl+M")
        #self.moveIcon.setToolTip("Move Tool (Ctrl+M)")

        self.drawIcon = QAction(QIcon("./data/FAD-freehand-icon.png"),
                                "Draw Tool", main)
        self.drawIcon.setShortcut("Ctrl+E")
        self.drawIcon.setToolTip("Draw Tool (Ctrl+E)")

        self.deleteIcon = QAction(QIcon("./data/FAD-eraser-icon.png"),
                                  "Delete Tool", main)
        self.deleteIcon.setShortcut("Ctrl+R")
        self.deleteIcon.setToolTip("Delete Tool (Ctrl+R)")

        # MENUS

        fileMenu = QMenu(translate("menubar", "&File"), main)
        fileMenu.addAction(self.newMapAct)
        fileMenu.addAction(self.loadMapAct)
        fileMenu.addAction(self.saveMapAct)
        fileMenu.addSeparator()
        fileMenu.addAction(self.closeSpecificMapAct)
        fileMenu.addAction(self.closeMapAct)
        fileMenu.addSeparator()
        fileMenu.addAction(self.deletePogsAct)
        fileMenu.addSeparator()
        fileMenu.addAction(self.saveCharsAct)
        fileMenu.addAction(self.loadCharsAct)
        fileMenu.addSeparator()
        fileMenu.addAction(self.saveSessAct)
        fileMenu.addAction(self.loadSessAct)
        fileMenu.addAction(self.clearSessAct)

        self.mapExistsActs = [
            self.saveMapAct, self.closeSpecificMapAct, self.closeMapAct
        ]
        self.pogExistsActs = [
            self.deletePogsAct,
        ]
        self.characterExistsActs = [
            self.saveCharsAct,
        ]

        self.internetMenu = QMenu(translate("menubar", "&Internet"), main)
        self.internetMenu.addAction(self.hostGameAct)
        self.internetMenu.addAction(self.joinGameAct)
        self.internetMenu.addSeparator()
        self.internetMenu.addAction(self.createSurveyAct)
        self.internetMenu.addAction(self.sendFileAct)
        self.internetMenu.addSeparator()
        self.internetMenu.addAction(self.disconnectAct)

        self.connectedActs = [
            self.createSurveyAct, self.sendFileAct, self.disconnectAct
        ]
        self.disconnectedActs = [self.hostGameAct, self.joinGameAct]

        self.thicknessMenu = QMenu(translate("menubar", "&Thickness"), main)
        for x in range(1, 11):
            self.thicknessMenu.addAction(QAction(str(x), main))

        self.colourMenu = QMenu(translate("menubar", "&Colour"), main)
        #Don't translate colour names yet
        self.colourMenu.addAction(QAction("White", main))
        self.colourMenu.addAction(QAction("Red", main))
        self.colourMenu.addAction(QAction("Orange", main))
        self.colourMenu.addAction(QAction("Yellow", main))
        self.colourMenu.addAction(QAction("Green", main))
        self.colourMenu.addAction(QAction("Blue", main))
        self.colourMenu.addAction(QAction("Purple", main))
        self.colourMenu.addAction(QAction("Black", main))
        self.colourMenu.addAction(QAction("Custom...", main))

        drawMenu = QMenu(translate("menubar", "&Draw"), main)
        drawMenu.addMenu(self.thicknessMenu)
        drawMenu.addMenu(self.colourMenu)

        self.stylesMenu = QMenu(translate("menubar", "&Styles"), main)
        for style in list(sheets.keys()):
            act = QAction(style, main)
            act.isDark = sheets[style][1]
            self.stylesMenu.addAction(act)

        self.langMenu = QMenu(translate("menubar", "&Language"), main)
        ned = QAction(translate("menubar", "Dutch"), main)
        ned.setIconText("Dutch")
        self.langMenu.addAction(ned)
        eng = QAction(translate("menubar", "English"), main)
        eng.setIconText("English")
        self.langMenu.addAction(eng)
        nhn = QAction(translate("menubar", "Japanese"), main)
        nhn.setIconText("Japanese")
        self.langMenu.addAction(nhn)
        deu = QAction(translate("menubar", "German"), main)
        deu.setIconText("German")
        self.langMenu.addAction(deu)

        self.optionsMenu = QMenu(translate("menubar", "&Options"), main)
        self.optionsMenu.addMenu(self.langMenu)
        self.optionsMenu.addMenu(self.stylesMenu)
        self.optionsMenu.addSeparator()
        self.optionsMenu.addAction(self.toggleAlertsAct)
        self.optionsMenu.addAction(self.toggleTimestampsAct)
        self.optionsMenu.addAction(self.toggleRightclickAct)
        self.optionsMenu.addAction(self.lockToGridAct)
        self.optionsMenu.addAction(self.setTimestampFormatAct)
        self.optionsMenu.addAction(self.portraitMenu)
        self.optionsMenu.addAction(self.gfxSettingsAct)
        self.optionsMenu.addAction(self.drawTimerSettingsAct)

        self.windowMenu = QMenu(translate("menubar", "Window"), main)

        self.helpMenu = QMenu(translate("menubar", "&Help"), main)
        self.helpMenu.addAction(self.aboutAct)

        # MENUBAR

        self.menubar.addMenu(fileMenu)
        self.menubar.addMenu(self.internetMenu)
        self.menubar.addMenu(drawMenu)
        self.menubar.addMenu(self.optionsMenu)
        if list(int(r) for r in PYQT_VERSION_STR.split(".")) < [4, 8, 0]:
            warning = QMessageBox()
            warning.setText("".join((
                "Your version of PyQt (", PYQT_VERSION_STR,
                ") is incompatible with RGG's Window menu, which requires 4.8.0 or newer. Right-click on the menu bar to get an alternate menu."
            )))
            warning.exec_()
        else:
            self.menubar.addMenu(self.windowMenu)
        self.menubar.addMenu(self.helpMenu)
        self.menubar.addSeparator()
        self.menubar.addAction(self.selectIcon)
        #self.menubar.addAction(self.moveIcon)
        self.menubar.addAction(self.drawIcon)
        self.menubar.addAction(self.deleteIcon)

        # EVENTS

        self.selectIconClicked()
        self.selectIcon.triggered.connect(self.selectIconClicked)
        #self.moveIcon.triggered.connect(self.moveIconClicked)
        self.drawIcon.triggered.connect(self.drawIconClicked)
        self.deleteIcon.triggered.connect(self.deleteIconClicked)

        fileMenu.aboutToShow.connect(self.updateFileMenu)
        self.internetMenu.aboutToShow.connect(self.updateInternetMenu)
        self.windowMenu.aboutToShow.connect(self.updateWidgetMenu)

        self.aboutAct.triggered.connect(self.about)
Exemple #5
0
 def deleteIconClicked(self):
     self.resetIcons()
     self.deleteIcon.setIcon(QIcon("./data/FAD-eraser-icon-selected.png"))
     self.selectedIcon = ICON_DELETE
Exemple #6
0
 def drawIconClicked(self):
     self.resetIcons()
     self.drawIcon.setIcon(QIcon("./data/FAD-freehand-icon-selected.png"))
     self.selectedIcon = ICON_DRAW
Exemple #7
0
 def moveIconClicked(self):
     self.resetIcons()
     self.moveIcon.setIcon(QIcon("./data/FAD-move-icon-selected.png"))
     self.selectedIcon = ICON_MOVE
Exemple #8
0
 def selectIconClicked(self):
     self.resetIcons()
     self.selectIcon.setIcon(QIcon("./data/FAD-select-icon-selected.png"))
     self.selectedIcon = ICON_SELECT
Exemple #9
0
 def resetIcons(self):
     self.selectIcon.setIcon(QIcon("./data/FAD-select-icon.png"))
     #self.moveIcon.setIcon(QIcon("./data/FAD-move-icon.png"))
     self.drawIcon.setIcon(QIcon("./data/FAD-freehand-icon.png"))
     self.deleteIcon.setIcon(QIcon("./data/FAD-eraser-icon.png"))
 def addMacro(self, mac, macname):
     self.macros.append(
         QListWidgetItem(QIcon('data/dice.png'), macname + ': ' + mac))
     self.diceArea.addItem(self.macros[len(self.macros) - 1])
     jsondump(self.dump(), ospath.join(SAVE_DIR, "dice.rgd"))
 def _addMacro(self, macro):
     self.macros.append(QListWidgetItem(QIcon('data/dice.png'), macro))
     self.diceArea.addItem(self.macros[len(self.macros) - 1])