Пример #1
0
	def __init__(self):
		super().__init__()

		layout = QVBoxLayout(self)

		types = QGroupBox(tr('filters.types.group'))

		testGroup = QHBoxLayout(types)

		testGroup.addWidget(ConfCheckbox(tr('filters.types.base'), 'download.base'))
		testGroup.addStretch()

		testGroup.addWidget(ConfCheckbox(tr('filters.types.dlc'), 'download.DLC'))
		testGroup.addStretch()

		testGroup.addWidget(ConfCheckbox(tr('filters.types.update'), 'download.update'))
		testGroup.addStretch()

		testGroup.addWidget(ConfCheckbox(tr('filters.types.demo'), 'download.demo'))

		layout.addWidget(types)

		region = QGroupBox('REGION')
		regionLayout = QHBoxLayout(region)
		regionLayout.addWidget(Region())
		layout.addWidget(region)

		layout.addStretch()
Пример #2
0
    def __init__(self):
        super().__init__()

        self.MIN_FILE_SIZE = 0
        self.MAX_FILE_SIZE = 30 * 1024**3

        self.scroll = QScrollArea(self)
        self.scroll.setWidgetResizable(True)
        self.scroll.setFrameShape(QFrame.NoFrame)

        layout = QVBoxLayout(self.scroll)

        typesGroup = QGroupBox(tr('filters.types.group'))

        Filters._createTypesGroup(layout, typesGroup)

        Filters._createRegionGroup(layout)

        sizeFilterGroup = QGroupBox(tr('filters.size.group'))
        sizeFilterLayout = QHBoxLayout(sizeFilterGroup)

        minFileSizeFilter = 0
        if Config.download.fileSizeMax is not None:
            minFileSizeFilter = Config.download.fileSizeMin
        maxFileSizeFilter = self.MAX_FILE_SIZE
        if Config.download.fileSizeMax is not None:
            maxFileSizeFilter = Config.download.fileSizeMax

        filterMinSizeLabel = Filters._createLeftLabel(sizeFilterLayout,
                                                      minFileSizeFilter)

        rangeSlider = self._createRangeSlider(sizeFilterLayout,
                                              minFileSizeFilter,
                                              maxFileSizeFilter)

        filterMaxSizeLabel = Filters._createRightLabel(
            sizeFilterLayout, rangeSlider.get_right_thumb_value())

        layout.addWidget(sizeFilterGroup)

        widget = QWidget()
        widget.setLayout(layout)
        self.scroll.setWidget(widget)

        rangeSlider.left_thumb_value_changed.connect((lambda x: \
         Filters._on_left_thumb_value_changed(filterMinSizeLabel, x)))
        rangeSlider.right_thumb_value_changed.connect((lambda x: \
         Filters._on_right_thumb_value_changed(filterMaxSizeLabel, x)))
Пример #3
0
 def test_missing_key(self):
     self.fs.create_file(TRANSLATION_FILE,
                         contents=TRANSLATION_FILE_CONTENT)
     Config.language = "en"
     reload(TRANSLATION_FILE)
     missing_key = 'missing.key.ever'
     self.assertEqual(tr(missing_key), missing_key)
Пример #4
0
 def test_translation_to_russian(self):
     self.fs.create_file(TRANSLATION_FILE,
                         contents=TRANSLATION_FILE_CONTENT)
     Config.language = "ru"
     reload(TRANSLATION_FILE)
     self.assertEqual(tr(ABOUT_KEY), \
      "\u041e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435")
Пример #5
0
	def initUI(self):
		self.isInitialized = False
		self.setWindowTitle(self.title)
		screen = QDesktopWidget().screenGeometry()
		left = int(screen.width() / 4)
		top = int(screen.height() / 4)
		width = int(screen.width() / 2)
		height = int(screen.height() / 2)
		self.setGeometry(left, top, width, height)

		layout = QVBoxLayout()

		self.header = Header(self)
		layout.addLayout(self.header.layout)
		self.files = gui.panes.files.Files()

		self.tabs = gui.tabs.Tabs({
			tr('main.grid.files'): self.files,
			tr('main.grid.filters'): gui.panes.filters.Filters(),
			tr('main.grid.save_paths'): gui.panes.format.Format(),
			tr('main.grid.local_scan_paths'): gui.panes.dirlist.DirList(Config.paths.scan, self.saveScanPaths, rowType=gui.panes.dirlist.DirectoryLocal),
			tr('main.grid.remote_pull_paths'): gui.panes.dirlist.DirList(Config.pullUrls, self.savePullUrls, rowType=gui.panes.dirlist.DirectoryNetwork),
			tr('main.grid.users'): gui.panes.dirlist.DirList(list(Users.users.values()), self.saveUsers, rowType=gui.panes.dirlist.User),  # rowType
			tr('main.grid.options'): gui.panes.options.Options()
		})
		layout.addWidget(self.tabs)

		self.progress = Progress(self)
		layout.addLayout(self.progress.layout)

		self.setLayout(layout)

		self.isInitialized = True
		self.show()
