Example #1
0
    def _createUi(self, q, readonly):

        layout = QtWidgets.QVBoxLayout()

        # Header
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.searchEdit)
        row.addWidget(self.searchLabel)
        row.addWidget(self.searchButton)
        row.addWidget(self.pasteButton)
        layout.addLayout(row)

        # Site
        grid = QtWidgets.QGridLayout()
        r = c = 0
        grid.addWidget(self.trailersButton, r, c)
        c += 1
        grid.addWidget(self.scapeButton, r, c)
        c += 1
        grid.addWidget(self.holysealButton, r, c)
        c += 1
        grid.addWidget(self.freemButton, r, c)

        r += 1
        c = 0
        grid.addWidget(self.getchuButton, r, c)
        c += 1
        grid.addWidget(self.melonButton, r, c)
        c += 1
        grid.addWidget(self.gyuttoButton, r, c)
        c += 1
        grid.addWidget(self.digiketButton, r, c)
        c += 1
        grid.addWidget(self.dmmButton, r, c)
        c += 1
        grid.addWidget(self.dlsiteButton, r, c)

        r += 1
        c = 0
        grid.addWidget(self.amazonButton, r, c)
        c += 1
        grid.addWidget(self.steamButton, r, c)

        layout.addLayout(grid)

        # Body
        layout.addWidget(self.modelView)

        # Footer
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.filterEdit)
        row.addWidget(self.filterLabel)
        row.addWidget(self.browseButton)
        if not readonly:
            row.addWidget(self.saveButton)
        layout.addLayout(row)

        q.setLayout(layout)
Example #2
0
  def __init__(self, parent=None):
    super(IntroPage, self).__init__(parent)
    self.setTitle(my.tr("Add a new visual novel"))

    url = config.URL_READER_DEMO

    introEdit = QtWidgets.QTextBrowser()
    introEdit.setReadOnly(True)
    introEdit.setOpenExternalLinks(True)
    introEdit.setHtml(my.tr(
"""This wizard will help you add new visual novel step by step.
<br/><br/>

An Internet access is not indispensable, but is recommended.
With the Internet, the wizard will be able to search the online database for game settings, which will save you some time for setting things up,
<br/><br/>

Note:
On Windows Vista or Windows 7 where UAC is enabled,
if the target game is launched with <b>admin privilege</b>
(i.e., when you run the game, the Windows will black out, and ask you blablabla and "YES" or "NO" to continue),
<b>please open Visual Novel Reader as admin as well</b>!
<br/><br/>

Here's a <a href="%s">demo on youtube</a> that might be helpful.""") % url)

    self._onlineLabel = QtWidgets.QLabel()

    onlineLabel = QtWidgets.QLabel(my.tr("Current Internet status") + ": ")
    onlineLabel.setBuddy(self._onlineLabel)

    self._elevateLabel = QtWidgets.QLabel(
        tr_("Not administrator") if features.ADMIN == False else
        tr_("Administrator"))
    skqss.class_(self._elevateLabel, 'warning' if features.ADMIN == False else 'normal')
    elevateLabel = QtWidgets.QLabel(my.tr("Current privileges") + ": ")
    elevateLabel.setBuddy(self._elevateLabel)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introEdit)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(onlineLabel)
    row.addWidget(self._onlineLabel)
    row.addStretch()
    layout.addLayout(row)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(elevateLabel)
    row.addWidget(self._elevateLabel)
    row.addStretch()
    layout.addLayout(row)

    self.setLayout(layout)
Example #3
0
 def scoreRow(self):
     row = QtWidgets.QHBoxLayout()
     for w in self.scoreEdits.itervalues():
         row.addWidget(w)
     row.addStretch()
     row.setContentsMargins(0, 0, 0, 0)
     return skwidgets.SkLayoutWidget(row)
Example #4
0
  def __init__(self, parent=None):
    super(IntroPage, self).__init__(parent)
    self.setTitle(self.tr("Add or remove features"))

    introLabel = QtWidgets.QLabel(self.tr("""\
This wizard will direct you to add or remove features.

You can remove the features you don't need to save disk space.
Internet access is needed if you want to add new features.
"""))
    introLabel.setWordWrap(True)

    self._onlineLabel = QtWidgets.QLabel()

    onlineLabel = QtWidgets.QLabel(self.tr("Current Internet status") + ": ")
    onlineLabel.setBuddy(self._onlineLabel)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introLabel)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(onlineLabel)
    row.addWidget(self._onlineLabel)
    row.addStretch()
    layout.addLayout(row)

    self.setLayout(layout)
Example #5
0
  def __init__(self, parent=None):
    super(SelectFilePage, self).__init__(parent)
    self.setTitle(my.tr("Select game executable"))

    introLabel = QtWidgets.QLabel(my.tr("Please select the game executable's location"))
    introLabel.setWordWrap(True)

    self._edit = QtWidgets.QLineEdit()
    self._edit.setPlaceholderText(tr_("Location"))
    self._edit.textChanged.connect(self._validateEdit)
    self._edit.textChanged.connect(self.completeChanged)

    self._browseButton = QtWidgets.QPushButton(tr_("Browse") + " ...")
    skqss.class_(self._browseButton, 'btn btn-info')
    self._browseButton.clicked.connect(self._browse)

    #self._applocButton = QtWidgets.QCheckBox(my.tr("Open in Japanese locale (0x0411) using AppLocale"))
    #self._applocButton.toggled.connect(settings.global_().setApplocEnabled)

    #self._tzButton = QtWidgets.QCheckBox(my.tr("Open in Japanese time zone (+9 Asia/Tokyo)"))
    #self._tzButton.toggled.connect(settings.global_().setTimeZoneEnabled)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introLabel)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(self._edit)
    row.addWidget(self._browseButton)
    layout.addLayout(row)
    #layout.addWidget(self._applocButton)
    #layout.addWidget(self._tzButton)
    self.setLayout(layout)
Example #6
0
    def locationGroup(self):
        introLabel = QtWidgets.QLabel(
            my.
            tr("""You can specify a different executable to launch the game process.
By default it is the same as the executable of the game process."""))
        introLabel.setWordWrap(True)

        #launchLabel = QtWidgets.QLabel(mytr_("Launcher"))
        #launchLabel.setBuddy(self.launchEdit)

        browseLaunchButton = QtWidgets.QPushButton(tr_("Browse"))
        browseLaunchButton.clicked.connect(self._browseLaunchPath)
        skqss.class_(browseLaunchButton, 'btn btn-info')

        layout = QtWidgets.QVBoxLayout()
        launchRow = QtWidgets.QHBoxLayout()
        #launchRow.addWidget(launchLabel)
        launchRow.addWidget(self.launchEdit)
        launchRow.addWidget(browseLaunchButton)
        launchRow.addWidget(self.resetLaunchButton)
        layout.addLayout(launchRow)
        layout.addWidget(introLabel)

        ret = QtWidgets.QGroupBox(my.tr("Alternative launcher location"))
        ret.setLayout(layout)
        return ret
