-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1b70ada
commit 7faec56
Showing
5 changed files
with
165 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
include README.md LICENSE timecard/resources/* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,56 @@ | ||
# Timecard | ||
|
||
Track time spent. | ||
Timecard allows you to track how much time you spend on tasks. | ||
It offers a clean, responsive one-window interface that allows you to | ||
quickly configure your time tracking, and then hides away in the system tray | ||
until you need it again. | ||
|
||
## Features | ||
|
||
* Start, pause, and stop time tracking. | ||
* Add activity notes. | ||
* System tray. | ||
* Start and pause time tracking from application window or system tray. | ||
* Stop timer and save to log with activity notes. | ||
* View, sort, and edit time log entries. | ||
* Customizable time log path. | ||
* Hides to system tray. | ||
* Quit protection helps prevent accidentally closing while tracking time. | ||
|
||
## Usage | ||
|
||
Using Timecard is simple! | ||
|
||
1. Press "Start" to start tracking time. | ||
2. Press "Stop" and "Confirm Stop" to stop your running timer. | ||
3. Enter activity notes for your session in "WHat are you doing?" | ||
4. Press "Save" to save the time log entry. | ||
|
||
If you close the window, Timecard will stay running in the system tray. | ||
Click the system tray icon and press "Show/Hide Window" to restore the | ||
window. | ||
|
||
To quit, press the Quit button on the lower-right corner of the window, | ||
and then press "Quit" at the prompt. If there is no time running or pending | ||
save, you can also click "Quit" from the system tray icon menu. | ||
|
||
## Future Features | ||
|
||
* Pomodoro reminders. | ||
* Alarms. | ||
* Pomodoro features. | ||
* Alarms and reminders. | ||
|
||
## History | ||
|
||
Timecard 1.0 was the first application ever released by developer and author | ||
Jason C. McDonald, built in Visual Basic .NET 2010, and released through | ||
the newly founded MousePaw Games. | ||
|
||
This is a resurrection of that project. It offers the same core functionality | ||
as the original, but in an improved interface. Unlike its predecessor, | ||
Timecard 2.0 is portable and completely open source. | ||
|
||
## Contributing | ||
|
||
Bug reports and pull requests are welcome via | ||
[GitHub](https://github.com/codemouse92/timecard)! | ||
|
||
## License | ||
|
||
Timecard 2.0 is licensed under the BSD-3-Clause license (see `LICENSE`). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
PySide2 >= 5.14.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
#!/usr/bin/env python3 | ||
|
||
# Based on https://github.com/navdeep-G/setup.py/blob/master/setup.py | ||
|
||
import io | ||
import os | ||
import sys | ||
from shutil import rmtree | ||
|
||
from setuptools import find_packages, setup, Command | ||
|
||
# Package meta-data | ||
NAME = 'Timecard' | ||
VERSION = '2.0.0' | ||
DESCRIPTION = 'Application for tracking time spent.' | ||
AUTHOR = 'Jason C. McDonald' | ||
EMAIL = '[email protected]' | ||
URL = 'https://github.com/codeouse92/timecard' | ||
|
||
REQUIRES_PYTHON = '>=3.8.0' | ||
|
||
REQUIRED = ['PySide2 >= 5.14.0'] | ||
|
||
here = os.path.abspath(os.path.dirname(__file__)) | ||
|
||
# Import the README and use it as the long-description. | ||
# Note: this will only work if 'README.md' is present in your MANIFEST.in file! | ||
try: | ||
with io.open(os.path.join(here, 'README.md'), encoding='utf-8') as f: | ||
long_description = '\n' + f.read() | ||
except FileNotFoundError: | ||
long_description = DESCRIPTION | ||
|
||
# Load the package's __version__.py module as a dictionary | ||
about = {} | ||
if not VERSION: | ||
project_slug = NAME.lower().replace("-", "_").replace(" ", "_") | ||
with open(os.path.join(here, project_slug, '__version__.py')) as f: | ||
exec(f.read(), about) | ||
else: | ||
about['__version__'] = VERSION | ||
|
||
class UploadCommand(Command): | ||
"""Support setup.py upload.""" | ||
|
||
description = 'Build and publish the package.' | ||
user_options = [] | ||
|
||
@staticmethod | ||
def status(s): | ||
"""Prints things in bold.""" | ||
print('\033[1m{0}\033[0m'.format(s)) | ||
|
||
def initialize_options(self): | ||
pass | ||
|
||
def finalize_options(self): | ||
pass | ||
|
||
def run(self): | ||
try: | ||
self.status('Removing previous builds…') | ||
rmtree(os.path.join(here, 'dist')) | ||
except OSError: | ||
pass | ||
|
||
self.status('Building Source and Wheel (universal) distribution…') | ||
os.system('{0} setup.py sdist bdist_wheel --universal'.format(sys.executable)) | ||
|
||
self.status('Uploading the package to PyPI via Twine…') | ||
os.system('twine upload dist/*') | ||
|
||
self.status('Pushing git tags…') | ||
os.system('git tag v{0}'.format(about['__version__'])) | ||
os.system('git push --tags') | ||
|
||
sys.exit() | ||
|
||
|
||
# Where the magic happens: | ||
setup( | ||
name=NAME, | ||
version=about['__version__'], | ||
description=DESCRIPTION, | ||
long_description=long_description, | ||
long_description_content_type='text/markdown', | ||
author=AUTHOR, | ||
author_email=EMAIL, | ||
python_requires=REQUIRES_PYTHON, | ||
url=URL, | ||
packages=find_packages(exclude=["tests", "*.tests", "*.tests.*", "tests.*"]), | ||
install_requires=REQUIRED, | ||
include_package_data=True, | ||
license='BSD-3-Clause', | ||
classifiers=[ | ||
'Development Status :: 5 - Production/Stable', | ||
'Environment :: X11 Applications :: Qt', | ||
'Intended Audience :: End Users/Desktop', | ||
'License :: OSI Approved :: BSD License', | ||
'Natural Language :: English', | ||
'Operating System :: OS Independent', | ||
'Programming Language :: Python', | ||
'Programming Language :: Python :: 3', | ||
'Programming Language :: Python :: 3.8', | ||
'Programming Language :: Python :: Implementation :: CPython', | ||
'Topic :: Office/Business' | ||
], | ||
# $ setup.py publish support. | ||
cmdclass={ | ||
'upload': UploadCommand, | ||
}, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
VERSION = (2, 0, 0) | ||
|
||
__version__ = ".".join(map(str, VERSION)) |