Пример #6
0
    def __init__(self, app):
        self.layout = QVBoxLayout()

        top = QHBoxLayout()
        bottom = QHBoxLayout()

        self.scan = _create_button(app, top, tr('main.top_menu.scan'), 100,
                                   app.on_scan)
        _create_button(app, top, tr('main.top_menu.organize'), 200,
                       app.on_organize)
        self.pull = _create_button(app, top, tr('main.top_menu.pull'), 100,
                                   app.on_pull)
        self.titledb = _create_button(app, top,
                                      tr('main.top_menu.update_titledb'), 200,
                                      app.on_titledb)
        _create_button(app, top, tr('main.top_menu.decompress_nsz'), 200,
                       app.on_decompress)
        _create_button(app, top, tr('main.top_menu.compress_nsp'), 200,
                       app.on_compress)
        self.gdrive = _create_button(app, top,
                                     tr('main.top_menu.setup_gdrive'), 200,
                                     app.on_gdrive)

        top.addStretch()

        ipAddr = _get_ip_address()

        if ipAddr:
            self.serverInfo = QLabel(
                f"<b>{tr('main.status.ip')}:</b>  {ipAddr}  <b>{tr('main.status.port')}:</b>  {Config.server.port}  "
                +
                f"<b>{tr('main.status.user')}:</b>  {Users.first().id}  <b>{tr('main.status.password')}:</b>  "
                + f"{Users.first().password}")
        else:
            self.serverInfo = QLabel("<b>Offline</b>")

        self.serverInfo.setMinimumWidth(200)
        self.serverInfo.setAlignment(Qt.AlignCenter)
        bottom.addWidget(self.serverInfo)
        bottom.addStretch()

        self.usbStatus = QLabel("<b>USB:</b>  " +
                                tr("usb.status." + Usb.status))
        self.usbStatus.setMinimumWidth(50)
        self.usbStatus.setAlignment(Qt.AlignCenter)
        bottom.addWidget(self.usbStatus)

        self.timer = QTimer()
        self.timer.setInterval(1000)
        self.timer.timeout.connect(self.tick)
        self.timer.start()

        self.layout.addLayout(top)
        self.layout.addLayout(bottom)
Пример #7
0
    def _createTypesGroup(layout, typesGroup):
        typesLayout = QHBoxLayout(typesGroup)

        typesLayout.addWidget(
            ConfCheckbox(tr('filters.types.base'), 'download.base'))
        typesLayout.addStretch()

        typesLayout.addWidget(
            ConfCheckbox(tr('filters.types.dlc'), 'download.DLC'))
        typesLayout.addStretch()

        typesLayout.addWidget(
            ConfCheckbox(tr('filters.types.update'), 'download.update'))
        typesLayout.addStretch()

        typesLayout.addWidget(
            ConfCheckbox(tr('filters.types.demo'), 'download.demo'))

        layout.addWidget(typesGroup)
Пример #8
0
	def __init__(self, parent):
		super().__init__()
		self.parent = parent

		layout = QHBoxLayout(self)
		self.dirBtn = QPushButton(tr('dirlist.browse'))
		self.dirBtn.setFixedWidth(70)
		self.dirBtn.clicked.connect(self.on_browse)
		self.dirBtn.setFocusPolicy(Qt.StrongFocus)

		self.edit = Edit(self)

		layout.addWidget(self.dirBtn)
		layout.addWidget(self.edit)
		self.layout = layout
