This commit is contained in:
KAiZ 2019-11-08 10:41:42 +05:30
parent f3150c4a9d
commit 801037405e
3 changed files with 92 additions and 18 deletions

View file

@ -148,7 +148,7 @@ def make_cur(frames, args, animated=False):
else: else:
return 0 return 0
frames = sorted(frames, frame_size_cmp, reverse=True) frames = sorted(frames, reverse=True)
for frame in frames: for frame in frames:
width = frame[0] width = frame[0]
@ -246,7 +246,7 @@ def make_framesets(frames):
else: else:
return 0 return 0
framesets = sorted(framesets, frameset_size_cmp, reverse=True) framesets = sorted(framesets, reverse=True)
return framesets return framesets
@ -345,7 +345,7 @@ def parse_config_from(inp, prefix):
for line in inp.readlines(): for line in inp.readlines():
line = line.decode() line = line.decode()
words = shlex.split(line.rstrip('\n').rstrip('\r')) words = shlex.split(line.rstrip('\n').rstrip('\r'))
print(words) # print(words)
if len(words) < 4: if len(words) < 4:
continue continue

View file

@ -30,6 +30,7 @@ Please remember to HIDE the slices layer before exporting, so that the rectangle
from optparse import OptionParser from optparse import OptionParser
optParser = OptionParser() optParser = OptionParser()
optParser.add_option('--name',action='store',dest='name',help='Name of theme')
optParser.add_option('-d','--debug',action='store_true',dest='debug',help='Enable extra debugging info.') optParser.add_option('-d','--debug',action='store_true',dest='debug',help='Enable extra debugging info.')
optParser.add_option('-t','--test',action='store_true',dest='testing',help='Test mode: leave temporary files for examination.') optParser.add_option('-t','--test',action='store_true',dest='testing',help='Test mode: leave temporary files for examination.')
optParser.add_option('-p','--sliceprefix',action='store',dest='sliceprefix',help='Specifies the prefix to use for individual slice filenames.') optParser.add_option('-p','--sliceprefix',action='store',dest='sliceprefix',help='Specifies the prefix to use for individual slice filenames.')
@ -202,7 +203,7 @@ class SVGRect:
dbg('Saving slice as: "%s"' % pngsliceFName) dbg('Saving slice as: "%s"' % pngsliceFName)
for i, size in enumerate (sizes): for i, size in enumerate (sizes):
subdir = 'bitmaps/{}x{}'.format (size, size) subdir = '{}/bitmaps/{}x{}'.format (options.name, size, size)
if not os.path.exists (subdir): if not os.path.exists (subdir):
os.makedirs (subdir) os.makedirs (subdir)
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
@ -211,7 +212,7 @@ class SVGRect:
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
do_res (size, hotrelslice, hotsvgFName, skipped, roundrobin) do_res (size, hotrelslice, hotsvgFName, skipped, roundrobin)
for scale in scale_pairs: for scale in scale_pairs:
subdir = 'bitmaps/{}x{}_{}'.format (size, size, scale[1]) subdir = '{}/bitmaps/{}x{}_{}'.format (options.name, size, size, scale[1])
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
if not os.path.exists (subdir): if not os.path.exists (subdir):
os.makedirs (subdir) os.makedirs (subdir)
@ -245,7 +246,7 @@ def postprocess_slice (slicename, skipped):
hotsliceFName = slicename + '.hotspot.png' hotsliceFName = slicename + '.hotspot.png'
for i, size in enumerate (sizes): for i, size in enumerate (sizes):
subdir = 'bitmaps/{}x{}'.format (size, size) subdir = '{}/bitmaps/{}x{}'.format (options.name, size, size)
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
csize = get_csize (i, size) csize = get_csize (i, size)
if relslice not in skipped: if relslice not in skipped:
@ -254,7 +255,7 @@ def postprocess_slice (slicename, skipped):
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
# cropalign_hotspot (new_base, csize, hotrelslice) # cropalign_hotspot (new_base, csize, hotrelslice)
for scale in scale_pairs: for scale in scale_pairs:
subdir = 'bitmaps/{}x{}_{}'.format (size, size, scale[1]) subdir = '{}/bitmaps/{}x{}_{}'.format (options.name, size, size, scale[1])
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
if relslice not in skipped: if relslice not in skipped:
# new_base = cropalign (csize, relslice) # new_base = cropalign (csize, relslice)
@ -290,19 +291,19 @@ def write_xcur(slicename):
# For xcursorgen use milliseconds # For xcursorgen use milliseconds
fps_field = ' {}'.format (int (1000.0 / options.fps)) fps_field = ' {}'.format (int (1000.0 / options.fps))
xcur = {} xcur = {}
xcur['s0'] = open ('bitmaps/{}.in'.format (slicename), mode) xcur['s0'] = open ('{}/bitmaps/{}.in'.format (options.name, slicename), mode)
if len (scale_pairs) > 0: if len (scale_pairs) > 0:
xcur['s1'] = open ('bitmaps/{}.s1.in'.format (slicename), mode) xcur['s1'] = open ('{}/bitmaps/{}.s1.in'.format (options.name, slicename), mode)
xcur['s2'] = open ('bitmaps/{}.s2.in'.format (slicename), mode) xcur['s2'] = open ('{}/bitmaps/{}.s2.in'.format (options.name, slicename), mode)
for i, size in enumerate (sizes): for i, size in enumerate (sizes):
subdir = 'bitmaps/{}x{}'.format (size, size) subdir = '{}/bitmaps/{}x{}'.format (options.name, size, size)
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
hot = find_hotspot (hotrelslice) hot = find_hotspot (hotrelslice)
csize = get_csize (i, size) csize = get_csize (i, size)
xcur['s0'].write ("{csize} {hotx} {hoty} {filename}{fps_field}\n".format (csize=csize, hotx=hot[0], hoty=hot[1], filename='{}x{}/{}'.format (size, size, pngsliceFName), fps_field=fps_field).encode()) xcur['s0'].write ("{csize} {hotx} {hoty} {filename}{fps_field}\n".format (csize=csize, hotx=hot[0], hoty=hot[1], filename='{}x{}/{}'.format (size, size, pngsliceFName), fps_field=fps_field).encode())
for scale in scale_pairs: for scale in scale_pairs:
subdir = 'bitmaps/{}x{}_{}'.format (size, size, scale[1]) subdir = '{}/bitmaps/{}x{}_{}'.format (options.name, size, size, scale[1])
relslice = '{}/{}'.format (subdir, pngsliceFName) relslice = '{}/{}'.format (subdir, pngsliceFName)
scaled_size = int (size * scale[0]) scaled_size = int (size * scale[0])
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
@ -334,21 +335,21 @@ def sort_xcur(slicename, passed):
return return
passed[slicename] = True passed[slicename] = True
sort_file ('bitmaps/{}.in'.format (slicename)) sort_file ('{}/bitmaps/{}.in'.format (options.name, slicename))
if len (scale_pairs) > 0: if len (scale_pairs) > 0:
sort_file ('bitmaps/{}.s1.in'.format (slicename)) sort_file ('{}/bitmaps/{}.s1.in'.format (options.name, slicename))
sort_file ('bitmaps/{}.s2.in'.format (slicename)) sort_file ('{}/bitmaps/{}.s2.in'.format (options.name, slicename))
def delete_hotspot(slicename): def delete_hotspot(slicename):
hotsliceFName = slicename + '.hotspot.png' hotsliceFName = slicename + '.hotspot.png'
for i, size in enumerate (sizes): for i, size in enumerate (sizes):
subdir = 'bitmaps/{}x{}'.format (size, size) subdir = '{}/bitmaps/{}x{}'.format (options.name, size, size)
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
if os.path.exists (hotrelslice): if os.path.exists (hotrelslice):
os.unlink (hotrelslice) os.unlink (hotrelslice)
for scale in scale_pairs: for scale in scale_pairs:
subdir = 'bitmaps/{}x{}_{}'.format (size, size, scale[1]) subdir = '{}/bitmaps/{}x{}_{}'.format (options.name, size, size, scale[1])
hotrelslice = '{}/{}'.format (subdir, hotsliceFName) hotrelslice = '{}/{}'.format (subdir, hotsliceFName)
if os.path.exists (hotrelslice): if os.path.exists (hotrelslice):
os.unlink (hotrelslice) os.unlink (hotrelslice)
@ -710,5 +711,5 @@ if __name__ == '__main__':
sort_xcur(slicename, passed) sort_xcur(slicename, passed)
#if not option.testing: #if not option.testing:
# delete_hotspot(slicename) # delete_hotspot(slicename)
print('\n')
dbg('Slicing complete.') dbg('Slicing complete.')

