Skip to content

Commit

Permalink
add searchable QListWidgets & reformat with black
Browse files Browse the repository at this point in the history
  • Loading branch information
ewancook committed Apr 27, 2020
1 parent 37f3736 commit 55ea2ee
Show file tree
Hide file tree
Showing 7 changed files with 68 additions and 14 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
- pip3 install -r requirements.txt
- pip3 install pyinstaller
script: &common_script
- sed -i "s/{TRAVIS_TAG}/${TRAVIS_TAG}/g" transcriber/transcriber.py
- pyinstaller --name="transcriber" --windowed --onedir run.py
- mv dist/transcriber ${FOLDER}
before_deploy:
Expand Down
6 changes: 1 addition & 5 deletions transcriber/dbf/parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,7 @@ def __len__(self):

class Parser:
def __init__(
self,
required_fields,
encoding="cp437",
required_tags=[],
all_tags=[],
self, required_fields, encoding="cp437", required_tags=[], all_tags=[],
):
self.required_fields = set(required_fields)
self.encoding = encoding
Expand Down
8 changes: 5 additions & 3 deletions transcriber/file_selecter/view.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from PyQt5 import QtWidgets, QtCore

from transcriber.searchable_list.widget import SearchableListWidget


class FileSelecterView(QtWidgets.QWidget):
files_added = QtCore.pyqtSignal()
Expand All @@ -10,7 +12,9 @@ def __init__(self):

self._layout = QtWidgets.QVBoxLayout()

self.files = QtWidgets.QListWidget(self)
self.files = SearchableListWidget(
self, search_text="Search Loaded Files"
)
self.files.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
Expand All @@ -31,8 +35,6 @@ def __init__(self):
self.files.doubleClicked.connect(self.del_current)

self._layout.addWidget(self.add_file)
self._layout.addWidget(QtWidgets.QLabel())
self._layout.addWidget(QtWidgets.QLabel("Loaded:"))
self._layout.addWidget(self.files)
self._layout.addWidget(self.del_file)
self.setLayout(self._layout)
Expand Down
Empty file.
52 changes: 52 additions & 0 deletions transcriber/searchable_list/widget.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from PyQt5 import QtWidgets


class SearchableListWidget(QtWidgets.QWidget):
def __init__(self, parent=None, search_text="Search"):
super(SearchableListWidget, self).__init__(parent)
self.search_bar = QtWidgets.QLineEdit()
self.search_bar.setPlaceholderText(search_text)
self.search_bar.textChanged.connect(self._update_list)

self.list_widget = QtWidgets.QListWidget()
self.itemDoubleClicked = self.list_widget.itemDoubleClicked
self.currentItemChanged = self.list_widget.currentItemChanged
self.doubleClicked = self.list_widget.doubleClicked

vertical = QtWidgets.QVBoxLayout()
vertical.addWidget(self.search_bar)
vertical.addWidget(self.list_widget)
self.setLayout(vertical)

def setSelectionMode(self, *args, **kwargs):
self.list_widget.setSelectionMode(*args, **kwargs)

def clear(self, *args, **kwargs):
self.list_widget.clear(*args, **kwargs)

def count(self, *args, **kwargs):
return self.list_widget.count(*args, **kwargs)

def addItem(self, *args, **kwargs):
self.list_widget.addItem(*args, **kwargs)

def addItems(self, *args, **kwargs):
self.list_widget.addItems(*args, **kwargs)

def item(self, *args, **kwargs):
return self.list_widget.item(*args, **kwargs)

def selectedItems(self, *args, **kwargs):
return self.list_widget.selectedItems(*args, **kwargs)

def takeItem(self, *args, **kwargs):
return self.list_widget.takeItem(*args, **kwargs)

def row(self, *args, **kwargs):
return self.list_widget.row(*args, **kwargs)

def _update_list(self, text):
text = text.lower()
for i in range(self.count()):
item = self.item(i)
item.setHidden(text not in item.text().lower())
11 changes: 6 additions & 5 deletions transcriber/tag_selecter/view.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
from PyQt5 import QtWidgets, QtCore

from transcriber.searchable_list.widget import SearchableListWidget


class TagSelecterView(QtWidgets.QWidget):
tag_added = QtCore.pyqtSignal()
Expand All @@ -15,11 +17,13 @@ def __init__(self):
"Select a tag file to parse. File names typically end in '(Tagname).DAT'."
)

self.tags = QtWidgets.QListWidget(self)
self.tags = SearchableListWidget(self, search_text="Search All Tags")
self.tags.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
self.used = QtWidgets.QListWidget(self)
self.used = SearchableListWidget(
self, search_text="Search Current Tags"
)
self.used.setSelectionMode(
QtWidgets.QAbstractItemView.ExtendedSelection
)
Expand Down Expand Up @@ -47,11 +51,9 @@ def __init__(self):
left = QtWidgets.QVBoxLayout()
right = QtWidgets.QVBoxLayout()

left.addWidget(QtWidgets.QLabel("All Tags:"))
left.addWidget(self.tags)
left.addWidget(self.add_tag)

right.addWidget(QtWidgets.QLabel("Current Tags:"))
right.addWidget(self.used)
right.addWidget(self.del_tag)

Expand All @@ -60,7 +62,6 @@ def __init__(self):
horizontal.addLayout(right)

self._layout.addWidget(self.load)
self._layout.addWidget(QtWidgets.QLabel())
self._layout.addLayout(horizontal)
self.setLayout(self._layout)

Expand Down
4 changes: 3 additions & 1 deletion transcriber/transcriber.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@

from PyQt5 import QtWidgets, QtCore

VERSION = "{TRAVIS_TAG}"


class Transcriber(QtWidgets.QMainWindow):
def __init__(self):
Expand Down Expand Up @@ -59,7 +61,7 @@ def __init__(self):
self._widget_list.addWidget(self.converter.view)
self.setCentralWidget(QtWidgets.QWidget(self))
self.centralWidget().setLayout(self._widget_list)
self.setWindowTitle("Transcriber v0.1")
self.setWindowTitle(f"Transcriber {VERSION}")

def check_run(self):
if self.tag_selecter.active_tags and self.file_selecter.filenames:
Expand Down

0 comments on commit 55ea2ee

Please sign in to comment.