-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathLEFT---OFF
More file actions
4190 lines (3786 loc) · 194 KB
/
Copy pathLEFT---OFF
File metadata and controls
4190 lines (3786 loc) · 194 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
This file is for random notes and specific coding tasks that need to be done
to meet various goals. This includes Roadmap items as well as fixing bugs.
List bug tracker number if any.
When an item is satisfied, put it in the DONE section at bottom of file.
With each release, that section is transfered to the DONE file, and edited
down to major items in ../features.md.
--------------bugs: things that do not work like they are already allegedly designed to---------------------
------------ serious release blocking bugs to fix right now:
crash: text tool, click to start new one, but don't add anything. quit. crash on exit!
bug: missing caret in node input boxes
ux: right clicking on viewport buttons screws hover and passes event to split window
crash: freehand with a couple of lines with weight nodes crashes sometimes
bug: if you add a registration mark, you can't move it, also causes infinite search
bug: in ImageInterface, just undo without doing anything else sometimes wrecks image transform, which wrecks whole view
bug: affine transform to SetTransform node, put x at 0,0, destroys cairo transform! unrecoverable!
bug: ShortcutWindow totally messed up. StackFrame issues? fixes when you resize window, missing initial need to layout flag?
bug: severing clone link does some weird things, including crashing
bug: clone tool clones do not have proper bounding box
bug: gegl plugin initialization is getting tons of errors like:
(laidout:159244): GLib-GObject-WARNING **: 21:50:05.430: Two different plugins tried to register 'GeglOprgbe-save_c'.
something about gegl upgrade leaving behind residue from previous version?
bug: gegl nodes, connect sinus to waves and also to displace, freeze!
------------ other bugs:
crash: color grabbing under Wayland completely crashes with extreme prejudice. something about XGetImage (color sample currently disabled)
bug: rename window input dialog has terrible spacing
bug: zoom handles mangle cairo sometimes.. can't reproduce reliably
bug: import pdf with "expand_subimages", dragging/rendering is super laggy. need a default dpi option
bug: if you create FilePreviewer with hstack as parent, doesn't even addwindow. somehow the reparent is installing where just parent doesn't??!??
laxkit spiro editor mouse overs appear to be broken
bug: back to not maximizing properly on default ubuntu. Seems to work fine on every other window manager I've tried.
bug: path curve is terrible approximation at end points
bug: command prompt window cursor often invisible
bug: command prompt window input sometimes unrecoverably locks if cursor not at very end
DONE bug: command prompt window missing Laidout module
Overwrite dialog box and other centering boxes should center over calling window, or current screen if no specified owner
drag off page, space to duplicate, copy is not in limbo!
duplicate does not duplicate clip_path
booklet, use paper group tool, default paper group no longer displays
evince on ubuntu 14.04, pdf export won't load, says Syntax Error... Dictionary key must be a name object
configure should check for libreadline-dev? apparently not pkg-config ready <- half fix of listing in package requirements
needs to use the new extra_cppflags thing
memory hole in ExportDialog.. open export, cycle through formats, quit
memory hole in reimpose .. reimposed 5 page booklet
memory hole when graphical shell activated
memory hole do laidout -n letter, split a window, then quit. undeleted Objects remain!
DONE memory hole in ?, start with -N and create, or even just "-n letter", then quit
DONE memory hole, open up examples/nodes-asciichart.laidout, then quit. 1 object remains
DONE memory hole in calculator
DONE memory hole: start blank, exit. 3 remain!!
DONE memory hole helpwindow -> probably something to do with ShortcutWindow and ShortcutTreeSelector not refcounting as expected
DONE memory hole delaunayinterface
DONE memory hole objectfilters with interface
DONE memory hole ./laidout -n letter then quit
DONE memory hole paper interface, activate tool, lay down one paper, quit, 3 objects remain
DONE memory hole cairo backend (can't duplicate)
clones of images scale not like images.. should also snap aspect to start of drag, not when control key pressed
select no doc, select doc, viewport jumps around... it should stay the same area
switch to None document, and units change to unreasonable
shearing or scaling produces null axes occasionally when crossing over opposite edge, borking the display
--> seems to be only when needing to draw images on close to parallel axes, doesn't seem do it with paths
bug: page progress popup is wrong place, and mouse maps at wrong scale ONLY OCCASIONALLY, hard to reproduce
sometimes crash at insert page before (?? can't duplicate)
saving window positions doesn't take into account window decorations, makes pos slide downward each time
_NET_FRAME_EXTENTS? _KDE_NET_WM_FRAME_STRUT? how to get before mapping a window?
scribus plugin: if directory of executable script is not writable, it fails!
-> should find one that is writable
scribus plugin needs a proper dealing with temporary files
object reordering (with home/end) produces outline of unrelated objects on top
cloning, change original, not triggering bbox update in clone
ubuntu maximize window failing (but not on today's debian unstable gnome), resize seems to work now
gnome "application" does one per window, not one per app. this is not a bad thing imnsho, but should be easy to conform to desktop application spec properly
icon needs to be bigger.. is fuzzy on ubuntu alt-tab
DONE App/window icon in window manager not showing..
svg out, EquivalentObject doesn't play nice with defs.. only accessed once.. how to upkeep clones in this case?
-> when equiv objects are composed of groups, what happens?
svg coord numpoints==0???? numpoints doesn't really serve any purpose other than debugging, but....
svg to coord incomplete: arcs needs testing
memory hole in svg in? test svg import, svg path import must be done
object deleting funky, import svg images, select one, hit delete, doesn't delete!!
svg not exporting images when they are children of other non-group objects
place 3 images, object select, must press delete twice...!?!?!?!
sigimp fail for multiple stacks with no folds!!
make sure all imposition types are available in interpreter
resource impositions not showing description when selected
fold indicator foldprogress just at crossover points incorrectly indicating affected folds
object tool shift-control for rotate does not allow positioning on drag bars
'g' for color sample changes cursor to cancel now, and changes on border cross!!!
Need better mouse shape support
possible modifier-pairing error with multiple mice...
file previewer not updating preview when using arrow keys
shrink image lets you go immeasurably small
stackframe seems to be ignoring window borders on layout
----------------0.098 ROADMAP ITEMS: features and enhancements------------------------
DONE website: Rework download to be easier
website hugo rework:
DONE rss feed: use index.xml instead of rss.xml, and make link on front page
website revamp:
DONE rebuild with hugo
half the videos are not linking
need to redo screenshots section for mobile friendliness
Image tool
Paths
Gradients
Color fonts
Caption tool
Text on path tool
Engraver tool
Color patches
Alignment tool
Page range interface
paper tiler
Viewport/navigation/window arrangements
Spread editor
How to make booklets
SinglesEditor
SignatureEditor
Nets
Node tool
Warping
UI scale
DONE rename screenshots to docs
for CI, https://github.com/Laidout/laidout-icons.git needs to be updated
update fileformat.txt
DONE missing Palette/GradientStrip
DONE missing LineProfile
DONE missing voronoi
DONE missing LineStyle
DONE missing FillStyle
DONE Path: output problem when name - null - non-null-comment
DONE incomplete TextOnPath
check laidout.1 when time to release
DONE update splash image at icons/LaidoutSplash.png
update docs to have new release number
update translation base files
update screenshots, sync with features
DONE update links page
update help page
update quickref.html
update dtpcompare.html
update features.md: sweep LEFT-OFF and edit major items to features.md
update dev page
document pull request process on dev.html page, sync with repo readme.md
comment out cairo_debug_reset_static_data before release, since it usually means crash, interferes with pipeout
run through "valgrind --leak-check=full --error-limit=no ./laidout" and fix anything that can be nailed down to laidout
DONE XIQueryPointer? buttons->mask = malloc(buttons->mask_len); needs freeing
test:
./laidout ../examples/test-all-objects.laidout
each export filter (via command line in new script in examples.. ignoring problems in eps)
each window type: about palette view spread command text
help: window pane does funky stuff
test in different window managers
make some test scripts for command line testing
build: building: build process
should be able to specify include directories to configure, to work around hacky existence checks
should be able to specify default icon size as a compile option
should update faq with details about graphicsmagick, harfbuzz, and gegl versioning
update configure message about try installing packages.. when fail on gegl, it's not listed
DONE make a laxkit.pc from laxkit configure
DONE fix hardcoded /usr/include/cups in laxkit/configure
DONE laidout ./configure needs to pass on relevant things to laxkit
DONE in config.log should show actual configure line for easy duplicating
DONE use that laxkit.pc from Laidout and laxkit examples
--- 0.099:
should be able to do out-of-source builds
make "make uninstall" work, and remove coop from installed position
remove the lax onamac parts from configure? poorly named, more a bsd issue, not mac
modernize debian/rules. See Laidout PR #5, https://github.com/Laidout/laxkit/pull/5
packaging:
update CI: https://github.com/Laidout/laidout/pull/28
flatpak: https://github.com/Laidout/laidout/issues/11
packaging woes: update deb/control to have more of the dependencies
--- 0.099
debian (get in to main repository)
snapcraft?
DONE appimage, see: https://github.com/Laidout/laidout/issues/10
settingswindow:
need to implement list reordering widget
DONE need to implement prefs.UpdatePreference(PtrStack<char>&)
DONE put whole list at first occurence, and remove any subsequent occurences
valuewindow:
bug: uiscale messing up widget scaling.. out of sync with resizes, especially initial
use ValueGUI for automated type handling?
FileValue needs a directory hint.. currently turning red on any change
ui hints:
DoubleRectangle [maxy]
[minx] [maxx]
[miny]
AffineValue: [xx] [xy] {scale x} {rotation}
[yx] [yy] {scale y} {shear}
[x0] [y0]
setvalue
ValueHash
rearrange set elements
delete elements of list
DONE when you quit, does not remember from open windows
DONE bug: When scrollers come on, does not trigger an inset of widgets
DONE bug: shrink for scroller, scroll to bottom, resize big.. window is still scrolled to bottom!!
metawindow:
should be scrolled
final done not scrolled?
DONE line up the edits
global Laidout settings:
settings dialog
need to be able to set external programs
rearrange dir lists
rebuild icons
resource search directories, per resource
remove old palette_dir thing, it should be wrapped into resources
need "import settings from..." (but always use hardcoded laidoutrc)
DONE set uiscale live
color theme
icons
tooltips
per tool default settings
thin line width (default 1 pixel, but this is bad for high dpi screens)
graphicsmagick:
load_image() always loads full, even if ping_only (confirm?)
debug inkscape node extension
have a clickable history of recently edited objects (as seen in Godot!)
text on path textonpath: TextOnPath
bug: envelope doesn't reverse
have a reset inset just in case
bug: font size dragging goes weird on some fonts.. problem between textheight and Msize
crash: link to parent path crashing
bug: offset and baseline handles disappeared for large offset values
bug: dragging the offset handle sometimes jumps to really bad
bug: bezier length resolution inconsistencies making gaps. need solution with consistent approximation
bug: visible selected bounds not updating?
bug: sometimes path weights don't recache along with glyph positions
bug: duplicate isn't always initing the dup properly
input offset should allow "left", "right" and "center"
handle to remove from current path, and possibly attach it to some other path
how to attach to diff path
how to attach to any path
move mouse around hover over objects, indicate when you can apply text on an existing path
envelope:
bug: change offset on closed path, flips around envelope size
bug: glyph positioning is wrong: should be position glyphs based on middle of glyph, not start of glyph
bug: final letter in envelope size is wrong size
vertical position bad
horizontal spacing a bit wonky
when baseline is from_path, should indicate path, not offsetted path
select font, key up/down scrolls uncomfortably SOMETIMES!!
dragging size handle with shift|control for precision does not scale properly
DONE maybe call offset indent instead? offset too easily confused with baseline
DONE bug: reverse, now offset handle is reversed
DONE bug: reversing direction should change offset so that text occupies roughly the same place. currently in scrunches up
---0.99:
mouse click to position caret
size of offset and baseline widgets is not screen space, should they be?
halignment options for open paths?
need kern control, with kern handles
copy text.. means implementing selections
should not add new object with special check for blank on interf exit, should cache add point, but only add if new text pressed
rotation handle: glyphs align with path, or orient absolute, or distort with path flow, or distort with absolute angle
option to auto expand line so glyphs don't scrunch up
would be neat to have multiple lines
when on closed path, option to progressively offset by textheight so you can easily spiral text around
DONE cursor color should match the caption tool
DONE paste text
DONE implement insert character
DONE implement join chars
DONE implement unicode insert
DONE crash: not loading in correctly? works in debugger, but loads wrong normally
DONE bug: crash sometimes when click down for new text on path object
DONE disable control to slide offset and baseline at the same time.. it causes too much chaos by default
DONE (apparently) bug: convert to path rendering to wrong place and orientation
DONE bug: baseline options don't work, seem to all use offset path only.
DONE should have menu option to reverse direction on path without actually reversing path itself
DONE bug: when you duplicate, it's linking the path
DONE (? can't dup anymore) doesn't handle transforms with nested objects properly
DONE bug: not setting current color when object entered
DONE bug: color not loading and saving
DONE how to you actually edit path? ^p.. menu option
DONE bug: drag voffset shifts the text start?
DONE bug: drag the baseline handle off to the sides, makes huge bad jumps in value <- restrict to mod only baseline
you can't control unclick selected directories
export/print dialog
ux: if files needed == 1, then should not error about not being able to export many pages to single file, like with page atlas
DONE bug: for Singles export with non-single impositions, defaults to paper layout PaperGroup, instead of just encasing the single page.
DONE pdf
DONE svg
DONE scribus
DONE image
DONE image gs
DONE html
DONE plan
DONE ppt
DONE ps
DONE eps
DONE page atlas
bug: bleeds:
html
DONE page atlas
---0.099---
what happens about background programs, like opening something in gimp? can't delete temporary files
when there is a failing mismatch between multifile/multipage, dialog should warn, then resume the dialog, should not exit dialog
maybe flag whether to export limbo with spreads?
need proper print dialog.. old ppd cups stuff is deprecated
export should have a preview of what is actually going out, flip through spreads
in papergroups with multiple papers and double sided impositions, need to ensure front and back are output properly for printer
double check: export current appears to be broken
needs to be ScrolledWindow
should convert to use ValueWindow when it's ready
DONE Make export dialog optionally have the to command field:
DONE [] Send files to command: [ -Print commands- v]
DONE load/save external tools config
DONE debug validity check
DONE after manage commands, list doesn't update from export dialog
DONE bug: slider popup shouldn't show item if hide_from_Browse
DONE make print button experimental only? --> disable until a real print dialog happens
DONE For now remove print button, as it produces incorrect results. All it does is allow "to command" option, not vital
file filters: filefilters:
multiple export targets, including per object export settings
export with custom project files: project export project.. ProjectTemplate
like html gallery, has project config in coop/
some files templated
project defined by:
directory with project files to copy
destination directory to put resulting project files
export config to create files that go along with copied project files
template vars to replace in set of copied project files
export.config
filter: "Html Gallery",
filter_config: { ... },
copy: ["path/to/f1", "path/to/f2", "**/*.png", { from: "here.txt", to: "to/there.txt" } ],
templates:
[
{ pass_id: "template1",
file: "f1.tmpl",
export_as: "%f###.png",
vars: [ { name:"{{FRAME_NUMBER}}", value:"laidout.globals.frame" } ],
eachspread: true
},
]
config resource load/save
need to ensure that when bouncing around filters, Export All sets range properly
---0.099:
would be nice to standardize viewport render/obj-traverse so each exporter doesn't have to implement everything themselves
like define an iterator to walk over the view
fix when filtered object has children.. currently skips children
need createImportConfig/createExportConfig to make ImportConfig/DocumentExportConfig objects from parameters for all filters....
selecting out should auto select tofile | tofiles, depending on how many spreads selected for out
export range should optionally allow label not spread indices? labels are only valid for pages.. by name "iii - iv", export preview better?
perhaps switch export/import objects to new cascading Style as base..
standardize basic load such that non-laidout files create new document of proper size then import
todo: electric zine maker export/import?
When there are errors or warnings in exporting, should be able to have the error log such that
you can just jump to the offending bit easily. This would also be used for preflight verifiers,
and maybe also mass edit things, like edit all images..
- have ViewWindow::JumpToObject(&place, objectid);
DONE need to preserve last settings per filter, remember full export settings
DONE open with... on export ? combine with command option, which does basically the same thing.. need to decide about tmp files and unlink them
DONE export by command needs work, bypasses safeties.. what about multiple files?
DONE put command export within export_document()
pageatlas: page atlas:
double check: export current not selecting the proper spread??
DONE export singles nightlife booklet, everything is small??
DONE file names should be like exported-01-05.jpg not exported-1-5.jpg
DONE needs bg color
DONE basically n-up page out, lrtb
---0.099
should be able to go on a random papergroup, not depend on a doc
equirectangular:
---0.099---
export:
for flat, choose lat/long/rotation
for hedron, export projected from hedron
export lines
import:
page clip / object clip
0.099: export textured gltf / Godot based 3d viewer project?
export godot book project
show animation of book folding up
book page turner
importdialog ImportDialog import dialog:
---0.099---
be able to choose importer
should show filename as red if don't know how to import
import option to preserve broken links
importing should not spawn new windows
importing should sort out duplicate names
would be nice to show preview of what is to be imported
html: htmlgallery: html out htmlout:
page flip html example
debug StPageFlip for mobile friendliness
bug: not handling bleeds
obey object visible
---0.099---
webcomic features:
parallax
auto gyrate
control over parallax point
autoplay repeating parallax elements
follow mouse
video objects as mystery data? proxy objects with meta for videos?
path follow
scrolling object: speed direction
shake
clip paths
css 3d transforms
specify image file name, also preview file name "###-s.png"
DONE embedded page svg
DONE implement save and load template vars
DONE include scrim in coop/html
DONE figure out template scheme
DONE standardize save to directory or file, not just assume file
image:
obey object visible
width, height defaults to 0, which is supposed to autocompute correct w,h from dpi.. check!
---0.099---
export depth map based on metadata z
export format should be an enum. need to extract possible save formats from Laxkit
for gs, make sure temp file is removed, should probably locate in user space maybe? or make sure perms set reasonably
DONE should have color select for background color, which would be alternate way to set full transparent
laidout export:
---0.099---
need a Laidout out! for partial exports, or conversions between nets/papergroup lines/etc
implement crop
save option to force path data into svg d style instead of default laidout style
save option to not output line caches
laidout import:
---0.099---
pops up spurious windows
maybe option to create new layers, or insert to existing layers?
option to insert new pages, or merge onto existing pages
need to center within new margin area, as compared to previous margin area
partial import of page ranges
selective import, like blender has:
import of resources
import of master pages
import of limbos
pdf: PDF:
bug: pdf export lines has outlines in evince?
bug: export clones adds extra ref in resources section
bug: text out very broken.. imageout via gs complains about malformed pdf on fonts
bug: fonts are not doubled up, each text object is exporting its own
implement transparency in paths.. thought this was done already!!!
---0.099---
export complex engraving is really, really slow. probably all the string reallocation?
pdf optimize jpg dump, compress image data
still true? pdf export if a path has null linestyle/fillstyle it buffers until next path drawn
instead of drawing with some default style
pdf out needs clone deref.. needs clone deref still?
graphicsmagick for import? subimage and subrange of image_info passed to ReadImage
page labels?
implement crop
start using podofo instead of custom? higher quality pdf output, pdf input options. https://github.com/podofo/podofo, soon to be built from https://github.com/pdfmm/pdfmm
DONE obey object visible
podofo out:
PathsData
implement transparency in paths
image mesh
color mesh
images
PdfPageProxy
Scribus scribus:
bug: objects are not placed properly on papers
---0.099---
bug: doesn't cope with different paper sizes
needs better error return: use try/catch
outputting with settings that result in 0 pages result in scribus crash
caption as path flips
implement equivalent object
caption export centering
export paths fails on compound paths. scribus has dichotomy Polyline|Polygon
scribus export should show actual version export
make sure it works for 1.5.2
check for updates in file format for 1.5
export color meshes, for recent versions of Scribus
page clipping
import/export color meshes, for recent versions of Scribus
font size confusion
import/export linear and radial gradients
scribus in/out: font sizes, stroke widths
import should try to apply the Scribus layout correctly, at least for 2 page spreads
import should do something meaningful with original Scribus page bleed values
scribus import: need to read page sizes from actual page attributes, as it may well be different than in document attributes
-> this necessitates revamp of singles to use more than one paper type
implement crop
DONE obey object visible (no hidden objects natively)
svg: SVG svgin: svg in:
in:
implement in/out with new svg2 <view> support in Inkscape (1.5+) instead of old inkscape:page (1.2, 1.3, 1.4)
<view id="one" viewBox="0 0 100 100" /> viewBox: min-x, min-y, width, height
spec: https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/view
inkscape video has them in defs, but svg spec has it anywhere
out for signatures, should do a multi spread view, not just papers in spread. currently assumes papergroup
bug: text multi lines are concatted instead of newlined
bug: text size is way off.. like 75% smaller after import
inkscape multipage:
do something with bleed values
implement svg2 "view" support, as Inkscape is moving to that instead of inkscape:page
export:
margins, add a RectPageStyle to papergroup?
space rotation
DONE papergroup boxes
DONE memory hole: load inkscape-multipage.svg, close
DONE pages are defined upside down.. has to scale to viewbox?
DONE import new Inkscape margin features
DONE page labels should be set from inkscape:label or id
DONE multi page inkscape import needs to assign proper pages
DONE import to Singles art board
DONE bug: text block with line-spacing only in tspan element ignored
DONE bug: import non-multipage, now doing wrong paper orientation?
DONE bug: gradient with no p1,p2 defaults to 0,0. should perhaps be 0,1
DONE bug: object opacity (as opposed to fill-opacity or stroke-opacity) not handled
DONE on reading in svg directly, should short out the filename so no accidental overwriting
---0.099---
markers
should parse sodipodi:nodetypes:
c = corner node, s = smooth node, z = symmetric, a = auto smooth
if closed, has 1 more nodetype to define initial previous control handle, and final next
in units should default to csspoints
bug: when stroke+fill presentation atts are not under a "style" att, they are ignored
stroke fill
bug: old LaidoutIcon renders incorrectly, has stroke fill
fill/stroke for text
any clipping
grid guides
sometimes path endpoint spikes
dotted line style
for new docs, should set rulers to use some reasonable units, from either width="100px", or namedview.document-units
DONE bug: incorrect page size on import
DONE locked: sodipodi:insensitive="true"
DONE obey object visible: style="display:none;..."
DONE in: update StyleToFillAndStroke() calls to extra and react to display:none
DONE out
DONE monkey.doc, export then import:
DONE radial gradients not importing
DONE not putting in page bounds even though width/height are fine..
DONE try to open exported svg, says cannot load with no further explanation
DONE finish debugging mesh svg 2.0 out/in, svg-mesh-polyfill/testfiles
DONE test import, then visual similarity of export
DONE conical.svg FAIL! needs check for translatable fill object
DONE mesh1x2.svg
DONE mesh2.svg
DONE mesh2x1.svg
DONE mesh_objectbb.svg
DONE mesh_opacity.svg
DONE mesh.svg
DONE mesh_test.svg
DONE mesh_transform.svg
DONE pepper.svg
DONE bug: bad colors when style atts occur before path in meshpatch
DONE unless fill/stroke is specifically given a color, it should be noop
DONE mesh out
DONE finish debugging powerstroke out/in
DONE try actually implementing powerstroke in
DONE zero width caps not working
DONE width="512px" is mapping to 7.11111 inches (72 dpi)..
DONE images with xlink:href need to be read in relative to the svg file, not cwd
DONE problem with transform sometimes, see icons-tiling.svg
DONE non-1 scale problem
DONE seems like children screw up -> problem with x,y in: rotate(angle, x,y)
DONE "use" transforms not compounding
DONE text placement and size
DONE width/height makes scale 0 when after viewBox
DONE gradient clipping
DONE gradient filling past minimum definition bounds
DONE in needs to account for viewBox
DONE linear gradients
DONE radial gradients
DONE in needs to parse "use" elements and other "#" refs
out:
---0.099---
needs option to not clip by page, or auto to not clip when single page in spread
special check for paths with a single gradient child
text linespacing.. unclear how Msize/linespacing maps to svg options
DONE locked: sodipodi:insensitive="true"
text:
multiline
direction
spans
DONE color
bug: export papers currently not going to correct paper
---0.099---
see conical2.svg mesh test (filling text), need to implement text fill/stroke
need more comprehensive parenting handling.. how to output object children and also handle fills properly
test arcs in/out
text on path without path conversion
dump_in svg filter to nodes optionally, once those are renderable
radial: transparent inner circle, patch edges
DONE need to parse units
---0.099---
plan:
need an In()
implement paper rotation for out
ppt (passepartout): DEPRECATE
implement crop
implement paper rotation
ps: DEPRECATE
implement paper rotation
for plain postscript, there's bitmask, but no transparency. maybe optionally do simulation with dithered bitmask..
a lot of work for a deprecated format, but could have other uses, like for PDF/X-1a
paths not filling correctly
engraver no out, equiv object problem?
implement crop
eps: DEPRECATE
implement crop
export seems to be rather broken
command line export file name defaults to "output#.eps"
implement paper rotation
xtg from quark?
idml from indesign?
Singles: singleseditor: singlesinterface:
bug: pages layout doesn't advance.. shows only pages from 0
should show page previews
labels should be editable
if you press space, does not center contents, it centers on origin
memory hole: edit, swap landscape, ok, quit
memory hole on export multipage svg
need optional paper packer for Paper view, while a papergroup is for pages view
object bleeds not implemented
export to pdf has wrong paper sizes with multipage
PaperLayout, needs to optionally be a different PaperGroup compared to page layout
DONE implement double_sided
DONE bug: scan ignoring orientation
DONE bug: swap orientation shows old + new back in viewport
DONE bug: swap orientation twice wrecks matrix
DONE bug: changing paper reverts orientation to portrait
DONE implement Insets instead of bbox for paper boxes
DONE bug: swap orientation does not update handles
DONE inset should be per paper in papergroup
DONE what's with the old cached_margin stuff, obsolete now with pagestyles stack?
DONE revamp to be art board centric, based on random PaperGroup
DONE need to cache page margins properly for papergroup GetPageMarginOutline()
Bevel Tool BevelInterface:
Work on any path, apply to any non-smooth vertex
Clone corner?
Apply single bevel to all corners
Mirror corner x/y or with closest quadrant
Custom for particular corners
distance from corner x/y --OR-- % of length to next corner
programmable custom shapes per corner?
freehand tool: freehand:
need a way to auto-close paths
should show line width hint
should have option to output base weighted path, with custom filter resource to copy onto it
keep a stack of lines previously made for fake undo by repeated delete? or just implement undo for object added
path simplification needs to be considerably better
points
particularly weight nodes: making one node per vertex, but those weight points need easing
needs to account for time and speed
auto apply line profile
gradient select: new custom or resource
pressure curve
mesh outputs should still be Mesh based on path
ShapeBrush features:
rotate the brush
bug: rendering solid block, not just outline
implement bezier path with ShapeBrush
output to either line with ShapeBrush, or flattened path
implement flash-like brush:
bez outline, subsequent strokes can add to or subtract from previous (complex) paths
merge with similar colors
be able to drag around islands
settings:
set raw point simplify amount
colors: stroke/fill/gradient, shapebrush outline color
speed influence
DONE fill color is not indicated in color box
DONE numerical input for brush size
DONE brush_size should be real, not screen units
DONE need "brush size" controls
DONE needs to respond to viewport color change
shape brush shapebrush:
shape brush not being applied on load in
need to be able to edit shape brushes
pathi -> save to shape brush should ask for a name
use shape brush should show previews
if shape brush has multiple paths, should union sweeps of each path
when new subpaths are created, they should be assigned current shape brush
DONE finish implementing min/max along direction
DONE not saving to file
LineStyle:
needs a stroke fill option
FillStyle:
should probably have an "enabled" field? otherwise when you toggle fill, it currently sets fillstyle and function to something you may not want
PathInterface: pathinterface: paths:
option to stack stroke styles for halo effect for instance
bug: '0' wasn't making full circle on subpath? later crashed
grab areas need to be bigger
tiny stuff needs halos
would be nice for weight nodes to have a minimized appearance when far from mouse
would be nice to have context options for hovered item right on top
click on extrema: add point at | move nearby vertex to this point
ux: when you first activate with new path, need to refresh where mouse is for green add point hint
bug: if path doesn't have linestyle in file, later crashes since it does not fill in
bug: width handle has bit of a hitch when handle near a vertex.. extra temp width node being added?
bug: seems to be possible to move nodes out of order, only occassionally
bug: shift click down then up on a point selects then deselects.. control can toggle
bug: problems for non-bez-controlled corners at endpoint. Also variable offset causes weird connections
bug: applyoffset, the bez part at joins is messed up when no offset, suspect problem in FlatpointToCoordinate, mismatch with bez join next to sample points
bug: should not create new control points by pressing cntl, unless there is movement
bug: delete last weight node, sometimes width is wrong
bug: make new line with freehand tool, cannot move weight nodes in a rational way
bug: when you select point with rect select, it does not update the current point
drag on handle (not point) to resize handle. cntl to scale only it. cntl+shift to rotate it
when you delete a point, curvertex should go to go to nearest previous
need an easier way to edit gradient fills, like child tool edit for fill items, auto add filler types
need simplify option on point delete to adjust control point lengths
need option for bbox to include line width, not just centerline
need stroke fill
need path combine:
with more than one object selected, turn to path tool, have a multi-object widget that lets you:
Edit all objects at same time (default) -> box that says [3 objects] click for action menu?
Combine to single object (select from menu?)
Combine and merge endpoints (select from menu?)
PathBoolean: intersect, union, xor, subtract
cross link linestyle or fillstyle
generators? or just spin off weight node interface and use that as a sub interface for object specific interfaces?
interfaces for creation of the whole path object.
separate scan/select/mouse down,up,move, BUT uses the PathInterface weight node display and controls
DONE ux: when you drag mouse outside of window, should not draw the green add point hint
DONE remove PathOperator: overly complicated, not much benefit, its theoretical flexibility isn't worth it
DONE Finish making LineStyle a resource
DONE load/save
DONE menu selection
DONE conversion of current style to resource
DONE make current resource local
DONE Finish making FillStyle a resource
DONE load/save
DONE menu selection
DONE conversion of current style to resource
DONE make current resource local
DONE horizontal extrema orientation sometimes wrong near other vertical extrema
DONE Path should probably be anObject
DONE bug: when you select a palette color, it only goes to foreground
DONE need numerical entry for all weight node characteristics
DONE not show every single handle. only ones associated with active vertices
DONE impliment flip curpoints horizontally or vertically
DONE need invert selection: ^i for total invert, +^i for invert within current paths?
DONE offset handle instead of mystery shift press
DONE shift over endpoint needs add point hint
DONE shift(?) over segment should allow cutting the segment, draw a big red x? highlight whole segment in red?
DONE need to show hints for when new points will be placed
DONE implement open at any point to possibly break into separate subpaths
DONE need way to turn off selectability of path points (thus leaving only width nodes selectable)
DONE if background is green or red, hard to see the direction indicator
---0.099---
ux: copy selected to a new object
ux: select inverse
weight nodes:
drag one, but have proportional effect on adjacent widths
investigate Raph Levien's new curve offset method: https://raphlinus.github.io/curves/2022/09/09/parallel-beziers.html
that hot new spiro curve from Raph Levien
boolean ops
mirror, array, with join (akin to blender modifiers)
dup path object links the path style, but save and load, it is not linked... need to sort out line/fill style inheritance/linking
needs input boxes for width nodes
compound paths, change width only changes one. no way to affect all
need a way to work on multiple weight nodes:
shift all
width multiply all
set width
need input boxes for weight node info
zero tips not working on mesh edit? with import test-engrave.laidout
debug cache sample point distribution, the interpolator is really bad as is
powerstroke export requires apply offset.. else weight nodes are all messed up
clarify export for weighted paths, use outlinecache and areacache as needed, check all filetypes exporters: svg pdf scribus image/ps/eps
finish implementing joins. need to clarify weight behavior at corner joins
weight computation is currently done based on even t spacing, but probably should be mapped based on distance
interfs.cc: weights not being shown unless '_'
be able to pull points back along path near endpoints
debug extrapolate
need to protect against reentrants at corner joins.. makes holes unless nonzero rule, and sometimes sticks out the other side
sliding around the nodes is really annoying.. should do according to proximity to center line
inkscape has multiple interpolators, we should too!
actions to implement:
need arbitrary cut
need better apply offset: not simplifying offset path
need path combine (combine path stacks of multiple PathsData)
need break apart (make new PathsData from each in paths stack)
need special break apart to make new PathsData, but preserve totally enclosed paths as intential holes
need mechanism to be able to add custom path actions to context menu
implement work on multiple path objects at once
ApplyTransform() and MatchTransform() should adjust scaling of width nodes?
custom caps.. define cap to a horizontal line, take endpoints and endpoint tangents, return the cap warped to fit the tangents
custom dashes, with custom start/end dash caps
so called vector brushes, that allow sweeping out an area with a whole shape
need some kind of extrema fill in for angled paths, so it matches sweep of whole segment, not just endpoint sweep lines
should have shortcut to offset ALL weight nodes, or angle ALL nodes
how to deal with bbox when using wacky weights?? -> use bbox of outlinecache (or centercache), non-weighted (optional): use flat bbox + linewidth
need something like path->PointInfo(t, &pp, &vprev_ret, &vnext_ret).. done is GetWeight(t, &width, &offset, &angle)
per vertex join type?
linestyles are always output independently, can't currently cascade with current code
line join round should add extra point for really wide angles to make them more circular
copy and paste
maybe control when on vertex will create whichever handle does not exist, control nearest drag point determines which is created
align nodes -> create temp set of data to pass to AlignInterface?
transform handles for selected points, including flip
subdivide, repeat key press restores old segment, then adds 1 more point to num of points from last press
toggle between add points / select points?
markers:
resource drawables with extra "origin" and "direction", maybe stored as properties?
they need to respond to object color.. marker is a SomeDataRef with filter to respond to obj.marker_color ?
start, end
mid
marker-mid in svg is at each vertex
at specific intervals, or n per line
beznet:
remove edge / merge faces
DONE edge has two faces
edge has one face
edge has no faces
merge vertices
build path from selected faces
net from path
rect/square/perpendicular-corner relaxation
implement pathboolean here
save
load
curved edges
simplepathinterface:
indicator animation not working
would be nice to do zoopy animation for circle when you first hover over point
bug: cannot set colors
bug: cannot set object name?!
bug: cannot press enter to resume editing
bug: bbox is mpoint bbox, not bezier extent
holes/subpaths
make circle green when manual, gray when auto
snap:
toggle auto snap (control will reverse)
auto snap to h and v when holding down control
debug first point corner issue
implement quadratic
implement cubic
DONE controls are flipped in laidout, but not in default Displayer
DONE bug: cannot set linewidth
ObjectFilter objectfilters object filter: objectfilterinterface:
debug merge
memory hole: going from nodes to filter editor, objects remain on quit
bug: muting and unmuting many times causing endless loop
bug: muting is not rendered in node view.. and can't toggle in node view
DONE bug: object tool up, you can somehow click through to path tool, then crash on escape
DONE bug: select filter editor tool, does not use currently selected data
DONE need menu options: Apply filters (currently crashes)
DONE when jumping between tools, tool icon needs to update
DONE if mirror plane is node connected, should ask if you want to edit
DONE clicking the eye should only toggle, not select the node
DONE bug: 2 mirrors, eye toggle second, apparently no effect until you mess with the other: no PropagateUpdate??
DONE bug: should auto select correct node when you jump to node view
DONE bug: won't activate when clicking from node interface
DONE need way to go from node interface to interactive
---0.099:
menu option: Create filtered copy
implement unlink if connections locked
implement X for get rid of filter
implement easy menu driven adding of filters, with possible rearrange order of filters
need a way to easily apply one object's filter to another object
clean up filefilter.h definition to allow explicit declaration of ObjectFilter in DrawableObject
filter to anchor to other objects, migrate the old anchor stuff to nodes
Perspective perspective:
map() should be able to map from a different base
bug: deleting path points makes transformed path faulty on updates sometimes
perspective interface needs to allow changing pos of in points, not just use bbox
path transform should transform line widths accurately
finish debugging update path object without reallocating each time
optimize the image mapping
filtering paths needs to detect big distortions and add points, as simply transforming bez points is not enough
implement transform for:
vector transform should be through PointCollection for:
ColorPatchData
ImagePatchData
PatchData
EngraverFillData
VoronoiData
Caption (convert to path first)
text on path (convert to path first)
ImageData
Refs and groups of any combination of the above
DONE bug: chained filter nodes make context wrong, thus bad Refresh
valgrind:
DONE conditional jump on uninit: strlens in newnstr re attributes.cc 2673, 2192, 2206/1007, 2651
DONE mismatch free colorbase.cc 298
DONE memory lost warnings in PtrStack
node editor node interface NodeInterface: nodes: node: interface:
bug: gradient to ModifyObject node: hang!
bug: hangs when alt drag to add reroute, lift up alt before releasing mouse SOMETIMES. UGH!
ux: control click for pan along connection: too easy to activate control-drag-cut-line. use double click for traverse?
bug: frame label size should change frame size if label doesn't fit
bug: memory hole when adding reroute
ux: add reroute needs tooltip and visual indicator
ux: add reroutes should visually indicate
cut connections should highlight, maybe with X, what will be cut
Ctrl-drag frame label sizer to change all frame label sizes?
bug: duplicating placing at strange place
need a way to dissolve reroute or nodes, so we don't break routes