Example #7
0
  def _createUi(self, q):
    grid = QtWidgets.QGridLayout()
    grid.setHorizontalSpacing(0)
    grid.setVerticalSpacing(0)

    # These keys must be consistent with pyhk

    KEYBOARD  = (
      ('Esc',  'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12'), #'Escape'
      ('`',    '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=', 'Back'),
      ('Cap',  'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '\\'),
      (None,   'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', "'"), # 'Enter',
      (None,   'Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/'),
      #('Up', 'Down', 'Left', 'Right'),
    )

    r = 0
    for keys in KEYBOARD:
      for col,key in enumerate(keys):
        if key:
          btn = self.createKeyButton(key)
          grid.addWidget(btn, r, col)
      r += 1

    WIDE_COL = 2

    KEYBOARD2  = (
      ('Shift', 'Ctrl', 'Alt'), # 'Space'
      ('Insert', 'Delete', 'Home', 'End', 'PageUp', 'PageDown'),
      #('mouse left', 'mouse middle', 'mouse right'),
    )
    for keys in KEYBOARD2:
      for i,key in enumerate(keys):
        col = i * WIDE_COL
        if key:
          btn = self.createKeyButton(key)
          grid.addWidget(btn, r, col, 1, WIDE_COL)
      r += 1

    layout = QtWidgets.QVBoxLayout()
    layout.addLayout(grid)

    row = QtWidgets.QHBoxLayout()
    row.addStretch()
    row.addWidget(self.delButton)
    row.addWidget(self.cancelButton)
    row.addWidget(self.saveButton)
    layout.addLayout(row)

    #buttonBox = QtWidgets.QDialogButtonBox()
    #buttonBox.addButton(self.delButton, buttonBox.ResetRole)
    #buttonBox.addButton(self.cancelButton, buttonBox.RejectRole)
    #buttonBox.addButton(self.saveButton, buttonBox.AcceptRole)
    #layout.addWidget(buttonBox)

    q.setLayout(layout)

    shortcut('ctrl+s', self.save, parent=q)
Example #8
0
 def addressWidget(self):
     row = QtWidgets.QHBoxLayout()
     row.addWidget(self.navigationToolBar)
     row.addWidget(self.addressEdit, 1)
     row.addWidget(self.optionToolBar)
     row.setContentsMargins(4, 5, 4, 2)
     ret = QtWidgets.QWidget()
     ret.setLayout(row)
     return ret
Example #9
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.textEdit)

        row = QtWidgets.QHBoxLayout()
        row.addStretch()
        row.addWidget(self.pasteButton)
        row.addWidget(self.saveButton)
        layout.addLayout(row)
        q.setLayout(layout)
Example #10
0
    def createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.startButton)
        row.addWidget(self.stopButton)
        row.addWidget(self.languageEdit)
        row.addStretch()
        row.addWidget(self.ttsButton)
        layout.addLayout(row)

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.autoStopButton)
        row.addStretch()
        row.addWidget(self.deviceEdit)
        layout.addLayout(row)

        layout.addWidget(self.textEdit)

        q.setLayout(layout)
Example #11
0
  def __init__(self, wiz):
    super(SelectWindowPage, self).__init__(wiz)
    self.setTitle(my.tr("Select game window"))

    introLabel = QtWidgets.QLabel(my.tr(
      "Press START and  CLICK the game window, or press the STOP button to cancel."
    ))
    introLabel.setWordWrap(True)

    self._picker = winpicker.WindowPicker(self)
    self._picker.windowClicked.connect(self._onWindowClicked)
    wiz.visibleChanged.connect(self._onVisibleChanged)

    self._windowEdit = QtWidgets.QLineEdit()
    self._windowEdit.setReadOnly(True)
    self._windowEdit.setPlaceholderText(my.tr("Not found, or not a game window"))
    self._windowEdit.setToolTip(my.tr("Game window"))
    windowLabel = QtWidgets.QLabel(my.tr("Game window") + ":")
    windowLabel.setBuddy(self._windowEdit)

    self._nameEdit = QtWidgets.QLineEdit()
    self._nameEdit.setReadOnly(True)
    self._nameEdit.setPlaceholderText(tr_("Not found"))
    self._nameEdit.setToolTip(tr_("Window title"))
    nameLabel = QtWidgets.QLabel("=> " + tr_("Window title") + ":")
    nameLabel.setBuddy(self._nameEdit)

    self._startButton = QtWidgets.QPushButton("\n\n" + tr_("START") + "\n\n")
    self._startButton.clicked.connect(self._start)
    skqss.class_(self._startButton, 'btn btn-primary')

    self._stopButton = QtWidgets.QPushButton("\n\n" + tr_("STOP") + "\n\n")
    self._stopButton.clicked.connect(self._stop)
    skqss.class_(self._stopButton, 'btn btn-danger')

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introLabel)
    buttons = QtWidgets.QHBoxLayout()
    buttons.addWidget(self._startButton)
    buttons.addWidget(self._stopButton)
    buttons.setContentsMargins(10,10,10,10)
    layout.addLayout(buttons)

    grid = QtWidgets.QGridLayout()
    # 0
    grid.addWidget(windowLabel, 0, 0)
    grid.addWidget(self._windowEdit, 0, 1)
    # 1
    grid.addWidget(nameLabel)
    grid.addWidget(self._nameEdit)

    layout.addLayout(grid)
    self.setLayout(layout)
Example #12
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addStretch()
        row.addWidget(QtWidgets.QLabel(tr_("Language") + ":"))
        row.addWidget(self.languageEdit)
        layout.addLayout(row)

        layout.addWidget(self.contentEdit)

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.browseImageButton)
        row.addWidget(self.removeImageButton)
        row.addWidget(self.imageTitleEdit)
        row.addStretch()
        #row.addWidget(self.cancelButton)
        row.addWidget(self.saveButton)
        layout.addLayout(row)

        layout.setContentsMargins(5, 5, 5, 5)
        q.setLayout(layout)
Example #13
0
 def inspector(self):
     ret = SkStyleView()
     skqss.class_(ret, 'texture')
     layout = QtWidgets.QHBoxLayout()
     layout.addWidget(self.newPostButton)
     #layout.addWidget(self.newTopicButton)
     layout.addStretch()
     layout.addWidget(self.browseButton)
     #layout.addWidget(self.gameButton)
     layout.addWidget(self.refreshButton)
     ret.setLayout(layout)
     layout.setContentsMargins(4, 4, 4, 4)
     return ret
Example #14
0
    def _createUi(self, q):
        #url = "http://en.wikipedia.org/wiki/Regular_expression"
        url = "http://www.regular-expressions.info/lookaround.html"
        self.textEdit.appendHtml(
            """You can use this tester to play with the regular expression
(<a href="%s">%s</a>) used in the Shared Dictionary.
<br/><br/>

For example, "regular(?= exp)" will match all "regular" before " exp".
""" % (url, url))

        self.patternEdit.setText("regular(?= exp)")
        self.replaceEdit.setText("HELLO WORLD")

        for sig in (
                self.textEdit.textChanged,
                self.patternEdit.textChanged,
                self.replaceEdit.textChanged,
                self.regexCheckBox.toggled,
                self.icaseCheckBox.toggled,
        ):
            sig.connect(self._refresh)

        layout = QtWidgets.QVBoxLayout()

        grid = QtWidgets.QGridLayout()

        # 0
        grid.addWidget(create_label(tr_("Pattern")), 0, 0)
        grid.addWidget(self.patternEdit, 0, 1)

        # 1
        grid.addWidget(create_label(tr_("Translation")))
        grid.addWidget(self.replaceEdit)

        # 2
        grid.addWidget(create_label(tr_("Status")))
        grid.addWidget(self.messageEdit)

        layout.addLayout(grid)

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.regexCheckBox)
        row.addWidget(self.icaseCheckBox)
        layout.addLayout(row)

        splitter = QtWidgets.QSplitter(Qt.Vertical)
        splitter.addWidget(self.textEdit)
        splitter.addWidget(self.textView)
        layout.addWidget(splitter)
        q.setLayout(layout)