Пример #9
0
    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.layout = QVBoxLayout()

        self.header = Header(self)
        self.layout.addLayout(self.header.layout)
        self.files = gui.panes.files.Files()

        self.tabs = gui.tabs.Tabs({
            tr('Files'):
            self.files,
            tr('Filters'):
            gui.panes.filters.Filters(),
            tr('Save Paths'):
            gui.panes.format.Format(),
            tr('Local Scan Paths'):
            gui.panes.dirlist.DirList(
                Config.paths.scan,
                self.saveScanPaths,
                rowType=gui.panes.dirlist.DirectoryLocal),
            tr('Remote Pull Paths'):
            gui.panes.dirlist.DirList(
                Config.pullUrls,
                self.savePullUrls,
                rowType=gui.panes.dirlist.DirectoryNetwork),
            tr('Users'):
            gui.panes.dirlist.DirList(
                list(Users.users.values()),
                self.saveUsers,
                rowType=gui.panes.dirlist.User),  # rowType
            tr('Options'):
            gui.panes.options.Options()
        })
        self.layout.addWidget(self.tabs)

        self.progress = Progress(self)
        self.layout.addLayout(self.progress.layout)

        self.setLayout(self.layout)

        self.show()
Пример #10
0
	def on_browse(self):
		value = QFileDialog.getExistingDirectory(self, tr('Select Directory'),\
			self.getValue(), QFileDialog.ShowDirsOnly)

		if value:
			self.setValue(value)
Пример #11
0
 def tick(self):
     self.usbStatus.setText("<b>USB:</b> " + tr("usb.status." + Usb.status))
Пример #12
0
 def test_translation_to_english(self):
     self.fs.create_file(TRANSLATION_FILE,
                         contents=TRANSLATION_FILE_CONTENT)
     Config.language = "en"
     reload(TRANSLATION_FILE)
     self.assertEqual(tr(ABOUT_KEY), "About")
Пример #13
0
 def test_missing_lang_file(self):
     if os.path.exists(TRANSLATION_FILE):
         self.fs.remove(TRANSLATION_FILE)
     reload(TRANSLATION_FILE)
     self.assertEqual(tr(ABOUT_KEY), ABOUT_KEY)
     self.assertEqual(tr(""), "")
Пример #14
0
    def __init__(self, app):
        self.layout = QVBoxLayout()

        top = QHBoxLayout()
        bottom = QHBoxLayout()

        self.scan = QPushButton(tr('main.top_menu.scan'), app)
        self.scan.setMaximumWidth(100)
        self.scan.clicked.connect(app.on_scan)
        top.addWidget(self.scan)

        btn = QPushButton(tr('main.top_menu.organize'), app)
        btn.setMaximumWidth(200)
        btn.clicked.connect(app.on_organize)
        top.addWidget(btn)

        self.pull = QPushButton(tr('main.top_menu.pull'), app)
        self.pull.setMaximumWidth(100)
        self.pull.clicked.connect(app.on_pull)
        top.addWidget(self.pull)

        self.titledb = QPushButton(tr('main.top_menu.update_titledb'), app)
        self.titledb.setMaximumWidth(200)
        self.titledb.clicked.connect(app.on_titledb)
        top.addWidget(self.titledb)

        btn = QPushButton(tr('main.top_menu.decompress_nsz'), app)
        btn.setMaximumWidth(200)
        btn.clicked.connect(app.on_decompress)
        top.addWidget(btn)

        btn = QPushButton(tr("main.top_menu.compress_nsp"), app)
        btn.setMaximumWidth(200)
        btn.clicked.connect(app.on_compress)
        top.addWidget(btn)

        self.gdrive = QPushButton(tr("main.top_menu.setup_gdrive"), app)
        self.gdrive.setMaximumWidth(200)
        self.gdrive.clicked.connect(app.on_gdrive)
        top.addWidget(self.gdrive)

        top.addStretch()

        ipAddr = getIpAddress()

        if ipAddr:
            self.serverInfo = QLabel(
                f"<b>IP:</b>  {ipAddr}  <b>Port:</b>  {Config.server.port}  " +
                f"<b>User:</b>  {Users.first().id}  <b>Password:</b>  " +
                f"{Users.first().password}")
        else:
            self.serverInfo = QLabel("<b>Offline</b>")

        self.serverInfo.setMinimumWidth(200)
        self.serverInfo.setAlignment(Qt.AlignCenter)
        bottom.addWidget(self.serverInfo)
        bottom.addStretch()

        self.usbStatus = QLabel("<b>USB:</b>  " +
                                tr("usb.status." + Usb.status))
        self.usbStatus.setMinimumWidth(50)
        self.usbStatus.setAlignment(Qt.AlignCenter)
        bottom.addWidget(self.usbStatus)

        self.timer = QTimer()
        self.timer.setInterval(1000)
        self.timer.timeout.connect(self.tick)
        self.timer.start()

        self.layout.addLayout(top)
        self.layout.addLayout(bottom)
