mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-17 17:42:20 +03:00
[830] Open Log Folder Natively
This commit is contained in:
parent
83fdaab61b
commit
8198d779c3
@ -18,6 +18,7 @@ import subprocess
|
|||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
import webbrowser
|
import webbrowser
|
||||||
|
import tempfile
|
||||||
from os import chdir, environ, path
|
from os import chdir, environ, path
|
||||||
from time import localtime, strftime, time
|
from time import localtime, strftime, time
|
||||||
from typing import TYPE_CHECKING, Any, Literal
|
from typing import TYPE_CHECKING, Any, Literal
|
||||||
@ -47,8 +48,6 @@ if __name__ == '__main__':
|
|||||||
# output until after this redirect is done, if needed.
|
# output until after this redirect is done, if needed.
|
||||||
if getattr(sys, 'frozen', False):
|
if getattr(sys, 'frozen', False):
|
||||||
# By default py2exe tries to write log to dirname(sys.executable) which fails when installed
|
# By default py2exe tries to write log to dirname(sys.executable) which fails when installed
|
||||||
import tempfile
|
|
||||||
|
|
||||||
# unbuffered not allowed for text in python3, so use `1 for line buffering
|
# unbuffered not allowed for text in python3, so use `1 for line buffering
|
||||||
log_file_path = path.join(tempfile.gettempdir(), f'{appname}.log')
|
log_file_path = path.join(tempfile.gettempdir(), f'{appname}.log')
|
||||||
sys.stdout = sys.stderr = open(log_file_path, mode='wt', buffering=1) # Do NOT use WITH here.
|
sys.stdout = sys.stderr = open(log_file_path, mode='wt', buffering=1) # Do NOT use WITH here.
|
||||||
@ -651,7 +650,8 @@ class AppWindow:
|
|||||||
self.help_menu.add_command(command=lambda: self.updater.check_for_updates()) # Check for Updates...
|
self.help_menu.add_command(command=lambda: self.updater.check_for_updates()) # Check for Updates...
|
||||||
# About E:D Market Connector
|
# About E:D Market Connector
|
||||||
self.help_menu.add_command(command=lambda: not self.HelpAbout.showing and self.HelpAbout(self.w))
|
self.help_menu.add_command(command=lambda: not self.HelpAbout.showing and self.HelpAbout(self.w))
|
||||||
self.help_menu.add_command(command=prefs.help_open_log_folder) # Open Log Folder
|
logfile_loc = pathlib.Path(tempfile.gettempdir()) / appname
|
||||||
|
self.help_menu.add_command(command=lambda: prefs.open_folder(logfile_loc)) # Open Log Folder
|
||||||
|
|
||||||
self.menubar.add_cascade(menu=self.help_menu)
|
self.menubar.add_cascade(menu=self.help_menu)
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
|
24
prefs.py
24
prefs.py
@ -8,14 +8,12 @@ import pathlib
|
|||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
import tkinter as tk
|
import tkinter as tk
|
||||||
import webbrowser
|
|
||||||
from os import system
|
from os import system
|
||||||
from os.path import expanduser, expandvars, join, normpath
|
from os.path import expanduser, expandvars, join, normpath
|
||||||
from tkinter import colorchooser as tkColorChooser # type: ignore # noqa: N812
|
from tkinter import colorchooser as tkColorChooser # type: ignore # noqa: N812
|
||||||
from tkinter import ttk
|
from tkinter import ttk
|
||||||
from types import TracebackType
|
from types import TracebackType
|
||||||
from typing import TYPE_CHECKING, Any, Callable, Optional, Type
|
from typing import TYPE_CHECKING, Any, Callable, Optional, Type
|
||||||
|
|
||||||
import myNotebook as nb # noqa: N813
|
import myNotebook as nb # noqa: N813
|
||||||
import plug
|
import plug
|
||||||
from config import appversion_nobuild, config
|
from config import appversion_nobuild, config
|
||||||
@ -44,14 +42,21 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
def help_open_log_folder() -> None:
|
def help_open_log_folder() -> None:
|
||||||
"""Open the folder logs are stored in."""
|
"""Open the folder logs are stored in."""
|
||||||
logfile_loc = pathlib.Path(tempfile.gettempdir())
|
logger.warning(
|
||||||
logfile_loc /= f'{appname}'
|
DeprecationWarning("This function is deprecated, use open_log_folder instead. "
|
||||||
|
"This function will be removed in 6.0 or later")
|
||||||
|
)
|
||||||
|
open_folder(pathlib.Path(tempfile.gettempdir()) / appname)
|
||||||
|
|
||||||
|
|
||||||
|
def open_folder(file: pathlib.Path) -> None:
|
||||||
|
"""Open the given file in the OS file explorer."""
|
||||||
if sys.platform.startswith('win'):
|
if sys.platform.startswith('win'):
|
||||||
# On Windows, use the "start" command to open the folder
|
# On Windows, use the "start" command to open the folder
|
||||||
system(f'start "" "{logfile_loc}"')
|
system(f'start "" "{file}"')
|
||||||
elif sys.platform.startswith('linux'):
|
elif sys.platform.startswith('linux'):
|
||||||
# On Linux, use the "xdg-open" command to open the folder
|
# On Linux, use the "xdg-open" command to open the folder
|
||||||
system(f'xdg-open "{logfile_loc}"')
|
system(f'xdg-open "{file}"')
|
||||||
|
|
||||||
|
|
||||||
class PrefsVersion:
|
class PrefsVersion:
|
||||||
@ -300,6 +305,9 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
):
|
):
|
||||||
self.geometry(f"+{position.left}+{position.top}")
|
self.geometry(f"+{position.left}+{position.top}")
|
||||||
|
|
||||||
|
# Set Log Directory
|
||||||
|
self.logfile_loc = pathlib.Path(tempfile.gettempdir()) / appname
|
||||||
|
|
||||||
def __setup_output_tab(self, root_notebook: ttk.Notebook) -> None:
|
def __setup_output_tab(self, root_notebook: ttk.Notebook) -> None:
|
||||||
output_frame = nb.Frame(root_notebook)
|
output_frame = nb.Frame(root_notebook)
|
||||||
output_frame.columnconfigure(0, weight=1)
|
output_frame.columnconfigure(0, weight=1)
|
||||||
@ -625,7 +633,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
config_frame,
|
config_frame,
|
||||||
# LANG: Label on button used to open a filesystem folder
|
# LANG: Label on button used to open a filesystem folder
|
||||||
text=_('Open Log Folder'), # Button that opens a folder in Explorer/Finder
|
text=_('Open Log Folder'), # Button that opens a folder in Explorer/Finder
|
||||||
command=lambda: help_open_log_folder()
|
command=lambda: open_folder(self.logfile_loc)
|
||||||
).grid(column=2, padx=self.PADX, pady=0, sticky=tk.NSEW, row=cur_row)
|
).grid(column=2, padx=self.PADX, pady=0, sticky=tk.NSEW, row=cur_row)
|
||||||
|
|
||||||
# Big spacer
|
# Big spacer
|
||||||
@ -884,7 +892,7 @@ class PreferencesDialog(tk.Toplevel):
|
|||||||
plugins_frame,
|
plugins_frame,
|
||||||
# LANG: Label on button used to open a filesystem folder
|
# LANG: Label on button used to open a filesystem folder
|
||||||
text=_('Open'), # Button that opens a folder in Explorer/Finder
|
text=_('Open'), # Button that opens a folder in Explorer/Finder
|
||||||
command=lambda: webbrowser.open(f'file:///{config.plugin_dir_path}')
|
command=lambda: open_folder(config.plugin_dir_path)
|
||||||
).grid(column=1, padx=self.PADX, pady=self.PADY, sticky=tk.N, row=cur_row)
|
).grid(column=1, padx=self.PADX, pady=self.PADY, sticky=tk.N, row=cur_row)
|
||||||
|
|
||||||
enabled_plugins = list(filter(lambda x: x.folder and x.module, plug.PLUGINS))
|
enabled_plugins = list(filter(lambda x: x.folder and x.module, plug.PLUGINS))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user