コード例 #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)
コード例 #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)
コード例 #3
0
ファイル: topicinput.py プロジェクト: blackknifes/VNR-Core
 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)
コード例 #4
0
ファイル: appwiz.py プロジェクト: blackknifes/VNR-Core
  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)
コード例 #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)
コード例 #6
0
ファイル: gameedit.py プロジェクト: blackknifes/VNR-Core
    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
コード例 #7
0
ファイル: vkinput.py プロジェクト: blackknifes/VNR-Core
  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)
コード例 #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
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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)
コード例 #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
コード例 #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)
コード例 #15
0
ファイル: gameedit.py プロジェクト: blackknifes/VNR-Core
    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
コード例 #16
0
ファイル: gameedit.py プロジェクト: blackknifes/VNR-Core
    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
コード例 #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)
コード例 #18
0
ファイル: gameview.py プロジェクト: blackknifes/VNR-Core
 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
コード例 #19
0
ファイル: gameedit.py プロジェクト: blackknifes/VNR-Core
    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
コード例 #20
0
ファイル: gameedit.py プロジェクト: blackknifes/VNR-Core
    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
コード例 #21
0
ファイル: update.py プロジェクト: blackknifes/VNR-Core
    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)
コード例 #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)
コード例 #23
0
ファイル: embedprefs.py プロジェクト: blackknifes/VNR-Core
    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)
コード例 #24
0
ファイル: terminput.py プロジェクト: blackknifes/VNR-Core
    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)
コード例 #25
0
ファイル: mttest.py プロジェクト: blackknifes/VNR-Core
    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)
コード例 #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)
コード例 #27
0
ファイル: textprefs.py プロジェクト: blackknifes/VNR-Core
  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)
コード例 #28
0
ファイル: textprefs.py プロジェクト: blackknifes/VNR-Core
  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)
コード例 #29
0
ファイル: embedprefs.py プロジェクト: blackknifes/VNR-Core
    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)
コード例 #30
0
ファイル: subedit.py プロジェクト: blackknifes/VNR-Core
  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)