Added  File Browser
This commit is contained in:
Jordon Brooks 2016-07-09 10:09:42 +01:00
parent c56a313fc5
commit 2538cc2290
4 changed files with 202 additions and 125 deletions

211
.idea/workspace.xml generated
View file

@ -20,12 +20,12 @@
<favorites_list name="JDE" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="desktop.py" pinned="false" current-in-tab="true">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="desktop.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/desktop.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2227">
<caret line="131" column="62" selection-start-line="131" selection-start-column="62" selection-end-line="131" selection-end-column="62" />
<state relative-caret-position="68">
<caret line="166" column="0" selection-start-line="166" selection-start-column="0" selection-end-line="166" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -33,6 +33,28 @@
</provider>
</entry>
</file>
<file leaf-file-name="settings.conf" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/JDE/Settings/settings.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="136">
<caret line="8" column="14" selection-start-line="8" selection-start-column="14" selection-end-line="8" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="FileBrowser.py" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Programs/FileBrowser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="7" column="45" selection-start-line="7" selection-start-column="45" selection-end-line="7" selection-end-column="45" />
<folding>
<element signature="e#0#21#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FileTemplateManagerImpl">
@ -58,6 +80,7 @@
<option value="$PROJECT_DIR$/JDE/Logs/09-07-2016-08-27AM.log" />
<option value="$PROJECT_DIR$/JDE/JDE.py" />
<option value="$PROJECT_DIR$/JDE/Interfaces/login.py" />
<option value="$PROJECT_DIR$/Programs/FileBrowser.py" />
<option value="$PROJECT_DIR$/JDE/Interfaces/desktop.py" />
<option value="$PROJECT_DIR$/JDE/Settings/settings.conf" />
</list>
@ -94,6 +117,7 @@
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<PATH>
@ -126,10 +150,45 @@
<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_ELEMENT>
<option name="myItemId" value="Settings" />
<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_ELEMENT>
<option name="myItemId" value="Interfaces" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scratches" />
<pane id="Scope" />
</panes>
</component>
<component name="PropertiesComponent">
@ -380,18 +439,18 @@
<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="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="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="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39906833" sideWeight="0.5" order="3" side_tool="false" 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.32659408" 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.39906833" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="UnknownFeatures">
@ -415,14 +474,11 @@
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<option name="time" value="4" />
<option name="time" value="5" />
</breakpoint-manager>
<watches-manager />
</component>
<component name="editorHistoryManager">
<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" />
@ -489,11 +545,6 @@
</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" />
</state>
</provider>
<provider selected="true" editor-type-id="split-provider[text-editor;MarkdownPreviewEditor]">
<state split_layout="FIRST">
<first_editor relative-caret-position="170">
@ -502,6 +553,11 @@
<second_editor />
</state>
</provider>
<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" />
</state>
</provider>
<provider editor-type-id="MarkdownFxPreviewEditor">
<state />
</provider>
@ -523,92 +579,51 @@
<entry file="file://$PROJECT_DIR$/JDE/Logs/08-07-2016-12-02PM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/08-07-2016-12-04PM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/08-07-2016-12-10PM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-15AM.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" column="76" selection-start-line="7" selection-start-column="45" selection-end-line="7" selection-end-column="76" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-17AM.log">
<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" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-21AM.log">
<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" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-22AM.log">
<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" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-26AM.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-153">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-27AM.log">
<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" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-27AM.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1380">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-33AM.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-207">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-15AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-17AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-21AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-22AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-26AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-27AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-27AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-08-33AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/JDE.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="4" column="10" selection-start-line="4" selection-start-column="10" selection-end-line="4" selection-end-column="10" />
<folding>
<element signature="e#24#38#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-09-01AM.log">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-357">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-09-01AM.log" />
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/login.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="221">
<caret line="147" column="52" selection-start-line="147" selection-start-column="52" selection-end-line="147" selection-end-column="52" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Logs/09-07-2016-09-27AM.log" />
<entry file="file://$PROJECT_DIR$/Programs/FileBrowser.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="102">
<caret line="7" column="45" selection-start-line="7" selection-start-column="45" selection-end-line="7" selection-end-column="45" />
<folding>
<element signature="e#0#21#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/PycharmProjects/tkinterWindows/myProgram.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="0">
<caret line="0" column="3" selection-start-line="0" selection-start-column="3" selection-end-line="0" selection-end-column="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/desktop.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="166" column="0" selection-start-line="166" selection-start-column="0" selection-end-line="166" selection-end-column="0" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
@ -617,21 +632,11 @@
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Settings/settings.conf">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="119">
<caret line="7" column="24" selection-start-line="7" selection-start-column="24" selection-end-line="7" selection-end-column="24" />
<state relative-caret-position="136">
<caret line="8" column="14" selection-start-line="8" selection-start-column="14" selection-end-line="8" selection-end-column="14" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/JDE/Interfaces/desktop.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2227">
<caret line="131" column="62" selection-start-line="131" selection-start-column="62" selection-end-line="131" selection-end-column="62" />
<folding>
<element signature="e#0#14#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</component>
</project>

View file

