Various improvements

This commit is contained in:
Fabian 2021-11-17 04:27:59 +01:00
parent 30c4035eff
commit 56285caeab
5 changed files with 31 additions and 18 deletions

View File

@ -51,9 +51,7 @@ class Tasks:
return self._jira_tasks
def add_jira_task(self, task_name):
print(f"before: {self._jira_tasks}")
self._jira_tasks.append(task_name)
print(f"after: {self._jira_tasks}")
self._jira_tasks_usage[task_name] = datetime.now()
if len(self._jira_tasks_usage) > max_jira_tasks:
sorted_tasks = sorted(self._jira_tasks_usage.keys(), key=lambda x: self._jira_tasks_usage[x])

25
main.py
View File

@ -12,6 +12,7 @@ from exceptions import FimeFrackingException
from new_task import NewTask
from task_edit import TaskEdit
from report import Report
from util import get_screen_height
class App:
@ -21,7 +22,7 @@ class App:
data = Data()
self.tasks = Tasks(data)
self.log = Log(data)
self.active_task = self.log.last_log() or "Nothing"
self._active_task = self.log.last_log() or "Nothing"
icon = QtGui.QIcon.fromTheme("appointment-new")
@ -57,29 +58,41 @@ class App:
@QtCore.Slot()
def report_done(self):
self.active_task = self.log.last_log() or "Nothing"
@property
def active_task(self):
return self._active_task
@active_task.setter
def active_task(self, task):
self._active_task = task
self.tasks.update_jira_task_usage(self._active_task)
self.update_tray_menu()
def change_task(self, task):
self.active_task = task
if task == "Nothing":
return
self.log.log(task)
self.update_tray_menu()
def update_tray_menu(self):
def add_tasks(tasks):
action_height = None
for t in tasks:
a = self.menu.addAction(t)
action_height = self.menu.actionGeometry(a).height()
a.triggered.connect(partial(self.change_task, t))
if t == self.active_task:
a.setIcon(QtGui.QIcon.fromTheme("go-next"))
return action_height
self.menu.clear()
add_tasks(self.tasks.tasks)
action_height = add_tasks(self.tasks.tasks)
already_taken = (len(self.tasks.tasks) + 4) * action_height
available_space = get_screen_height(self.menu) * 0.8 - already_taken
jira_entry_count = int(available_space // action_height)
self.menu.addSeparator()
add_tasks(self.tasks.jira_tasks)
add_tasks(self.tasks.jira_tasks[:jira_entry_count])
self.menu.addSeparator()
add_tasks(["Pause"])

View File

@ -5,6 +5,7 @@ from datetime import datetime
from PySide2.QtWidgets import QHeaderView
from data import Tasks
from util import get_screen_height
class Report(QtWidgets.QDialog):
@ -120,13 +121,8 @@ class Report(QtWidgets.QDialog):
self.tableWidget.resizeColumnToContents(0)
if self.tableWidget.rowCount() > 4:
if hasattr(self.tableWidget, "screen"):
screen_height = self.tableWidget.screen().size().height()
else:
print("unable to detect screen height falling back to default value of 1080")
screen_height = 1080
self.tableWidget.setMinimumHeight(min((self.tableWidget.rowCount() + 2) * self.tableWidget.rowHeight(0),
screen_height * 0.8))
get_screen_height(self.tableWidget) * 0.8))
def update_prev_next(self):
prev, _next = self._report.prev_next_avail()

View File

@ -24,7 +24,7 @@ class TaskCompleter(QCompleter):
self.search_url = os.path.join(self.config.jira_url, "rest/api/2/search")
self.text = ""
self.response_text = ""
self.model_string_list = []
self.model_data = set()
self.escalate = False
self.update_timer = QTimer(self)
self.update_timer.timeout.connect(self.process_response)
@ -39,10 +39,10 @@ class TaskCompleter(QCompleter):
if result_dict["response_text"] == self.text:
if self.text == self.response_text:
self.response_text = result_dict["response_text"]
self.model_string_list = result_dict["result"]
self.model_data = set(result_dict["result"])
else:
self.model_string_list += result_dict["result"]
self.model().setStringList(self.model_string_list)
self.model_data = self.model_data.union(set(result_dict["result"]))
self.model().setStringList(self.model_data)
self.complete()
except Empty:
return

6
util.py Normal file
View File

@ -0,0 +1,6 @@
def get_screen_height(qobject):
if hasattr(qobject, "screen"):
return qobject.screen().size().height()
else:
print("unable to detect screen height falling back to default value of 1080")
return 1080