Example #15
0
    def textGroup(self):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(QtWidgets.QLabel(tr_("Language") + ":"))
        row.addWidget(self.languageEdit)
        row.addStretch()
        row.addWidget(QtWidgets.QLabel(tr_("Encoding") + ":"))
        row.addWidget(self.encodingEdit)
        layout.addLayout(row)

        ret = QtWidgets.QGroupBox(mytr_("Game language"))
        ret.setLayout(layout)
        return ret
Example #16
0
    def embedGroup(self):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.embedEnableButton)
        layout.addLayout(row)

        ret = QtWidgets.QGroupBox(mytr_("Embed translation"))
        ret.setLayout(layout)

        ss = settings.global_()
        ret.setEnabled(ss.isGameAgentEnabled())
        ss.gameAgentEnabledChanged.connect(ret.setEnabled)
        return ret
Example #17
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.inputEdit)
        row.addWidget(self.submitButton)
        row.addWidget(self.pasteButton)
        row.addWidget(self.clearButton)
        row.addWidget(self.speakButton)
        layout.addLayout(row)

        layout.addWidget(self.resultEdit)

        q.setLayout(layout)
Example #18
0
 def inspector(self):
     ret = SkStyleView()
     skqss.class_(ret, 'texture')
     layout = QtWidgets.QHBoxLayout()
     layout.addWidget(self.launchButton)
     layout.addWidget(self.subButton)
     layout.addWidget(self.topicButton)
     layout.addWidget(self.nameButton)
     layout.addStretch()
     layout.addWidget(self.helpButton)
     layout.addWidget(self.browseButton)
     layout.addWidget(self.editButton)
     layout.addWidget(self.refreshButton)  # disabled
     ret.setLayout(layout)
     layout.setContentsMargins(4, 4, 4, 4)
     return ret
Example #19
0
    def hookGroup(self):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.hookEdit)
        row.addWidget(self.hookButton)
        layout.addLayout(row)

        label = QtWidgets.QLabel(
            my.
            tr("You can edit hook code in Text Settings after the game is launched."
               ))
        label.setWordWrap(True)
        layout.addWidget(label)

        ret = QtWidgets.QGroupBox(
            "%s (%s)" % (my.tr("Game-specific hook code"), tr_("read-only")))
        ret.setLayout(layout)
        return ret
Example #20
0
    def loaderGroup(self):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(QtWidgets.QLabel(tr_("Locale") + ":"))
        row.addWidget(self.launchLanguageEdit)
        row.addStretch()
        layout.addLayout(row)

        layout.addWidget(self.defaultLoaderButton)
        layout.addWidget(self.disableLoaderButton)
        layout.addWidget(self.applocButton)
        layout.addWidget(self.localeEmulatorButton)
        layout.addWidget(self.ntleasButton)
        layout.addWidget(self.ntleaButton)
        layout.addWidget(self.localeSwitchButton)

        ret = QtWidgets.QGroupBox(my.tr("Preferred game loader"))
        ret.setLayout(layout)
        return ret
Example #21
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()
        b = cancelButton = QtWidgets.QPushButton(tr_("Cancel"))
        skqss.class_(b, 'btn btn-default')
        b.clicked.connect(q.hide)

        b = updateButton = QtWidgets.QPushButton(tr_("Update"))
        b.setToolTip(tr_("Update"))
        skqss.class_(updateButton, 'btn btn-primary')
        b.clicked.connect(q.hide)
        b.clicked.connect(self.openUpdate)
        b.setDefault(True)

        infoLabel = QtWidgets.QLabel(
            my.tr("""Found new updates for Visual Novel Reader.
Do you want to update now?
You can find recent changes here:"""))
        layout.addWidget(infoLabel)

        linkstyle = 'color:#428bca'  # bootstrap btn-link
        url = 'http://sakuradite.com/changes/vnr'
        changesLabel = QtWidgets.QLabel(
            '<a href="{1}" style="{0}">{1}</a>'.format(linkstyle, url))
        changesLabel.setOpenExternalLinks(True)
        changesLabel.setAlignment(Qt.AlignHCenter)
        changesLabel.setToolTip(tr_("Recent changes"))
        layout.addWidget(changesLabel)

        layout.addStretch()

        row = QtWidgets.QHBoxLayout()
        row.addStretch()
        row.addWidget(cancelButton)
        row.addWidget(updateButton)
        layout.addLayout(row)

        q.setLayout(layout)
Example #22
0
  def __init__(self, parent=None):
    super(SelectProcessPage, self).__init__(parent)
    self.setTitle(my.tr("Select game process"))

    introLabel = QtWidgets.QLabel(my.tr("Please select game process"))
    introLabel.setWordWrap(True)

    self._refreshButton = QtWidgets.QPushButton(tr_("Refresh"))
    self._refreshButton.clicked.connect(self._refresh)
    skqss.class_(self._refreshButton, 'btn btn-success')

    self._table = SkFilterTableController(self)
    self._table.currentIndexChanged.connect(self.completeChanged)

    layout = QtWidgets.QVBoxLayout()
    layout.addWidget(introLabel)
    layout.addWidget(self._table.view())
    search = QtWidgets.QHBoxLayout()
    search.addWidget(self._table.filterEdit())
    search.addWidget(self._table.countLabel())
    search.addWidget(self._refreshButton)
    layout.addLayout(search)

    self.setLayout(layout)
