Skip to content

Commit

Permalink
Merge pull request #75 from j9ac9k/add-magic-like-link-support
Browse files Browse the repository at this point in the history
Add magic like link support
  • Loading branch information
j9ac9k authored Apr 19, 2024
2 parents f908f83 + db9ef6c commit e3ffdcb
Show file tree
Hide file tree
Showing 6 changed files with 183 additions and 51 deletions.
2 changes: 1 addition & 1 deletion src/doppkit/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
__version__ = "0.4.0rc1"
__version__ = "0.4.0rc2"

from . import cache
from . import grid
Expand Down
2 changes: 1 addition & 1 deletion src/doppkit/cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ async def cache(
urls: Iterable[DownloadUrl],
headers: dict[str, str],
progress: Optional[Progress] = None
) -> Iterable[Union[Content, Exception, httpx.Response]]:
) -> Iterable[Union[Content, BaseException, httpx.Response]]:
limits = httpx.Limits(
max_keepalive_connections=app.threads, max_connections=app.threads
)
Expand Down
2 changes: 0 additions & 2 deletions src/doppkit/grid.py
Original file line number Diff line number Diff line change
Expand Up @@ -126,8 +126,6 @@ class AOI(TypedDict):
vector_intersects: list[VectorProduct]




class Grid:
def __init__(self, args):
self.args = args
Expand Down
42 changes: 42 additions & 0 deletions src/doppkit/gui/MagicLinkDialog.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import logging
from qtpy import QtCore, QtWidgets

from typing import Optional

logger = logging.getLogger("doppkit")


class MagicLinkDialog(QtWidgets.QDialog):

magicLinkText = QtCore.Signal(object)

def __init__(self, parent: Optional[QtWidgets.QWidget]=None) -> None:
super().__init__(parent)

self.lineEdit = QtWidgets.QLineEdit()
label = QtWidgets.QLabel("&Magic Link Text")
label.setBuddy(self.lineEdit)

labelFont = label.font()
labelFont.setPointSize(10)
label.setFont(labelFont)

standardButton = QtWidgets.QDialogButtonBox.StandardButton
self.buttonBox = QtWidgets.QDialogButtonBox(
standardButton.Ok | standardButton.Close,
QtCore.Qt.Orientation.Horizontal
)
self.buttonBox.accepted.connect(self.passMagicLinkText)
self.buttonBox.rejected.connect(self.close)

layout = QtWidgets.QVBoxLayout()
layout.addWidget(label)
layout.addWidget(self.lineEdit)
layout.addWidget(self.buttonBox)
self.setLayout(layout)
self.setWindowTitle("Magic Link Dialog")

@QtCore.Slot()
def passMagicLinkText(self):
self.magicLinkText.emit(self.lineEdit.text())
self.close()
35 changes: 26 additions & 9 deletions src/doppkit/gui/MenuBar.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from qtpy.QtWidgets import QAction, QApplication, QFileDialog, QMenu, QMenuBar, QMainWindow

from .SettingsDialog import SettingsDialog
from .MagicLinkDialog import MagicLinkDialog

class MenuBar(QMenuBar):

Expand All @@ -20,28 +21,31 @@ def __init__(self) -> None:
break
else:
raise RuntimeError("Main Window not Found")
self.fileMenu = FileMenu(self)
self.viewMenu = ViewMenu(self)
self.fileMenu = FileMenu(parent=self)
self.viewMenu = ViewMenu(parent=self)
self.helpMenu = QMenu("Help", self)

for menu in [self.fileMenu, self.viewMenu, self.helpMenu]:
self.addMenu(menu)

self.settingsDialog: typing.Optional[SettingsDialog] = None

class FileMenu(QMenu):

def __init__(self, title: typing.Optional[str] = None, parent: MenuBar = None) -> None:
if isinstance(title, str):
super().__init__(title, parent)
else:
parent, title = title, ""
super().__init__(parent)
def __init__(
self,
title: typing.Optional[str] = None,
parent: typing.Optional[MenuBar] = None
) -> None:
if title is None:
title = ""
super().__init__(title, parent)
self.setTitle("File")
self.settingsDialog: typing.Optional['SettingsDialog'] = None
self.magicLinkDialog: typing.Optional['MagicLinkDialog'] = None
self._settingsAction()
self._uploadFileAction()
self._uploadDirectoryAction()
self._provideMagicLinkAction()
self._quitAction()

def _settingsAction(self) -> None:
Expand All @@ -58,6 +62,14 @@ def invokeSettings(self):
self.settingsDialog.rejected.connect(self._resetSettingsDialog)
self.settingsDialog.show()

@Slot()
def invokeMagicLinkDialog(self):
if self.magicLinkDialog is None:
self.magicLinkDialog = MagicLinkDialog(parent=self)
mainWindow = self.parent().mainWindow
self.magicLinkDialog.magicLinkText.connect(mainWindow.parseMagicLink)
self.magicLinkDialog.show()

@Slot()
def uploadFileDialog(self):
filename, filter_ = QFileDialog.getOpenFileName(
Expand Down Expand Up @@ -139,6 +151,11 @@ def _uploadDirectoryAction(self):
uploadDirectoryAction.triggered.connect(self.uploadDirectoryDialog)
self.addAction(uploadDirectoryAction)

def _provideMagicLinkAction(self):
provideMagicLinkAction = QAction("Import Magic Link", self)
provideMagicLinkAction.triggered.connect(self.invokeMagicLinkDialog)
self.addAction(provideMagicLinkAction)


class ViewMenu(QMenu):

Expand Down
Loading

0 comments on commit e3ffdcb

Please sign in to comment.