Пример #15
0
	def on_organize(self):
		answer = QMessageBox.question(self, tr('main.top_menu.organize'),
			tr('main.dialog.organize_confirmation'),
			QMessageBox.Yes | QMessageBox.No)
		if answer == QMessageBox.Yes:
			nut.organize()
Пример #16
0
    def __init__(self):  # pylint: disable=too-many-locals
        super().__init__()

        self.MIN_FILE_SIZE = 0
        self.MAX_FILE_SIZE = 30 * 1024**3
        self.MIN_RANK = 1
        self.MAX_RANK = 1000
        self.DEFAULT_RANK = 200

        self.scroll = QScrollArea(self)
        self.scroll.setWidgetResizable(True)
        self.scroll.setFrameShape(QFrame.NoFrame)

        layout = QVBoxLayout(self.scroll)

        typesGroup = QGroupBox(tr('filters.types.group'))

        Filters._createTypesGroup(layout, typesGroup)

        Filters._createRegionGroup(layout)

        sizeFilterGroup = QGroupBox(tr('filters.size.group'))
        sizeFilterLayout = QHBoxLayout(sizeFilterGroup)

        minFileSizeFilter = self.MIN_FILE_SIZE
        if Config.download.fileSizeMin is not None:
            minFileSizeFilter = Config.download.fileSizeMin
        maxFileSizeFilter = self.MAX_FILE_SIZE
        if Config.download.fileSizeMax is not None:
            maxFileSizeFilter = Config.download.fileSizeMax

        filterMinSizeLabel = Filters._createLeftLabel(sizeFilterLayout,
                                                      minFileSizeFilter)
        sizeFilter = self._createRangeSlider(sizeFilterLayout,
                                             self.MIN_FILE_SIZE,
                                             self.MAX_FILE_SIZE,
                                             minFileSizeFilter,
                                             maxFileSizeFilter)
        filterMaxSizeLabel = Filters._createRightLabel(
            sizeFilterLayout, sizeFilter.get_right_thumb_value())

        sizeFilter.left_thumb_value_changed.connect((lambda x: \
         Filters._on_thumb_value_changed(filterMinSizeLabel, x, "fileSizeMin")))
        sizeFilter.right_thumb_value_changed.connect((lambda x: \
         Filters._on_thumb_value_changed(filterMaxSizeLabel, x, "fileSizeMax")))

        layout.addWidget(sizeFilterGroup)

        rankFilterGroup = QGroupBox(tr('filters.rank.group'))
        rankFilterLayout = QHBoxLayout(rankFilterGroup)

        minRankFilter = self.MIN_RANK
        if Config.download.rankMin is not None:
            minRankFilter = Config.download.rankMin
        maxRankFilter = self.DEFAULT_RANK
        if Config.download.rankMax is not None:
            maxRankFilter = Config.download.rankMax

        filterMinRankLabel = Filters._createLeftLabel(rankFilterLayout,
                                                      minRankFilter,
                                                      isSize=False)
        rankFilter = self._createRangeSlider(rankFilterLayout, self.MIN_RANK,
                                             self.MAX_RANK, minRankFilter,
                                             maxRankFilter)
        filterMaxRankLabel = Filters._createRightLabel(
            rankFilterLayout, rankFilter.get_right_thumb_value(), isSize=False)

        rankFilter.left_thumb_value_changed.connect((lambda x: \
         Filters._on_thumb_value_changed(filterMinRankLabel, x, "rankMin", isSize=False)))
        rankFilter.right_thumb_value_changed.connect((lambda x: \
         Filters._on_thumb_value_changed(filterMaxRankLabel, x, "rankMax", isSize=False)))

        layout.addWidget(rankFilterGroup)

        widget = QWidget()
        widget.setLayout(layout)
        self.scroll.setWidget(widget)