Example #23
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        #tt = defs.threadtype(self.name)
        #ttip = i18n.threadtip(tt)

        #if self.name == defs.HCODE_THREAD_NAME:
        #  n = mytr_("H-code")
        #elif self.name in defs.CAONIMAGEBI_ENGINES:
        #  n = self.name + '<span style="color:red">%s</span>' % defs.CAONIMAGEBI_USERNAME
        #elif self.name in defs.OK123_ENGINES:
        #  n = self.name + '<span style="color:red">%s</span>' % defs.OK123_USERNAME
        #else:
        #  n = self.name

        title = """<span style="color:gray">%x</span>""" % self.signature
        #title = """%s <span style="color:gray">%x</span>""" % (n, self.signature)
        #enc = config.guess_thread_encoding(self.name)
        #if enc:
        #  title += """ <span style="color:#333">%s</span>""" % enc

        label = QtWidgets.QLabel(title)
        #label.setStyleSheet(SS_LABELS[tt])
        #label.setToolTip(ttip)

        # Must be consist with button rows
        self.buttonRow = skwidgets.SkButtonRow()

        b = self.buttonRow.addButton(
            mytr_("dialog"), tip=my.tr("This is main scenario"))  # scenario
        skqss.class_(b, 'btn btn-default btn-sm')
        b.toggled.connect(
            partial(
                lambda b, value: skqss.toggleclass(b, 'btn-primary', value),
                b))

        b = self.buttonRow.addButton(
            mytr_("name"), tip=my.tr("These are character names"))  # scenario
        skqss.class_(b, 'btn btn-default btn-sm')
        b.toggled.connect(
            partial(
                lambda b, value: skqss.toggleclass(b, 'btn-success', value),
                b))

        #b = self.buttonRow.addButton(tr_("other"),
        #    tip=my.tr("This is extra scenario"))   # other
        #skqss.class_(b, 'btn btn-default btn-sm')
        #b.toggled.connect(partial(lambda b, value:
        #    skqss.toggleclass(b, 'btn-info', value),
        #    b))

        #b = self.buttonRow.addButton(tr_("ignore"),
        #    tip=my.tr("Don't translate the text")) # ignored
        b = self.buttonRow.addButton(
            tr_("other"), tip=my.tr("This is extra scenario"))  # other
        skqss.class_(b, 'btn btn-default btn-sm')
        b.toggled.connect(
            partial(lambda b, value: skqss.toggleclass(b, 'btn-info', value),
                    b))
        self.buttonRow.setCurrentIndex(_TextThreadView.IGNORE_BUTTON_ROW)
        self.buttonRow.currentIndexChanged.connect(self._onSelectedRoleChanged)
        self.buttonRow.currentIndexChanged.connect(self.updateStyleSheet)

        self.textEdit = QtWidgets.QPlainTextEdit()
        #self.textEdit.setToolTip(mytr_("Game text"))
        #self.textEdit.setToolTip(ttip)
        self.textEdit.setReadOnly(True)
        self.textEdit.setMaximumHeight(TEXTEDIT_MAX_HEIGHT)
        self.textEdit.setMinimumWidth(TEXTEDIT_MIN_WIDTH)
        #self.textEdit.setStyleSheet(
        #    SS_TEXTEDIT_HOOK_IGNORED if self.name == defs.HCODE_THREAD_NAME else
        #    SS_TEXTEDIT_IGNORED)

        header = QtWidgets.QHBoxLayout()
        header.addWidget(self.buttonRow)
        header.addStretch()
        header.addWidget(label)
        layout.addLayout(header)
        layout.addWidget(self.textEdit)
        q.setLayout(layout)
