32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
# noinspection PyUnresolvedReferences
|
|
import objc
|
|
# noinspection PyUnresolvedReferences
|
|
from Foundation import NSObject, NSURL
|
|
# noinspection PyUnresolvedReferences
|
|
from Quartz import QLPreviewPanel
|
|
|
|
QLPreviewPanelDataSource = objc.protocolNamed('QLPreviewPanelDataSource')
|
|
|
|
class HydrusQLDataSource(NSObject, protocols=[QLPreviewPanelDataSource]):
|
|
def initWithCurrentlyLooking_(self, currently_showing):
|
|
self = objc.super(HydrusQLDataSource, self).init()
|
|
if self is None: return None
|
|
|
|
self.currently_showing = currently_showing
|
|
|
|
return self
|
|
|
|
def numberOfPreviewItemsInPreviewPanel_(self, panel):
|
|
return 1 if self.currently_showing is not None else 0
|
|
|
|
def previewPanel_previewItemAtIndex_(self, panel, index):
|
|
return NSURL.fileURLWithPath_(self.currently_showing) # or whatever
|
|
|
|
def show_quicklook_for_path( path ):
|
|
|
|
hydrus_data_source = HydrusQLDataSource.alloc().initWithCurrentlyLooking_(path)
|
|
|
|
panel = QLPreviewPanel.sharedPreviewPanel()
|
|
panel.setDataSource_(hydrus_data_source)
|
|
panel.makeKeyAndOrderFront_(None)
|