mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +00:00
Replaced objcmin with objp-based proxy.
--HG-- branch : objp
This commit is contained in:
parent
08813ce39c
commit
3b80de869a
@ -6,6 +6,7 @@ run.py
|
|||||||
*.so
|
*.so
|
||||||
*.mo
|
*.mo
|
||||||
*.pyd
|
*.pyd
|
||||||
|
.tm_*
|
||||||
*.xcodeproj/xcuserdata
|
*.xcodeproj/xcuserdata
|
||||||
*.xcodeproj/project.xcworkspace/xcuserdata
|
*.xcodeproj/project.xcworkspace/xcuserdata
|
||||||
conf.json
|
conf.json
|
||||||
|
18
build.py
18
build.py
@ -12,8 +12,7 @@ from optparse import OptionParser
|
|||||||
import shutil
|
import shutil
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from setuptools import setup
|
from setuptools import setup, Extension
|
||||||
from distutils.extension import Extension
|
|
||||||
|
|
||||||
from hscommon import sphinxgen
|
from hscommon import sphinxgen
|
||||||
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
||||||
@ -38,6 +37,7 @@ def parse_args():
|
|||||||
|
|
||||||
def build_cocoa(edition, dev):
|
def build_cocoa(edition, dev):
|
||||||
from pluginbuilder import build_plugin
|
from pluginbuilder import build_plugin
|
||||||
|
build_cocoa_proxy_module()
|
||||||
print("Building dg_cocoa.plugin")
|
print("Building dg_cocoa.plugin")
|
||||||
if dev:
|
if dev:
|
||||||
tocopy = ['cocoa/inter']
|
tocopy = ['cocoa/inter']
|
||||||
@ -162,6 +162,20 @@ def build_mergepot():
|
|||||||
loc.merge_pots_into_pos('locale')
|
loc.merge_pots_into_pos('locale')
|
||||||
loc.merge_pots_into_pos(op.join('hscommon', 'locale'))
|
loc.merge_pots_into_pos(op.join('hscommon', 'locale'))
|
||||||
|
|
||||||
|
def build_cocoa_proxy_module():
|
||||||
|
print("Building Cocoa Proxy")
|
||||||
|
import objp.p2o
|
||||||
|
objp.p2o.generate_python_proxy_code('hscommon/cocoa/Cocoa.h', 'build/CocoaProxy.m')
|
||||||
|
exts = [
|
||||||
|
Extension("CocoaProxy", ['hscommon/cocoa/Cocoa.m', 'build/CocoaProxy.m', 'build/ObjP.m'],
|
||||||
|
extra_link_args=["-framework", "CoreFoundation", "-framework", "Foundation", "-framework", "AppKit"]),
|
||||||
|
]
|
||||||
|
setup(
|
||||||
|
script_args = ['build_ext', '--inplace'],
|
||||||
|
ext_modules = exts,
|
||||||
|
)
|
||||||
|
move_all('CocoaProxy*', 'hscommon/cocoa')
|
||||||
|
|
||||||
def build_pe_modules(ui):
|
def build_pe_modules(ui):
|
||||||
print("Building PE Modules")
|
print("Building PE Modules")
|
||||||
exts = [
|
exts = [
|
||||||
|
@ -2,10 +2,8 @@ import logging
|
|||||||
|
|
||||||
from jobprogress import job
|
from jobprogress import job
|
||||||
from hscommon import cocoa
|
from hscommon import cocoa
|
||||||
from hscommon.cocoa import install_exception_hook
|
from hscommon.cocoa import install_exception_hook, proxy
|
||||||
from hscommon.cocoa.inter import signature, subproxy, PyFairware
|
from hscommon.cocoa.inter import signature, subproxy, PyFairware
|
||||||
from hscommon.cocoa.objcmin import (NSNotificationCenter, NSSearchPathForDirectoriesInDomains,
|
|
||||||
NSApplicationSupportDirectory, NSUserDomainMask, NSWorkspace)
|
|
||||||
from hscommon.trans import trget
|
from hscommon.trans import trget
|
||||||
|
|
||||||
from core.app import JobType
|
from core.app import JobType
|
||||||
@ -25,7 +23,7 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
def _init(self, modelclass):
|
def _init(self, modelclass):
|
||||||
logging.basicConfig(level=logging.WARNING, format='%(levelname)s %(message)s')
|
logging.basicConfig(level=logging.WARNING, format='%(levelname)s %(message)s')
|
||||||
install_exception_hook()
|
install_exception_hook()
|
||||||
appdata = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, True)[0]
|
appdata = proxy.getAppdataPath()
|
||||||
self.py = modelclass(self, appdata)
|
self.py = modelclass(self, appdata)
|
||||||
self.progress = cocoa.ThreadedJobPerformer()
|
self.progress = cocoa.ThreadedJobPerformer()
|
||||||
|
|
||||||
@ -166,10 +164,10 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
|
|
||||||
#--- model --> view
|
#--- model --> view
|
||||||
def open_path(self, path):
|
def open_path(self, path):
|
||||||
NSWorkspace.sharedWorkspace().openFile_(str(path))
|
proxy.openPath_(str(path))
|
||||||
|
|
||||||
def reveal_path(self, path):
|
def reveal_path(self, path):
|
||||||
NSWorkspace.sharedWorkspace().selectFile_inFileViewerRootedAtPath_(str(path), '')
|
proxy.revealPath_(str(path))
|
||||||
|
|
||||||
def start_job(self, jobid, func, args=()):
|
def start_job(self, jobid, func, args=()):
|
||||||
try:
|
try:
|
||||||
@ -177,10 +175,10 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
args = tuple([j] + list(args))
|
args = tuple([j] + list(args))
|
||||||
self.progress.run_threaded(func, args=args)
|
self.progress.run_threaded(func, args=args)
|
||||||
except job.JobInProgressError:
|
except job.JobInProgressError:
|
||||||
NSNotificationCenter.defaultCenter().postNotificationName_object_('JobInProgress', self)
|
proxy.postNotification_userInfo_('JobInProgress', None)
|
||||||
else:
|
else:
|
||||||
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
||||||
NSNotificationCenter.defaultCenter().postNotificationName_object_userInfo_('JobStarted', self, ud)
|
proxy.postNotification_userInfo_('JobStarted', ud)
|
||||||
|
|
||||||
def show_extra_fairware_reminder(self):
|
def show_extra_fairware_reminder(self):
|
||||||
self.cocoa.showExtraFairwareReminder()
|
self.cocoa.showExtraFairwareReminder()
|
||||||
|
@ -16,7 +16,7 @@ from appscript import app, its, CommandError, ApplicationNotFoundError
|
|||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.util import remove_invalid_xml
|
from hscommon.util import remove_invalid_xml
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from hscommon.cocoa.objcmin import NSUserDefaults, NSURL
|
from hscommon.cocoa import proxy
|
||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
|
|
||||||
from core import directories
|
from core import directories
|
||||||
@ -49,14 +49,11 @@ class IPhoto(Photo):
|
|||||||
return IPHOTO_PATH
|
return IPHOTO_PATH
|
||||||
|
|
||||||
def get_iphoto_database_path():
|
def get_iphoto_database_path():
|
||||||
ud = NSUserDefaults.standardUserDefaults()
|
plisturls = proxy.prefValue_inDomain_('iPhotoRecentDatabases', 'com.apple.iApps')
|
||||||
prefs = ud.persistentDomainForName_('com.apple.iApps')
|
if not plisturls:
|
||||||
if prefs is None:
|
|
||||||
raise directories.InvalidPathError()
|
raise directories.InvalidPathError()
|
||||||
if 'iPhotoRecentDatabases' not in prefs:
|
plistpath = proxy.url2path_(plisturls[0])
|
||||||
raise directories.InvalidPathError()
|
return Path(plistpath)
|
||||||
plisturl = NSURL.URLWithString_(prefs['iPhotoRecentDatabases'][0])
|
|
||||||
return Path(plisturl.path())
|
|
||||||
|
|
||||||
def get_iphoto_pictures(plistpath):
|
def get_iphoto_pictures(plistpath):
|
||||||
if not io.exists(plistpath):
|
if not io.exists(plistpath):
|
||||||
|
@ -11,18 +11,17 @@ import os.path as op
|
|||||||
|
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from hscommon.cocoa.objcmin import NSWorkspace
|
from hscommon.cocoa import proxy
|
||||||
|
|
||||||
from core import fs
|
from core import fs
|
||||||
from core.directories import Directories as DirectoriesBase, DirectoryState
|
from core.directories import Directories as DirectoriesBase, DirectoryState
|
||||||
from core_se.app import DupeGuru as DupeGuruBase
|
from core_se.app import DupeGuru as DupeGuruBase
|
||||||
|
|
||||||
def is_bundle(str_path):
|
def is_bundle(str_path):
|
||||||
sw = NSWorkspace.sharedWorkspace()
|
uti = proxy.getUTI_(str_path)
|
||||||
uti, error = sw.typeOfFile_error_(str_path, None)
|
if uti is None:
|
||||||
if error is not None:
|
|
||||||
logging.warning('There was an error trying to detect the UTI of %s', str_path)
|
logging.warning('There was an error trying to detect the UTI of %s', str_path)
|
||||||
return sw.type_conformsToType_(uti, 'com.apple.bundle') or sw.type_conformsToType_(uti, 'com.apple.package')
|
return proxy.type_conformsToType_(uti, 'com.apple.bundle') or proxy.type_conformsToType_(uti, 'com.apple.package')
|
||||||
|
|
||||||
class Bundle(fs.Folder):
|
class Bundle(fs.Folder):
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user