# Path: designer/project_window_qt.py
# class Ui_ProjectWindow(object):
#     def setupUi(self, ProjectWindow):
#     def retranslateUi(self, ProjectWindow):
# 
# Path: interface/about_dialog.py
# class AboutDialog(QtWidgets.QDialog, about_dialog_qt.Ui_Dialog):
#     def __init__(self, parent=None):
# 
# Path: interface/battery_window.py
# class BatteryWindow(QtWidgets.QMainWindow, battery_window_qt.Ui_CognitiveBattery):
#     def __init__(self, base_dir, project_dir, res_width, res_height):
#     def set_default_settings(self):
#     def show_documentation(self):
#     def show_license(self):
#     def show_contribute(self):
#     def show_browse_issues(self):
#     def show_new_issue(self):
#     def show_releases(self):
#     def show_settings(self):
#     def show_about(self):
#     def show_update(self):
#     def error_dialog(self, message):
#     def random_order_selected(self):
#     def select_all(self):
#     def deselect_all(self):
#     def move_up(self):
#     def move_down(self):
#     def get_settings(self):
#     def closeEvent(self, event):
#     def start(self):
# 
# Path: interface/project_new_window.py
# class NewProjectWindow(QtWidgets.QDialog, project_new_window_qt.Ui_NewProjectWindow):
#     def __init__(self, base_dir, project_list):
#     def select_file(self):
#     def create_project(self):
# 
# Path: interface/update_dialog.py
# class UpdateDialog(QtWidgets.QDialog, update_dialog_qt.Ui_Dialog):
#     def __init__(self, parent=None):
#     def check_version(self):
#     def show_releases(self):
# 
# Path: utils/values.py
# def get_version():
# def get_links():


import os
import json
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
from designer import project_window_qt
from interface import about_dialog, battery_window, project_new_window, update_dialog
from utils import values
        else:
            self.project_list = self.refresh_projects()

        # Make info labels invisible at start
        self.researcherLabel.hide()
        self.createdLabel.hide()
        self.dirLabel.hide()

        # Handle menu bar item click events
        self.actionNewProject.triggered.connect(self.new_project)
        self.actionExit.triggered.connect(self.close)
        self.actionDocumentation.triggered.connect(self.show_documentation)
        self.actionLicense.triggered.connect(self.show_license)
        self.actionContribute.triggered.connect(self.show_contribute)
        self.actionBrowse_Issues.triggered.connect(self.show_browse_issues)
        self.actionReport_Bug.triggered.connect(self.show_new_issue)
        self.actionRequest_Feature.triggered.connect(self.show_new_issue)
        self.actionCheck_for_updates.triggered.connect(self.show_update)
        self.actionAbout.triggered.connect(self.show_about)

        # Bind button events
        self.projectExpandButton.clicked.connect(self.projectTree.expandAll)
        self.projectCollapseButton.clicked.connect(self.projectTree.collapseAll)
        self.openButton.clicked.connect(self.start)
        self.deleteButton.clicked.connect(self.delete_project)

        # Project tree click event
        self.projectTree.itemClicked.connect(self.project_click)

    def new_project(self):

# Path: designer/project_window_qt.py
# class Ui_ProjectWindow(object):
#     def setupUi(self, ProjectWindow):
#     def retranslateUi(self, ProjectWindow):
# 
# Path: interface/about_dialog.py
# class AboutDialog(QtWidgets.QDialog, about_dialog_qt.Ui_Dialog):
#     def __init__(self, parent=None):
# 
# Path: interface/battery_window.py
# class BatteryWindow(QtWidgets.QMainWindow, battery_window_qt.Ui_CognitiveBattery):
#     def __init__(self, base_dir, project_dir, res_width, res_height):
#     def set_default_settings(self):
#     def show_documentation(self):
#     def show_license(self):
#     def show_contribute(self):
#     def show_browse_issues(self):
#     def show_new_issue(self):
#     def show_releases(self):
#     def show_settings(self):
#     def show_about(self):
#     def show_update(self):
#     def error_dialog(self, message):
#     def random_order_selected(self):
#     def select_all(self):
#     def deselect_all(self):
#     def move_up(self):
#     def move_down(self):
#     def get_settings(self):
#     def closeEvent(self, event):
#     def start(self):
# 
# Path: interface/project_new_window.py
# class NewProjectWindow(QtWidgets.QDialog, project_new_window_qt.Ui_NewProjectWindow):
#     def __init__(self, base_dir, project_list):
#     def select_file(self):
#     def create_project(self):
# 
# Path: interface/update_dialog.py
# class UpdateDialog(QtWidgets.QDialog, update_dialog_qt.Ui_Dialog):
#     def __init__(self, parent=None):
#     def check_version(self):
#     def show_releases(self):
# 
# Path: utils/values.py
# def get_version():
# def get_links():


# Path: interface/project_window.py
import os
import json
from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
from designer import project_window_qt
from interface import about_dialog, battery_window, project_new_window, update_dialog
from utils import values

        else:
            self.project_list = self.refresh_projects()

        # Make info labels invisible at start
        self.researcherLabel.hide()
        self.createdLabel.hide()
        self.dirLabel.hide()

        # Handle menu bar item click events
        self.actionNewProject.triggered.connect(self.new_project)
        self.actionExit.triggered.connect(self.close)
        self.actionDocumentation.triggered.connect(self.show_documentation)
        self.actionLicense.triggered.connect(self.show_license)
        self.actionContribute.triggered.connect(self.show_contribute)
        self.actionBrowse_Issues.triggered.connect(self.show_browse_issues)
        self.actionReport_Bug.triggered.connect(self.show_new_issue)
        self.actionRequest_Feature.triggered.connect(self.show_new_issue)
        self.actionCheck_for_updates.triggered.connect(self.show_update)
        self.actionAbout.triggered.connect(self.show_about)

        # Bind button events
        self.projectExpandButton.clicked.connect(self.projectTree.expandAll)
        self.projectCollapseButton.clicked.connect(self.projectTree.collapseAll)
        self.openButton.clicked.connect(self.start)
        self.deleteButton.clicked.connect(self.delete_project)

        # Project tree click event
        self.projectTree.itemClicked.connect(self.project_click)

    def new_project(self):

        self.new_project_window = project_new_window.NewProjectWindow(