Skip to content

Commit 9812c75

Browse files
committed
Added plugin system
1 parent f84ed93 commit 9812c75

File tree

4 files changed

+34
-10
lines changed

4 files changed

+34
-10
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
/__pycache__/
2+
13
#cx_freeze
24
build/
35
dist/

TardisDiff.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,31 @@
22
import os
33
import inspect
44
from PyQt5 import QtWidgets, QtCore, QtGui
5+
import plugnplay
56
from uptime import boottime
6-
from TardisUtil import TardisOptions
7+
from TardisUtil import TardisOptions, TimeSubmitter
78

89

910
class TardisDiff(QtWidgets.QMainWindow):
1011

1112
def __init__(self):
1213
super(TardisDiff, self).__init__()
13-
self.diff = 0
14+
self.difference = 0
1415
self.clipboard = QtWidgets.QApplication.clipboard()
16+
1517
# Set hot keys
1618
QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Shift+C"), self,
1719
self.setClipboard)
20+
QtWidgets.QShortcut(QtGui.QKeySequence("Ctrl+Shift+T"), self,
21+
self.notify_time_submitters)
1822
self.options = TardisOptions()
1923

24+
# Get plugins
25+
plugnplay.plugin_dirs = ['./plugins', ]
26+
plugnplay.load_plugins()
27+
2028
# Get directory path
21-
# From: http://stackoverflow.com/questions/3718657/how-to-properly-determine-current-script-directory-in-python/22881871#22881871
29+
# From: http://stackoverflow.com/a/22881871/1963958
2230
if getattr(sys, 'frozen', False): # py2exe, PyInstaller, cx_Freeze
2331
script_path = os.path.abspath(sys.executable)
2432
else:
@@ -53,7 +61,7 @@ def initUI(self):
5361
self.timeEdit1.setTime(self.getStartTime())
5462
self.timeEdit2.setTime(QtCore.QTime.currentTime())
5563

56-
#Set relations
64+
# Set relations
5765
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole,
5866
self.label_time1)
5967
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole,
@@ -75,7 +83,7 @@ def initUI(self):
7583

7684
self.statusBar()
7785

78-
#connect slots
86+
# connect slots
7987
self.timeEdit1.timeChanged.connect(self.inputChanged)
8088
self.timeEdit2.timeChanged.connect(self.inputChanged)
8189
self.timeEditBreakTime.timeChanged.connect(self.inputChanged)
@@ -93,20 +101,23 @@ def inputChanged(self):
93101
time1 = self.timeEdit1.time()
94102
time2 = self.timeEdit2.time()
95103
breakTime = self.timeEditBreakTime.time().secsTo(QtCore.QTime(0, 0))
96-
self.diff = (time1.secsTo(time2) + breakTime) / 3600
97-
self.diff = round(self.diff, 2)
98-
self.label_timeDiffOut.setText(str(self.diff))
104+
self.difference = (time1.secsTo(time2) + breakTime) / 3600
105+
self.difference = round(self.difference, 2)
106+
self.label_timeDiffOut.setText(str(self.difference))
99107

100108
def setClipboard(self):
101109
"""Sets the current diff text to clipboard"""
102-
self.clipboard.setText(str(self.diff))
110+
self.clipboard.setText(str(self.difference))
103111
self.statusBar().showMessage("Copied to clipboard.")
104112

105113
def getStartTime(self):
106114
return TardisDiff.getBootTimeAsQTime()\
107115
if self.options.isStartTimeAuto()\
108116
else QtCore.QTime.fromString(self.options.getStartTime())
109117

118+
def notify_time_submitters(self):
119+
TimeSubmitter.submit_time(self.difference)
120+
110121
@staticmethod
111122
def getBootTimeAsQTime():
112123
return QtCore.QDateTime(boottime()).time()

TardisUtil.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import configparser
22
import os
3+
from plugnplay import Interface
4+
35

46
class TardisOptions:
57

@@ -49,4 +51,10 @@ def generateDefaultConfig():
4951
config['TardisDiff'] = {'start_time': 'auto',
5052

5153
}
52-
return config
54+
return config
55+
56+
57+
class TimeSubmitter(Interface):
58+
59+
def submit_time(self, duration):
60+
pass

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Install PyQT5 from: http://www.riverbankcomputing.com/software/pyqt/download5
2+
uptime==3.0.1
3+
plugnplay==0.5.2

0 commit comments

Comments
 (0)