Example #24
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        # Options
        grid = QtWidgets.QGridLayout()
        r = 0

        grid.addWidget(create_label("From"), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.sourceLanguageEdit)
        row.addWidget(
            self._createInfoLabel(
                my.tr("should always be Japanese for a Japanese game")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label("To"), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.targetLanguageEdit)
        row.addWidget(
            self._createInfoLabel(my.tr("target language to translate to")))
        grid.addLayout(row, r, 1)
        r += 1
        r += 1

        grid.addWidget(create_label(tr_("Type")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.typeEdit)
        row.addWidget(self.typeLabel)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Context")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.contextEdit)
        row.addWidget(
            self._createInfoLabel(my.tr("only enable under selected context")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Translator")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.hostEdit)
        row.addWidget(
            self._createInfoLabel(
                my.tr("only enable for selected translator")))
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Options")), r, 0)
        grid.addWidget(self.specialButton, r, 1)
        r += 1

        grid.addWidget(self.regexButton, r, 1)
        r += 1

        grid.addWidget(self.phraseButton, r, 1)
        r += 1

        grid.addWidget(self.icaseButton, r, 1)
        r += 1

        #grid.addWidget(self.syntaxButton, r, 1)
        #r += 1

        grid.addWidget(self.privateButton, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Pattern")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.patternEdit)
        row.addWidget(self.patternTtsButton)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Kanji")), r, 0)
        grid.addWidget(self.kanjiEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(tr_("Priority")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.priorityEdit)
        row.addWidget(self.priorityLabel)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Translation")), r, 0)
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.textEdit)
        row.addWidget(self.textTtsButton)
        grid.addLayout(row, r, 1)
        r += 1

        grid.addWidget(create_label(mytr_("Yomigana")), r, 0)
        grid.addWidget(self.yomiEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(mytr_("Ruby")), r, 0)
        grid.addWidget(self.rubyEdit, r, 1)  # span for two rows
        r += 1

        grid.addWidget(create_label(tr_("Role")), r, 0)
        grid.addWidget(self.roleEdit, r, 1)
        r += 1

        grid.addWidget(create_label(tr_("Comment")), r, 0)
        grid.addWidget(self.commentEdit, r, 1)
        r += 1

        layout.addLayout(grid)

        # Footer
        layout.addWidget(self.statusLabel)

        row = QtWidgets.QHBoxLayout()
        row.addStretch()
        row.addWidget(self.helpButton)
        row.addWidget(self.cancelButton)
        row.addWidget(self.saveButton)
        layout.addLayout(row)

        q.setLayout(layout)
Example #25
0
    def _createUi(self, q):
        layout = QtWidgets.QVBoxLayout()

        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.translateButton)
        row.addWidget(self.pasteButton)
        row.addWidget(self.speakButton)
        row.addWidget(self.translatorEdit)
        row.addWidget(self.fromLanguageEdit)
        row.addWidget(QtWidgets.QLabel(_RIGHTARROW))
        row.addWidget(self.toLanguageEdit)

        row.addWidget(QtWidgets.QLabel("("))
        row.addWidget(self.translatorLabel)
        #row.addWidget(QtWidgets.QLabel(":"))
        row.addWidget(self.fromLanguageLabel)
        row.addWidget(QtWidgets.QLabel(_RIGHTARROW))
        row.addWidget(self.toLanguageLabel)
        row.addWidget(QtWidgets.QLabel(")"))
        #row.addWidget(QtWidgets.QLabel(my.tr("Current game") + ":"))
        #row.addWidget(QtWidgets.QLabel("#"))
        row.addWidget(self.gameLabel)
        row.addStretch()
        row.addWidget(self.markButton)
        layout.addLayout(row)

        # First row
        grid = QtWidgets.QGridLayout()
        r = 0
        c = 0
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.textLabel)
        cell.addWidget(self.textEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.gameTextButton)
        row.addWidget(self.gameTextLabel)
        row.addStretch()
        cell.addLayout(row)
        cell.addWidget(self.gameTextEdit)
        grid.addLayout(cell, r, c)

        c += 2  # skip two columns

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.normalizedTextButton)
        row.addWidget(self.normalizedTextLabel)
        row.addStretch()
        cell.addLayout(row)
        cell.addWidget(self.normalizedTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.inputTextLabel)
        cell.addWidget(self.inputTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.encodedTextLabel)
        cell.addWidget(self.encodedTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.delegateTextLabel)
        cell.addWidget(self.delegateTextEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_RIGHTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.splitTextLabel)
        cell.addWidget(self.splitTextEdit)
        grid.addLayout(cell, r, c)

        # Second row

        r += 1
        c = 0
        label = QtWidgets.QLabel(_DOWNARROW)
        label.setAlignment(Qt.AlignCenter)
        grid.addWidget(label, r, c)

        c = 6 * 2 - 2  # totally six columns
        label = QtWidgets.QLabel(_DOWNARROW)
        label.setAlignment(Qt.AlignCenter)
        grid.addWidget(label, r, c)

        # Third row
        r += 1
        c = 0
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.directTranslationLabel)
        cell.addWidget(self.directTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(self.equalLabel, r, c)

        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.finalTranslationLabel)
        cell.addWidget(self.finalTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.outputTranslationLabel)
        cell.addWidget(self.outputTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.decodedTranslationLabel)
        cell.addWidget(self.decodedTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.outputSyntacticTranslationLabel)
        cell.addWidget(self.outputSyntacticTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.delegateTranslationLabel)
        cell.addWidget(self.delegateTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.jointTranslationLabel)
        cell.addWidget(self.jointTranslationEdit)
        grid.addLayout(cell, r, c)

        c += 1
        grid.addWidget(QtWidgets.QLabel(_LEFTARROW), r, c)
        c += 1
        cell = QtWidgets.QVBoxLayout()
        cell.addWidget(self.splitTranslationLabel)
        cell.addWidget(self.splitTranslationEdit)
        grid.addLayout(cell, r, c)

        layout.addLayout(grid)
        # Footer
        layout.addWidget(
            QtWidgets.QLabel(
                "%s: %s" %
                (tr_("Note"),
                 my.
                 tr("Procedures marked as {0} would utilize Shared Dictionary."
                    ).format(_TERM_STAR))))
        #my.tr("Procedures marked as {0} behave differently for different user languages.").format(_LANGUAGE_STAR))))))

        q.setLayout(layout)
Example #26
0
    def _createUi(self, q):
        self.userTab = _prefs.UserTab()
        self.textTab = _prefs.TextTab()
        self.ttsTab = _prefs.TtsTab()
        self.ocrTab = _prefs.OcrTab()
        #self.srTab = _prefs.SrTab()
        self.gameTab = _prefs.GameTab()
        self.shortcutsTab = _prefs.ShortcutsTab()
        self.uiTab = _prefs.UiTab()
        self.recordingsTab = _prefs.RecordingsTab()
        self.i18nTab = _prefs.I18nTab()
        self.engineTab = _prefs.EngineTab()
        self.internetTab = _prefs.InternetTab()
        self.featureTab = _prefs.FeatureTab()
        #self.pluginTab = _prefs.PluginTab()

        self.translationTab = _prefs.TranslationTab()
        self.machineTranslationTab = _prefs.MachineTranslationTab()
        self.dictionaryTranslationTab = _prefs.DictionaryTranslationTab()
        self.romanTranslationTab = _prefs.RomanTranslationTab()
        self.chineseTranslationTab = _prefs.ChineseTranslationTab()
        #self.translationScriptTab = _prefs.TranslationScriptTab()

        self.termTab = _prefs.TermTab()

        self.downloadsTab = _prefs.DownloadsTab()
        self.dictionaryDownloadsTab = _prefs.DictionaryDownloadsTab()
        self.launcherDownloadsTab = _prefs.LauncherDownloadsTab()
        self.fontDownloadsTab = _prefs.FontDownloadsTab()

        self.libraryTab = _prefs.LibraryTab()
        self.localeLibraryTab = _prefs.LocaleLibraryTab()
        self.translatorLibraryTab = _prefs.TranslatorLibraryTab()
        self.dictionaryLibraryTab = _prefs.DictionaryLibraryTab()
        self.ttsLibraryTab = _prefs.TtsLibraryTab()
        self.ocrLibraryTab = _prefs.OcrLibraryTab()

        #for t in self.itertabs():
        #  t.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
        #                  QtWidgets.QSizePolicy.Expanding)

        container = QtWidgets.QScrollArea()  # widget container
        container.setWidgetResizable(True)  # false by default
        container.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        container.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        #container.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        #container.setAlignment(Qt.AlignTop | Qt.AlignHCenter)

        self.controller = skmvc.SkWidgetTreeController(
            parent=q,
            container=container,
            data={
                'display':
                tr_("Preferences"),
                'children': [
                    {
                        'widget': self.userTab,
                        'user': self._indexWidget(self.userTab),
                        'decoration': rc.icon('pref-user'),
                        'display': tr_("Account"),
                        'toolTip': my.tr("User account"),
                    },
                    {
                        'widget': self.engineTab,
                        'user': self._indexWidget(self.engineTab),
                        #'display': u"%s (α)" % mytr_("Embedded"),
                        'display': mytr_("Embedded"),
                        'decoration': rc.icon('pref-config'),
                        'toolTip': my.tr("Embedded subtitles"),
                    },
                    {
                        'widget':
                        self.downloadsTab,
                        'user':
                        self._indexWidget(self.downloadsTab),
                        'decoration':
                        rc.icon('pref-download'),
                        'display':
                        tr_("Downloads"),
                        'toolTip':
                        my.tr("Download additional resources"),
                        'children': [
                            {
                                'widget':
                                self.launcherDownloadsTab,
                                'user':
                                self._indexWidget(self.launcherDownloadsTab),
                                'decoration':
                                rc.icon('pref-locale'),
                                'display':
                                tr_("Launch"),
                                'toolTip':
                                my.tr("Locale changers"),
                            },
                            {
                                'widget':
                                self.dictionaryDownloadsTab,
                                'user':
                                self._indexWidget(self.dictionaryDownloadsTab),
                                'decoration':
                                rc.icon('pref-dict'),
                                'display':
                                tr_("Dictionaries"),
                                'toolTip':
                                my.tr("Manage dictionaries"),
                            },
                            {
                                'widget': self.fontDownloadsTab,
                                'user':
                                self._indexWidget(self.fontDownloadsTab),
                                'decoration': rc.icon('pref-font'),
                                'display': tr_("Fonts"),
                                'toolTip': my.tr("Manage fonts"),
                            },
                        ]
                    },
                    {
                        'widget':
                        self.libraryTab,
                        'user':
                        self._indexWidget(self.libraryTab),
                        'decoration':
                        rc.icon('pref-library'),
                        'display':
                        tr_("Locations"),
                        'toolTip':
                        my.tr("Locations of external libraries"),
                        'children': [
                            {
                                'widget':
                                self.localeLibraryTab,
                                'user':
                                self._indexWidget(self.localeLibraryTab),
                                'decoration':
                                rc.icon('pref-locale'),
                                'display':
                                tr_("Launch"),
                                'toolTip':
                                my.tr("Locations of external locale changers"),
                            },
                            {
                                'widget':
                                self.translatorLibraryTab,
                                'user':
                                self._indexWidget(self.translatorLibraryTab),
                                'decoration':
                                rc.icon('pref-tr-path'),
                                'display':
                                tr_("Translators"),
                                'toolTip':
                                my.tr("Locations of external translators"),
                            },
                            {
                                'widget':
                                self.dictionaryLibraryTab,
                                'user':
                                self._indexWidget(self.dictionaryLibraryTab),
                                'decoration':
                                rc.icon('pref-dict'),
                                'display':
                                tr_("Dictionaries"),
                                'toolTip':
                                my.tr("Locations of external dictionary"),
                            },
                            {
                                'widget': self.ttsLibraryTab,
                                'user': self._indexWidget(self.ttsLibraryTab),
                                'decoration': rc.icon('pref-tts-path'),
                                'display': mytr_("TTS"),
                                'toolTip': my.tr("Locations of external TTS"),
                            },
                            {
                                'widget':
                                self.ocrLibraryTab,
                                'user':
                                self._indexWidget(self.ocrLibraryTab),
                                'decoration':
                                rc.icon('pref-ocr-path'),
                                'display':
                                mytr_("OCR"),
                                'toolTip':
                                my.tr("Locations of external OCR libraries"),
                            },
                        ]
                    },
                    {
                        'widget':
                        self.translationTab,
                        'user':
                        self._indexWidget(self.translationTab),
                        'decoration':
                        rc.icon('pref-tr'),
                        'display':
                        tr_("Translation"),
                        'toolTip':
                        my.tr("Machine translators"),
                        'children': [
                            {
                                'widget':
                                self.machineTranslationTab,
                                'user':
                                self._indexWidget(self.machineTranslationTab),
                                'decoration':
                                rc.icon('pref-tr-path'),
                                'display':
                                tr_("Translators"),
                                'toolTip':
                                my.tr("Preferred machine translators"),
                            },
                            {
                                'widget':
                                self.dictionaryTranslationTab,
                                'user':
                                self._indexWidget(
                                    self.dictionaryTranslationTab),
                                'decoration':
                                rc.icon('pref-dict'),
                                'display':
                                tr_("Dictionaries"),
                                'toolTip':
                                my.tr("Preferred look-up dictionaries"),
                            },
                            {
                                'widget':
                                self.romanTranslationTab,
                                'user':
                                self._indexWidget(self.romanTranslationTab),
                                'decoration':
                                rc.icon('pref-roman'),
                                'display':
                                mytr_("C/K Ruby"),
                                'toolTip':
                                my.
                                tr("Romanization of texts in Chinese and Korean"
                                   ),
                            },
                            {
                                'widget':
                                self.chineseTranslationTab,
                                'user':
                                self._indexWidget(self.chineseTranslationTab),
                                'decoration':
                                rc.icon('pref-zh'),
                                'display':
                                tr_("Chinese"),
                                'toolTip':
                                my.tr("Preferred Chinese variant"),
                            },
                            #{ 'widget': self.translationScriptTab,
                            #  'user': self._indexWidget(self.translationScriptTab),
                            #  'decoration': rc.icon('pref-script'),
                            #  'display': tr_("Scripts"),
                            #  'toolTip': my.tr("Translation replacement scripts"),
                            #},
                        ]
                    },
                    {
                        'widget': self.ttsTab,
                        'user': self._indexWidget(self.ttsTab),
                        'decoration': rc.icon('pref-tts'),
                        'display': mytr_("Text-To-Speech"),
                        'toolTip': mytr_("Text-To-Speech") + " (TTS)",
                    },
                    #{ 'widget': self.srTab,
                    #  'user': self._indexWidget(self.srTab),
                    #  'decoration': rc.icon('pref-sr'),
                    #  'display': u"%s (α)" % mytr_("ASR"),
                    #  'toolTip': mytr_("Automatic speech recognition") + " (ASR)",
                    #},
                    {
                        'widget':
                        self.ocrTab,
                        'user':
                        self._indexWidget(self.ocrTab),
                        'decoration':
                        rc.icon('pref-ocr'),
                        'display':
                        u"%s (α)" % mytr_("OCR"),
                        'toolTip':
                        mytr_("Optical character recognition") + " (OCR)",
                    },
                    {
                        'widget': self.textTab,
                        'user': self._indexWidget(self.textTab),
                        'display': tr_("Font"),
                        'decoration': rc.icon('pref-text'),
                        'toolTip': my.tr("Text rendering"),
                    },
                    {
                        'widget': self.gameTab,
                        'user': self._indexWidget(self.gameTab),
                        'decoration': rc.icon('pref-app'),
                        'display': tr_("Launch"),
                        'toolTip': my.tr("Game launch settings"),
                    },
                    {
                        'widget': self.shortcutsTab,
                        'user': self._indexWidget(self.shortcutsTab),
                        'decoration': rc.icon('pref-shortcuts'),
                        'display': mytr_("Shortcuts"),
                        'toolTip': my.tr("Mouse and keyboard shortcuts"),
                    },
                    {
                        'widget': self.recordingsTab,
                        'user': self._indexWidget(self.recordingsTab),
                        'decoration': rc.icon('pref-rec'),
                        'display': mytr_("Recordings"),
                        'toolTip': my.tr("Game recordings"),
                    },
                    {
                        'widget': self.uiTab,
                        'user': self._indexWidget(self.uiTab),
                        'decoration': rc.icon('pref-ui'),
                        'display': tr_("UI"),
                        'toolTip': my.tr("UI Theme"),
                    },
                    {
                        'widget': self.i18nTab,
                        'user': self._indexWidget(self.i18nTab),
                        'display': tr_("i18n"),
                        'decoration': rc.icon('pref-i18n'),
                        'toolTip': tr_("International"),
                    },
                    {
                        'widget': self.termTab,
                        'user': self._indexWidget(self.termTab),
                        'decoration': rc.icon('pref-share'),
                        'display': mytr_("Shared Dictionary"),
                        'toolTip': mytr_("Shared Dictionary"),
                    },
                    {
                        'widget': self.internetTab,
                        'user': self._indexWidget(self.internetTab),
                        'decoration': rc.icon('pref-internet'),
                        'display': tr_("Internet"),
                        'toolTip': my.tr("Internet options"),
                    },
                    {
                        'widget': self.featureTab,
                        'user': self._indexWidget(self.featureTab),
                        'decoration': rc.icon('pref-feature'),
                        'display': tr_("Features"),
                        'toolTip': my.tr("Application features"),
                    },
                ],
            })
        self.controller.treeView().setHeaderHidden(True)
        self.controller.treeView().expandAll()

        left = QtWidgets.QWidget()
        layout = QtWidgets.QVBoxLayout()
        layout.addWidget(self.controller.treeView())
        row = QtWidgets.QHBoxLayout()
        row.addWidget(self.controller.filterEdit())
        row.addWidget(self.controller.countLabel())
        layout.addLayout(row)
        left.setLayout(layout)
        q.addWidget(left)

        skqss.class_(self.controller.treeView(), 'texture')

        right = self.controller.widgetView()
        #right.setSizePolicy(QtWidgets.QSizePolicy.Expanding,
        #                    QtWidgets.QSizePolicy.Expanding)
        q.addWidget(right)

        self.controller.currentIndexChanged.connect(self._refreshCurrentWidget)

        w = self.controller.filterEdit()
        w.setToolTip("%s (%s, %s, Ctrl+F)" %
                     (tr_("Search"), tr_("case-insensitive"),
                      tr_("regular expression")))
        shortcut('ctrl+f', w.setFocus, parent=q)
Example #27
0
  def _createUi(self, q):
    hookPrefsButton = QtWidgets.QPushButton(my.tr("Edit /H Hook Code"))
    skqss.class_(hookPrefsButton, 'btn btn-info')
    hookPrefsButton.setToolTip(my.tr("Modify the game-specific ITH hook code") + " (Alt+H)")
    hookPrefsButton.setStatusTip(hookPrefsButton.toolTip())
    hookPrefsButton.clicked.connect(self._showHookPrefs)

    helpButton = QtWidgets.QPushButton(tr_("Help"))
    helpButton.setToolTip(tr_("Help"))
    skqss.class_(helpButton, 'btn btn-success')
    helpButton.clicked.connect(lambda: self.helpDialog.show())

    wikiButton = QtWidgets.QPushButton(tr_("Wiki"))
    wikiButton.setToolTip(tr_("Wiki"))
    skqss.class_(wikiButton, 'btn btn-default')
    import main
    wikiButton.clicked.connect(lambda: main.manager().openWiki('VNR/Text Settings'))

    #cancelButton = QtWidgets.QPushButton(tr_("Cancel"))
    #cancelButton.clicked.connect(self.q.hide)

    threadArea = QtWidgets.QScrollArea()
    threadArea.setWidget(skwidgets.SkLayoutWidget(self.threadLayout))
    threadArea.setWidgetResizable(True)

    threadGroup = QtWidgets.QGroupBox()
    threadGroup.setTitle(mytr_("Text threads"))
    threadGroup.setLayout(skwidgets.SkWidgetLayout(threadArea))
    #threadGroup.setLayout(self.threadLayout)

    option = QtWidgets.QGroupBox(tr_("Options"))
    optionLayout = QtWidgets.QVBoxLayout()
    row = QtWidgets.QHBoxLayout()
    row.addWidget(QtWidgets.QLabel(mytr_("Game language")+ ":"))
    row.addWidget(self.languageEdit)
    row.addStretch()
    row.addWidget(QtWidgets.QLabel(tr_("Text encoding") + ":"))
    row.addWidget(self.encodingEdit)
    optionLayout.addLayout(row)
    optionLayout.addWidget(self.keepsThreadsButton)
    optionLayout.addWidget(self.removesRepeatButton)
    optionLayout.addWidget(self.ignoresRepeatButton)
    optionLayout.addWidget(self.keepsSpaceButton)
    option.setLayout(optionLayout)

    layout = QtWidgets.QVBoxLayout()
    row = QtWidgets.QHBoxLayout()
    row.addWidget(self.saveButton)
    row.addWidget(hookPrefsButton)
    row.addWidget(self.resetButton)
    row.addWidget(wikiButton)
    row.addWidget(helpButton)
    #row.addWidget(QtWidgets.QLabel(
    #  " <= " + my.tr("click help if you have questions")
    #))
    row.addStretch()
    layout.addLayout(row)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(option)
    row.addStretch()
    layout.addLayout(row)

    layout.addWidget(threadGroup)

    #msg = QtWidgets.QLabel(my.tr("WARNING: PLEASE DO NOT TURN ON REPETITION FILTERS UNLESS THERE ARE REPETITIONS!"))
    msgLabel = QtWidgets.QLabel(my.tr("Don't forget to maximize the text speed (see Help)."))
    skqss.class_(msgLabel, "text-success")
    layout.addWidget(msgLabel)

    wikiLabel = QtWidgets.QLabel(my.tr('Please check this <a href="http://sakuradite.com/wiki/en/VNR/Game_Settings">Game Settings</a> wiki if there is no correct text.'))
    wikiLabel.setOpenExternalLinks(True)
    #skqss.class_(wikiLabel, "text-info")
    layout.addWidget(wikiLabel)

    #buttons = QtWidgets.QHBoxLayout()
    #buttons.addStretch()
    #buttons.addWidget(cancelButton)
    #buttons.addWidget(self.saveButton)
    #layout.addLayout(buttons)
    #layout.addWidget(introLabel)

    #layout.setContentsMargins(18, 18, 18, 9) # left, top, right, bottom
    #self.q.setCentralWidget(skwidgets.SkLayoutWidget(layout))

    q.setLayout(layout)

    skwidgets.shortcut('alt+h', self._showHookPrefs, parent=q)
Example #28
0
  def _createUi(self, q):
    layout = QtWidgets.QVBoxLayout()

    tt = defs.threadtype(self.name)
    ttip = i18n.threadtip(tt)

    if self.name == defs.NULL_THREAD_NAME:
      n = tr_("Not specified")
    elif self.name == defs.HCODE_THREAD_NAME:
      n = mytr_("H-code")
    elif self.name in defs.CAONIMAGEBI_ENGINES:
      n = self.name + '<span style="color:red">%s</span>' % defs.CAONIMAGEBI_USERNAME
    elif self.name in defs.OK123_ENGINES:
      n = self.name + '<span style="color:red">%s</span>' % defs.OK123_USERNAME
    #elif self.name.startswith('sce') or self.name in config.PSP_ALL_TEXT_THREADS:
    #  n = self.name + '<span style="color:gray">=0.9.x</span>' # no need to show
    elif self.name in config.PSP_099_TEXT_THREADS:
      n = self.name + '<span style="color:red">=0.9.9</span>'
    elif self.name in config.PSP_098_TEXT_THREADS:
      n = self.name + '<span style="color:purple">=0.9.8</span>'
    else:
      n = self.name
    if config.game_thread_embeddable(self.name):
      t = mytr_("embeddable")
      if self.name in config.EMBEDDED_EN_GAME_ENGINES:
        t += ', <span style="color:purple">%s</span>' % my.tr("English-only")
      n += ' <span style="color:darkgreen">(%s)</span>' % t
    title = '%s <span style="color:gray">%x</span>' % (n, self.signature)
    enc = config.guess_thread_encoding(self.name)
    if enc:
      title += ' <span style="color:#333">%s</span>' % enc
    elif self.name and self.name not in (defs.HCODE_THREAD_NAME, defs.NULL_THREAD_NAME) and 'PSP' not in self.name:
      title += '<br/><span style="color:red;font-weight:bold">(%s)</span>' % my.tr("Not supported, please update VNR")

    label = QtWidgets.QLabel(title)
    label.setStyleSheet(SS_LABELS[tt])
    label.setToolTip(ttip)

    # Must be consist with button rows
    self.buttonRow = skwidgets.SkButtonRow()

    b = self.buttonRow.addButton(mytr_("dialog"),
        tip=my.tr("This is main scenario"))   # scenario
    skqss.class_(b, 'btn btn-default btn-sm')
    b.toggled.connect(partial(lambda b, value:
        skqss.toggleclass(b, 'btn-primary', value),
        b))

    b = self.buttonRow.addButton(mytr_("name"),
        tip=my.tr("These are character names"))   # scenario
    skqss.class_(b, 'btn btn-default btn-sm')
    b.toggled.connect(partial(lambda b, value:
        skqss.toggleclass(b, 'btn-success', value),
        b))

    b = self.buttonRow.addButton(tr_("other"),
        tip=my.tr("This is extra scenario"))   # other
    skqss.class_(b, 'btn btn-default btn-sm')
    b.toggled.connect(partial(lambda b, value:
        skqss.toggleclass(b, 'btn-info', value),
        b))

    b = self.buttonRow.addButton(tr_("ignore"),
        tip=my.tr("Don't translate the text")) # ignored
    skqss.class_(b, 'btn btn-default btn-sm')
    b.toggled.connect(partial(lambda b, value:
        skqss.toggleclass(b, 'btn-danger', value),
        b))

    self.buttonRow.setCurrentIndex(_TextThreadView.IGNORE_BUTTON_ROW)
    self.buttonRow.currentIndexChanged.connect(self._emitThreadType)
    self.buttonRow.currentIndexChanged.connect(self.updateStyleSheet)

    self.textEdit = QtWidgets.QPlainTextEdit()
    #self.textEdit.setToolTip(mytr_("Game text"))
    self.textEdit.setToolTip(ttip)
    self.textEdit.setReadOnly(True)
    self.textEdit.setMaximumHeight(TEXTEDIT_MAX_HEIGHT)
    self.textEdit.setMinimumWidth(TEXTEDIT_MIN_WIDTH)
    self.textEdit.setStyleSheet(
        SS_TEXTEDIT_HOOK_IGNORED if self.name == defs.HCODE_THREAD_NAME else
        SS_TEXTEDIT_IGNORED)

    header = QtWidgets.QHBoxLayout()
    header.addWidget(self.buttonRow)
    header.addStretch()
    header.addWidget(label)
    layout.addLayout(header)
    layout.addWidget(self.textEdit)
    q.setLayout(layout)
Example #29
0
    def _createUi(self, q):
        #hookPrefsButton = QtWidgets.QPushButton(my.tr("Edit /H Hook Code"))
        #skqss.class_(hookPrefsButton, 'btn btn-info')
        #hookPrefsButton.setToolTip(my.tr("Modify the game-specific ITH hook code") + " (Alt+H)")
        #hookPrefsButton.setStatusTip(hookPrefsButton.toolTip())
        #hookPrefsButton.clicked.connect(self._showHookPrefs)

        helpButton = QtWidgets.QPushButton(tr_("Help"))
        helpButton.setToolTip(tr_("Help"))
        skqss.class_(helpButton, 'btn btn-success')
        helpButton.clicked.connect(lambda: self.helpDialog.show())

        #wikiButton = QtWidgets.QPushButton(tr_("Wiki"))
        #wikiButton.setToolTip(tr_("Wiki"))
        #skqss.class_(wikiButton, 'btn btn-default')
        #import main
        #wikiButton.clicked.connect(lambda: main.manager().openWiki('VNR/Text Settings'))

        #cancelButton = QtWidgets.QPushButton(tr_("Cancel"))
        #cancelButton.clicked.connect(self.q.hide)

        threadArea = QtWidgets.QScrollArea()
        threadArea.setWidget(skwidgets.SkLayoutWidget(self.threadLayout))
        threadArea.setWidgetResizable(True)

        threadGroup = QtWidgets.QGroupBox()
        threadGroup.setTitle(mytr_("Text threads"))
        threadGroup.setLayout(skwidgets.SkWidgetLayout(threadArea))
        #threadGroup.setLayout(self.threadLayout)

        info = QtWidgets.QGroupBox("%s (%s)" % (
            tr_("Information"),
            tr_("read-only"),
        ))
        infoLayout = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(QtWidgets.QLabel(mytr_("Game engine") + ":"))
        row.addWidget(self.engineLabel)
        row.addStretch()
        infoLayout.addLayout(row)
        info.setLayout(infoLayout)

        option = QtWidgets.QGroupBox(tr_("Options"))
        optionLayout = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        row.addWidget(QtWidgets.QLabel(mytr_("Game language") + ":"))
        row.addWidget(self.languageEdit)
        row.addStretch()
        row.addWidget(QtWidgets.QLabel(tr_("Text encoding") + ":"))
        row.addWidget(self.encodingEdit)
        optionLayout.addLayout(row)
        option.setLayout(optionLayout)

        layout = QtWidgets.QVBoxLayout()
        row = QtWidgets.QHBoxLayout()
        if not READONLY:
            row.addWidget(self.saveButton)

        #row.addWidget(hookPrefsButton)
        row.addWidget(self.resetButton)
        #row.addWidget(wikiButton)
        if not READONLY:
            row.addWidget(helpButton)
        #row.addWidget(QtWidgets.QLabel(
        #  " <= " + my.tr("click help if you have questions")
        #))
        row.addStretch()
        layout.addLayout(row)

        col = QtWidgets.QVBoxLayout()
        col.addWidget(info)
        col.addWidget(option)
        row = QtWidgets.QHBoxLayout()
        row.addLayout(col)
        row.addStretch()
        layout.addLayout(row)

        layout.addWidget(threadGroup)

        msg = QtWidgets.QLabel(
            "%s: %s" % (tr_("Note"), my.tr("All settings are read-only.")))
        skqss.class_(msg, "text-error")
        layout.addWidget(msg)

        #buttons = QtWidgets.QHBoxLayout()
        #buttons.addStretch()
        #buttons.addWidget(cancelButton)
        #buttons.addWidget(self.saveButton)
        #layout.addLayout(buttons)
        #layout.addWidget(introLabel)

        #layout.setContentsMargins(18, 18, 18, 9) # left, top, right, bottom
        #self.q.setCentralWidget(skwidgets.SkLayoutWidget(layout))

        q.setLayout(layout)
Example #30
0
  def _createUi(self, q):
    layout = QtWidgets.QVBoxLayout()

    # User

    row = QtWidgets.QHBoxLayout()
    row.addWidget(create_label(tr_("Type")))
    row.addWidget(self.typeEdit)

    row.addWidget(create_label(tr_("Language")))
    row.addWidget(self.languageEdit)

    row.addStretch()

    #row.addWidget(create_label(tr_("User")))
    row.addWidget(self.userNameLabel)
    layout.addLayout(row)

    # Status
    row = QtWidgets.QHBoxLayout()
    row.addWidget(create_label(tr_("Status")))
    row.addWidget(self.enabledButton)
    row.addWidget(self.lockedButton)
    row.addStretch()

    #row.addWidget(create_label(tr_("Date")))
    row.addWidget(self.timestampLabel)
    layout.addLayout(row)

    # Context size
    row = QtWidgets.QHBoxLayout()
    row.addWidget(create_label(mytr_("Context count")))
    row.addWidget(self.contextSizeLabel)
    row.addStretch()
    layout.addLayout(row)

    layout.addWidget(self.textEdit)

    # Context
    layout.addWidget(QtWidgets.QLabel(
      tr_("Context") + " (%s):" % tr_("read-only")
    ))
    layout.addWidget(self.currentContextEdit)

    layout.addWidget(QtWidgets.QLabel(
      mytr_("Previous context") + " (%s):" % tr_("read-only")
    ))
    layout.addWidget(self.previousContextEdit)

    layout.addWidget(create_label(tr_("Comment") ))
    layout.addWidget(self.commentEdit)

    row = QtWidgets.QHBoxLayout()
    row.addWidget(create_label(tr_("Permission")))
    row.addWidget(self.textPermissionLabel)

    row.addWidget(create_label(tr_("Internet status")))
    row.addWidget(self.onlineLabel)

    row.addStretch()
    row.addWidget(self.deleteButton)
    row.addWidget(self.refreshButton)
    layout.addLayout(row)
    q.setLayout(layout)