@ -13,6 +13,7 @@ from Programs import imageViewer
from Programs import minesweeper
from Programs import terminal
from Programs.webEdit import htmlEdit as webEdit
from Programs import FileBrowser
import threading
desktopLog = logging.getLogger(__name__)
@ -81,12 +82,12 @@ class desktop:
self.canvas.create_image(0, 0, image=self.background_image, anchor=NW, tag="background")
except Exception as e:
desktopLog.error(str(e))
threading.Thread(target=searchPlaceRepos, daemon=True).start()
threading.Thread(target=toolbarPlaceRepos, daemon=True).start()
threading.Thread(target=notifyBarPlaceRepos, daemon=True).start()
threading.Thread(target=resizeBackground, daemon=True).start()
self.windowX = self.window.winfo_x()
self.windowY = (self.window.winfo_y() + self.window.winfo_height())
@ -153,10 +154,13 @@ class desktop:
def createContextMenu(self):
desktopLog.debug("Running " + desktop.createContextMenu.__name__)
try:
self.contextMenu = Menu(self.window, tearoff=0, bg=self.contextMenuColour)
self.contextMenu = Menu(self.window, tearoff=0, bg=self.contextMenuColour, bd=0, relief=FLAT)
self.games = Menu(self.contextMenu, bg=self.contextMenuColour)
self.applications = Menu(self.contextMenu, bg=self.contextMenuColour)
self.games = Menu(self.contextMenu, bg=self.contextMenuColour, tearoff=0, relief=FLAT, bd=0)
self.applications = Menu(self.contextMenu, bg=self.contextMenuColour, tearoff=0, relief=FLAT, bd=0)
def FileBrowserRun():
FileBrowser.fileBrowser(self.window, os.path.realpath(os.path.dirname(__file__+"../../../")))
def minesweeperRun():
minesweeper.mine_sweeper(self.window, self.menuColour)
@ -178,6 +182,7 @@ class desktop:
self.contextMenu.add_cascade(label="Games", menu=self.games)
self.contextMenu.add_cascade(label="Applications", menu=self.applications)
self.applications.add_command(label="File Browser", command=FileBrowserRun)
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)
@ -231,7 +236,7 @@ class desktop:
self.space += 80
self.f.append(Button(self.window, image=self.fileImage))
self.f.append(Button(self.window, image=self.fileImage, relief=FLAT))
self.f[files].place(x=int(80), y=int(20) + self.space, width=40, height=40)
@ -310,7 +315,10 @@ class desktop:
self.displayTime = Label(self.notifcationBar, text=self.cTime, bg=self.menuColour, font=("System", 20))
self.displayTime.pack(side=RIGHT)
self.window.bind("<F5>", self.refresh)
def manFefresh(event):
self.refresh()
self.window.bind("<F5>", manFefresh)
self.window.bind("<Escape>", self.fullScreen)
self.window.bind("<Configure>", self.reposition)

View file

@ -6,4 +6,4 @@ colour = "#a0fd44"
startPic = "JDE/Images/start.png"
contextMenuColour = "#a0fd44"
resizeBackground = False # This can be VERY slow!
version = "1.4.0 ALPHA"
version = "1.5.0 ALPHA"

64
Programs/FileBrowser.py Normal file
View file

@ -0,0 +1,64 @@
from tkinter import *
import os
path = "E:/programming/"
class fileBrowser:
def update(self):
self.path = os.path.realpath(self.path)
self.folderListbox.delete(0, END)
self.fileListbox.delete(0, END)
self.addressBox.delete(0, END)
self.addressBox.insert(0, self.path)
self.folderListbox.insert(0, "Back")
for item in os.listdir(self.path):
if not self.path.startswith("."):
if os.path.isdir(os.path.join(self.path, item)):
self.folderListbox.insert(END, item)
else:
self.fileListbox.insert(END, item)
def createWidgets(self):
self.folderListbox = Listbox(self.root)
self.fileListbox = Listbox(self.root)
self.addressBox = Entry(self.root)
self.addressBox.insert(0, self.path)
self.folderListbox.insert(0, "Back")
def test(event):
if self.folderListbox.get(self.folderListbox.curselection()) == "Back":
self.path = os.path.abspath(os.path.join(self.path, os.pardir))
else:
self.path = os.path.join(self.path, self.folderListbox.get(self.folderListbox.curselection()))
self.update()
def refresh(event):
self.path = os.path.abspath(self.addressBox.get())
self.update()
def upd(event):
self.update()
self.update()
self.addressBox.bind("<Return>", refresh)
self.folderListbox.bind("<F5>", upd)
self.folderListbox.bind('<Double-1>', test)
self.addressBox.pack(side=TOP, expand=NO, fill=X)
self.folderListbox.pack(side=LEFT, expand=YES, fill=BOTH)
self.fileListbox.pack(side=LEFT, expand=YES, fill=BOTH)
def __init__(self, master, path):
self.path = os.path.abspath(os.path.dirname(os.path.realpath(path)))
self.root = Toplevel(master)
self.root.title("File Browser")
self.createWidgets()
self.root.mainloop()