1.3.0a
Completely rewritten the terminal and some minor bug fixes
This commit is contained in:
parent
98085e84a4
commit
6667185945
24 changed files with 1058 additions and 45 deletions
2
.idea/JDE.iml
generated
2
.idea/JDE.iml
generated
|
@ -2,7 +2,7 @@
|
||||||
<module type="PYTHON_MODULE" version="4">
|
<module type="PYTHON_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager">
|
<component name="NewModuleRootManager">
|
||||||
<content url="file://$MODULE_DIR$" />
|
<content url="file://$MODULE_DIR$" />
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="Python 3.5.2rc1 (C:\Program Files\Python35\python.exe)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="TestRunnerService">
|
<component name="TestRunnerService">
|
||||||
|
|
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
|
@ -26,7 +26,7 @@
|
||||||
<ConfirmationsSetting value="0" id="Add" />
|
<ConfirmationsSetting value="0" id="Add" />
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.1+ (/usr/bin/python3.5)" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5.2rc1 (C:\Program Files\Python35\python.exe)" project-jdk-type="Python SDK" />
|
||||||
<component name="masterDetails">
|
<component name="masterDetails">
|
||||||
<states>
|
<states>
|
||||||
<state key="ScopeChooserConfigurable.UI">
|
<state key="ScopeChooserConfigurable.UI">
|
||||||
|
|
6
.idea/vcs.xml
generated
6
.idea/vcs.xml
generated
|
@ -1,6 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
629
.idea/workspace.xml
generated
Normal file
629
.idea/workspace.xml
generated
Normal file
|
@ -0,0 +1,629 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ChangeListManager">
|
||||||
|
<list default="true" id="7b9abe35-5710-453b-a8c9-7643dbb540ef" name="Default" comment="" />
|
||||||
|
<ignored path="JDE.iws" />
|
||||||
|
<ignored path=".idea/workspace.xml" />
|
||||||
|
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||||
|
<option name="TRACKING_ENABLED" value="true" />
|
||||||
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||||
|
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||||
|
</component>
|
||||||
|
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
||||||
|
<component name="CreatePatchCommitExecutor">
|
||||||
|
<option name="PATCH_PATH" value="" />
|
||||||
|
</component>
|
||||||
|
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
||||||
|
<component name="FavoritesManager">
|
||||||
|
<favorites_list name="JDE" />
|
||||||
|
</component>
|
||||||
|
<component name="FileEditorManager">
|
||||||
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
||||||
|
<file leaf-file-name="README.md" pinned="false" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider editor-type-id="MarkdownFxPreviewEditor">
|
||||||
|
<state />
|
||||||
|
</provider>
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
|
<state split_layout="FIRST">
|
||||||
|
<first_editor relative-caret-position="119">
|
||||||
|
<caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" />
|
||||||
|
<folding />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
</leaf>
|
||||||
|
</component>
|
||||||
|
<component name="FileTemplateManagerImpl">
|
||||||
|
<option name="RECENT_TEMPLATES">
|
||||||
|
<list>
|
||||||
|
<option value="Python Script" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="ROOT_SYNC" value="DONT_SYNC" />
|
||||||
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
|
</component>
|
||||||
|
<component name="IdeDocumentHistory">
|
||||||
|
<option name="CHANGED_PATHS">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/JDE/JDE.py" />
|
||||||
|
<option value="$PROJECT_DIR$/Programs/jpad.py" />
|
||||||
|
<option value="$PROJECT_DIR$/JDE/Interfaces/login.py" />
|
||||||
|
<option value="$PROJECT_DIR$/Programs/PyIDE.py" />
|
||||||
|
<option value="$PROJECT_DIR$/test.py" />
|
||||||
|
<option value="$PROJECT_DIR$/Programs/terminal.py" />
|
||||||
|
<option value="$PROJECT_DIR$/JDE/Interfaces/desktop.py" />
|
||||||
|
<option value="$PROJECT_DIR$/Programs/webEdit/htmlEdit.py" />
|
||||||
|
<option value="$PROJECT_DIR$/README.md" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectFrameBounds">
|
||||||
|
<option name="x" value="-8" />
|
||||||
|
<option name="y" value="-8" />
|
||||||
|
<option name="width" value="1296" />
|
||||||
|
<option name="height" value="776" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
|
||||||
|
<OptionsSetting value="true" id="Add" />
|
||||||
|
<OptionsSetting value="true" id="Remove" />
|
||||||
|
<OptionsSetting value="true" id="Checkout" />
|
||||||
|
<OptionsSetting value="true" id="Update" />
|
||||||
|
<OptionsSetting value="true" id="Status" />
|
||||||
|
<OptionsSetting value="true" id="Edit" />
|
||||||
|
<ConfirmationsSetting value="0" id="Add" />
|
||||||
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectView">
|
||||||
|
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||||
|
<flattenPackages />
|
||||||
|
<showMembers />
|
||||||
|
<showModules />
|
||||||
|
<showLibraryContents />
|
||||||
|
<hideEmptyPackages />
|
||||||
|
<abbreviatePackageNames />
|
||||||
|
<autoscrollToSource />
|
||||||
|
<autoscrollFromSource />
|
||||||
|
<sortByType />
|
||||||
|
<manualOrder />
|
||||||
|
<foldersAlwaysOnTop value="true" />
|
||||||
|
</navigator>
|
||||||
|
<panes>
|
||||||
|
<pane id="Scratches" />
|
||||||
|
<pane id="Scope" />
|
||||||
|
<pane id="ProjectPane">
|
||||||
|
<subPane>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="JDE" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
</subPane>
|
||||||
|
</pane>
|
||||||
|
</panes>
|
||||||
|
</component>
|
||||||
|
<component name="PropertiesComponent">
|
||||||
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
||||||
|
<property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" />
|
||||||
|
<property name="settings.editor.splitter.proportion" value="0.2" />
|
||||||
|
</component>
|
||||||
|
<component name="RunManager" selected="Python.run">
|
||||||
|
<configuration default="false" name="run" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/run.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="false" name="terminal" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/Programs" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/Programs/terminal.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="false" name="PyIDE" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/Programs" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/Programs/PyIDE.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="false" name="test" type="PythonConfigurationType" factoryName="Python" temporary="true">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||||
|
<option name="IS_MODULE_SDK" value="true" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/test.py" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="PythonConfigurationType" factoryName="Python">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs>
|
||||||
|
<env name="PYTHONUNBUFFERED" value="1" />
|
||||||
|
</envs>
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="SHOW_COMMAND_LINE" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="Tox" factoryName="Tox">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Attests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Doctests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Nosetests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
<option name="PARAMS" value="" />
|
||||||
|
<option name="USE_PARAM" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="Unittests">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
<option name="PUREUNITTEST" value="true" />
|
||||||
|
<option name="PARAMS" value="" />
|
||||||
|
<option name="USE_PARAM" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<configuration default="true" type="tests" factoryName="py.test">
|
||||||
|
<option name="INTERPRETER_OPTIONS" value="" />
|
||||||
|
<option name="PARENT_ENVS" value="true" />
|
||||||
|
<envs />
|
||||||
|
<option name="SDK_HOME" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="" />
|
||||||
|
<option name="IS_MODULE_SDK" value="false" />
|
||||||
|
<option name="ADD_CONTENT_ROOTS" value="true" />
|
||||||
|
<option name="ADD_SOURCE_ROOTS" value="true" />
|
||||||
|
<module name="JDE" />
|
||||||
|
<option name="SCRIPT_NAME" value="" />
|
||||||
|
<option name="CLASS_NAME" value="" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="FOLDER_NAME" value="" />
|
||||||
|
<option name="TEST_TYPE" value="TEST_SCRIPT" />
|
||||||
|
<option name="PATTERN" value="" />
|
||||||
|
<option name="USE_PATTERN" value="false" />
|
||||||
|
<option name="testToRun" value="" />
|
||||||
|
<option name="keywords" value="" />
|
||||||
|
<option name="params" value="" />
|
||||||
|
<option name="USE_PARAM" value="false" />
|
||||||
|
<option name="USE_KEYWORD" value="false" />
|
||||||
|
<method />
|
||||||
|
</configuration>
|
||||||
|
<list size="4">
|
||||||
|
<item index="0" class="java.lang.String" itemvalue="Python.run" />
|
||||||
|
<item index="1" class="java.lang.String" itemvalue="Python.terminal" />
|
||||||
|
<item index="2" class="java.lang.String" itemvalue="Python.PyIDE" />
|
||||||
|
<item index="3" class="java.lang.String" itemvalue="Python.test" />
|
||||||
|
</list>
|
||||||
|
<recent_temporary>
|
||||||
|
<list size="4">
|
||||||
|
<item index="0" class="java.lang.String" itemvalue="Python.run" />
|
||||||
|
<item index="1" class="java.lang.String" itemvalue="Python.terminal" />
|
||||||
|
<item index="2" class="java.lang.String" itemvalue="Python.test" />
|
||||||
|
<item index="3" class="java.lang.String" itemvalue="Python.PyIDE" />
|
||||||
|
</list>
|
||||||
|
</recent_temporary>
|
||||||
|
</component>
|
||||||
|
<component name="ShelveChangesManager" show_recycled="false">
|
||||||
|
<option name="remove_strategy" value="false" />
|
||||||
|
</component>
|
||||||
|
<component name="SvnConfiguration">
|
||||||
|
<configuration />
|
||||||
|
</component>
|
||||||
|
<component name="TaskManager">
|
||||||
|
<task active="true" id="Default" summary="Default task">
|
||||||
|
<changelist id="7b9abe35-5710-453b-a8c9-7643dbb540ef" name="Default" comment="" />
|
||||||
|
<created>1466672063402</created>
|
||||||
|
<option name="number" value="Default" />
|
||||||
|
<option name="presentableId" value="Default" />
|
||||||
|
<updated>1466672063402</updated>
|
||||||
|
</task>
|
||||||
|
<servers />
|
||||||
|
</component>
|
||||||
|
<component name="ToolWindowManager">
|
||||||
|
<frame x="-8" y="-8" width="1296" height="776" extended-state="6" />
|
||||||
|
<editor active="false" />
|
||||||
|
<layout>
|
||||||
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2281399" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||||
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32882884" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
|
||||||
|
<window_info id="Python Console" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32970452" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||||
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32763976" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||||
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||||
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||||
|
</layout>
|
||||||
|
</component>
|
||||||
|
<component name="Vcs.Log.UiProperties">
|
||||||
|
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
||||||
|
<collection />
|
||||||
|
</option>
|
||||||
|
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
||||||
|
<collection />
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="VcsContentAnnotationSettings">
|
||||||
|
<option name="myLimit" value="2678400000" />
|
||||||
|
</component>
|
||||||
|
<component name="VcsManagerConfiguration">
|
||||||
|
<ignored-roots>
|
||||||
|
<path value="$PROJECT_DIR$" />
|
||||||
|
</ignored-roots>
|
||||||
|
</component>
|
||||||
|
<component name="XDebuggerManager">
|
||||||
|
<breakpoint-manager>
|
||||||
|
<option name="time" value="3" />
|
||||||
|
</breakpoint-manager>
|
||||||
|
<watches-manager />
|
||||||
|
</component>
|
||||||
|
<component name="editorHistoryManager">
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider editor-type-id="MarkdownFxPreviewEditor">
|
||||||
|
<state />
|
||||||
|
</provider>
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
|
<state split_layout="FIRST">
|
||||||
|
<first_editor relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider editor-type-id="MarkdownFxPreviewEditor">
|
||||||
|
<state />
|
||||||
|
</provider>
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
|
<state split_layout="FIRST">
|
||||||
|
<first_editor relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/terminal.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/terminal.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="323">
|
||||||
|
<caret line="19" column="12" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="32" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/PyIDE.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/terminal.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="323">
|
||||||
|
<caret line="19" column="12" selection-start-line="19" selection-start-column="12" selection-end-line="19" selection-end-column="32" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/PyIDE.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/JDE.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/imageViewer.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-620">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-08AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-10AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-20AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-21AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-23AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-26AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-31AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-33AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-34AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/start.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-36AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-47AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-49AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-51AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-55AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-56AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-11-59AM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-12-03PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-12-04PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-12-08PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-12-13PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-12-19PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/login.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-986">
|
||||||
|
<caret line="33" column="33" selection-start-line="33" selection-start-column="33" selection-end-line="33" selection-end-column="33" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/23-06-2016-16-36PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/jpad.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="254">
|
||||||
|
<caret line="87" column="57" selection-start-line="87" selection-start-column="57" selection-end-line="87" selection-end-column="57" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/PyIDE.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="136">
|
||||||
|
<caret line="13" column="49" selection-start-line="13" selection-start-column="49" selection-end-line="13" selection-end-column="49" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/JDE.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="514">
|
||||||
|
<caret line="54" column="19" selection-start-line="54" selection-start-column="19" selection-end-line="54" selection-end-column="19" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$USER_HOME$/PycharmProjects/JDE-Terminal/test.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="0">
|
||||||
|
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$USER_HOME$/PycharmProjects/JDE-Terminal/terminal.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="204">
|
||||||
|
<caret line="12" column="15" selection-start-line="12" selection-start-column="15" selection-end-line="12" selection-end-column="15" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/minesweeper.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-1105">
|
||||||
|
<caret line="16" column="9" selection-start-line="16" selection-start-column="9" selection-end-line="16" selection-end-column="9" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/test.py" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/run.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="17">
|
||||||
|
<caret line="1" column="0" selection-start-line="1" selection-start-column="0" selection-end-line="1" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/terminal.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="514">
|
||||||
|
<caret line="109" column="31" selection-start-line="109" selection-start-column="31" selection-end-line="109" selection-end-column="31" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/settings" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/desktop.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="272">
|
||||||
|
<caret line="145" column="0" selection-start-line="145" selection-start-column="0" selection-end-line="145" selection-end-column="0" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/Programs/webEdit/htmlEdit.py">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="-1645">
|
||||||
|
<caret line="48" column="50" selection-start-line="48" selection-start-column="50" selection-end-line="48" selection-end-column="50" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/JDE/Logs/29-06-2016-14-14PM.log" />
|
||||||
|
<entry file="file://$PROJECT_DIR$/README.md">
|
||||||
|
<provider editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="34">
|
||||||
|
<caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
<provider editor-type-id="MarkdownFxPreviewEditor">
|
||||||
|
<state />
|
||||||
|
</provider>
|
||||||
|
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
|
||||||
|
<state split_layout="FIRST">
|
||||||
|
<first_editor relative-caret-position="119">
|
||||||
|
<caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" />
|
||||||
|
<folding />
|
||||||
|
</first_editor>
|
||||||
|
<second_editor />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</component>
|
||||||
|
</project>
|
BIN
JDE/Interfaces/__pycache__/desktop.cpython-35.pyc
Normal file
BIN
JDE/Interfaces/__pycache__/desktop.cpython-35.pyc
Normal file
Binary file not shown.
BIN
JDE/Interfaces/__pycache__/login.cpython-35.pyc
Normal file
BIN
JDE/Interfaces/__pycache__/login.cpython-35.pyc
Normal file
Binary file not shown.
BIN
JDE/Interfaces/__pycache__/start.cpython-35.pyc
Normal file
BIN
JDE/Interfaces/__pycache__/start.cpython-35.pyc
Normal file
Binary file not shown.
|
@ -9,8 +9,10 @@ from Programs import jpad
|
||||||
from Programs import info
|
from Programs import info
|
||||||
from Programs import imageViewer
|
from Programs import imageViewer
|
||||||
from Programs import minesweeper
|
from Programs import minesweeper
|
||||||
|
from Programs import terminal
|
||||||
|
from Programs.webEdit import htmlEdit as webEdit
|
||||||
|
|
||||||
desktopLog = logging.getLogger("desktop.py")
|
desktopLog = logging.getLogger(__name__)
|
||||||
|
|
||||||
desktopLog.debug("Atempting to read settings file")
|
desktopLog.debug("Atempting to read settings file")
|
||||||
try:
|
try:
|
||||||
|
@ -23,7 +25,7 @@ except Exception as e:
|
||||||
|
|
||||||
class desktop:
|
class desktop:
|
||||||
def box(self, event):
|
def box(self, event):
|
||||||
desktopLog.debug("Running box")
|
desktopLog.debug("Running "+desktop.box.__name__)
|
||||||
try:
|
try:
|
||||||
if (self.clicked == False):
|
if (self.clicked == False):
|
||||||
self.searchvar.set("")
|
self.searchvar.set("")
|
||||||
|
@ -33,7 +35,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def search_internet(self, event):
|
def search_internet(self, event):
|
||||||
desktopLog.debug("Running search_internet")
|
desktopLog.debug("Running "+desktop.search_internet.__name__)
|
||||||
# TODO: Find a way to implement a browser
|
# TODO: Find a way to implement a browser
|
||||||
try:
|
try:
|
||||||
webbrowser.open_new_tab("https://www.google.co.uk/#q=" + self.searchvar.get().replace(" ", "+"))
|
webbrowser.open_new_tab("https://www.google.co.uk/#q=" + self.searchvar.get().replace(" ", "+"))
|
||||||
|
@ -41,7 +43,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def reposition(self, event):
|
def reposition(self, event):
|
||||||
desktopLog.debug("Running reposition")
|
desktopLog.debug("Running "+desktop.reposition.__name__)
|
||||||
try:
|
try:
|
||||||
self.cHeight = self.window.winfo_height()
|
self.cHeight = self.window.winfo_height()
|
||||||
self.cWidth = self.window.winfo_width()
|
self.cWidth = self.window.winfo_width()
|
||||||
|
@ -70,7 +72,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def fullScreen(self, event):
|
def fullScreen(self, event):
|
||||||
desktopLog.debug("Running fullscreen")
|
desktopLog.debug("Running "+desktop.fullScreen.__name__)
|
||||||
try:
|
try:
|
||||||
if self.max == 0:
|
if self.max == 0:
|
||||||
self.window.attributes('-fullscreen', True)
|
self.window.attributes('-fullscreen', True)
|
||||||
|
@ -82,7 +84,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def clockTick(self):
|
def clockTick(self):
|
||||||
desktopLog.debug("Running clockTick")
|
desktopLog.debug("Running "+desktop.clockTick.__name__)
|
||||||
try:
|
try:
|
||||||
self.desktopRefresh()
|
self.desktopRefresh()
|
||||||
# cTime = time.strftime("%H:%M:%S")
|
# cTime = time.strftime("%H:%M:%S")
|
||||||
|
@ -98,7 +100,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def createSearch(self):
|
def createSearch(self):
|
||||||
desktopLog.debug("Running createSearch")
|
desktopLog.debug("Running "+desktop.createSearch.__name__)
|
||||||
try:
|
try:
|
||||||
self.searchText = Label(self.window, text="Search for: ")
|
self.searchText = Label(self.window, text="Search for: ")
|
||||||
self.searchvar = StringVar()
|
self.searchvar = StringVar()
|
||||||
|
@ -111,7 +113,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def contextMenuPopup(self, event):
|
def contextMenuPopup(self, event):
|
||||||
desktopLog.debug("Running contextMenuPopup")
|
desktopLog.debug("Running "+desktop.contextMenuPopup.__name__)
|
||||||
try:
|
try:
|
||||||
# start.start(self.menuColour, event.x_root, event.y_root)
|
# start.start(self.menuColour, event.x_root, event.y_root)
|
||||||
self.contextMenu.post(event.x_root, event.y_root)
|
self.contextMenu.post(event.x_root, event.y_root)
|
||||||
|
@ -126,7 +128,7 @@ class desktop:
|
||||||
self.contextMenu.add_command(label=label, command=command, state=state)
|
self.contextMenu.add_command(label=label, command=command, state=state)
|
||||||
|
|
||||||
def createContextMenu(self):
|
def createContextMenu(self):
|
||||||
desktopLog.debug("Running createContextMenu")
|
desktopLog.debug("Running "+desktop.createContextMenu.__name__)
|
||||||
try:
|
try:
|
||||||
self.contextMenu = Menu(self.window, tearoff=0, bg=self.contextMenuColour)
|
self.contextMenu = Menu(self.window, tearoff=0, bg=self.contextMenuColour)
|
||||||
|
|
||||||
|
@ -142,29 +144,36 @@ class desktop:
|
||||||
def viewImage():
|
def viewImage():
|
||||||
imageViewer.imageViewer(self.window)
|
imageViewer.imageViewer(self.window)
|
||||||
|
|
||||||
|
def runTerminal():
|
||||||
|
terminal.terminal(self.window)
|
||||||
|
|
||||||
|
def webEditor():
|
||||||
|
webEdit.webEdit(self.window)
|
||||||
|
|
||||||
self.contextMenu.add_command(label="Refresh", command=self.desktopRefresh)
|
self.contextMenu.add_command(label="Refresh", command=self.desktopRefresh)
|
||||||
|
|
||||||
self.contextMenu.add_cascade(label="Games", menu=self.games)
|
self.contextMenu.add_cascade(label="Games", menu=self.games)
|
||||||
self.contextMenu.add_cascade(label="Applications", menu=self.applications)
|
self.contextMenu.add_cascade(label="Applications", menu=self.applications)
|
||||||
|
|
||||||
self.applications.add_command(label="Jpad", command=jpadEdit)
|
self.applications.add_command(label="Jpad", command=jpadEdit)
|
||||||
|
self.applications.add_command(label="WebEdit", command=webEditor)
|
||||||
self.applications.add_command(label="View Images", command=viewImage)
|
self.applications.add_command(label="View Images", command=viewImage)
|
||||||
self.games.add_command(label="Minesweeper", command=minesweeperRun)
|
self.games.add_command(label="Minesweeper", command=minesweeperRun)
|
||||||
self.applications.add_command(label="File Explorer", state=DISABLED)
|
self.applications.add_command(label="File Explorer", state=DISABLED)
|
||||||
self.applications.add_command(label="Hardware Monitor", state=DISABLED)
|
self.applications.add_command(label="Hardware Monitor", state=DISABLED)
|
||||||
self.applications.add_command(label="Music Player", state=DISABLED)
|
self.applications.add_command(label="Music Player", state=DISABLED)
|
||||||
self.applications.add_command(label="Info", command=info.info)
|
self.applications.add_command(label="Info", command=info.info)
|
||||||
self.applications.add_command(label="Terminal", state=DISABLED)
|
self.applications.add_command(label="Terminal", state=ACTIVE, command=runTerminal)
|
||||||
self.applications.add_command(label="Settings", state=DISABLED)
|
self.applications.add_command(label="Settings", state=DISABLED)
|
||||||
self.contextMenu.add_command(label="Restart", state=DISABLED)
|
self.contextMenu.add_command(label="Restart", state=DISABLED)
|
||||||
self.contextMenu.add_command(label="Shutdown", command=sys.exit)
|
self.contextMenu.add_command(label="Exit", command=sys.exit)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def desktopRefresh(self):
|
def desktopRefresh(self):
|
||||||
try:
|
try:
|
||||||
desktopLog.debug("Running desktopRefresh")
|
desktopLog.debug("Running "+desktop.desktopRefresh.__name__)
|
||||||
self.fileImage = PhotoImage(file="JDE/Images/file.png")
|
self.fileImage = PhotoImage(file="JDE/Images/file.png")
|
||||||
self.f = []
|
self.f = []
|
||||||
self.l = []
|
self.l = []
|
||||||
|
@ -220,14 +229,14 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
desktopLog.debug("Running refresh")
|
desktopLog.debug("Running "+desktop.refresh.__name__)
|
||||||
try:
|
try:
|
||||||
self.desktopRefresh()
|
self.desktopRefresh()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def createStart(self):
|
def createStart(self):
|
||||||
desktopLog.debug("Running createStartPic")
|
desktopLog.debug("Running "+desktop.createStart.__name__)
|
||||||
try:
|
try:
|
||||||
start.start(self.menuColour, int(0), int(self.window.winfo_height()))
|
start.start(self.menuColour, int(0), int(self.window.winfo_height()))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -235,21 +244,21 @@ class desktop:
|
||||||
|
|
||||||
def createBackground(self):
|
def createBackground(self):
|
||||||
try:
|
try:
|
||||||
desktopLog.debug("Running createBackground")
|
desktopLog.debug("Running "+desktop.createBackground.__name__)
|
||||||
self.background_image = PhotoImage(file=self.background)
|
self.background_image = PhotoImage(file=self.background)
|
||||||
self.canvas.create_image(0, 0, image=self.background_image, anchor=NW)
|
self.canvas.create_image(0, 0, image=self.background_image, anchor=NW)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def createIcon(self):
|
def createIcon(self):
|
||||||
desktopLog.debug("Running createIcon")
|
desktopLog.debug("Running"+desktop.createIcon.__name__)
|
||||||
try:
|
try:
|
||||||
self.window.wm_iconbitmap("System/JordonOS Logo.ico")
|
self.window.wm_iconbitmap("System/JordonOS Logo.ico")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def createWindow(self):
|
def createWindow(self):
|
||||||
desktopLog.debug("Running createWindow")
|
desktopLog.debug("Running "+desktop.createWindow.__name__)
|
||||||
try:
|
try:
|
||||||
self.window = Tk()
|
self.window = Tk()
|
||||||
self.window.title("Jordon's Desktop Environment")
|
self.window.title("Jordon's Desktop Environment")
|
||||||
|
@ -291,7 +300,7 @@ class desktop:
|
||||||
desktopLog.error(str(e))
|
desktopLog.error(str(e))
|
||||||
|
|
||||||
def __init__(self, windowTitle="Desktop Environment", width="1920", height="1080", minWidth="", username=""):
|
def __init__(self, windowTitle="Desktop Environment", width="1920", height="1080", minWidth="", username=""):
|
||||||
desktopLog.debug("Running __init__")
|
desktopLog.debug("Running "+desktop.__init__.__name__)
|
||||||
try:
|
try:
|
||||||
self.width = width
|
self.width = width
|
||||||
self.height = height
|
self.height = height
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import logging
|
import logging
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
|
|
||||||
loginLog = logging.getLogger("login.py")
|
loginLog = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class login:
|
class login:
|
||||||
|
@ -20,6 +20,7 @@ class login:
|
||||||
self.file.close()
|
self.file.close()
|
||||||
except:
|
except:
|
||||||
self.message.configure(text="Err: Username or password is incorrect!")
|
self.message.configure(text="Err: Username or password is incorrect!")
|
||||||
|
|
||||||
self.file = open(self.userDirs + self.username.lower() + ".profile", "r")
|
self.file = open(self.userDirs + self.username.lower() + ".profile", "r")
|
||||||
|
|
||||||
self.line = self.file.readlines()
|
self.line = self.file.readlines()
|
||||||
|
|
18
JDE/JDE.py
18
JDE/JDE.py
|
@ -1,9 +1,16 @@
|
||||||
__author__ = "Jordonbc"
|
__author__ = "Jordonbc"
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
import os
|
||||||
|
|
||||||
logging.basicConfig(filename='JDE/Logs/' + str(time.strftime('%d-%m-%Y-%H-%M%p') + ".log"), level=logging.DEBUG)
|
if not os.path.exists("JDE/Logs"):
|
||||||
jdeLog = logging.getLogger("JDE.py")
|
os.mkdir("JDE/Logs")
|
||||||
|
|
||||||
|
logging.basicConfig(filename='JDE/Logs/' + str(time.strftime('%d-%m-%Y-%H-%M%p') + ".log"), level=logging.DEBUG,
|
||||||
|
datefmt='%I:%M:%S %p',
|
||||||
|
format='%(asctime)s:%(name)s:%(lineno)d}:%(levelname)s - %(message)s')
|
||||||
|
|
||||||
|
jdeLog = logging.getLogger(__name__)
|
||||||
|
|
||||||
jdeLog.info("Importing tkinter")
|
jdeLog.info("Importing tkinter")
|
||||||
try:
|
try:
|
||||||
|
@ -31,7 +38,7 @@ except Exception as e:
|
||||||
|
|
||||||
jdeLog.info("Importing JDE/Interfaces/desktop")
|
jdeLog.info("Importing JDE/Interfaces/desktop")
|
||||||
try:
|
try:
|
||||||
from JDE.Interfaces import desktop
|
from JDE.Interfaces import desktop as desktop
|
||||||
|
|
||||||
jdeLog.info("Import Successful!")
|
jdeLog.info("Import Successful!")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -45,9 +52,6 @@ try:
|
||||||
userFile.close()
|
userFile.close()
|
||||||
os.remove("active")
|
os.remove("active")
|
||||||
|
|
||||||
print(username)
|
desktop.desktop(windowTitle="JDE Desktop", username=username)
|
||||||
|
|
||||||
desktopApp = desktop.desktop
|
|
||||||
desktopApp(username=username)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
jdeLog.critical(str(e))
|
jdeLog.critical(str(e))
|
||||||
|
|
BIN
JDE/__pycache__/JDE.cpython-35.pyc
Normal file
BIN
JDE/__pycache__/JDE.cpython-35.pyc
Normal file
Binary file not shown.
73
Programs/PyIDE.py
Normal file
73
Programs/PyIDE.py
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
from tkinter import *
|
||||||
|
import sys
|
||||||
|
from tkinter.filedialog import askopenfilename, asksaveasfilename
|
||||||
|
|
||||||
|
|
||||||
|
def PyIDE():
|
||||||
|
def openFile():
|
||||||
|
file = askopenfilename(defaultextension=".py",
|
||||||
|
filetypes=[("Python .py", ".py"), ("Python .pyw", ".pyw")])
|
||||||
|
|
||||||
|
if file != "":
|
||||||
|
with open(file, "r") as openfile:
|
||||||
|
input.delete(0.0, END)
|
||||||
|
input.insert(0.0, openfile.read())
|
||||||
|
|
||||||
|
def save():
|
||||||
|
file = asksaveasfilename(defaultextension=".py",
|
||||||
|
filetypes=[("Python .py", ".py"), ("Python .pyw", ".pyw")])
|
||||||
|
|
||||||
|
if file != "":
|
||||||
|
with open(file, "w") as saveFile:
|
||||||
|
saveFile.write(input.get(0.0, END))
|
||||||
|
|
||||||
|
class TextRedirector(object):
|
||||||
|
def __init__(self, widget, tag="stdout"):
|
||||||
|
self.widget = widget
|
||||||
|
self.tag = tag
|
||||||
|
|
||||||
|
def write(self, str):
|
||||||
|
output.delete(0.0, END)
|
||||||
|
self.widget.configure(state="normal")
|
||||||
|
self.widget.insert("end", str, (self.tag,))
|
||||||
|
self.widget.configure(state="disabled")
|
||||||
|
self.widget.see(END)
|
||||||
|
|
||||||
|
def run():
|
||||||
|
exec(input.get(0.0, END))
|
||||||
|
|
||||||
|
rootInterpreter = Tk()
|
||||||
|
rootInterpreter.title("Terminal")
|
||||||
|
rootInterpreter.geometry("200x200")
|
||||||
|
rootInterpreter.minsize(200, 200)
|
||||||
|
|
||||||
|
menu = Menu(rootInterpreter)
|
||||||
|
rootInterpreter.config(menu=menu)
|
||||||
|
filemenu = Menu(menu)
|
||||||
|
menu.add_cascade(label="File", menu=filemenu)
|
||||||
|
filemenu.add_command(label="New")
|
||||||
|
filemenu.add_command(label="Open", command=openFile)
|
||||||
|
filemenu.add_command(label="Save", command=save)
|
||||||
|
filemenu.add_command(label="Save As", state=DISABLED)
|
||||||
|
filemenu.add_separator()
|
||||||
|
filemenu.add_command(label="Exit", command=sys.exit)
|
||||||
|
|
||||||
|
output = Text(rootInterpreter, state=DISABLED, wrap="word")
|
||||||
|
output.configure(state=NORMAL)
|
||||||
|
output.configure(state=DISABLED)
|
||||||
|
output.pack(side=TOP, expand=YES, fill=BOTH)
|
||||||
|
|
||||||
|
input = Text(rootInterpreter)
|
||||||
|
input.focus()
|
||||||
|
input.pack(side=BOTTOM, expand=YES, fill=BOTH)
|
||||||
|
|
||||||
|
sys.stderr = TextRedirector(output, "stderr")
|
||||||
|
|
||||||
|
sys.stdout = TextRedirector(output, "stdout")
|
||||||
|
|
||||||
|
rootInterpreter.mainloop()
|
||||||
|
|
||||||
|
# rootInterpreter.protocol("WM_DELETE_WINDOW", closeApp)
|
||||||
|
|
||||||
|
|
||||||
|
PyIDE()
|
BIN
Programs/__pycache__/imageViewer.cpython-35.pyc
Normal file
BIN
Programs/__pycache__/imageViewer.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Programs/__pycache__/info.cpython-35.pyc
Normal file
BIN
Programs/__pycache__/info.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Programs/__pycache__/jpad.cpython-35.pyc
Normal file
BIN
Programs/__pycache__/jpad.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Programs/__pycache__/minesweeper.cpython-35.pyc
Normal file
BIN
Programs/__pycache__/minesweeper.cpython-35.pyc
Normal file
Binary file not shown.
BIN
Programs/__pycache__/terminal.cpython-35.pyc
Normal file
BIN
Programs/__pycache__/terminal.cpython-35.pyc
Normal file
Binary file not shown.
|
@ -2,7 +2,7 @@ import logging
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
from tkinter.filedialog import askopenfilename, asksaveasfilename
|
from tkinter.filedialog import askopenfilename, asksaveasfilename
|
||||||
|
|
||||||
jpadLog = logging.getLogger("jpad.py")
|
jpadLog = logging.getLogger(__name__)
|
||||||
|
|
||||||
jpadLog.debug("Atempting to read settings file")
|
jpadLog.debug("Atempting to read settings file")
|
||||||
try:
|
try:
|
||||||
|
@ -15,14 +15,14 @@ except Exception as e:
|
||||||
|
|
||||||
class jpadEditor:
|
class jpadEditor:
|
||||||
def minimize(self):
|
def minimize(self):
|
||||||
jpadLog.debug("Running minimize")
|
jpadLog.debug("Running "+jpadEditor.minimize.__name__)
|
||||||
try:
|
try:
|
||||||
self.appFocus = 0
|
self.appFocus = 0
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def closeApp(self):
|
def closeApp(self):
|
||||||
jpadLog.debug("Running closeApp")
|
jpadLog.debug("Running "+jpadEditor.closeApp.__name__)
|
||||||
try:
|
try:
|
||||||
# self.appIcon.destroy()
|
# self.appIcon.destroy()
|
||||||
self.window.destroy()
|
self.window.destroy()
|
||||||
|
@ -30,7 +30,7 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def focusApp(self):
|
def focusApp(self):
|
||||||
jpadLog.debug("Running focusApp")
|
jpadLog.debug("Running "+jpadEditor.focusApp.__name__)
|
||||||
try:
|
try:
|
||||||
if self.appFocus == 0:
|
if self.appFocus == 0:
|
||||||
self.window.focus_force()
|
self.window.focus_force()
|
||||||
|
@ -43,7 +43,7 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def createMenu(self):
|
def createMenu(self):
|
||||||
jpadLog.debug("Running createMenu")
|
jpadLog.debug("Running "+jpadEditor.createMenu.__name__)
|
||||||
try:
|
try:
|
||||||
self.menu = Menu(self.window)
|
self.menu = Menu(self.window)
|
||||||
self.window.config(menu=self.menu)
|
self.window.config(menu=self.menu)
|
||||||
|
@ -63,7 +63,7 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def new(self):
|
def new(self):
|
||||||
jpadLog.debug("Running new")
|
jpadLog.debug("Running "+jpadEditor.new.__name__)
|
||||||
try:
|
try:
|
||||||
self.window.title("Jpad Text Editor" + " File: New File")
|
self.window.title("Jpad Text Editor" + " File: New File")
|
||||||
self.textPad.delete(0.0, END)
|
self.textPad.delete(0.0, END)
|
||||||
|
@ -71,14 +71,14 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def exit_command(self):
|
def exit_command(self):
|
||||||
jpadLog.debug("Running exit_command")
|
jpadLog.debug("Running "+jpadEditor.exit_command.__name__)
|
||||||
try:
|
try:
|
||||||
self.closeApp()
|
self.closeApp()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def saveAs_command(self):
|
def saveAs_command(self):
|
||||||
jpadLog.debug("Running saveAs_command")
|
jpadLog.debug("Running "+jpadEditor.saveAs_command.__name__)
|
||||||
try:
|
try:
|
||||||
self.jpadFile = asksaveasfilename(defaultextension=".txt",
|
self.jpadFile = asksaveasfilename(defaultextension=".txt",
|
||||||
filetypes=[("Text Files", ".txt"), ("Python .py", ".py"),
|
filetypes=[("Text Files", ".txt"), ("Python .py", ".py"),
|
||||||
|
@ -95,7 +95,7 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def save_command(self):
|
def save_command(self):
|
||||||
jpadLog.debug("Running save_command")
|
jpadLog.debug("Running "+jpadEditor.save_command.__name__)
|
||||||
try:
|
try:
|
||||||
self.jpadFile = open(str(self.jpadFile), "w")
|
self.jpadFile = open(str(self.jpadFile), "w")
|
||||||
if self.jpadFile != None:
|
if self.jpadFile != None:
|
||||||
|
@ -109,7 +109,7 @@ class jpadEditor:
|
||||||
jpadLog.error(str(e))
|
jpadLog.error(str(e))
|
||||||
|
|
||||||
def open_command(self):
|
def open_command(self):
|
||||||
jpadLog.debug("Running open_command")
|
jpadLog.debug("Running "+jpadEditor.open_command.__name__)
|
||||||
try:
|
try:
|
||||||
self.jpadFile = askopenfilename(defaultextension=".txt",
|
self.jpadFile = askopenfilename(defaultextension=".txt",
|
||||||
filetypes=[("Text Files", ".txt"), ("Python .py", ".py"),
|
filetypes=[("Text Files", ".txt"), ("Python .py", ".py"),
|
||||||
|
|
110
Programs/terminal.py
Normal file
110
Programs/terminal.py
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
__author__ = "Jordonbc"
|
||||||
|
|
||||||
|
__version__ = "1.1.0"
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
default_stdin = sys.stdin
|
||||||
|
default_stdout = sys.stdout
|
||||||
|
default_stderr = sys.stderr
|
||||||
|
|
||||||
|
disabledCommands = ["help()", "exit()", "sys.exit()", "quit()"]
|
||||||
|
availableCommands = ["set", "bg", "fg", "clear"]
|
||||||
|
|
||||||
|
|
||||||
|
def commands():
|
||||||
|
print("Available Commands:")
|
||||||
|
print("set bg [HEX COLOUR]")
|
||||||
|
print("set fg [HEX COLOUR]")
|
||||||
|
print("clear")
|
||||||
|
print("run [file]")
|
||||||
|
|
||||||
|
|
||||||
|
class terminal:
|
||||||
|
class TextRedirector(object):
|
||||||
|
def __init__(self, widget, tag="stdout"):
|
||||||
|
self.widget = widget
|
||||||
|
self.tag = tag
|
||||||
|
|
||||||
|
def write(self, str):
|
||||||
|
self.widget.configure(state="normal")
|
||||||
|
self.widget.insert("end", str, (self.tag,))
|
||||||
|
self.widget.configure(state="disabled")
|
||||||
|
self.widget.see(END)
|
||||||
|
|
||||||
|
def __init__(self, master, command=None):
|
||||||
|
def run(command=None):
|
||||||
|
if input.get() != "":
|
||||||
|
print(input.get())
|
||||||
|
if input.get().startswith("set "):
|
||||||
|
if input.get().startswith("set bg "):
|
||||||
|
try:
|
||||||
|
output.configure(bg=str(input.get()).replace("set bg ", "").replace("\n", ""))
|
||||||
|
input.configure(bg=str(input.get()).replace("set bg ", "").replace("\n", ""))
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
elif input.get().startswith("set fg "):
|
||||||
|
try:
|
||||||
|
if str(input.get()).replace("set fg ", "").replace("\n", "").lower() == "#ffffff":
|
||||||
|
output.configure(insertbackground="#000000")
|
||||||
|
input.configure(insertbackground="#000000")
|
||||||
|
elif str(input.get()).replace("set fg ", "").replace("\n", "").lower() == "#000000":
|
||||||
|
output.configure(insertbackground="#ffffff")
|
||||||
|
input.configure(insertbackground="#ffffff")
|
||||||
|
output.configure(fg=str(input.get()).replace("set fg ", "").replace("\n", ""))
|
||||||
|
input.configure(fg=str(input.get()).replace("set fg ", "").replace("\n", ""))
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
|
||||||
|
if input.get() == "clear":
|
||||||
|
print("\n" * 25)
|
||||||
|
elif input.get() in disabledCommands:
|
||||||
|
input.delete(0, END)
|
||||||
|
print("Command is disabled.")
|
||||||
|
|
||||||
|
elif input.get().startswith("run "):
|
||||||
|
try:
|
||||||
|
exec(open(str(input.get()).replace("run ", ""), "r").read())
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
exec(input.get())
|
||||||
|
except Exception as e:
|
||||||
|
print(str(e))
|
||||||
|
|
||||||
|
input.delete(0, END)
|
||||||
|
|
||||||
|
def closeApp():
|
||||||
|
sys.stdin = default_stdin
|
||||||
|
sys.stdout = default_stdout
|
||||||
|
sys.stderr = default_stderr
|
||||||
|
rootTerminal.destroy()
|
||||||
|
|
||||||
|
rootTerminal = Toplevel(master)
|
||||||
|
rootTerminal.title("Terminal")
|
||||||
|
rootTerminal.geometry("400x300")
|
||||||
|
rootTerminal.minsize(200, 200)
|
||||||
|
rootTerminal.configure(bg="#000000")
|
||||||
|
|
||||||
|
output = Text(rootTerminal, state=DISABLED, height=10, bg="#000000", fg="#FFFFFF", wrap="word", relief=FLAT)
|
||||||
|
output.configure(state=NORMAL)
|
||||||
|
output.insert(END, "JDE Terminal V " + __version__ + "\n")
|
||||||
|
output.insert(END, "Type commands() to see available commands\n")
|
||||||
|
output.configure(state=DISABLED)
|
||||||
|
output.pack(side=TOP, expand=YES, fill=BOTH)
|
||||||
|
|
||||||
|
input = Entry(rootTerminal, width=400, bg="#000000", fg="#FFFFFF", relief=FLAT)
|
||||||
|
input.focus()
|
||||||
|
input.bind("<Return>", run)
|
||||||
|
input.pack(side=BOTTOM)
|
||||||
|
|
||||||
|
output.configure(insertbackground="#ffffff")
|
||||||
|
input.configure(insertbackground="#ffffff")
|
||||||
|
|
||||||
|
sys.stdin = self.TextRedirector(output, "stdin")
|
||||||
|
sys.stderr = self.TextRedirector(output)
|
||||||
|
sys.stdout = self.TextRedirector(output)
|
||||||
|
|
||||||
|
rootTerminal.protocol("WM_DELETE_WINDOW", closeApp)
|
||||||
|
rootTerminal.mainloop()
|
9
Programs/webEdit/Templates/HTML 5/Default.HET
Normal file
9
Programs/webEdit/Templates/HTML 5/Default.HET
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>NEW WEBSITE</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>Your Website Text</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
Programs/webEdit/__pycache__/htmlEdit.cpython-35.pyc
Normal file
BIN
Programs/webEdit/__pycache__/htmlEdit.cpython-35.pyc
Normal file
Binary file not shown.
175
Programs/webEdit/htmlEdit.py
Normal file
175
Programs/webEdit/htmlEdit.py
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
__author__ = "Jordonbc"
|
||||||
|
import os
|
||||||
|
from tkinter import *
|
||||||
|
from tkinter.filedialog import *
|
||||||
|
from tkinter.messagebox import *
|
||||||
|
from tkinter.simpledialog import askstring
|
||||||
|
import webbrowser
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
settings = {}
|
||||||
|
|
||||||
|
try:
|
||||||
|
exec(open("Programs/webEdit/settings", "r").read(), settings)
|
||||||
|
except:
|
||||||
|
print("Settings Currupted!, Resetting")
|
||||||
|
with open("Programs/webEdit/settings", "w") as file:
|
||||||
|
file.write("""fgColour = '#000000'
|
||||||
|
bgColour = '#FFFFFF'
|
||||||
|
cursor = '#FFFFFF'""")
|
||||||
|
|
||||||
|
class webEdit:
|
||||||
|
def open(self):
|
||||||
|
self.saveLocation = askopenfilename(filetypes=[("HTML", "html"), ("All Files", "*")])
|
||||||
|
if self.saveLocation != "":
|
||||||
|
self.textbox.delete(0.0, END)
|
||||||
|
self.textbox.insert(0.0, open(self.saveLocation, "r").read().strip())
|
||||||
|
self.root.title("WebEdit - " + str(self.saveLocation))
|
||||||
|
|
||||||
|
def save(self):
|
||||||
|
self.saveLocation = asksaveasfilename(filetypes=[("HTML", "html"), ("All Files", "*")])
|
||||||
|
if self.saveLocation != "":
|
||||||
|
file = open(self.saveLocation, "w")
|
||||||
|
file.write(str(self.textbox.get(0.0, END)).strip())
|
||||||
|
file.close()
|
||||||
|
self.root.title("WebEdit - " + str(self.saveLocation))
|
||||||
|
|
||||||
|
def new(self):
|
||||||
|
if self.textbox.get(0.0, END) == "\n":
|
||||||
|
# template = askopenfile(defaultextension="HET", filetypes=[("Template", "HET"), ("All Files", "*")])
|
||||||
|
template = open("Programs/webEdit/Templates/HTML 5/Default.HET", "r")
|
||||||
|
if template != None:
|
||||||
|
template = template.read()
|
||||||
|
self.textbox.delete(0.0, END)
|
||||||
|
self.textbox.insert(0.0, template)
|
||||||
|
else:
|
||||||
|
if askyesno(title="Sure?", message="Are you sure?"):
|
||||||
|
# template = askopenfile(defaultextension="HET", filetypes=[("Template", "HET"), ("All Files", "*")])
|
||||||
|
template = open("Programs/webEdit/Templates/HTML 5/Default.HET", "r")
|
||||||
|
if template != None:
|
||||||
|
template = template.read()
|
||||||
|
self.textbox.delete(0.0, END)
|
||||||
|
self.textbox.insert(0.0, template)
|
||||||
|
self.root.title("WebEdit - New File")
|
||||||
|
|
||||||
|
def createMenu(self):
|
||||||
|
menu = Menu(self.root)
|
||||||
|
menu.configure(bg=settings["bgColour"], fg=settings["fgColour"])
|
||||||
|
fileMenu = Menu(menu)
|
||||||
|
fileMenu.configure(bg=settings["bgColour"], fg=settings["fgColour"])
|
||||||
|
viewMenu = Menu(menu)
|
||||||
|
viewMenu.configure(bg=settings["bgColour"], fg=settings["fgColour"])
|
||||||
|
snippetsMenu = Menu(menu)
|
||||||
|
snippetsMenu.configure(bg=settings["bgColour"], fg=settings["fgColour"])
|
||||||
|
headlineMenu = Menu(menu)
|
||||||
|
headlineMenu.configure(bg=settings["bgColour"], fg=settings["fgColour"])
|
||||||
|
self.root.configure(menu=menu)
|
||||||
|
menu.add_cascade(label="File", menu=fileMenu)
|
||||||
|
menu.add_cascade(label="Code Snippets", menu=snippetsMenu)
|
||||||
|
|
||||||
|
def paragraph():
|
||||||
|
self.textbox.insert(INSERT, "<p></p>")
|
||||||
|
|
||||||
|
def div():
|
||||||
|
self.textbox.insert(INSERT, "<div></div>")
|
||||||
|
|
||||||
|
def br():
|
||||||
|
self.textbox.insert(INSERT, "<br>")
|
||||||
|
|
||||||
|
def headline_1():
|
||||||
|
self.textbox.insert(INSERT, "<h1></h1>")
|
||||||
|
|
||||||
|
def headline_2():
|
||||||
|
self.textbox.insert(INSERT, "<h2></h2>")
|
||||||
|
|
||||||
|
def headline_3():
|
||||||
|
self.textbox.insert(INSERT, "<h3></h3>")
|
||||||
|
|
||||||
|
def headline_4():
|
||||||
|
self.textbox.insert(INSERT, "<h4></h4>")
|
||||||
|
|
||||||
|
def headline_5():
|
||||||
|
self.textbox.insert(INSERT, "<h5></h5>")
|
||||||
|
|
||||||
|
def headline_6():
|
||||||
|
self.textbox.insert(INSERT, "<h6></h6>")
|
||||||
|
|
||||||
|
def insertImage():
|
||||||
|
location = askstring(title="Image", prompt="Image")
|
||||||
|
self.textbox.insert(INSERT, "<img src='" + location + "'/>")
|
||||||
|
|
||||||
|
def Link():
|
||||||
|
address = askstring(title="Link", prompt="Link Address")
|
||||||
|
text = askstring(title="Link", prompt="Text")
|
||||||
|
self.textbox.insert(INSERT, "<a href='" + address + "'>"+text+"</a>")
|
||||||
|
|
||||||
|
def openSettings():
|
||||||
|
self.textbox.delete(0.0, END)
|
||||||
|
self.textbox.insert(0.0, open("settings").read())
|
||||||
|
|
||||||
|
def view_default():
|
||||||
|
if self.saveLocation != "":
|
||||||
|
webbrowser.open_new(self.saveLocation)
|
||||||
|
|
||||||
|
snippetsMenu.add_command(label="Paragraph", command=paragraph)
|
||||||
|
snippetsMenu.add_command(label="Division", command=div)
|
||||||
|
snippetsMenu.add_command(label="Image", command=insertImage)
|
||||||
|
snippetsMenu.add_command(label="Link", command=Link)
|
||||||
|
snippetsMenu.add_command(label="Break", command=br)
|
||||||
|
snippetsMenu.add_cascade(label="Headline", menu=headlineMenu)
|
||||||
|
headlineMenu.add_command(label="1", command=headline_1)
|
||||||
|
headlineMenu.add_command(label="2", command=headline_2)
|
||||||
|
headlineMenu.add_command(label="3", command=headline_3)
|
||||||
|
headlineMenu.add_command(label="4", command=headline_4)
|
||||||
|
headlineMenu.add_command(label="5", command=headline_5)
|
||||||
|
headlineMenu.add_command(label="6", command=headline_6)
|
||||||
|
|
||||||
|
fileMenu.add_command(label="New", command=self.new)
|
||||||
|
fileMenu.add_command(label="Save", command=self.save)
|
||||||
|
fileMenu.add_command(label="Open", command=self.open)
|
||||||
|
fileMenu.add_separator()
|
||||||
|
fileMenu.add_command(label="Settings", command=openSettings)
|
||||||
|
fileMenu.add_separator()
|
||||||
|
fileMenu.add_command(label="Exit", command=quit)
|
||||||
|
|
||||||
|
menu.add_command(label="View in browser", command=view_default)
|
||||||
|
|
||||||
|
# menu.add_cascade(label="View", menu=viewMenu)
|
||||||
|
|
||||||
|
# viewMenu.add_command(label="Default program", command=view_default)
|
||||||
|
|
||||||
|
def createWidgets(self):
|
||||||
|
self.scrollbar = Scrollbar(self.root)
|
||||||
|
self.scrollbar.pack(side=RIGHT, fill=Y)
|
||||||
|
|
||||||
|
self.textbox = Text(self.root)
|
||||||
|
self.textbox.pack(side=TOP, expand=YES, fill=BOTH)
|
||||||
|
self.textbox.configure(bg=settings["bgColour"], fg=settings["fgColour"], insertbackground=settings["cursor"],
|
||||||
|
yscrollcommand=self.scrollbar.set)
|
||||||
|
|
||||||
|
self.scrollbar.config(command=self.textbox.yview)
|
||||||
|
|
||||||
|
def saveShortcut(event):
|
||||||
|
self.save()
|
||||||
|
|
||||||
|
def openShortcut(event):
|
||||||
|
self.open()
|
||||||
|
|
||||||
|
def newShortcut(event):
|
||||||
|
self.new()
|
||||||
|
|
||||||
|
self.textbox.bind("<Control-s>", saveShortcut)
|
||||||
|
self.textbox.bind("<Control-o>", openShortcut)
|
||||||
|
self.textbox.bind("<Control-n>", newShortcut)
|
||||||
|
|
||||||
|
def __init__(self, master):
|
||||||
|
self.saveLocation = ""
|
||||||
|
self.root = Toplevel(master)
|
||||||
|
self.root.title("WebEdit")
|
||||||
|
self.root.configure(bg=settings["bgColour"])
|
||||||
|
self.createWidgets()
|
||||||
|
self.createMenu()
|
||||||
|
self.new()
|
||||||
|
|
||||||
|
self.root.mainloop()
|
3
Programs/webEdit/settings
Normal file
3
Programs/webEdit/settings
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fgColour = '#FFFFFF'
|
||||||
|
bgColour = '#111111'
|
||||||
|
cursor = '#FFFFFF'
|
|
@ -1,2 +1,8 @@
|
||||||
# JDE
|
# JDE
|
||||||
Glass OS Reborn!
|
Jordon's Desktop Environment is a complete rewrite of Glass OS which was one of my previous programs I made.
|
||||||
|
## What is JDE?
|
||||||
|
JDE stands for "Jordon's Desktop Environment" and is a complete rewrite of Glass OS which was another desktop environment. This means that JDE is NOT an operating system but is a overlay on top of your existing desktop.
|
||||||
|
## What are the requirements?
|
||||||
|
Well, JDE will work on any computer that is capable of running python 3. This means that even the tiny device you call a "raspberry pi" can run it!
|
||||||
|
|
||||||
|
Disclaimer: JDE has NOT been tested on mac, many linux distributions or windows 8.1 and below.
|
Reference in a new issue