73
requirements.txt Normal file
View file

@ -0,0 +1,73 @@
anytree==2.7.2
appdirs==1.4.3
application-utility==1.2.1
astroid==2.3.2
attrs==19.3.0
autopep8==1.4.4
beautifulsoup4==4.8.0
btrfsutil==1.1.1
CacheControl==0.12.5
caffeine-ng==3.4.2
chardet==3.0.4
chrome-gnome-shell==0.0.0
colorama==0.4.1
cupshelpers==1.0
distlib==0.2.9
distro==1.4.0
doc8==0.8.0
docopt==0.6.2
docutils==0.15.2
ewmh==0.1.6
gufw==19.10.0
html5lib==1.0.1
idna==2.8
importlib-metadata==0.23
isort==4.3.21
lazy-object-proxy==1.4.3
lensfun==0.3.2
lockfile==0.12.2
louis==3.11.0
lxml==4.4.1
mccabe==0.6.1
meson==0.52.0
more-itertools==7.2.0
msgpack==0.6.2
npyscreen==4.10.5
numpy==1.17.3
opencv-python==4.1.1.26
packaging==19.2
pacman-mirrors==4.15
pbr==5.4.3
pep517==0.6.0
Pillow==6.2.0
progress==1.5
pwquality==1.4.1
pycairo==1.18.2
pycodestyle==2.5.0
pycups==1.9.74
pycurl==7.43.0.3
Pygments==2.4.2
PyGObject==3.34.0
pylint==2.4.3
pyparsing==2.4.2
PyQt5==5.13.1
PyQt5-sip==4.19.19
python-xlib==0.25
pytoml==0.1.21
pyxdg==0.26
requests==2.22.0
restructuredtext-lint==1.3.0
retrying==1.3.3
setproctitle==1.1.10
six==1.12.0
soupsieve==1.9.4
stevedore==1.31.0
team==1.0
tqdm==4.37.0
typed-ast==1.4.0
ufw==0.36
urllib3==1.25.6
ushlex==0.99.1
webencodings==0.5.1
wrapt==1.11.2
zipp==0.6.0